BaikalDB在大规模数据场景的挑战和实践OSCHINA

商业平台研发部目前面临三大业务特点:

商业存储原有架构不统一:采用了MySQL满足事务性需求;采用各种OLAP类系统满足在线分析需求;采用自研的内存存储(字面服务,加速镜像服务等)满足各种加速查询场景;采用redis、表格系统、基于SSD的KV系统等满足各种KV场景;采用建库、倒排基础查询、推荐模块、ElasticSearch满足各种检索需求;采用搜索词PV仓库满足大容量PV查询需求。

以上这些专用系统,架构混杂,数量庞多,运维扩容成本极高,并且内存占用过多造成资源浪费与混布困难。过去10年,为了解决各种业务问题,我们存储团队一直在做加法,开发运维了大量的存储模块。为了解决这个问题,我们在2017年开始研发BaikalDB,旨在解决上述问题,把存储架构统一,希望能够支持更多新业务的存储需求。

BaikalDB是一个兼容MySQL协议的分布式可扩展存储系统,支持PB级结构化数据的随机实时读写,整体系统架构如下:

BaikalDB基于RocksDB实现单机存储,基于MultiRaft协议(braft库)保障副本数据一致性,基于brpc实现节点通讯交互,其中

BaikalDB的核心特性有:

从2018年上线以来,BaikalDB已部署1.5K+数据表,数据规模达到600+TB,存储节点达到1.7K+。

基于这些统计信息进行分析,我们发现有5%的低效SQL占了42%的扫描资源。因此,如果优化这个5%的SQL,对线上的性能和稳定非常重要。我们重点分析了这些低效SQL,发现主要有两个原因导致:-系统早期只做了基于规则的索引选择,线上部分表索引非常多,导致部分SQL选了低效索引。-业务RD对SQL优化并不熟悉,并且能参考的优化信息不够全,导致部分表缺少合适的索引。

业务系统对检索功能需求较多:物料检索、账户检索、图片检索、商品检索、文档检索等。需求量增长4倍。业务系统原有检索能力无法复用,需要搭建redis、建库、倒排基础查询、高级检索等检索专用模块,而且对不同业务需要适配不同的代码。线上光各种专用检索模块就达到十几个。因此急需一套开箱即用的检索功能,快速满足大部分基础检索需求。

业务需求多变,每个月都有十多个由于业务需求,优化需求的各种加索引需求。老流程加索引需要建表、导数据、禁写等,单次变更耗时1-3pd。

我们采用了如下方案来解决这些问题:

为了应对索引选错的情况,BaikalDB增加了基于代价的索引选择。对于能匹配到多个索引的SQL,需要选择一个最优的代价最小的去执行。何为最优索引,检索量是个很重要的指标,一条SQL获取的数据量固定,检索量越少说明该索引越高效,为了选出最优的索引,需要预估出使用某个索引的检索量,那么我们就需要一些统计信息。BaikalDB维护的统计信息包括列直方图、Count-MinSketch、distinctcount等等。

有部分表缺少合适的索引,导致SQL低效。为了应对这个问题,BaikalDB实现了一套索引推荐方案。通过对每类SQL的多种信息进行统计,包括:扫描行数,过滤行数,平响,pv。计算出过滤率=过滤行数/扫描行数,过滤率越大,扫描行数越大则越低效。然后再结合过滤率,平响,和统计哪个条件过滤最多,通过这些信息来综合推荐索引。

为了应对业务不断增加的检索需求,BaikalDB实现了FULLTEXT索引,内置了7种切词类型,依然通过RocksDB存储倒排拉链。倒排拉链分为3层,realtime层,buffer层,base层。

OnlineSchemaChange的核心思想是通过状态跳变,实现异步变更,整个过程无需锁表。整个状态分为NONE、DELETE_ONLY、WRITE_ONLY、WRITE_LOCAL、PULBIC这几个状态。

为了解决稳定性不足的问题,我们对线上影响稳定性的问题总了分类总结:

这些影响稳定性的问题,会严重损害业务,造成业务pvlost,客户投诉、赔款等。因此我们根据问题发生的频率与严重程度,制定不同优先级逐步解决

之前的备份系统直接基于SQL读写,性能很差,导入1亿行(147G)数据,需要耗费8小时以上。而BaikalDB本身是个分布式数据库,数据量很大,因此这种恢复速度显然不能满足业务需求。

