Langsung ke konten

Arsip

Database

4 artikel
Rekayasa Perangkat Lunak 19 Sep 2026 5 min read

Write Skew Merusak Invariant Lintas Row pada Snapshot Isolation

Snapshot isolation dapat membiarkan dua transaksi commit meskipun hasil gabungannya melanggar aturan yang sudah diperiksa masing-masing transaksi sebelum melakukan write. Anomali ini muncul saat kedua transaksi membaca kondisi logis yang sama, lalu menulis row yang berbeda. Karena write set keduanya tidak beririsan, deteksi konflik write-write biasa tidak memiliki benturan untuk ditolak. Kondisi ini disebut write skew. Batas masalahnya berada di antara invariant aplikasi dan isolation database: sebuah transaksi dapat melihat snapshot yang konsisten, tetapi tetap ikut menghasilkan state akhir yang akan gagal terhadap predicate yang sebelumnya diperiksa.

Basis Data 19 Sep 2026 5 min read

Menjalankan Database Turso Embedded di SvelteKit Tanpa Turso Cloud

Aplikasi SvelteKit tidak harus memakai Turso Cloud untuk menggunakan Turso. Paket @tursodatabase/database dapat membuka file database langsung dari proses Node.js: import { connect } from '@tursodatabase/database'; const db = await connect('local.db'); Konfigurasi ini tidak memerlukan URL database, authentication token, ataupun network round trip. Aplikasi membaca dan menulis file database lokal.

Rekayasa Perangkat Lunak 19 Sep 2026 5 min read

Kolom Versi Mengubah Update Database Menjadi Transisi State Bersyarat

Client database dapat membaca sebuah row, memakai waktu untuk menghitung perubahan, lalu menjalankan UPDATE setelah transaksi lain lebih dulu mengubah row yang sama. Jika statement terakhir hanya mengidentifikasi row lewat primary key, write yang datang kemudian dapat mengganti state yang dihitung dari kondisi lama tanpa konflik yang terlihat. Kolom versi mengubah batas tersebut. Client membaca state aplikasi beserta nilai revisinya, lalu menyertakan revisi itu dalam predicate update. Database menerima write hanya selama revisi yang tersimpan masih sama dengan state yang sebelumnya diamati client.

Basis Data 14 Sep 2026 4 min read

Partial Index PostgreSQL Memfokuskan Entri Indeks

Indeks PostgreSQL tidak harus merepresentasikan setiap baris dalam tabelnya. Partial index menambahkan predikat ke definisi indeks, sehingga hanya baris yang memenuhi predikat tersebut yang memperoleh entri indeks. Hal ini mengubah cakupan fisik indeks sekaligus kumpulan query yang dapat menggunakan indeks tersebut melalui planner. Mekanisme ini cocok untuk workload ketika subset baris yang stabil menerima porsi query yang jauh lebih besar. Aplikasi mungkin berulang kali memeriksa job yang masih pending sementara job yang selesai sebagian besar hanya menjadi riwayat, atau melakukan query pada akun aktif sementara akun yang dinonaktifkan tetap berada dalam tabel yang sama.