在 CeresDB 中,我们对底层存储设备的抽象是对象存储,这包括多种实现: 本地文件系统 阿里云的 OSS 分布式模式下的 CeresDB 是一套计算存储分离的架构,这就要求底层的对象存储能做到高可靠和高可用。因此像 AWS 的 S3,阿里云的 OSS 是作为底层存储介质的一个不错选择。其他云厂商的底层存储系统我们也有后续的计划进行...
而CeresDB 的解决方案是通过特定的机制,在共享存储的情况下达到了类似 Shared-Nothing 架构 的效果,也就是说存储层的数据经过一定规则的划分,可以保证在任何时刻最多只有一个 CeresDB 实例可以对其进行更新,本文中,将这个特性定义成集群拓扑的正确性,如果这个正确性得到保证的话,那么数据就不会因为集群的灵活调度而受到...
架构图展示了单机模式下的CeresDB结构,包括核心模块,如Interpreter执行SQL操作,Catalog管理元数据,以及查询引擎优化执行计划。RPC通信层支持HTTP、gRPC和MySQL,其中gRPC专为高频率的生产环境操作优化。SQL层负责SQL解析和执行计划生成,引入了时序SQL方言和DataFusion库支持PromQL。Interpreter模块执行CRUD操作,C...
为了尽可能减少 proxy 与 datanode 之间的 IO 传输,CeresDB 会尽量把语法树中的节点推到 datanode 层中,比如对于查询 sum(rate(http_requests[3m])) ,理想的效果是把 sum、rate 这两个函数都推到 datanode 中执行,这样返回给 proxy 的数据会极大减少,这与传统关系型数据库中的“下推选择”思路是一致的,即减...
One of CeresDB's early design goals was to dock open source protocols. The system currently supports both OpenTSDB and Prometheus protocols. Compared with OpenTSDB, the Prometheus protocol is very flexible, similar to SQL in the time series field. ...
CeresDB 本质上是作为一个时序数据库进行研发的。我们经过调研发现,业界比较流行的几个传统时序数据库在处理分析型工作负载(analytic workloads)的时候,性能表现都有一定程度的瑕疵。由此,CeresDB 的架构目标被定义为:能同时处理好时序型和分析型的工作负载。