双11特刊|十年磨一剑,云原生多模数据库Lindorm 2021双11总结

前言

2021 年,转眼 Lindorm 已经在阿里发展了十年的时间,从基于 HBase 深度改造的 Lindorm 1.0 版本,到全面重构,架构大幅升级的 Lindorm 2.0 版本;从单一的宽表引擎,到支持搜索、时序、文件等多种结构化数据处理的多模引擎,Lindorm 始终保持着快速迭代和升级的速度,以满足阿里集团各类业务的数据存储需求。目前,Lindorm是公司内部数据体量最大,覆盖业务最广的数据库产品之一。

去年,在让广大用户看得见、存得起的理念下,Lindorm 再次做了品牌升级,率先提出了多模超融合数据库概念。Lindorm 不单单是宽表、时序、搜索等引擎的简单堆叠,而是在统一的分布式存储引擎之上,各个引擎之间互通融合,并由统一的 SQL 入口来实现多模数据库的统一访问。

在 Lindorm 一个数据库中,用户就可以实现流式计算,宽表存储,列式索引、时空索引、时序预测、数据订阅,以及在各个模型上的复杂分析等多种功能。面对复杂多变的业务,以及百花齐放的应用,业务不需要面临选型和运维多个复杂数据库的难题,数据的整个生命周期都可以在Lindorm 内部各个组件中完成,满足用户写入,查询,分析,监控各种需求。

 2021年双11,Lindorm为手淘互动营销、智能风控、媒体大屏、生意参谋、花呗决策、消费记录等核心系统保驾护航,提供集群水位和状态透传产品化能力,业务可自行按需伸缩,提升备战效率,业务支持成本降低80%。云原生Serverless架构升级,大促资源按需弹性伸缩,资源管理效率提升10倍+,降本增效。基于存储池化及透明压缩技术,最高降低53%存储成本。分布式3AZ架构,实现秒级恢复的跨机房强一致容灾能力,支撑金融级高可用场景。

而作为 Lindorm 多模数据库中重要一环的宽表引擎,目前已经完整经历了 Lindorm 十年的发展,其功能、性能、稳定性等方面的诸多创新历经了长时间的大规模实践考验。服务了包括淘宝、天猫、蚂蚁、菜鸟、妈妈、优酷、高德、大文娱等数十个 BU。

Lindorm 宽表融合了阿里巴巴过去十年在大规模宽表技术领域的技术能力和经验,并在上云后,利用云基础设施,实现了云原生化,向低成本等方向又有了一些创新和突破,进一步构建了海量数据处理场景的竞争力。十年的演进过程中,我们实现了跨 AZ 容灾,支持了多一致性满足各种业务的需求。支持一体化冷热分离,高压缩算法降低用户成本。实现了分布式全局二级索引,并和搜索引擎结合推出 SearchIndex 满足用户各种复杂查询需求。十年来,我们团队聚焦在宽表领域,不断打磨 Lindorm 宽表引擎,可谓是十年磨一剑。今年我们又对 Lindorm 宽表的一些功能进行了升级和改造,推陈出新,真正践行了把简单留给客户,把复杂留给自己的理念。

更加易用的功能

Lindorm宽表积攒了一大批面向各类用户的功能,比如说SQL,二级索引等等。这些功能方便了用户的使用。但是随着业务场景的增加,用户对这些功能又提出了一些新的需求。比如之前SQL不支持order by等功能,用户在使用时有比较大的局限。面对用户这些槽点,Lindorm宽表对功能又做了进一步的增强。

更强大的SQL能力

Lindorm宽表引擎在很早的时候就已经支持了SQL访问,相比使用API,SQL语言更加简单容易上手,深受广大Lindorm开发者的喜爱。并且,Lindorm的宽表引擎支持将指定列在搜索引擎中建立倒排索引,使用统一的SQL去访问。但是,之前的Lindorm SQL还只支持一些简单的SQL DML操作,像order by,group by和join等语法都不支持。今年,我们把整个SQL模块都进行了重构,重构后的SQL模块将成为Lindorm各个引擎统一的SQL入口,并且通过引入了复杂执行器(Complex Executor)模块,把之前不支持的group by等SQL语法都已经支持。现在,这套新的SQL引擎还在继续演进,我们的目标是在使用统一的SQL接入层访问Lindorm各个模型,将不同负载的请求路由到合适的组件中。

image.png

更加安全的数据

数据安全是企业的生命线,Lindorm上的很多客户在Lindorm宽表内存储了很多敏感数据,特别是金融客户,由于监管需求,所有涉及到用户和订单的数据,都必须加密传输和加密存储。因此,Lindorm在已有的用户名密码权限的基础上,又加入了多重加密功能,以及审计日志等功能,满足这类企业级用户需要。

