本文围绕极限科技的下一代纯实时搜索引擎INFINI Pizza展开,介绍了其诞生背景、设计特点、技术优势及未来展望,旨在解决传统搜索引擎在现代业务场景中的痛点,提供更高效、实时的搜索解决方案。
1. **背景与痛点**:随着数据消费体验向实时化发展,传统搜索引擎的架构和设计理念逐渐落后。现代硬件环境已发生巨大变化,但多数搜索软件仍沿用旧架构,如Elasticsearch核心Lucene部分设计理念不具备先进性,存在数据结构和算法未充分利用现代CPU指令集优势等问题。传统搜索引擎多为近实时搜索,难以满足业务场景对实时性的高要求,且持有成本高,数据规模增大时性能瓶颈凸显,分片管理困难,无法有效支撑高性能扩展需求。
2. **INFINI Pizza的设计与特性**
- **技术选型**:选用Rust语言开发,兼顾性能和内存安全,适应现代多核架构。采用share nothing架构,具有Thread per core、NUMA友好、无锁、全异步非阻塞、就近内存访问和用户态调度器等优势,提高多核和海量内存的资源利用率。
- **数据组织与存储**:使用文档模型,支持JSON格式,结构化且支持嵌套、动态Schema。存储和索引可分离,原始文档采用列存,支持按需构建索引,用户可选择成本或性能优先。具备可插拔设计,支持扩展外部存储(如Parquet、Hbase)和索引类型(如向量索引、地理索引)。
- **分片设计**:采用独特的ID设计,系统ID为数字类型的复合二维结构,自带分区位置,便于数据定位。Rolling机制可满足数据持续增长需求,单个Rolling可拆分为多个物理分区,通过查找表维护逻辑分区和物理分片关系,分区和分片可根据写入压力动态分拆、组合,保障读写性能稳定。
- **实时性设计**:通过优化内存索引和磁盘索引的交互,实现数据的实时更新和查询。采用先进的查询引擎设计,支持多种查询语言,如Elasticsearch兼容的Query DSL、SQL,还可扩展其他查询语言(如PromQL),具备高效的查询解析、优化和执行能力。
3. **优势对比**:与传统搜索引擎(如Elasticsearch)相比,INFINI Pizza具有显著优势。它是纯实时搜索引擎,对多核架构友好,资源利用率高且性能稳定。支持数据的部分更新和原地更新,可直接挂载Parquet,实现存算分离、存储索引分离,理论上可无限扩容,能更好地满足海量数据存储和查询需求。
4. **未来展望**:INFINI Pizza计划进一步扩展各模块插件机制,支持部分字段更新、原地字段更新和向量索引,引入大模型Pipeline,实现高效跨Collection JOIN和跨Collection物化视图,探索Kernel bypass、DPDK、SPDK等技术,持续提升性能和功能,以适应不断发展的业务需求。
展开全文
返回搜狐,查看更多