It seems myrocks and rocksdb doing many useless works: Clear, Reinitialize:
In the flame graph, CSPP_WBWI is our WriteBatchWithIndex implementation, used to replace rocksdb default WriteBatchWithIndex.
Although CPU usage of ha_rocksdb::external_lock is 9% of total, it is more than 50% of storage engine layer(except pack/unpack).
We expect ha_external_lock should be light weight for memory only readonly workload, could myrocks add some state variable for checking and skip expensive transaction init works ?
branch: fb-mysql-8.0.28 9cc489f6
test is sysbench oltp_point_select
It seems myrocks and rocksdb doing many useless works:
Clear
,Reinitialize
:In the flame graph, CSPP_WBWI is our WriteBatchWithIndex implementation, used to replace rocksdb default WriteBatchWithIndex.
Although CPU usage of
ha_rocksdb::external_lock
is 9% of total, it is more than 50% of storage engine layer(except pack/unpack).We expect ha_external_lock should be light weight for memory only readonly workload, could myrocks add some state variable for checking and skip expensive transaction init works ?
branch: fb-mysql-8.0.28 9cc489f6 test is sysbench oltp_point_select