透明加密

云上客户和集团客户的区别之一就在于其丰富的行业特性。金融领域和国家机构这两类客户在进行数据库产品选型时都对数据库的安全性表现出了强烈的兴趣。并且纵观云计算领域,Azure 的 cosmosDB,AWS 的 DynamoDB,阿里云的 OSS,RDS 都具备静态数据加密的能力,缺乏安全方面的功能特性有时会直接失去进入某个行业的入场券。

当今数据库面临的安全威胁大致可以分为 8 类,而静态数据加密并不是全家桶式的安全解决方案,其主要致力于解决众多威胁中的一类 —— 不安全的存储介质。持久化数据库中的数据最终会以文件的形式保存在硬盘等存储介质当中,如果数据以明文的形式保存,通过直接解析文件可以轻易获取用户的业务数据。

数据库透明加密(TDE)是实现静态数据加密的一种方式,对比客户端加密,数据库透明加密的优势在于整个加密由数据库内部完成,数据库的使用者不感知这一过程,因此无需改动。对比文件系统加密,数据库透明加密的优势在于可以更细粒度的控制加密的范畴,在安全和性能之间取得一个较好的平衡。

Lindorm 在设计的过程中,兼顾考虑了实现复杂度,性能开销,以及使用门槛等因素,选择以表为颗粒度支持透明加密,同时在加密算法上,支持了国际公认的分组加密算法 AES 和国家商密算法 SMS4。欢迎对数据安全性有需求的业务联系我们使用。

image.png

其他加密支持

除了Lindorm宽表内核支持的透明加密,Lindorm还支持了一些其他的加密方式,比如云盘加密,基于块存储对整个数据盘进行加密,即使数据备份泄露也无法被解密,保护数据安全。另外,我们还基于Thrift协议加SSL的方式,实现了传输加密,使用户整个访问链路都是加密状态,进一步保证了用户的安全。接下来,我们还会实现Lindorm自身协议的加密功能。

审计日志

有很多非常在意生产安全的企业需要记录每一次操作Lindorm的记录,比如建表,删表操作,用户授权等等。有一些存储了敏感数据的企业,甚至要求记录每一条记录的访问日志,看什么时候,什么人读取了哪个用户的信息,用来做合规审计和事后追查。面对这些客户的需求,Lindorm宽表引擎研发了审计日志功能。能够详细记录每个DDL,甚至DML的操作信息。目前,我们的审计日志正在与SLS打通,打通后,我们的审计日志可以通过LogTail投递到用户指定的SLS中,用户可以自行定制审计日志保留时间,以及查询需求。

更加高效的运维

Lindorm在集团内有上万台机器,在云上也有上千个实例。运行在这些实例上的业务千差万别,负载和模型各不一样,很难做到一套配置满足所有用户的需求。比如在写入流量比较大的集群上,默认的Compaction配置可能会造成Compaction积压,小文件增多影响性能。Compaction的调参需要资深的内核同学进行,这项工作费时费力。另外,虽然说Lindorm是一个分布式数据库,但用户在设计表结构时,或者突发流量来临时,往往会有热点问题打爆单机,这些都需要SRE手工去处理,不仅速度慢,而且会造成稳定性问题。因此,今年Lindorm选取了线上出现问题比较多的Compaction积压和热点问题,进行了专项优化,让这些问题能够自动的解决掉,提升Lindorm的自愈能力,解放运维人员的压力,加强系统稳定性。

Offload Compaction

基于 LSM-Tree 架构的分布式数据库,对于数据写入并不会原地更新,而是先写入内存,然后周期将内存中的数据刷新为只读的存储文件。因此读取数据时往往需要遍历多个文件找到当前生效的正确值。随着存储文件不断增加,读性能会因为 IO 增多而下降。对此实现中通常会周期性执行 Compaction 操作将多个文件合并,使文件个数基本稳定,进而稳定读取的 IO 次数,将延迟控制在一定范围内。

在 Lindorm 现有架构中,Compaction 任务的执行和读写请求服务是耦合在一个进程当中的,因为 Compaction 任务会产生很大的带宽、IO 压力,同时也会消耗 CPU 和内存资源,因此容易影响读写请求的响应时长。其次不同业务对 compaction 的需求存在较大差异,读多写少的场景,compaction 任务压力小(元数据存储场景),写多读延迟敏感的场景(风控场景),compaction 任务压力重。难以统一和管理 compaction 任务相关的参数设定。当文件发生大量积压时,因为耦合的因素,无法独立扩容快速消化文件来降低业务风险,展现了当前设计缺乏灵活性的一面。

