Closed lqxhub closed 3 years ago
const uint64_t QFRONT_SEQ = 2; const uint64_t QBACK_SEQ = 3; const uint64_t QITEM_MIN_SEQ = 10000; const uint64_t QITEM_MAX_SEQ = 9223372036854775807ULL; const uint64_t QITEM_SEQ_INIT = QITEM_MAX_SEQ/2;
我在 t_queue.h 文件中看到了这些定义, list在leveldb中是通过seq计算list元素中的位置的, 极端情况下 一直rpush,并且lpop, 最后可能list中只有很少的几个元素, 但是seq已经到了 max值, 导致 list无法rpush
t_queue.h
你的理论分析得很对, 但实践上不可能遇到, 因为63位整数在所有能想到的实际场景中永远不会被用完.
我在
t_queue.h
文件中看到了这些定义, list在leveldb中是通过seq计算list元素中的位置的, 极端情况下 一直rpush,并且lpop, 最后可能list中只有很少的几个元素, 但是seq已经到了 max值, 导致 list无法rpush