ideawu/ssdb

list容量的问题,极端情况下,一直rpush,并且lpop, 可能list只有几个元素,但是却无法rpush新的元素

lqxhub opened this issue · 1 comments

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

你的理论分析得很对, 但实践上不可能遇到, 因为63位整数在所有能想到的实际场景中永远不会被用完.