检索系统学习笔记

1.双缓冲机制

倒排索引在内存中应该如何实时更新呢,因为会出现多个用户同时更新索引的情况,简单地读写锁会降低性能。

双缓冲机制是无锁的更新方法,使用A、B两份倒排索引,一份当前读,一份用来更新索引,用来读的在当前不能被更新,然后定期的两个交换身份。

2.全量索引结合增量索引的更新方法

双缓冲机制解决的是索引完全在内存中,不用加锁对倒排索引进行更新的问题,它的不足之处在于,对于海量的索引数据,必须存储在磁盘中的是不能使用的。

全量索引结合增量索引是指,根据全部数据在磁盘构建倒排索引,在需要更新索引时,在内存构建。对于查找,需要同时检查磁盘上的全量索引表和内存中的增量索引表,然后最后合并结果。

全量索引和增量索引,对于删除的索引,直接在内存构建一个删除列表。

3.相同点

双缓冲机制和全量索引与增量索引,这两种都是通过读写分离来实现无锁更新。

相关推荐
随风,奔跑5 分钟前
Mybatis-Plus学习笔记
java·笔记·学习·mybatis
ElevenS_it18813 分钟前
日志在哪里找?分布式环境下日志采集断裂的5个排查路径
运维·网络·分布式
我能坚持多久22 分钟前
C++的Vector学习:从功能探索到底层实现
开发语言·c++·学习
Jackyzhe39 分钟前
从零学习Kafka:生产者分区机制
分布式·学习·kafka
迷途之人不知返1 小时前
List的学习
数据结构·c++·学习·list
以为你知道啊1 小时前
mini-job极简分布式延迟任务队列 — 基于 Redis,支持 Cron 周期任务、异步协程和多执行器
redis·分布式·junit
三克的油1 小时前
YOLOV5数据学习
人工智能·学习·yolo
zhangrelay1 小时前
复盘《用智能大模型复盘课程博客停更案例》
笔记·学习
sjsjsbbsbsn1 小时前
RAG 基础学习总结
java·数据库·学习
Francek Chen1 小时前
【大数据存储与管理】NoSQL数据库:05 NoSQL的三大基石
大数据·数据库·分布式·nosql