- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
一种嵌入式数据库内存管理设计与实现.pdf
一种嵌入式数据库内存管理设计与实现
宋双王立松
南京航空航天大学,南京210016
摘要:本文主要阐述了一种支持并发机制的高效的嵌入式数据库的内存管理的设计与实现,该内
存管理机制作为应用软件与操作系统的接口,屏蔽了不同操作系统之间的差异。它采用分区域管理内
存方式,提高多进程并发执行的效率,并详细说明了在为数据页面分配内存,删除页面释放内存,查
找页面等操作。
关键词:内存管理HaSh嵌入式数据库
l引 言
随着计算机技术的曰渐发展,计算机应用日渐广泛,为了满足不同的需要出现了许多不同的操作系统,
不同的数据库管理系统。内存的分配和管理对于任何大型数据库系统都是一个非常重要的课题。它在提高
数据库的运行效率和性能优化等方面都起到十分关键的作用。在内存一定的情况下,如何最为充分有效的
配置和管理内存,是每一个数据库管理员都必须霞视的问题。由于各种数据库系统对内存分配和管理的机
制各有不同。因此,对于不同的系统,不同的应用,选择一个合适的数据库内存管理机制。
手机、数码相机等移动设备的产生,嵌入式数据库的应用领域逐渐增大。而在SqlServer等关系型数据
库系统中经常用到的SQL语言,需要对结构化查询语言进行解析和处理,会有很大的开销,而本文提出的该
嵌入式数据库系统中采用简单的函数调用接口来避免这些开销,从而使系统运行起来更加快速高效。
一般的嵌入式数据库存储管理模式在多进程并发情况下的数据库内存管理中,对临界区加锁控制时,
由于数据存储在内存中的位置是离散的,有时需要对整个数据库加锁,这就大大降低了整个程序的并发执
行的效率。为了更好的支持多进程并发执行的效率,在该嵌入式数据库管理内存设计中,可以采用分区域
的思想,将相同类型(该类型不是高级语言中的数据类型)的数据内容存储在一个相同的区域中,即使需
要一些数据页全部上锁,也只需要在该区域内上锁,从而使多进程可以更好的并发执行,程序运行更快速。
下面我们将主要讨论该嵌入式数据库的内存管理机制的设计与实现。
2内存管理基本设计
2.1内存管理接口模型
在该嵌入式数据库中,内存管理机制为应用软件访问内存提供统一的接口,从而可以屏蔽不同操作系
统的差异。整个内存管理机制作为接口模型(如图1)过程中,应用软件中程序通过直接调用数据、对象
访问接口提供的APl函数来直接管理数据库数据,避免结构化查询语言的解析与处理。该数据、对象访问
接口,包括存储访问时查询、插入、删除的API函数,事物管理操作函数,内存池的管理,日志管理和以
及在并发执行时必须的锁管理等功能模块,各个功能在算法的实现中都提供一些函数供外部程序调用,而
这些所有的功能都是在共享内存区中实现的Il2J。
在一个应用数据库刚开始创建初期,该内存机制根据需要在内存中申请一个内存块,通过对上层应用
软件提供一定的编程接口,在共享内存区中实现数据库的管理。
I…_…-…·…-…·…‘…·…。…●…,…●
图l接口模型
2.2分区域内存管理
申请内存后根据数据库系统需求,将内存分成不同的区域,例如可以分为数据缓冲区MPOOL区,信
号量区,存储日志区,事物区,互斥区,每个区存放数据不同。在该嵌入式数据库系统中的具体应用中,
用户可以根据具体应用的需求程序调用API决定内存分几个区域、需要分成哪些区域。把数据、日志、rc香on
等文件存放在不同的区域上是可取的:提高并行和吞吐量,提高了系统可靠性。
分配内存时在内存中还应有一块内存db01存放各区域信息,其他各个分区记为db02(缓冲池区域),
db
域的类型指明是缓冲区区域还是日志区区域等、该区域的id和一个指向该结构体描述的区域中映射的文件
中的重要数据结构相对于该映射文件的偏移量。
db0l
图2内存分区模型
具体实现中,在db-01内存分区中包含一个描述包括版本信息、时间戳和区域个数等共享环境信息的
REGION分区)。
804
文档评论(0)