可以将 Compaction 任务看做周期执行的离线任务,而读写服务是实时在线服务,问题的根节在于离线任务和实时在线任务强耦合在一起,导致两者相互影响,扩缩容不灵活。基于这个洞察,Lindorm 实现了 Offload Compaction 功能,支持 Compaction 任务以独立的进程运行在独立的机器上,一方面服务读写请求的机器不会再因为 compaction 任务的运行产生抖动,另一方面运行 Compaction 任务的机器可以充分利用机器资源,无需担心影响在线服务,更值得一提的是,db 运维可以搭建巨大的 Compaction 任务集群进行统一管理,根据任务的多少按需扩缩容,极大地简化了运维成本。

 Quota 限流

对于数据库系统来说,无论是单机的 Mysql 还是分布式的 Lindorm,在底层服务器硬件规模一定的情况下,服务的能力一定是有限的,在多租户的场景下,如果某个租户的请求流量超过数据库的承受极限,很可能会造成数据库服务能力下降,影响该数据库上的其他租户,严重时甚至会造成服务器宕机,这个是非常危险的。因此,一般的数据库系统都有对应的限流方案,当租户的请求流量超过服务能力的时候,对其进行限流,防止影响其他租户。

在不考虑分布式的情况下,限流是比较简单的,限流系统不需要在各个机器间进行协调,只需要记录访问本机的请求,超过阈值就开启限流即可。而在分布式系统中,限流的方案往往比较复杂,涉及到分布式协调等问题。同时,对于一个像 Lindorm 一样的大吞吐的分布式系统,怎么在限流的情况下,不影响正常的请求响应,也是一个难点。

Lindorm 自研了一套分布式限流体系,其具有以下独特之处:

  1. 使用 Quota 作为限流单位,用户请求需要处理的数据量越多,消耗 Quota 越多,因此对比 QPS,Quota 更能真实反映请求对系统产生的压力
  2. 中心式 QuotaCenter 统一管理 Quota 消耗,即使用户的流量在机器上分布不均匀也能够正常执行限流逻辑
  3. Quota 消耗由 QuotaProxy 异步定期汇报,QuotaCenter 不会成为系统的单点,QuotaCenter 的压力与用户请求量无关
  4. 用户请求过程中不直接与 QuotaCenter 交互,每次请求只会检查 QuotaProxy 本地缓存的信息,不影响用户的请求响应时间
  5. QuotaCenter 弱依赖,QuotaCenter 宕机,不会影响用户请求

image.png

未来展望

我们抱着十年磨一剑的心态,从 0 开始打造 Lindorm 这个产品。今年是 Lindorm 在阿里的第十个年头,Lindorm正当壮年,业务驱动是 Lindorm 宽表引擎不变的演进原则。我们将持续为用户提供无缝扩展、高吞吐、持续可用、毫秒级稳定响应、强弱一致性可调、低存储成本、丰富索引的数据实时离线混合存取能力。未来,Lindorm 宽表引擎会在以下几个方向继续前进。

更低的使用成本: 使用成本低是云原生数据库 Lindorm 的一个关键特征。没有最低的成本,只有更低的成本,我们还将继续在低成本这方面深耕,继我们引入 OSS 标准型存储做为冷存后,我们还会引入 OSS 的归档存储,进一步满足用户对更冷数据的存储查询需求。另外,Lindorm 多 AZ 部署给用户带来了跨可用区高可用的能力,但是目前多可用区之间的分片副本数据并没有共享,我们希望利用 Region Replica 的技术使多可用区共享底层存储部分,进一步降低使用成本。

更易用的使用体验:目前,Lindorm 已经全面拥抱 SQL,我们希望使用 SQL 能够给用户带来更加统一的,易用的使用体验。Lindorm 宽表将继续完善 SQL 能力,将宽表已有的能力,比如 FeedStream,WideColumn 等全部接入 SQL。同时像慢请求查询,热点 key 查询,集群运维等相关能力,也计划通过 SQL 的方式暴露给用户,让Lindorm 真正成为一款面向用户的数据库。

更丰富的功能:随着 Lindorm 承载业务的多元化,Lindorm 面对的业务场景也越来越复杂,面对这些业务给Lindorm 带来的挑战,我们必须不断去丰富 Lindorm 的功能去满足这些客户的需求。比如说我们会实现 Blob 存储解决 Lindorm 之前宽表模型在大 kv 存储场景性能不佳的问题,引入 bitmap 类型满足用户画像,人群圈选等场景。支持表快照以满足用户一体化查询分析的需求。

