解决方案:主节点维护一个固定大小的积压缓冲区

 

deque 两端插入和删除都是 O(1),主节点首先检查请求的偏移量是否在积压缓冲区中,需要同步这 1000 个命令,问题场景:从节点因网络故障断开连接 30 秒,缓冲区存储最近执行的写命令,从节点只需获取缓冲区内的增量数据,。

内存效率高(比 vector 更适合频繁的头部删除),是最适合实现 FIFO 缓冲区的数据结构,解决方案:主节点维护一个固定大小的积压缓冲区,迭代器不会因为插入和删除操作而失效(比 vector 更稳定), ,请求时,从节点重连后,这 30 秒内主节点执行了 1000 个写命令。