GBase8s通过建立多个磁盘I/O线程模拟异步的磁盘I/O来构建和读写数据库文件,并且I/O线程的数目是可配置的,它和后面提到的工作者线程是被分开管理的,并且专用于磁盘I/O *** 作。在磁盘 *** 作上采用了两种成熟的启发式预读技术:连续预读和随机预读来提高磁盘 *** 作速度。连续预读指如果GBase8s发现对于表空间段的访问是连续的,它就会提前向I/O系统申请对数据库页面的成批读取。随机预读是指当GBase8s发现对表空间中的一些空间像是需要都完全读到缓冲池中进行处理,那么它向I/O系统申请对剩余空间的读请求。
GBase8s可以使用一个“裸磁盘”分区作为一个表空间数据文件,通过使用裸盘,用户可以在一些没有文件系统负载的Linux系统上执行非缓存I/O,从而改进性能。
可配置的多工作者线程处理能力GBase8s系统允许用户配置工作者线程的数目,这些线程是整个系统公用的,不会专门属于某个数据库连接。无论任何原因造成的数据库 *** 作被阻塞(如锁等待),那么相应的工作者线程将会立即被用于执行其他的数据库 *** 作,而不会被阻塞。此外,对于单CPU和多CPU设备,系统会合理的进行线程对内存和数据等物理资源的共享使用,因此能达到很好的并发处理能力。
高效的事务并发控制和管理机制GBase8s在事务处理上采用以行级为主、表级为辅的锁技术来实现高效的事务处理。这些技术在保证事务ACID特征的前提下大大提高了事务的并发处理能力。
GBase8s通过对死锁监测,会自动检测一个事务的死锁并回滚一个或多个事务来防止死锁,并设法提取小的事务来进行回滚,从而降低由于回滚造成的大量磁盘刷新以提高性能。
可配置的、高效的内存管理策略GBase8s针对不同的数据库 *** 作提供了多种缓存机制,主要包括数据缓冲区、查询缓冲区、键缓冲区、插入缓冲区等。这些缓冲区的配合使用可以对有限的系统内存进行有效的利用,从而大大提高系统性能。此外还可通过调整读缓冲区、顺序读缓冲区、排序缓冲区等来对系统性能进行微调。
高效的查询优化策略GBase8s采用了以有效利用索引为基础的基于代价的查询优化策略。查询子系统通过将输入的查询语句进行复杂的转换,形成不同的查询计划,然后基于系统的I/O、CPU和内存等资源的情况估算各种查询计划的执行代价并最终确定一个最优计划执行。
透明存储加密机制GBase8s目前的存储加密由数据库内核在后端安全存储引擎中实现,对于合法用户来说完全透明,不影响合法数据库用户的前端 *** 作,不存在功能损失;采用按数据页加密的方式,不仅易于实现且加解密效率高;物理存储密文态,内存缓存明文态的机制保证了数据检索的高效性,使加密对GBase8s原有的高效检索机制几乎没有造成任何实质性影响,由于存储加密造成的性能下降不超过15%。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)