内存数据库系统

本文摘录自王珊和萨师煊编著的《数据库系统概论(第5版)》第15章,主要梳理内存数据库设计中的几个关键问题。

1. 什么是内存数据库?

内存数据库是将内存作为主存储设备的数据库系统,也称为主存数据库和In-Memory DataBase。与之相对的是磁盘数据库,使用磁盘作为常规数据存储设备,仅使用内存作为工作数据缓冲区。两者在数据组织存储访问模型查询处理模型三个方面的优化方式不同,前者针对内存特性进行优化设计,后者则面向磁盘访问特性,查询优化核心是减少磁盘的输入/输出。

2. 内存数据库与将数据全部缓存到内存的磁盘数据库相比有什么优势?

在内存数据库中,使用针对内存特性进行优化的存储结构、索引结构和操作算法进一步优化了内存数据库的性能,因此与数据全部缓存到内存的磁盘数据库相比,内存数据库的性能仍然高出数倍。

3. 内存数据库有哪些特性?

(1)高吞吐率和低访问延迟:数据能被处理器直接访问,使得内存数据库具有较高的事务吞吐率和较低的查询处理延迟,能够支持高实时响应的应用需求。

(2)并行处理能力:内存具有良好的并行数据访问能力和随机访问性能,使得内存数据库的查询处理技术可以充分利用并行计算的能力。

(3)硬件相关性:内存数据库的性能受硬件特性的直接影响,主要包括多核处理器、众核协处理器、通用GPU、PCM存储、固态硬盘等,内存数据库的设计应该充分考虑并有效利用由新硬件技术带来的功能扩展和性能提高。

4. 内存数据库有哪些关键技术?

通用的内存数据库管理系统要为用户提供SQL接口,具有内存存储管理、面向内存的查询处理和优化等基本模块,还应提供多用户的并发控制事务管理和访问控制,能够保证数据库的完整性和安全性,在内存数据库出现故障时能够对系统进行恢复

5. 数据库中有哪些数据存储方式?内存数据库更适合采用哪些方式?

数据库的数据存储一般有行存储模型列存储模型混合模型等。行存储模型中元组是连续存放的,对于涉及多个属性的操作能够保证产生最小的内存访问,而对于只涉及较少属性的操作,由于其他属性也会被加载到缓存中,因而缓存利用率相对较低。列存储模型将关系按列进行垂直划分,相同属性的数据连续存储,具有较高的数据访问局部性,能够更好地对数据进行压缩以减少内存带宽消耗,但如果查询所需要地属性较多,尤其是需要重构元组时,则需要连续多个划分来满足查询要求,则会导致性能下降。混合存储模型有PAX存储和属性组存储,其基本思路是保证同一元组的所有属性存在一页中,同时对一页中所有的元组进行列存储。

内存数据库系统既有联机事务处理(OLTP)更新密集型应用,也有联机分析处理(OLAP)复杂分析型应用,因此行存储和列存储被不同的内存数据库系统所采用。通常事务型内存数据库采用的是行存储模型,分析型内存数据库采用的是列存储模型。

6. 决定内存数据库查询处理性能的因素有哪些?

(1)内存数据访问性能:由内存带宽和内存访问延迟决定。与CPU性能的增长速度相比,内存访问延迟成为内存数据库的性能瓶颈(内存访问需要上百个CPU时钟周期的访问延迟)。内存数据库查询优化的关键技术是通过现代CPU的多级缓存结构(L1、L2、L3 cache)减少内存数据访问延迟,提高数据访问性能。

(2)内存数据处理性能:主要受处理器性能影响。更多的处理核数提高了多核CPU的并行计算能力,需要将内存数据库的查询处理技术全面升级为多核CPU并行查询处理技术,并根据多核CPU的硬件特性进行算法优化,提高内存数据库整体性能。

7. 内存数据库查询优化的重点包括哪几个方面?

(1)cache缓存技术以提高数据访问性能:多核CPU中的多级cache机制,每个核拥有一个L1数据cache,一个L1指令cache,一个L2 cache和一个共享L3 cache,还有一个最后一级cache(Last Level Cache,LLC)。若CPU需要的数据不在cache中,会导致cache失效,CPU需要进一步从内存中读取数据。cache失效可以分为强制失效、容量失效和冲突失效。cache性能优化算法是一类通过提高cache数据的空间局部性和时间局部性,从而减少cache失效、优化cache性能的算法。在数据访问方面的cache优化技术主要包括cache-conscious优化技术、cache-oblivious优化技术、page-coloring优化技术、cache敏感性数据结构等。数据库领域内cache优化技术主要通过对数据在内存中的存储布局、访问模式、数据结构等方面的优化来提高查询处理过程中数据的cache命中率。

(2)并行查询处理技术以提高数据处理性能:包括面向多核的查询处理技术和面向众核的查询处理技术。在多核平台上,查询算法需要改写为多核并行算法。在多核并行优化时需要解决的关键技术包括并行处理时的共享cache优化数据分区优化等技术。多核并行优化更多地采用分区并行处理技术,包括基于位置划分的分区技术和基于hash划分的分区技术等。当前内存数据库主要采用的三种多核并行hash连接技术包括无分区hash连接算法、基于分区的hash连接算法、radix hash连接算法。在众核平台中,查询算法需要进化为高可扩展并行算法,以充分利用现金众核处理器提供的强大并行计算性能。

(3)索引技术以提高查询性能:内存数据库中广泛采用的索引包括AVL树、B+树、T树、CSB+树、CST树等。

(4)执行时编译: 动态编译的就是CPU用到哪一块,再到内存中提取,如果内存中没有就去硬盘上找 。

8. 内存数据库的并发控制有什么特别之处?

由于数据存储在内存中,内存数据库中事务执行时间一般较短,因此持锁时间也较短系统中冲突较少。可以采用以下方法减少锁的开销:采用较大的封锁粒度(如表级锁),采用乐观加锁方式,减少锁的类型,将锁信息存储在数据本身。

封锁产生的CPU代价会对OLTP应用下的查询处理性能产生严重影响,因此事务型内存数据库的主要研究问题是在保证事务ACID特性的同时,尽量减少并发控制对性能的影响

分析型内存数据库并发控制的目标是减少多个查询对cache的并发访问冲突,提高内存数据库的吞吐性能。

9. 内存数据库的恢复机制关注哪些研究问题?

内存具有脆弱性和易失性,内存数据库数据需要在磁盘等非易失性存储介质中进行备份,并且在对数据更新时将日志写到非易失性存储介质中。

将日志写在何处以及何时将日志写入磁盘而不会因为写日志所产生的磁盘I/O延长事务的处理时间,这在内存数据库中是一个非常重要的问题。

发生系统崩溃时,如何从备份和日志中恢复数据也是一个值得研究的问题。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 224,983评论 6 522
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 96,354评论 3 403
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 172,216评论 0 367
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 61,061评论 1 300
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 70,073评论 6 400
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 53,541评论 1 314
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 41,906评论 3 428
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 40,881评论 0 279
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 47,428评论 1 324
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 39,460评论 3 346
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 41,578评论 1 355
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 37,176评论 5 351
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 42,913评论 3 339
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 33,348评论 0 25
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 34,490评论 1 277
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 50,142评论 3 381
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 46,650评论 2 366

推荐阅读更多精彩内容