分布式可扩展存储系统 BaikalDB

BaikalDB是一个分布式可扩展的存储系统,支持PB级结构化数据的随机实时读写。

提供MySQL接口,支持常用的SELECT,UPDATE,INSERT,DELETE语法。提供各种WHERE过滤、GROUP BY聚合,HAVING过滤,ORDER BY排序等功能,用户可以组合实现各种在线OLAP需求,具备秒级别的亿级数据扫描聚合能力。另外,为了满足各种业务的检索需求,该系统内置全文检索需求,满足大部分快速检索的业务场景。

在虚拟化部署方面,该系统采用share-nothing的架构,可部署在容器中,也实现了多租户隔离,有自定义用户的身份识别和权限访问控制等功能。

BaikalDB 的主要特性如下:

  • 全自主化的容量管理,可以自动扩容和自动数据均衡,支持自动故障迁移,无单点,很容易实现云化,目前运行在Paas虚拟化平台之上。
  • 面向查询优化,支持各种二级索引,包括全文索引,支持常用的 OLAP 需求,支持层级模型。
  • 兼容 mysql 协议,对应用方提供 SQL 界面,支持高性能的Schema 加列。
  • 基于 RocksDB 实现单机存储,基于Multi Raft 协议(我们使用braft库)保障副本数据一致性,基于brpc实现节点通讯交互。
  • 支持多租户,meta 信息共享,数据存储完全隔离。

其中

  • BaikalStore 负责数据存储,用 region 组织,三个 Store 的 三个region形成一个 Raft group 实现三副本,多实例部署,Store实例宕机可以自动迁移 Region数据。
  • BaikalMeta 负责元信息管理,包括分区,容量,权限,均衡等, Raft 保障的3副本部署,Meta 宕机只影响提升网站权重数据无法扩容迁移,不影响数据读写。
  • BaikaDB 负责前端SQL解析,查询计划生成执行,无状态全同构多实例部署,宕机实例数不超过 qps 承载极限即可。

原文地址:https://www.cnblogs.com/1994jinnan/p/11886458.html

时间: 2024-10-12 12:57:08

分布式可扩展存储系统 BaikalDB的相关文章

分布式键值存储系统ETCD调研

分布式键值存储系统ETCD调研 简介 etcd是一个开源的分布式键值存储工具--为CoreOS集群提供配置服务.发现服务和协同调度.Etcd运行在集群的每个coreos节点上,可以保证coreos集群的稳定,可靠的运行.当集群网络出现动荡,或者当前master节点出现异常时,etcd可以进行master节点的选举工作,同时恢复集群中损失的数据. ? 目的: 一个高可用的 Key/Value 存储系统,主要用于分享配置和服务发现 接口: REST接口(HTTP+JSON)方便集群中每一个主机访问

Elasticsearch是一个分布式可扩展的实时搜索和分析引擎,elasticsearch安装配置及中文分词

http://fuxiaopang.gitbooks.io/learnelasticsearch/content/  (中文) 在Elasticsearch中,文档术语一种类型(type),各种各样的类型存在于一个索引中.你也可以通过类比传统的关系数据库得到一些大致的相似之处: 关系数据库 ⇒ 数据库 ⇒ 表 ⇒ 行 ⇒ 列(Columns) Elasticsearch ⇒ 索引 ⇒ 类型 ⇒ 文档 ⇒ 字段(Fields)一个Elasticsearch集群可以包含多个索引(数据库),也就是说其

27.初识分布式文档存储系统慨念

主要知识点: 初识distributed document store 一.distributed document store(分布式文档存储系统) Elasticsearch在运行起来以后,他的第一个最核心的功能就是一个分布式的文档数据存储系统.主要有以下三个慨念: 分布式的:es可以实现分布式,可以很方便的扩容. 文档数据:es可以存储和操作json文档类型的数据,而且这也是es的核心数据结构. 存储系统:es可以对json文档类型的数据进行存储,查询,创建,更新,删除等操作.满足了这些功

