时间:2021-07-01 10:21:17 帮助过:3人阅读
int BinlogQueue::del_range(uint64_t start, uint64_t end){
while(start <= end){
leveldb::WriteBatch batch;
for(int count = 0; start <= end && count < 1000; start++, count++){
batch.Delete(encode_seq_key(start));
}
//这里会实际删除数据库的数据,但是del_range会在binlog定期清理函数中调用
//问题:log_clean_thread_func的定位应该是清理min/last seq ,维护一个范围而已,为何要实际删除数据呢?况且,set的kv值,在commit时候,实际写入了db了(然后清理log时候再给删除)?实在不明白!
leveldb::Status s = db->Write(leveldb::WriteOptions(), &batch);
if(!s.ok()){
return -1;
}
}
return 0;
}
ssdb binlog机制 存疑
标签: