Gbase8s 如何成为一个更高效的oltp系统

众所周知,用户的关键业务系统,特别是 OLTP 系统,都要求提供 24X7 不间断的应用服务,这就要求数据库系统能够提供强大的高可用能力。而GBase 8s的目标是实现一个具有完善的事务处理能力的高性能的面向联机事务处理应用的安全数据库系统。因此,在保证系统安全性的前提下,还需要尽可能的提高数据库系统的性能,GBase 8s在实现上采用了如下六种机制来实现高性能:

1. 高效的文件空间和磁盘管理

GBase 8s通过建立多个磁盘I/O线程模拟异步的磁盘 I/O来构建和读写数据库文件,并且I/O线程的数目是可配置的,它和后面提到的工作者线程是被分开管理的,并且专用于磁盘I/O操作。在磁盘操作上采用了两种成熟的启发式预读技术:连续预读和随机预读来提高磁盘操作速度。连续预读指如果GBase 8s发现对于表空间段的访问是连续的,它就会提前向I/O系统申请对数据库页面的成批读取。随机预读是指当GBase 8s发现对表空间中的一些空间需要完全读到缓冲池中进行处理时,那么向I/O系统申请对剩余空间的读请求。

GBase 8s可以使用一个“裸磁盘”分区作为一个表空间数据文件,通过使用裸盘,而不经过文件系统执行非缓存I/O,从而改进性能。

2. 可配置的多工作者线程处理能力

GBase 8s系统允许用户配置工作者线程的数目,这些线程是整个系统公用的,不会专门属于某个数据库连接。无论任何原因造成的数据库操作被阻塞(如锁等待),那么相应的工作者线程将会立即被用于执行其他的数据库操作,而不会被阻塞。此外,对于单CPU和多CPU设备,系统会合理的进行线程对内存和数据等物理资源的共享使用,因此能达到很好的并发处理能力。

3. 高效的事务并发控制和管理机制

GBase 8s在事务处理上采用以行级为主、表级为辅的锁技术来实现高效的事务处理。这些技术在保证事务ACID特征的前提下大大提高了事务的并发处理能力。

GBase 8s通过对死锁监测,会自动检测一个事务的死锁并回滚一个或多个事务来防止死锁,并设法提取小的事务来进行回滚,从而降低由于回滚造成的大量磁盘刷新以提高性能。

4. 可配置的、高效的内存管理策略

GBase 8s针对不同的数据库操作提供了多种缓存机制,主要包括数据缓冲区、查询缓冲区、键缓冲区、插入缓冲区等。这些缓冲区的配合使用可以对有限的系统内存进行有效的利用,从而大大提高系统性能。此外还可通过调整读缓冲区、顺序读缓冲区、排序缓冲区等来对系统性能进行微调。

5. 高效的查询优化策略

GBase 8s采用了以有效利用索引为基础的基于代价的查询优化策略。查询子系统通过将输入的查询语句进行复杂的转换,形成不同的查询计划,然后基于系统的I/O、CPU和内存等资源的情况估算各种查询计划的执行代价并最终确定一个最优计划执行。

6. 高效的存储加密机制

GBase 8s 目前的存储加密由数据库内核在后端安全存储引擎中实现,对于合法用户来说完全透明,不影响合法数据库用户的前端操作,不存在功能损失;采用按数据页加密的方式,不仅易于实现且加解密效率高;物理存储密文态,内存缓存明文态的机制保证了数据检索的高效性,使加密对GBase 8s原有的高效检索机制几乎没有造成任何实质性影响,由于存储加密造成的性能下降不超过15%。

你可能感兴趣的:(数据库,数据库)