phxsql icon indicating copy to clipboard operation
phxsql copied to clipboard

对解决leveldb bug的问题的一些疑问

Open weipatty opened this issue 6 years ago • 0 comments

之前我们用了phxsql,然后也遇到了leveldb seek的问题,后面发现新版本做了修复。 看修复方法是先找缓存,这样是可以解决gtid_executed检查的问题。

我主要有以下几个疑问吧:

  1. replication模块中也会有leveldb的seek操作吧,这样还是有概率会seek到标记删除但未实际删除的gtid?

  2. 所以为啥不是改掉seek操作,本意也不是遍历,而不是用get?我看seek匹配到之后也会check gtid匹配才算找到,没理解这个操作的用义

3.关于EventStorage的锁的问题,我们发现这个问题是paxos的io_loop线程在smexecute时在等这把锁,但它只是访问uuid_map。这把锁的本意应该是保护uuid_map吧? 感觉锁的力度是否有点大,锁对整个过程加锁了(导致leveldb操作也阻塞了io_loop的内存操作),是否应该只在访问了互斥变量时才上锁。

我自己调查这个问题也一周了,想到的解法是改掉seek和锁力度只锁变量,但后面发现官方也遇到这个问题。。。所以想问下官方解法的考虑和我想的解法是否可行?

weipatty avatar May 05 '18 03:05 weipatty