实时输出能力的缺失,导致业务无法像使用mysql那样,把数据实时同步到各个系统(例如redis,udw,做备份表,etl后流给检索系统),无法满足业务多样化的需求。

为了能让业务更安心的使用,我们采用了下述方案来进行解决:

物理隔离:即拆分集群,基于meta的调度与raft的addpeer能力,BaikalDB支持不同表直接一键拆分存储集群,整个过程中业务无感知。但是物理隔离无法解决全部问题,集群拆分过多的话,资源消耗会增多,并且运维压力也会变大。况且单个表多个SQL相互影响这个也无法通过拆分集群解决。因此我们增加了基于令牌桶流控实现的逻辑隔离。

令牌桶的分配也是通过SQL聚类进行,线上几千类,每类SQL都会统计最近1小时的qps,扫描量等信息,以此来分配令牌。除此之外为了突发流量,BaikalDB采取了单速双桶策略,在承诺令牌之外预留部分超额令牌,保障额外的突增流量可以获取到令牌。

BaikalDB选取了第一条DML指令的某一个region为primaryregion(syncpoint),在执行COMMIT/ROLLBACK的时候首先向primaryregion发送请求,保证primaryregion执行成功,再向其他region发送COMMIT/ROLLBACK,让primaryregion来充当事务协调者的角色。BaikalDB分布式事务采用两阶段提交,prepare后节点故障,节点恢复后反查PrimaryRegion。Store为了防止行锁卡raft状态机,采用Leader持锁成功后raft同步的方式进行单语句复制。

rocksdb达到stall状态时,holdaddpeer/index操作,达到根据rocksdb压力动态调控的目的。对于大region,进行拆分写sst操作,做到每个sst大约是128M。增加预估大小分裂机制,减少大region。简单来说,就是根据rocksdb压力来动态调控:压力小,全速迁移,压力大,不迁移。

类似MySQL,BaikalDB实现了Binlog来实时输出数据。这里面有几个设计点可供参考:

随着C端业务的不断增多,对系统的KV性能要求也越来越高

然后由于BaikalDB是一个通用存储,因此性能对比基于SSD的KV系统存在明显的差距。在相同资源下,对比了基于SSD的KV系统发现只有其1/4左右的性能,急需优化。

商业这边有许多千万物料的大户,还有各种对客户画像,人群画像的分析系统,需要处理较多数据的查询。目前基于表格系统、ElasticSearch、Spark+HDFS等不同系统的查询无法满足业务需求,现状如下:

为解决以上问题,我们采取的方案是:

我们从火焰图分析,结合KV场景取单行数据,显然查询计划在整个查询过程中消耗很高。我们对于性能优化的核心点是抓大放小。小:火焰图发现查询计划开销好高,开始优化查询计划,内存池,对象池等等大:每天几十亿pv,可以聚合成几千条SQL;cache查询计划,几十亿次缩减成约几百万次(几千sql*实例线程数)

BaikalDB设计特点:在满足OLTP的基础上尽可能支持OLAP。我们与业务方进行深度和做,尽量满足业务的查询需求。具体如下:

本文先简单介绍了商业系统的业务背景与存储需求。通过持续迭代BaikalDB过程中遇到的一些问题挑战进行分析与思考,并给出我们的一些解决方案。

