内存引擎:SanssouciDB

SanssouciDB

 

1、内存计算,每台节点都选择高端机器,典型的配置有2TB内存,64个CPU

主要原因是同等处理能力下,减少集群规模,这样可以减少网络的消耗。

 

2、SanssouciDB是一个 shared-nothing 和shared-memroy的混合结构,每个实例和每个节点负责固定分区的数据。所以从整个集群来看,整个集群式shared-nothing的结构,从单个节点来看,多个核访问共享的存储。所有节点连接共享存储,可以使NAS,或者SAN,主要是用来存放日志和恢复。

 

3、并行无所不在:

节点之间分布式查询引擎

节点内部CPU之间并行查询算法

处理器级别使用SIMD(Single Instruction Multiple Data)

 

4.为提高性能使用FLASH存储,而不是使用硬盘。

5、IMDB解决了传统磁盘数据的读取性能瓶颈。

6、每个节点一个进程,一个进程管理多个线程,每个物理核心一个线程。一个专门的调度器负责给线程分配任务。

7、框架:

最上层提供SQL和存储过程接口,也提供API给程序直接调用。

分布层,负责分布元数据的协调,分布式事务和分布式查询引擎。

Server进程负责元数据的负责和同步。元数据包含存储表和分区的信息。

主数据存放在内存中,主要包括(main store,differential store和索引)

 

8.列式存储

为了解决列式存储的弊端(更新性能较差),允许经常作为一个组查询的列,存放在一起。叫做混合列。这样就同时具备了较好的读和写的性能。

9.数据是经过字典压缩的

新值加到字典中,可能会导致整个列需要重新压缩,为了解决写性能差的问题。专门使用了叫做 differential store的结构,这里存储还没有被集成到main store的数据。只存储references到字典。Differential store会定期被合并到main store。

10.如果只是少量数据被查询,会使用到反向索引。

11.Insert-only模式,减少锁争用。

12.为了避免数据库毁坏,在非易失性内存中写日志和快照。

13.FLASH卡只能写 1万到十万次,磁盘可以写10^15次。

14. Phase Change Memory (PCM)

15、字节序对齐

16、自动并发,将一个查询分成多个流处理。数据库系统可以处理内联和外联。

实现自动并发依赖两个基础技术,pipeline并发和数据并发。

Pipeline并发效果非常有限,数据并发效果非常好。

17、数据分区的几种方式:

按照数据在表中位置分区

按照表的值分区

哈希的方式分区

罗宾环

18.并行数据处理引擎:

启动时,一个进程绑定一个核,启动时减少消耗。

一个机器上,通过多路内存控制器,减少同一台集群的竞争。

 

19.充分利用SIMD(Single Instruction Multiple Data ,单指令多数据量)多个部分的执行时间不一致,单个部分执行时间长会拖慢整体速度,因为每部分执行都很快,所以影响不是很明显。

复制多个操作数,并把他们打包在大型寄存器的一组指令集。

以同步方式,在同一时间执行同一条指令。

 

20.通过压缩缩小数据量,增加查询性能。

通过压缩提升性能,必须压缩所消耗的CPU获得的好处要大于本地内存带宽消耗所有获得的好处。

你可能感兴趣的:(SSO)