分布式技术点和技术趋势

本人参加了DTCC2018数据库大会,将各大公司明星产品的特点进行了个人总结,目前分布式数据库、存储领域内采用的比较领先的技术和技术趋势。RDMAHTAP、用户空间文件系统以及底层高性能硬件的引入必然是未来的技术趋势

                         分布式技术点和技术趋势_第1张图片

1)容器化技术:

  容器化不是一个革命性想法,容器技术已经存在很多年并且被大量应用程序所使用,将数据库容器化是DBA架构师越来越关注的一个技术趋势,目前很多数据库公司已经进行了数据库容器化的实践,但容器涉及到安全性问题、网络问题和稳定行问题等,有利有弊数据库是否适用于容器化目前还存在很多争论

 

2)多副本一致性方案

  分布式系统中,选择采用多副本方案,就要面对数据一致性问题;数据一致性主要是指在多副本的情况下,如何保证各个副本间数据的一致性。数据的一致性是一个很难解决的问题,受CAP原则的限制。目前常用的一致性算法包含PAXOSRAFT及变种算法,大部分大公司都声称自己产品中使用的一致性算法并不是原生算法,都是根据自身特点优化过的,因此新的一致性算法的研究以及已有算法的优化必然也是一种数据库领域的一个重要技术点

3)存储和计算分离

  计算资源和存储资源分离,分离后架构清晰,便于扩展,分离后两者的硬件、定制和优化可以独立进行,互不干扰,互不成为对方瓶颈;分离后计算资源的迁移更容易,存储资源不受影响;分离后为计算资源容器化调度提供方便

                             分布式技术点和技术趋势_第2张图片

4)多副本读写分离

  采用读写分离技术可以减轻主库的压力,使主库提供写操作,从库提供读操作。如果所有的操作都放在主库中,那么当大量的读操作,将会锁住数据库。很多架构采用的是一主多从的方式。副本集在某种程度上可以支持读写分离。

                              分布式技术点和技术趋势_第3张图片

5)高速网络通信RDMA 技术

  RDMARemote Direct Memory Access的缩写,通俗的说可以看成是远程DMA技术,为了解决网络传输中服务器端数据处理的延迟而产生的。RDMA允许用户态的应用程序直接读取或写入远程内存,而无内核调用和内存拷贝发生,该技术兴起于高性能计算领域。

                          分布式技术点和技术趋势_第4张图片

 

6)LSM Tree

   LSM树(Log-Structured Merge Tree)存储引擎,这个概念就是结构化合并树的意思,它的核心思路其实非常简单,就是假定内存足够大,因此不需要每次有数据更新就必须将数据写入到磁盘中,而可以先将最新的数据驻留在内存中,达到指定的大小限制后将这些修改操作批量顺序写入磁盘,不过读取的时候稍微麻烦,需要合并磁盘中历史数据和内存中最近修改操作,所以写入性能大大提升但会牺牲部分读取性能,具体应用需要根据实际的应用场景来选择合适的存储结构。

7)HTAP解决方案

  传统的数据库因为各方面的限制,偏向于OLTPOLAP的场景,两者很难兼得,而当前在一份存储数据同时支持事务处理和实时分析的需求越来越强烈,在这个需求的驱动下美国知名咨询公司Gartner针对这种市场趋势提出HTAP (Hybrid Transactional/Analytical Processing) 混合事务分析处理这样一个名词。要实现HTAP需要从架构、存储引擎等各个方面进行改进和优化,常用的方案包括数据sharding、数据分区等方案,目前应用较好的是Kudu+Impala集成方案

8)用户空间文件系统

  用户空间文件系统(Filesystem in Userspace,简称FUSE)是操作系统中的概念,指完全在用户态实现的文件系统。基于用户空间文件系统可以在用户空间使用存储性能开发工具包SPDK和高速网络技术RDMA,所有操作在用户空间无需内核和调用切换,数据零拷贝,降低数据处理延时,充分发挥硬件极限潜能,目前我了解到的性能较好的用户空间文件系统有libpfslibpmfs

9)高性能硬件

  不论是计算和存储都是由硬件和软件组成的,挖掘新的高性能硬件也是提升性能的技术方向之一比如数据库存储介质采用Intel Optane SSDopen channel SSD3D XP等新一代的高性能存储介质以及计算采用GPUFPGA

你可能感兴趣的:(分布式)