OpenStore存储引擎

OpenStore存储引擎是阿里云Elasticsearch团队针对日志、检索等场景自研的弹性、高性能、低成本的存储引擎,本文介绍OpenStore存储引擎的架构优势和适用场景。

引擎架构

image.png

该架构基于多级存储设计,对上层提供统一的高性能文件系统服务:

  • Leader/Follower:在OpenStore架构中,主分片(Leader)负责构建索引并将生成的Segment文件上传到共享存储。副本分片(Follower)不再独立构建索引,而是直接从共享存储同步数据。

  • NameNode:作为Openstore分布式元信息管理中心,管理包括集群拓扑、全局namespace在内的分布式元信息,同时提供统一的任务调度服务如数据复制任务,保证集群的分布式一致性。

  • Native Metadata Manager(NMM):作为本地元信息管理中心,管理包括文件长度、更新时间、持久化状态等在内的文件本地元信息,同时提供基础的UFS接入能力,如加载文件、持久化文件等原子操作。

  • Shared Data Service:远端共享数据服务,提供海量的数据存储能力。

优势

  • 存储计算分离:OpenStore的核心设计理念,计算资源(Elasticsearch节点)和存储资源(远端共享存储)可以独立扩展。当计算需求增加时,您可以快速增加节点而无需迁移数据;当存储需求增加时,可利用远端共享存储的海量扩展能力,实现了计算与存储资源的解耦和独立弹性伸缩。

  • 数据一致性:通过基于Raft实现的混合存储一致性协议,确保本地缓存与远端共享存储之间的数据状态一致,为上层应用提供统一、可靠的数据视图。

  • 易用性:全自动的索引生命周期管理,您只需要做简单的索引周期配置,引擎完全托管了索引冷热分离和数据迁移OpenStore存储的全过程。

  • 高可用:基于存储计算分离架构,多副本之间共享一份数据,不增加额外存储成本;底层存储服务保证集群的数据高可用,提供99.9999999999%(可达129)的数据持久性。

存储类型及适用场景

存储类型

OpenStore智能混合存储(日志分析型)引擎

Openstore存储计算分离(高性能检索)引擎

访问延迟

(本地缓存命中)

0.2ms

0.2ms

访问延迟

(本地缓存未命中)

50ms~400ms

1ms

访问吞吐

(本地缓存命中)

1GB/s

最大350MB/s

(ESSD PL1性能,和磁盘大小相关,请参考ESSD云盘

访问吞吐

(本地缓存未命中)

750MB/s

实际机型带宽等相关信息,请参考计算型实例规格族c8i

适用场景

监控日志、历史订单、归档数据等低频访问数据

实时报表、在线计算、实时搜索等低延迟访问数据

说明

访问延迟仅表示存储访问延迟,不代表端到端访问延迟。