Not the answer you need?
Register and ask your own question!

Why default value of rocksdb_deadlock_detect option is FALSE ?

brew74brew74 EntrantInactive User Role Beginner
According to the MyRocks storage engine variables of Percona server for MySQL
(, rocksdb_deadlock_detect variables' default value is FALSE.

Does this mean there's no deadlock checks in RocksDB engine ?
And we should rely on rocksdb_lock_wait_timeout ?

Is there any reason deadlock check is disabled on RocksDB ?

Thanks in advance.


  • George LorchGeorge Lorch Percona Percona Moderator Role Patron
    This is/was a decision originally made by Facebook developers and we simply inherited it without much consideration. I believe the original decision is based on their performance requirements. This deadlock detection would start traversing locks and transactions as soon as a locker was refused a lock where otherwise the locker would just go into a lock-wait (i.e. a record that the locker wants to lock is already locked by something else). In many cases, there is no real deadlock, just a lock wait. This extra searching for a deadlock where there likely isn't one creates a potential performance hit. In general, I believe it is meant to be a troubleshooting tool after lock wait timeouts are experienced possibly due to deadlocking, not to prevent them.
Sign In or Register to comment.

MySQL, InnoDB, MariaDB and MongoDB are trademarks of their respective owners.
Copyright ©2005 - 2020 Percona LLC. All rights reserved.