分布式可扩展web体系结构设计实例分析

Web分布式系统设计准则 下面以一个上传和查询图片的例子来说明分布式web结构的设计考虑和常用的提高性能的方法.该例子提供上传图片和下载图片两个简单功能,并且有一下假设条件?: - 可以存储无上限数量的图片,即存储需要scalability - 下载图片提供低带宽延时,即速度要快 - 如果客户上传了一张图片,图片将永久保存在数据库,除非客户删除.即可靠性 - 系统容易维护 - 整个系统不能花费太高. 首先,这个例子系统提到了如下web系统设计的基本要求,其最简单的设计逻辑结构如下图. - Ava

GoWorld – 用Golang写一个分布式可扩展、可热更的游戏服务器

GoWorld代码:https://github.com/xiaonanln/goworld Golang具有运行效率高.内存安全等优良特性,因此是非常适合用来进行服务器开发.使用Golang开发游戏服务器有如下的优点: 运行效率远高于各种脚本语言,大幅度提升服务器承载能力 内存安全,不会像C++服务器那样出现内存错误导致服务器down机 Goroutine能够很好地利用多核计算能力,提升承载能力 Golang本身非常简单好用,大家都喜欢 然而使用Golang编写游戏服务器也面临一定的困难,主要

tair 分布式key/value存储系统 环境搭建

一.安装tair 1.安装svn工具 yum -y install subversion 2.获取源代码 获得底层库 tbsys 和 tbnet的源代码 svn checkout http://code.taobao.org/svn/tb-common-utils/trunk/ tb-common-utils 获得tair源代码 svn checkout http://code.taobao.org/svn/tair/trunk/ tair 3.安装前的准备,安装依赖库或软件 编译tair或tb

可软件定义的存储逻辑二——Energy适应性的分布式存储系统

这个论文[3]提出了一个灵活的.可扩展的分布式存储系统,给它取名字flexStore.这个分布式存储系统可以非常好的适应数据中心中不停变化的能源,给去重的虚拟机磁盘IO存取带来很好的性能.研究人员研究并提出了一种智能的控制来对付数据中心供电的限制,因为有可能存储阵列的节点密度增加了,也有可能绿色能源和传统能源混合一起给数据中心供电.在这个存储框架中最重要的一个部件就是处于框架当中的策略引擎(policy engine),他是一个软件层,给应用程序提供自定义性能需求的接口,当然也提供能源相关的策略

Tahoe-LAFS 开源分布式文件存储系统

很多技术信息来自于英文页面,我英文不好,可能有错漏的地方. Tahoe-LAFS是一个分布式的文件存储系统.它的特点是无法对内容进行审查,即使是存储服务提供方:极高的安全性,用长不定字符串链接替文件访问权限验证,基本不可能被在线破解:匿名,无注册及身份验证,只靠第一次运行时分配的随机码区分不同用户. 简单说下它的文件存储流程.我通过客户端上传一个文件.文件经过加密被切分成数个片段,上传到数个存储服务器.每个服务器只保存文件的一部分,不保存完整的文件.并且忽略掉文件名,用一串加密过的字符代替.上传

CentOS 7.3(1611) 环境下详细部署安装分布式存储系统Ceph

一.前言 近期公司需要部署一套完整的openstack ha集群环境,在选择后端存储上步入了十字路口. 经过几个月的搜索整理与研究,发现网上介绍ceph部署没一个完整详细的!于是根据自己苦战多日整理了一套完整的ceph分布式集群存储系统解决方案. 关于为何最终为何选择ceph,期间也是各种搜索baidu.googe.这里有点感慨:baidu你让我拿什么来爱你?于是FQ势在必行了. 直接正题,干货整理如下:方便日后忘记...... 二.填补营养    ceph的介绍这里就不在重复了,ceph是加州