Serverless ElasticSearch 是一款全新的云原生架构,核心革新在于实现了计算与存储的完全分离,彻底重构了传统 ElasticSearch 的数据存储与读写逻辑,具备无状态、高可扩展、云原生适配的核心特性。
传统 ElasticSearch 架构依赖本地磁盘存储,需要配置热数据、温数据、冷数据、冻结数据等多层数据存储结构,架构复杂且运维成本高。而 Serverless ElasticSearch 对整体架构进行了极致简化,摒弃了繁琐的多层本地数据分层机制,仅保留索引层与搜索层两大核心模块。所有业务数据统一通过云对象存储持久化保存,构建起可信、统一的单一数据源,从根源上优化了数据存储的稳定性与一致性。
在数据写入处理环节,当文档通过批量索引 API 接入系统后,索引节点会通过两条并行路径同步处理数据。一方面,每一次数据操作都会同步追加至事务日志(translog);另一方面,文档会同步写入 Lucene 内存索引缓冲区,等待系统触发刷新操作。
为优化上传效率、降低资源消耗,系统对事务日志采用了共享与批量上传机制。整合后的复合事务日志文件可在节点的所有分片之间共享,并且每200毫秒统一上传至云对象存储。系统仅在日志上传成功后,才会向客户端返回写入确认。该机制无需通过副本分片冗余保障数据耐用性,可将事务日志的上传成本降低多达30倍。
在数据刷新与落盘阶段,每次执行 refresh 操作时,Lucene 会将内存缓冲区中的数据转换为不可变数据段。当执行 flush 操作后,数据段文件会形成完整的复合提交数据。为规避单次提交独立上传带来的高昂开销,架构创新性引入批量复合提交(BCC)机制,将多次提交数据自动累积整合,待批量数据填满后,统一以单个对象的形式上传至对象存储。该优化可将对象存储的写入请求量减少多达100倍,大幅提升整体写入性能。
完成批量复合提交(BCC)上传后,搜索节点会收到轻量化更新通知。随后,搜索节点会按需将所需的数据段模块拉取至本地磁盘缓存,保障检索效率。针对近期尚未完成提交的增量数据,系统会直接回读索引节点数据,完整保留写后读的语义规范,确保数据读写的准确性与完整性。
综上所述,Serverless ElasticSearch 依托“索引层+搜索层”的双层架构、统一云对象存储底座,实现了零数据层运维管理,彻底颠覆了传统部署模式。整体架构具备无状态、弹性可扩展、纯云原生适配的优势,完美适配云端大规模、高弹性、低成本的检索业务场景。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。