All Products
Search
Document Center

PolarDB:Teknologi commit timestamp (CTS)

Last Updated:Mar 28, 2026

Pada beban kerja online transaction processing (OLTP) dengan konkurensi tinggi, daftar transaksi aktif MySQL menjadi bottleneck: setiap permulaan transaksi, komitmen, dan pemeriksaan visibilitas harus memperoleh trx sys mutex, sehingga membatasi throughput dan mencegah pemanfaatan penuh beberapa vCPU. PolarDB for MySQL mengatasi hal ini dengan PolarTrans, yang menggantikan daftar transaksi aktif dengan Commit Timestamp Store (CTS)—mekanisme in-memory tanpa lock yang melacak status transaksi menggunakan cap waktu komitmen alih-alih array yang dilindungi mutex.

Topik ini menjelaskan cara kerja CTS, peningkatan yang diberikan pada setiap tahap siklus hidup transaksi, serta perubahan kinerja setelah PolarTrans diaktifkan.

Versi yang didukung

Untuk mengaktifkan PolarTrans melalui fitur konsistensi global (mode kinerja tinggi), kluster PolarDB for MySQL Edisi Perusahaan Anda harus memenuhi salah satu persyaratan versi berikut:

  • Versi engine 8.0.2 dengan revisi versi 8.0.2.2.19 atau lebih baru

  • Versi engine 8.0.1 dengan revisi versi 8.0.1.1.29 atau lebih baru

  • Versi engine 5.7 dengan revisi versi 5.7.1.0.26 atau lebih baru

Untuk memeriksa versi kluster Anda, lihat bagian "Query the engine version" pada Engine versions.

Mengapa daftar transaksi aktif membatasi kinerja

Database relasional utama seperti MySQL dan PostgreSQL menerapkan Multi-Version Concurrency Control (MVCC) menggunakan daftar transaksi aktif. Di lingkungan dengan konkurensi tinggi, pendekatan ini menimbulkan tiga masalah:

  • Tidak dapat memanfaatkan sepenuhnya beberapa vCPU untuk memproses transaksi secara konkuren

  • Menciptakan bottleneck kinerja ketika banyak transaksi bersaing untuk mendapatkan trx sys mutex

  • Tidak mendukung secara memadai konsistensi baca, penulisan multi-titik, dan manajemen transaksi Extended Architecture (XA) dalam arsitektur tanpa berbagi (shared-nothing)

PolarTrans mengatasi keterbatasan ini dengan menggantikan daftar transaksi aktif menggunakan CTS. Alih-alih menyalin status transaksi, PolarTrans menentukan visibilitas transaksi berdasarkan cap waktu komitmen maksimum kluster. Log CTS dipertahankan sepenuhnya di memori: setiap transaksi dipetakan secara modulo ke slot tertentu dalam ring buffer berdasarkan trx_id-nya, dan setiap slot menyimpan pointer trx serta nomor urutan komitmen (CSN).

Cara CTS meningkatkan setiap tahap transaksi

Daftar transaksi aktif mengharuskan akuisisi trx sys mutex pada tiga titik kritis dalam siklus hidup transaksi. CTS menghilangkan kebutuhan ini pada ketiga tahap tersebut.

TahapPendekatan tradisionalPolarTrans (CTS)
Permulaan transaksiMengalokasikan ID transaksi, menambahkannya ke rw_trx_ids, memperbarui rw_trx_set dan rw_trx_list—semuanya di bawah trx sys mutexMencatat informasi transaksi dalam log CTS, mengalokasikan slot secara modulo berdasarkan trx_id, dan menandai slot tersebut dengan tag aktif—tanpa lock
Commit transaksiMenanyakan rw_trx_ids, menghapus ID transaksi, memperbarui rw_trx_set dan rw_trx_list—di bawah trx sys mutexMemberikan cap waktu komitmen dan hanya memperbarui field CSN dalam log CTS
Penentuan visibilitasMenyalin array ID transaksi aktif, mencatat ID transaksi minimum dan maksimum, serta menanyakan array tersebut untuk menentukan visibilitas baris—di bawah trx sys mutexMembandingkan CSN dari transaksi read-only dengan field trx csn dalam catatan baris, menggunakan cap waktu komitmen maksimum sistem alih-alih read view

PolarTrans menerapkan algoritma tanpa lock pada sebagian besar logika transaksi untuk meningkatkan throughput baik dalam skenario read-write maupun write-only.

Perbandingan kinerja

Pengujian berikut mengukur permintaan per detik (QPS) sebelum dan sesudah mengaktifkan PolarTrans.

Lingkungan pengujian:

ParameterNilai
KlusterPolarDB for MySQL 8.0, Edisi Kluster
Spesifikasi88 core, memori 710 GB
Tool pengujianSysbench
Volume data88 tabel, 12 juta baris per tabel

Kasus uji:

Hasil: PolarTrans secara signifikan meningkatkan QPS dalam skenario read-write dan write-only.

Pada skenario read-only, PolarTrans tidak meningkatkan kinerja. Transaksi read-only sudah memperoleh manfaat dari caching read view, yang mengurangi overhead locking akibat penyalinan status transaksi.

Aktifkan PolarTrans

PolarTrans diaktifkan secara default saat Anda mengaktifkan fitur konsistensi global (mode kinerja tinggi). Untuk instruksi penyiapan, lihat bagian "Enable global consistency (high-performance mode)" pada topik Overview.