空心|Aurora,万字详文:腾讯数据库专家深度探索Amazon( 二 )
RDS是由位于每个节点上的称为HM(HostManager)的agent来提供主从集群的状态监控、以应对主节点failover的问题以便进行HA调度、以及某个从节点failover需要被替换等问题 。 这样的监控服务 , 称为controlplane 。
1.2核心技术与架构
Aurora提倡“thelogisthedatabase” , 这是其设计的核心 。 围绕这个观点 , 传统数据库的组件架构 , 发生了一些变化 。
对于Aurora , 每一个存储节点 , 如图1-3 , 由两部分构成 。
第一部分:Caching
第一部分是“Caching” , 这是一个重要的关键点 , 可惜论文没有描述其细节 。
如同传统数据库架构的数据缓冲区 , 向事务层提供数据 。 传统数据库架构的数据缓冲区 , 向上起着消耗存储IO的I加载数据到内存供计算层读写数据的作用、向下起着消耗IO的O写出脏数据到存储层以实现数据持久存储的作用 。 对于一个写密集的OLTP系统 , 大量随机写花费了很多时间 , 系统的性能因此经常表现为存储层的IO瓶颈 。 尽管checkpoint技术缓解了每个写操作刷出脏数据的冲动 , 尽管SSD的使用缓解了存储层的瓶颈 , 但是 , 毕竟存储层的I与O的时间消耗还是巨大的 , 尤其是对于随机写密集的OLTP系统 。
Aurora的设计 , 消除了脏数据刷出的过程 , 数据缓冲区的作用 , 只是加载数据供上层使用 , 而脏数据不必从数据缓冲区刷出到物理存储上 , 这对于随机写密集的OLTP系统而言 , 是一个福音 , 性能的瓶颈点被去掉了一个(如图1-3 , 在“Caching”和“Logging+Storage”之间 , 竖线的箭头 , 应该是指向“Caching”的 , 以表示数据只是加载到Caching中 , 不存在脏数据的刷出操作) 。
但是 , 观察图1-3 , “Caching”是位于了存储层内还是计算层内?论文没有明示 。
从图1-3观察 , 似乎“Caching”是存储层和计算层所共用的一个组件 , 那么就可能存在这样的一个两层设计:位于存储层和计算层各有一部分“Caching” , 这两部分“Caching”组合成为一个逻辑上的“Caching” , 而逻辑意义上的“Caching”似乎在AWS认为 , 其更像是属于计算层的 。 如下文引自论文原文:
Althougheachinstancestillincludesmostofthecomponentsofatraditionalkernel(queryprocessor,transactions,locking,buffercache,accessmethodsandundomanagement)severalfunctions(redologging,durablestorage,crashrecovery,andbackup/restore)areoff-loadedtothestorageservice.
位于存储层内的“Caching” , 更像是一个分布式的共享文件系统 , 为了提高性能也许是一个分布式内存型的共享文件系统 , 为主从架构的数据库提供高速读服务 , 此点妙处 , 论文没有点出 , 这里权做推测 。 存储层如果能为所有的主备节点提供一致的缓冲数据 , 则有更为积极的意义 , 可以对比参考的如Oracle的RAC 。
而位于计算层内的“Caching” , 是单个数据库实例读数据的场所 , 独立使用 。
推荐阅读
- 空心|招聘丨山西千沐云物联科技有限公司
- 空心|另辟捷径研发“光子芯片”,有望彻底突破美国封锁,华为突然宣布
- 空心唯心|咬一口满嘴飚汁,酥到入口即化,舔屏的节奏,看这爽爽的猪脚皮
- 醉倾城空心|40 Pro真机曝光,Mate30沦为弃机创历史,Mate
- 空心|恐怕只有华为了,2020年还敢出这样配置的手机来割韭菜的
- 空心|全面去除西方技术,打响芯片突围战!中科院出手
- 醉倾城空心|小米10让路新机跌至白菜价,雷军透露小米未来策略
- 空心|iQOO5和小米10Pro现在买谁,4k档5G旗舰终极之战
- 空心|一中国企业不惧打压,超越谷歌,力挺华为,美国全面“封锁”下
- 空心|智能增强的机器人收割机可以灵活采摘人们需要的蔬菜