Lucene 查询原理
# 前言
Lucene 是一个基于 Java 的全文信息检索工具包,目前主流的搜索系统Elasticsearch和solr都是基于lucene的索引和搜索能力进行。想要理解搜索系统的实现原理,就需要深入lucene这一层,看看lucene是如何存储需要检索的数据,以及如何完成高效的数据检索。
MongoDB WiredTiger 存储引擎cache_pool设计 (上) -- 原理篇
## 1. MongoDB 多引擎体系 -- WiredTiger
MongoDB v.3.0之前的版本,默认使用`MMAP(MMap引擎)`方式对内存中的数据进行写盘存储,遭受了很多诟病。比如`并发受限的表锁、不支持压缩、不可控的IO`操作等,MMAP甚至不能称作一个完整的存储引擎(笔者的个人观点),对数据(Btree的数据页、索引页)的操作甚至要依赖os的mmap(in_page_ca
现代IM系统中的消息系统架构 - 模型篇
前言
在架构篇中我们介绍了现代IM消息系统的架构,介绍了Timeline的抽象模型以及基于Timeline模型构建的一个支持『消息漫游』、『多端同步』和『消息检索』多种高级功能的消息系统的典型架构。
Cuckoo Hashing的应用及性能优化
Cuckoo Hash Table 使用了两个哈希函数来解决冲突。Cuckoo查询操作的理论复杂度为最差O(1),而Cuckoo的插入复杂度为均摊O(1)。我们引入Cuckoo是希望它在实际应用中,能够在较高的空间利用率下,仍然维持不错的查询性能。