Untuk membantu Anda lebih memahami, mengoptimalkan, dan mendiagnosis masalah transaksi, Spanner memberi Anda akses ke statistik commit transaksi. Saat ini, Anda dapat mengambil jumlah total mutasi untuk transaksi.
Kapan harus menggunakan statistik commit
Mengetahui jumlah mutasi untuk transaksi dapat berguna dalam skenario berikut.
Mengoptimalkan perjalanan pulang-pergi
Untuk membantu meningkatkan performa aplikasi, Anda dapat mengurangi jumlah perjalanan bolak-balik ke database dengan melakukan sebanyak mungkin pekerjaan dalam setiap transaksi. Dalam skenario ini, Anda ingin memaksimalkan jumlah mutasi per transaksi, sekaligus tetap berada dalam batas sistem.
Untuk menentukan jumlah baris yang dapat Anda commit per transaksi sekaligus tetap berada di bawah batas, commit satu baris dalam transaksi terlebih dahulu. Hal ini memberi Anda dasar pengukuran jumlah mutasi per baris. Kemudian, bagi batas sistem dengan dasar pengukuran untuk mendapatkan jumlah baris per transaksi. Untuk mengetahui informasi selengkapnya tentang cara penghitungan mutasi, lihat catatan ini.
Perhatikan bahwa pengoptimalan untuk perjalanan pulang-pergi tidak selalu berguna, terutama jika menghasilkan lebih banyak pertentangan kunci. Anda dapat memecahkan masalah konflik kunci di database menggunakan statistik kunci.
Memantau transaksi Anda untuk menghindari batas sistem
Seiring meningkatnya penggunaan aplikasi, kemungkinan jumlah mutasi dalam transaksi Anda juga meningkat. Agar tidak mencapai batas sistem dan transaksi Anda akhirnya gagal, Anda dapat memantau statistik commit jumlah mutasi secara proaktif dari waktu ke waktu. Jika Anda mengamati nilai ini meningkat untuk transaksi yang sama, mungkin sudah saatnya mengoptimalkan kembali transaksi seperti yang dijelaskan di bagian sebelumnya.
Cara mengakses statistik commit
Statistik commit tidak ditampilkan secara default. Sebagai gantinya, Anda perlu menetapkan
flag return_commit_stats
ke true di setiap CommitRequest. Jika
upaya commit Anda melebihi jumlah mutasi maksimum yang diizinkan untuk
transaksi, commit akan gagal dan error INVALID_ARGUMENT
akan ditampilkan.
Berikut adalah contoh cara menampilkan statistik commit menggunakan library klien Spanner.
Mengambil statistik commit
Contoh berikut menunjukkan cara mendapatkan statistik commit menggunakan library klien Spanner.
C++
Kode berikut memanggil set_return_stats()
di CommitOptions
dan
menampilkan jumlah mutasi 6, karena kita menyisipkan atau memperbarui 2 baris dan
3 kolom di setiap baris.
C#
Di C#, statistik commit tidak ditampilkan langsung melalui API. Sebagai gantinya, peristiwa tersebut dicatat ke dalam log pada tingkat log Information oleh logger default.
Kode berikut mengaktifkan logging statistik commit untuk semua transaksi dengan
menetapkan properti LogCommitStats
di SpannerConnectionStringBuilder
ke
true. Kode ini juga mengimplementasikan contoh logger yang menyimpan referensi ke
respons commit yang terakhir dilihat. MutationCount
kemudian diambil dari respons
ini dan ditampilkan.
Go
Kode berikut menetapkan tanda ReturnCommitStats
dan mencetak jumlah mutasi saat transaksi berhasil di-commit.
Java
Node.js
Kode berikut menetapkan flag returnCommitStats
dan menampilkan jumlah mutasi
6, karena kita menyisipkan atau memperbarui 2 baris dan 3 kolom di setiap
baris.
PHP
Python
Library klien
Python mencatatnya ke dalam log menggunakan stdout
di level Info
, bukan menampilkan statistik commit secara langsung melalui API.
Kode berikut mengaktifkan logging statistik commit untuk semua transaksi dengan
menetapkan database.log_commit_stats = True
. Kode ini juga mengimplementasikan
logger contoh yang menyimpan referensi ke respons commit yang terakhir dilihat. mutation_count
kemudian diambil dari respons ini dan ditampilkan.
Ruby
Kode berikut menetapkan flag return_commit_stats
dan menampilkan jumlah mutasi
6, karena kita menyisipkan atau memperbarui 2 baris dan 3 kolom di setiap
baris.