l 新桶大小
新桶大小为比当前桶大小大的最小素数。
l 桶访问锁
对于每个线程,在初次访问索引时都会分配一个桶访问节点,该节点上设置了当前的桶地址,以及一把互斥锁。在线程开始访问索引时,先申请访问节点上的锁,访问结束释放锁。通过该锁确保索引访问过程中,桶资源不会因为rehash被释放。
l 异步重建
桶重建是一个异步过程,重建桶过程中,并不影响索引的查询以及更新。该过程通过记录当前迁移位置来影响访问旧桶,还是新桶。当数据迁移完毕,并且没有对旧桶的访问时(没有线程持有该桶的桶访问锁),对旧桶资源进行释放。
3.9 索引与锁
为了避免过多的锁占用系统过多资源,以及保持较高的并发度,AntDB-M数据库的每个Hash索引都分配有131个锁,通过桶下标与131取模来获取当前索引记录的锁。在访问索引(查询或者修改)过程中都会先加锁。
关于AntDB数据库
AntDB数据库始于2008年,在运营商的核心系统上,为全国24个省份的10亿多用户提供在线服务,具备高性能、弹性扩展、高可靠等产品特性,峰值每秒可处理百万笔通信核心交易,保障系统持续稳定运行近十年,并在通信、金融、交通、能源、物联网等行业成功商用落地。
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




