ApsaraDB for HBase menulis data ke HLog dan Memori menggunakan mode Log-Structured Merge (LSM). Dengan pendekatan ini, ApsaraDB for HBase menghindari operasi input/output (I/O) acak, sehingga memberikan performa tinggi dan stabilitas untuk operasi penulisan. Pada sebagian besar solusi basis data, optimasi penulisan sering kali mengorbankan performa demi keandalan.
Fitur penulisan batch tersedia untuk mengurangi jumlah Panggilan Prosedur Jarak Jauh (RPC).
HTable.put(List<Put>) Auto Flush
Performa penulisan dapat ditingkatkan secara signifikan dengan menonaktifkan Autoflush. Namun, disarankan agar Anda menunggu hingga buffer mencapai 2 MB (hbase.client.write.buffer) atau memanggil perintah hbase.flushcommits() sebelum mengaktifkan Autoflush pada RegionServer. Data tidak akan ditulis ke basis data jarak jauh selama proses ini.
Gunakan HTable.setWriteBufferSize(writeBufferSize) untuk mengatur ukuran buffer.
Optimasi Server
Flag WAL
Nonaktifkan Write Ahead Log (WAL) untuk meningkatkan performa penulisan secara signifikan. Ketika WAL dinonaktifkan, tidak ada penulisan yang dilakukan ke HLog, sehingga mengurangi jumlah operasi I/O. Penulisan hanya dilakukan di memori ke Memstore.
Pendekatan ini cocok untuk skenario di mana performa lebih diutamakan daripada keandalan.
Tingkatkan ukuran memori Memstore
Untuk meningkatkan performa penulisan, Anda dapat menaikkan nilai Memstore dan menurunkan nilai BlockCache. Pendekatan ini merupakan kebalikan dari optimasi pembacaan.
Periksa apakah sejumlah besar file HFile dihasilkan
Pada kecepatan penulisan tinggi, sejumlah besar file HFile dapat dihasilkan karena kecepatan penggabungan HFile lebih lambat dibandingkan dengan operasi penulisan.
Untuk memastikan penggunaan sumber daya yang efisien, lakukan kompaksi besar selama jam-jam sepi. Jika jumlah file HFile tidak dapat dikurangi, tambahkan lebih banyak node.