更强的弹性能力:Lindorm 存储分离的架构加上云基础设施的灵活性已经给 Lindorm 带来了非常强的弹性能力,在线扩缩容和升降配能力已经能满足大部分用户需求,但是受限于 ECS 的启停速度,云盘的扩缩容限制,Lindorm 弹性能力并没有达到我们心中“秒级”的标准。因此,Lindorm 在构架新一代部署架构,希望利用大存储池,借助 ECI和 ACK 的力量,真正实现秒级的弹性能力。

另外,我在这里预告一下,Lindorm 宽表引擎即将开源,开源能够将 Lindorm 宽表的技术积累推广到业界,让更多人能使用到 Lindorm 先进的技术。我们也希望能够通过开源的方式,去吸引更多的人来共建 Lindorm,发展技术。Lindorm 即将迈入一个开源的新时代,但是 Lindorm 宽表的初心一直没变:致力于做最好的宽表数据库产品,欢迎对技术感兴趣的各位通过开源的方式一起参与进来。

结束语

梅花香自苦寒来,宝剑锋从磨砺出,Lindorm 每一个功能研发方向都来自于业务真实的需求输入,你们的理解和信任是我们不断前进的动力,没有你们的陪伴和支持,就没有 Lindorm 今天的成果。感谢所有帮助、支持、信任、鼓励、鞭策过我们的同学。我们一定努力做最好的大数据 NoSQL 产品,众志成城、不忘初心、砥砺前行!

原文链接
本文为阿里云原创内容,未经允许不得转载。 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/511902.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

怎么样升级成为鸿蒙系统,手机升级成为鸿蒙系统第一手体验怎么样?-电脑自学网...

自从华为鸿蒙系统上线以来,除了6月2日发布会爆料出鸿蒙细节、功能之外,还给部分华为手机提供了鸿蒙系统的升级包。不知道大家有没有升级?其实很多小伙伴处于观望状态,因为新系统的缺点不可避免,升级了系统就再也回不去…

换个姿势看 hooks,灵感来源组合和 HOC 模式下逻辑视图分离新创意

作者 | 👽来源 | 前端Sharing前言懂得 JSX 本质的同学都知道它只不过是一种语法糖,会被 babel 处理成 createElement 的形式,最后再变成常规的 js 对象。所以,我们就可以在 js 逻辑层面对 element 对象做处理,自定义 …

双11特刊 | 云数据库RDS如何顺滑应对流量洪峰

简介:从绿色低碳到硬核科技,看RDS如何用绿色科技助力2021“双11”? 双十一回顾 从平台到商家,再从物流到客户手中,云数据库RDS支撑着双11集团电商的在线业务。RDS首次对集团核心业务进行国产化技术演进试点&#xff…

双11专刊|云原生数据仓库AnalyticDB支撑双11,大幅提升分析实时性和用户体验

简介:2021年双十一刚刚落幕,已连续多年稳定支持双十一大促的云原生数据仓库AnalyticDB,今年双十一期间仍然一如既往的稳定。除了稳定顺滑的基本盘之外,AnalyticDB还有什么亮点呢?下面我们来一一揭秘。 一 前言 2021年…

html传输的数值表示的含义,数字传递游戏的意义与感悟_传数字游戏心得体会

