All Products
Search
Document Center

PolarDB:Pemisahan transaksi

Last Updated:Mar 29, 2026

Saat menggunakan cluster endpoint dalam mode baca/tulis, beberapa driver klien database—seperti Java Database Connectivity (JDBC)—secara otomatis membungkus setiap permintaan dalam sebuah transaksi. Akibatnya, seluruh lalu lintas, termasuk kueri read-only, dialihkan ke node primary. Node read-only menjadi tidak terpakai, sementara node primary menanggung beban yang seharusnya dapat dikurangi tanpa perlu modifikasi kode tambahan.

Fitur pemisahan transaksi memungkinkan PolarProxy mengarahkan permintaan baca dalam suatu transaksi ke node read-only, sehingga mendistribusikan ulang beban tanpa mengubah kode aplikasi Anda. Fitur ini juga membantu menjaga konsistensi baca/tulis.

Cara kerja

Secara default, saat menggunakan cluster endpoint dalam mode baca/tulis, PolarProxy mengirim semua permintaan dalam satu sesi ke node primary. Karena driver seperti JDBC membungkus semua permintaan dalam transaksi, bahkan kueri read-only tetap diarahkan ke node primary, terlepas dari apakah kueri tersebut melibatkan operasi tulis atau tidak.

Transaction splitting unavailable

Dengan pemisahan transaksi dasar diaktifkan, PolarProxy memisahkan operasi baca dan tulis dalam setiap transaksi:

  • Permintaan baca yang diterima sebelum permintaan tulis pertama dalam suatu transaksi diteruskan ke node read-only.

  • Setelah permintaan tulis pertama tiba, semua permintaan berikutnya—baik baca maupun tulis—diteruskan ke node primary untuk menjaga konsistensi data.

  • Data yang belum dikomit tidak akan pernah terlihat dari node read-only.

Basic transaction splitting

Kapan menggunakan pemisahan transaksi

Pemisahan transaksi paling efektif ketika:

  • Aplikasi Anda menggunakan cluster endpoint dalam mode baca/tulis.

  • Beban kerja Anda didominasi oleh operasi baca.

  • Operasi baca secara otomatis dibungkus dalam transaksi oleh driver—misalnya, aplikasi JDBC dengan autoCommit=false.

Pemisahan transaksi tidak memberikan manfaat jika aplikasi Anda sudah mengarahkan langsung permintaan baca ke endpoint read-only atau jika beban kerja Anda didominasi oleh operasi tulis.

Batasan

  • Tingkat isolasi: Hanya transaksi yang menggunakan tingkat isolasi Read Committed yang dapat dipisah. Tingkat isolasi lainnya (seperti Repeatable Read atau Serializable) mengharuskan sesi tetap terikat pada satu node tunggal untuk menjamin konsistensi berbasis snapshot stabil, sehingga pemisahan tidak dimungkinkan.

  • Interaksi tingkat konsistensi: Jika tingkat konsistensi tidak diatur ke eventual consistency, PolarProxy hanya mengirim permintaan baca sebelum tulis ke node read-only setelah node tersebut sepenuhnya menyinkronkan data dari node primary. Jika node tersebut tertinggal, PolarProxy akan mengalihkan permintaan baca ke node primary. Untuk detail selengkapnya, lihat .

Aktifkan pemisahan transaksi

Prasyarat

Sebelum memulai, pastikan Anda telah memiliki:

  • Kluster PolarDB for PostgreSQL (Compatible with Oracle) dengan setidaknya satu node read-only

  • Cluster endpoint yang dikonfigurasi dalam mode baca/tulis

Prosedur

  1. Masuk ke Konsol PolarDB.

  2. Di pojok kiri atas, pilih wilayah tempat kluster Anda dideploy.

  3. Temukan kluster tersebut dan klik ID-nya.

  4. Pada bagian Cluster Endpoints, klik Modify.

  5. Klik On di samping Transaction Splitting.

    Pemisahan transaksi hanya berlaku untuk koneksi baru. Untuk menerapkan perubahan pada koneksi yang sudah ada, tutup koneksi tersebut dan buat koneksi baru.

    Enable transaction splitting

  6. Klik OK.

Referensi API

OperationDescription
ModifyDBClusterEndpointMemodifikasi atribut cluster endpoint, termasuk mode baca/tulis, tingkat konsistensi, pemisahan transaksi, dan apakah akan melepas permintaan baca dari node primary. Anda juga dapat menentukan apakah cluster endpoint yang ditentukan akan dikaitkan dengan node yang baru ditambahkan.

Langkah berikutnya