Jay Chow
Jay Chow
is this the reason? [root@local ~]# readelf -h /usr/bin/python2.6 --all |grep bss [25] .bss **PROGBITS** 0000000000600af8 00000af8 03 .ctors .dtors .jcr .dynamic .got .got.plt .data .bss .dynstr .gnu.conflict 12: 0000000000600af4...
```bash [root@local ~]# RUST_LOG=info RUST_BACKTRACE=1 py-spy --pid 15229 INFO 2019-02-16T12:53:22Z: py_spy::config: Command line args: ArgMatches { args: {"duration": MatchedArg { occurs: 0, indices: [4], vals: ["2"] }, "pid": MatchedArg {...
> 同样存在这个问题,非常诡异,但经过我N次的重置固件,发现问题应该是跟 lan/wan 接口里面的 "使用内置IPV6管理" 这个勾选相关联,只要这个勾是打上的,其他ipv6相关的都禁用也没事。但只要取消勾选过一次,应用设置之后,就再也无法解析 t.co 了. > > btw: 我用的是lean的lede编译的r2s,加了几个自定义源 > > ``` > cat feeds.conf.default > src-git packages https://github.com/coolsnowwolf/packages > src-git luci https://github.com/coolsnowwolf/luci > src-git routing https://github.com/coolsnowwolf/routing...
> This project is not maintained. Can you please create this PR against https://github.com/faust-streaming/faust? it seems you fixed this issue
> Hi, thanks for the report. Please kindly paste the e2e log here, so that we know what exactly got broken in 5.9.6? Since restricting the package version will impact...
遇到同样问题,生产数据库数据量10G左右,并且每秒大概产生1000个新的seq。修改各种参数(除了binlog capacity没调整)都没法令slave的last_seq追上master的max_seq,最终导致last_seq小于min_seq而flushdb(). ssdb同步时,可否另起一个线程,把master的binlog全部写到本地,再从本地副本慢慢同步?这可以避免这种同步不了的事情发生吧?
@ideawu 感谢吴大回复。我已经尝试过在同机房同步,甚至在同一台机上起另一个实例同步,但由于数据太多,而且还在不停的写入,最终还是会造成flushdb. ssdb保持的1000万条binlog是保存在master上的吧?我的想法是,slave起一个专门的线程,负责把master上的binlog复制到slave,以及清除slave上已经执行的binlog,这样就不会出现master清理了binlog导致slave出现flushdb的情况。 其实我觉得这个问题对于那些一开始没有做主从同步、又不能停止服务的应用者来说挺麻烦的,等于是只有一个master在跑,当想到要加一个slave的时候,已经没有办法同步了。
为了解决我遇到的同步时不断flushdb的问题,我在ssdb的源码增加了200行代码左右,将Slave::_run_thread()线程从master读取到的req然后直接proc()处理改为先把req保存到本地文件,然后新增一个线程,从文件读取req,再调用Slave::proc()处理(通俗地讲,就是用了空间换时间的梗)。这200多行代码解决了我遇到的问题,不知道wu大是否采纳这部分代码?
好的,我怎么上传代码?直接贴到这里还是fork一个分支? 策略上面,我在配置文件里面新增了一个开关,use_reqlog=1才采用写到文件的策略,reqlog=0或者不配置就走原有的逻辑。原来想过,把last_seq和max_req,同步状态(sync/copy),文件大小等数值做一个公式计算,自动切换策略,但是细想,好像实际情况可能会比较复杂,所以还是留一个开关给运维决定好了。
wu大,合并代码时发现1.9.4把case BinlogCommand::BEGIN:里面的flushdb()语句屏蔽了,这个屏蔽应该要加个条件 log_type == MIRROR吧?否则SYNC时,如果遇到OUT_OF_SYNC,而用户忘了手工清除数据库的话,那在第二次copy的时候,执行qpush()部分时会造成数据多出来的吧?(看了下代码,qpush()不是幂等操作)