在大学生入职培训期间,曾组织他们做了一场小游戏,游戏规则如下:1、80名学生平均分成8组,排成8列,统一面向讲台做好;2、主持人向每组的最后一名队员提供一个数字(数字一般为3位或4位数,不确定&am…

德勤2022技术趋势:IT自我颠覆、技术跨界融合创新

作者 | 宋慧 出品 | CSDN云计算 IT 技术,一直处于快速发展与变化中。 基于对前沿技术的观察分析与自身实践,国际机构德勤管理咨询每年发布对于未来 18-24 个月的的重要技术趋势。2021 年 CSDN 曾报道 德勤2021技术趋势:繁琐、点状的匠人AI时…

双11特刊|购物车实时显示到手价,看云原生内存数据库Tair如何提升用户体验?

阿里云自研内存数据库Tair诞生于2009年,是一种支持高并发低延迟访问的云原生内存数据库,完全兼容Redis,已历经多年双11大促考验,提供核心在线访问加速能力,显著提升系统吞吐量。 作为双11大促承载流量洪峰的利器&…

Dubbo-Admin 正式支持 3.0 服务治理

简介:Dubbo 相信大家并不陌生,是一款微服务开发框架,它提供了 RPC 通信与微服务治理两大关键能力。大家在日常开发中更多使用的是 Dubbo 提供的 RPC 通信这一部分能力,而对其提供的服务治理的能力使用相对少一些,本文的…

vue将文本渲染html,vue2.0 之文本渲染-v-html、v-text

vue2.0 之文本渲染-v-html、v-text1、index.html代码vuedemo2、main.js代码import Vue from ‘vue‘import App from ‘./App‘Vue.config.productionTip false/* eslint-disable no-new */new Vue({el: ‘#app‘,render: h > h(App)})render: h > h(App)是ES6的语法&am…

如何成为真正的数字化企业,锐捷网络发布数字原力觉醒计划

编辑 | 宋慧 出品 | CSDN 云计算 什么样的企业可称为数字化企业? 因为疫情等各类不确定因素,数字化的浪潮正深刻改变着企业。所有企业都需考虑转型、创新、增长,这三个问题。深耕中国企业级市场多年的IT技术厂商锐捷网络,以“点线…

2021中国数字服务大会 | 阿里云混合云新一代运维演进与实践

简介:12月3日,2021中国数字服务大会顺利召开,大会以“数字服务、跨界融合、协同创新”为主题,邀请产学研界嘉宾,举办行业与学术论坛,共话数字服务的挑战和机遇。阿里云作为云厂商代表应邀参会,并…

冲压模板自动标注LISP_干货满满!超实用冲压模具资料,加薪必看!

一般的冲压模具都是由:上下托板、上下垫脚、上下模座:一般用A3、Q235等“软料”做成,起支撑整个模具、方便架模、落料等作用。上、下模板:上、下模板起固定刀口、入块、入子、顶料销等作用,外定位、内定位、浮升引导销…

安谋科技四周年献礼,提前完成五年规划目标

自2018年4月正式独立运营以来,安谋科技一直以服务中国的科技产业、建设中国本土的研发能力、赋能中国本土半导体生态为核心使命。值此公司成立四周年之际,安谋科技宣布已提前超额完成了合资公司落地深圳时设立的五年规划目标。 回顾四年来走过的历程&am…

开源微服务编排框架:Netflix Conductor

简介:本文主要介绍netflix conductor的基本概念和主要运行机制。 作者 | 夜阳 来源 | 阿里技术公众号 本文主要介绍netflix conductor的基本概念和主要运行机制。 一 简介 netflix conductor是基于JAVA语言编写的开源流程引擎,用于架构基于微服务的流…

直播回顾:如何对付臭名昭著的 IO 夯?诊断利器来了 | 龙蜥技术

简介:听到IO夯总是让人头疼,那有没有可以分析IO夯问题的利器? 编者按:sysAK(system analyse kit),是龙蜥社区(OpenAnolis)系统运维 SIG 下面的一个开源项目,…

cad致命错误如何处理_Golang 如何优雅地处理错误

- 后端早读课翻译计划 第二篇- 本文提供了一个优雅的处理 Golang 中错误的方法,解决了 Golang error 只有字符串信息的局限性,提供了上下文信息、错误类型判断的功能。尽管 go 具有一个简单的错误模型,但是乍一看,事情并没有那么容…

快速云原生化,从数据中心到云原生的迁移实践

简介:本文将介绍在帮助用户快速完成迁云中的解决方案、最佳实践以及迁云工具。 云原生的时代已经到来,云原生技术正在重塑整个软件生命周期,阿里巴巴是国内最早布局云原生技术的公司之一。 容器服务团队在过去的几年时间内帮助很多用户成功…

实力总结四类 Bean 注入 Spring 的方式

作者 | 阿Q来源 | 阿Q说代码一提到Spring,大家最先想到的是啥?是AOP和IOC的两大特性?是Spring中Bean的初始化流程?还是基于Spring的Spring Cloud全家桶呢?今天我们就从Spring的IOC特性入手,聊一聊Spring中把…

广州大学计算机网络期末考试2013,广州大学计算机网络技术试卷(A卷)

广州大学2006-2007 学年第 1 学期考试卷课程计算机网络技术考试形式(开/闭卷,考试/查)一、填空题(15分)1、现有一计算机要和另一设备进行通信,要实现此目标首先要考虑通过何种接口把计算机和相应设备连接起来;解决此问题属于层的任务。(2分)2…

阿里云全站加速DCDN升级

简介:相比传统CDN加速,全站加速DCDN具有更广阔的应用场景。在当下企业全面数字化的进程中,为了更全面地满足广大企业客户的个性化加速需求,全站加速DCDN从简单开通到个性化定制、从内容分发到安全防护,对客户侧的使用体…