swoole / rfc

Swoole 提案
116 stars 3 forks source link

定长,键值为序号的SwooleTable #74

Open fdreamsu opened 4 years ago

fdreamsu commented 4 years ago

SwooleTable目前使用Hash作为索引,这导致其容量只能为2的次幂,且存在冲突比例的问题,想要将其用作可靠的数据库时总会有些顾虑。
类比php中的arraySplFixedArray。如果可以实现一种操作方式类似于SwooleTable,但是索引方式是直接通过偏移量。这样就可以精确的申请到需要的size,而且不要考虑冲突的问题。使用偏移量作为索引,性能也会比Hash索引更强悍,在此基础之上就可以实现更复杂图、树等结构。

fdreamsu commented 4 years ago

总结一下就是,功能上继承SwooleTable,但是索引不采用Hash,而是数字偏移量。create时申请了size,索引范围就是0~(size-1)。 目的实现对于共享内存的精确控制