raft-java
raft-java copied to clipboard
内存溢出
重现过程:只需一个线程持续发SetRequest,为了加剧内存上升的过程,把value设的比较大,例如1k,持续一会后jvm就崩了。 猜测:Segment里面有个entries的list,只add没有remove,相当于把报文都存到内存了
@winflex 在每次snapshot结束后,会调用SegmentedLog.truncatePrefix删除多余的内存segment。 目前默认的snapshot间隔是1小时,由于你的value比较大,所以建议把snapshot间隔调小一些。 配置这个字段:RaftOptions.snapshotPeriodSeconds