TokuMX写操做没法加锁的问题

问题:数据库

TokuMX删除文档时,符合删除条件的文档不少,删除操做持续时间长,期间,服务写操做OPS大幅降低,同时日志log里发现大量“ Lock not granted. Try restarting the transaction. ”。并发

在删除操做执行完成后,积累的update一时间涌进来。一样的删除行为,在MongoDB上运行正常。rest

 

缘由:日志

MongoDB是数据库锁,即便remove持续时间长,周期性释放锁能够保证其余读写操做执行。它支持的并发访问,服务端其实是串行处理。rem

TokuMX是文档锁,写操做会把目标文档所有加锁,致使其余client在操做该文档时hang住。对于文档锁,没有深刻了解,不肯定是锁目标文档,仍是锁全部扫描过的文档,后者带来的影响更大。文档

 

解决方法:io

避免批量删除文档,避免覆盖很广的写操做,对于删除操做,能够一次查询,逐行删除。cli

 

参考资料:http://www.tokutek.com/2013/09/lock-diagnostics-and-index-usage-statistics-in-tokumx-v1-2-1/date

相关文章
相关标签/搜索