THE END
1.个性化营销新动向:定制化·差异化·精细化发展开发网本站观点,个性化营销的未来趋势是定制化、差异化和精细化。企业需要借助先进技术和不断创新的市场策略,不断提升个性化营销的水平,满足消费者的个性化需求,赢得市场竞争的优势。同时,企业还需要关注消费者隐私保护和数据安全等问题,确保个性化营销活动的合规性和可持续性。https://www.0370zz.com/html/dianshang/yw/2024-12-13/402391.html
2.市场营销名词解释和简答题汇总大全,全面解答解释定义摘要:,,本汇总大全包含市场营销相关名词解释和简答题,全面解答解释定义。涵盖了市场营销的基本概念、策略、方法以及实际应用等方面的内容。对于学习市场营销的人士,本汇总大全提供了全面的知识点,有助于深入理解市场营销的核心http://app.hbpdxcl.com/post/75027.html
3.定制酒营销方案怎么收费?这篇文章帮你算清楚!随着市场经济的发展,个性化需求日益旺盛,定制酒逐渐成为消费市场的一大热点。许多企业纷纷涉足定制酒行业,以期在激烈的市场竞争中脱颖而出。然而,定制酒营销方案的费用如何计算,成为许多企业关心的问题。本文将从以下几个方面,为您详细解析定制酒营销方案的费用构成。 http://www.jdzol.com/taozx/Article-xiaoxiaoYi-2444.html
4.市场营销策划的内容分别有哪些方面,全面分析解释定义摘要:市场营销策划包括多个方面,主要包括市场调研与分析、目标市场定位、产品策划、价格策划、渠道策划和促销策划等。通过对市场需求的深入调研与分析,确定目标市场的消费者群体,进而针对产品进行差异化定位。合理的价格策略、渠道选择和促销手段也是策划的关键环节。这些方面的全面分析解释有助于企业制定有效的市场营销策略http://www.juliangyuanshu.com/post/42777.html
5.国际市场营销(精选5篇)三、名词解释题(本大题共5小题,每小题2分,共10分) 21.区域市场 22.国际产品标准化策略 23.分销渠道 24.国际公共关系 25.对外直接投资 四、简答题(本大题共4小题,每小题10分,共40分) 26.简述国际市场营销学的研究方法。 27.简述国际政治风险的具体评估方法。 https://www.1mishu.com/haowen/18548.html
6.2025抖音SEO优化策略玫瑰互动一. 名词解释 AI(Artificial Intelligence): 人工智能,在微信平台中,AI技术被广泛应用于智能客服、内容推荐、小程序智能交互等多个领域。 豆包AI: 豆包是字节跳动公司基于云雀模型开发的AI工具,提供聊天机器人、写作助手以及英语学习助手等功能,它可以回答各种问题并进行对话,帮助人们获取信息。 http://www.rosemarketing.cn/qx/184.html
7.定制化营销战略名词解释定制化营销战略名词解释 定制化营销战略,也被称为精准营销或个性化营销,是一种按客户需求、行为和兴趣来进行营销的方式,旨在为了达到最佳的销售效果而为每个客户设计专属的产品和服务。它将客户需求和技术手段联系在一起,具有无可比拟的竞争优势。 定制化营销战略的目的是满足不同客户的个性化需求,以满足他们的需求,增强https://wenku.baidu.com/view/0f1f1ef0f624ccbff121dd36a32d7375a417c60c.html
8.《旅游市场营销》知识点+试题题目答案+重点+名词解释各位学弟学妹们,大家好,我们今天给大家带来的是专业课《旅游市场营销》相关的资料。 具体资料包含了,《旅游市场营销》期末考研考试题及答案+旅游市场营销知识点总结+题库及答案+重点知识梳理总结+名词解释等等。 好了,在正式开始今天的课程之前,我们先简单的列一下旅游市场营销这门课的常见考点。 https://www.bilibili.com/read/cv36517686
9.海尔已找到支点撬动全球智能家居产业裂变吗市场营销的名词解释在海尔已找到支点撬动全球智能家居产业裂变吗市场营销的名词解释在这里 全球科技巨头和商业资本都清楚知道,智能家居是个万亿级的大市场,但苦于多年都没有找到突破口。就在大多数企业还在智能家居的大门口观望之际,海尔在2017年AWE上宣布:推出十年磨一剑的智慧战略落地成果,由整套互联互通智慧家电构成的全球首个智慧家庭,https://www.zx5cj0ia.com/zui-xin-zi-xun/805432.html
10.浙江2020年10月自考12006网络营销与渠道管理(二)试卷及答案五、名词解释题:本大题共5小题,每小题3分,共15分 25.网上市场细分 26.大规模定制 27.站点推广 28.渠道冲突 29.营销渠道设计 六、简答题:本大题共5小题,每小题5分,共25分。 30.简述开展网络营销的意义 31.简述何谓网上市场定位及其内容 32.简述软件产品的属性 https://www.zikaosw.cn/news/849676.html
11.服务营销模拟试卷服务营销管理 2010-2011第一学期 试卷A 一、名词解释(每小题5分,共25分) 1、服务营销 2、顾客期望 3、服务蓝图 4、员工授权 5、服务质量 二、单项选择题(每小题2分,共20分) 1.根据施米诺的服务过程矩阵,劳动力密集程度高且交互与定制化程度低是()。 https://www.360wenmi.com/f/filesff7coyr.html
12.饭店管理名词解释饭店,或称酒店、旅馆,是一个主要为游客提供短期住宿的地方,酒店通常在提供住宿之余,亦为住客提供餐厅、游泳池或照顾幼儿等服务。一些酒店亦提供会议设施,吸引商业机构举行会议、面试或记者会等活动。酒店的宴会厅则可举行婚礼及舞会等活动。下面是小编精心整理的饭店管理名词解释,欢迎大家分享。 https://m.oh100.com/ahsrst/a/201704/267407_2.html
13.网络传播考点为用户代加工一些个体或企业对自身的夸大、企业的软文,以及营销公司或营销人员出于炒作目的故意制造的假新闻,都有可能导致媒体报道的失实。 (6)深度伪造:用ai技术进行音视频的模拟、伪造 六、名词解释: 后真相:“后真相”(Post-truth)的含义在这个词里,“Post”表示的是“超越”,也就是“真相”不再那么重要。这个词反映的是https://blog.csdn.net/weixin_46266590/article/details/112095769
14.《SaaS产品经理从菜鸟到专家》重点摘要(SaaS产品经理从菜鸟到专家四、名词解释1. LTV:客户生命周期2. CAC:获客成本3. MRR:月经常性收入4. CTS:月经常性成本 五、如何筛选需求1.需求要不要做① 需求与公司的能力和资源是否匹配② 需求能否标准化,抽象为通用功能2.确定需求优先级①有多少客户提出过这个问题② 客户对这个需求是否紧迫③ 产品经理对需求的判断是什么④ 完成这个https://book.douban.com/review/14587066/
15.头条搜索结果中出现AI内容今日头条AI与SEO:策略技巧与落地执行1. 名词解释 2. AI搜索数据 3. AI形式分类 4. AI效果形式 5. 原理算法规则 6. AI搜索结果SEO优化落地 7. 调研截止日期 --- 一. 名词解释 AI(Artificial Intelligence): AI技术被广泛应用于生成智能内容、智能问答、内容推荐等多个领域。 豆包AI: 豆包AIhttp://heyatao.cn/sz/295.html
16.宝鸡市文化和旅游局政策解读国家全域旅游示范区验收认定文件解读(四)名词解释 1.旅游警察:为适应全域旅游发展新形势新格局新要求,各地党委、政府加快探索建立现代旅游治理机制的步伐,提升依法治旅的水平,旅游警察队伍体系构架一般分为省级(总队)、市级(支队)、县级(大队)。 2.旅游巡回法庭:旅游巡回法庭是针对旅游目的地游客流动性大、旅游纠纷多等特点设立的,是解决旅游纠纷的现代http://whhlyj.baoji.gov.cn/art/2021/11/11/art_13221_1444635.html
17.edm电商名词解释10. 邮件优化 邮件优化是指通过对邮件内容、格式、发送策略等进行不断调整和测试,以提高邮件营销效果的过程。邮件优化有助于提高邮件打开率、点击率和转化率。 通过了解以上EDM电商名词解释,企业可以更好地运用电子邮件营销手段,提高电子商务业务的推广效果。>https://www.icp-edi.cn/ask/28508.html
18.网络营销A.深度体验B.感官体验C.交互体验D.信任体验E.浏览体验 三、填空题 1.网络消费者有哪些特征? 2在选择商品时,消费者购买决策过程中,他们主要考虑哪些因素? 3.网络危机公关遵循的原则? 4网络口碑营销四法则是什么? 四、名词解释 1.网络口碑 2.LBS营销 3.精准营销 4.社群营销 5.定制化营销https://www.wjx.cn/xz/225396656.aspx
19.名词解释名词解释_27个简答题15个论述题) 市场营销复习题一、名词解释题 1.市场营销学:是一门以经济科学、行为科学、管理理论和现代科学技术为基础,研究以满足消费者需求为中心的企业市场营销活动及其计划、组织、执行、控制的应用科学. 2.市场营销:是指从满足服务对象的需要出发合理配置自己的资源,通过满足对方需要实现自己https://max.book118.com/html/2015/1028/28075434.shtm
20.名词解释网络营销名词解释 网络营销 词品生命周期:词品词入市词到退出市词,词 量由小到大,再逐步下降的词程。 词性。词行市词词分的主要依据是词市词中需求一致的 成若干部分,根据词品本身的特性,词定其中的某部分或 部分的消词者作词词合 策略所追求的词 最基本念,指企词根据词客的 词的词词目词定可控词词因素的最佳https://www.docin.com/touch/detail.do?id=1429808327