[发明专利]基于Berkeley DB的数据库存储系统及方法无效
申请号: | 200810241555.X | 申请日: | 2008-12-24 |
公开(公告)号: | CN101763390A | 公开(公告)日: | 2010-06-30 |
发明(设计)人: | 雷凯;李晓明;高晓飞;李挥 | 申请(专利权)人: | 北京大学深圳研究生院 |
主分类号: | G06F17/30 | 分类号: | G06F17/30 |
代理公司: | 深圳鼎合诚知识产权代理有限公司 44281 | 代理人: | 陈俊斌 |
地址: | 518055 广东省*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 berkeley db 数据库 存储系统 方法 | ||
【技术领域】
本发明涉及数据处理领域,特别涉及其中的数据库存储系统及数据访问方法。
【背景技术】
在计算机服务器端,经常存在着多个进程和线程同时访问一个数据库的问题。现有技术中存在的数据库主要有:
文件型数据库:文件型数据库是早期使用的数据库形式,现在不少简单的应用服务器系统也是适用这种数据库来管理数据。该方法的最大缺点就是不能实现数据的并发操作,一般一个对一个数据文件进行操作时,整个文件都是一个冲突域,即:在其他进程或者线程使用该数据库时,其他程序必须阻塞,等待其处理完成后,才能继续访问数据库。因此,所有数据的访问与线性访问数据的时间基本相同,是一种性能很低的解决方案,另外,文件型数据库由于没有自身的索引信息,所以查找和处理数据都非常困难,很难实现分布式的系统架构。但由于其本身比较简单,在现实中有不少的应用。
关系型数据库:关系型数据库是现在很多网站、公司内部系统使用的数据库解决方案,其中包括:MySQL、SQL Server、Oracle等,可以说该方案是现有数据库的主流解决方案,其最大的优点就是使用简单,支持标准SQL,然而由于它支持标准SQL的需求,因此其具有以下缺点:
主流的关系型数据库都是连接型数据库,即:在每次客户发出数据请求的时候,客户端和数据库之间首先建立一条TCP连接,然后使用这条连接进行数据的交互,即使应用程序和数据库在同一台机器上时,也必须建立连接。因此,服务器的很多处理都浪费在了处理连接的内容上,由此也降低了数据库的存储效率。而且传统的Select/Poll方式处理连接,处理的时间复杂度和连接数是平方的关系,所以,随着数据库处理的请求增多,处理的能力以平方的速度下降。
主流的关系型数据库支持标准SQL,因此数据库必须对每一个字段建立索引信息,而在实际的应用程序中,大多数的字段索引是没有用的。因此数据库存储了很多额外的信息,同时这些数据的存在也降低了数据库的效率。
【发明内容】
本发明的主要目的是:提供一种实现高效访问的数据库存储的解决方案。
为实现上述目的,本发明提出一种基于Berkeley DB的数据库存储系统,采用分布式架构,每个服务器上维护本地数据;本服务器在接到数据访问的请求后,先查找本地数据库;如果本地数据库中不存在,再计算出存储该数据的其他服务器,并把该数据缓存至本服务器的本地数据库中。
同时,本发明提出了一种基于Berkeley DB的数据库存储方法,每个服务器上维护本地数据;本服务器在接到数据访问的请求后,先查找本地数据库;如果本地数据库中不存在,再计算出存储该数据的其他服务器,并把该数据缓存至本服务器的本地数据库中。
上述的数据库存储系统或数据库存储方法,每个服务器的本地数据库包括本服务器需要维护的本机的用户数据存储区、用作缓存其他服务器数据的缓存数据存储区。
上述的数据库存储系统或数据库存储方法,在本地数据库中采用页级锁进行数据管理。在本地数据库中采用页级锁进行数据管理时,其中的磁盘页的大小根据整个系统存储总的用户数和处理用户请求的总的线程数,进行设定。可选方案之一,所述磁盘页的大小为每个页存储10个数据。
上述的数据库存储系统或数据库存储方法,在本服务器和其他服务器通信过程中,采用Epoll处理连接。
上述的数据库存储系统或数据库存储方法,根据散列算法计算出存储该数据的服务器。通过基于Berkeley DB的应用程序编程接口,提供所述数据访问的统一接口。
相较之现有技术的关系型数据库,本发明在处理本地数据的时候不需要建立TCP连接,提高了数据库的存储效率,大大降低了系统的开销,大幅度的提高服务器的性能。
对于用户多台服务器在逻辑上可以当成一台服务器透明地使用,用户可以就近连接服务器,解决网络生存周期过高的问题;
同时,在对底层数据的访问上采用对页加锁的技术,提高磁盘I/O的效率。
本发明中,应用Berkeley DB提供的一些功能,可以对存储系统的底层实现灵活配置,比如数据页的大小、内存缓存的大小、底层存储数据结构等。整个存储系统既支持单线程访问,又支持多线程访问。
【附图说明】
图1本发明实施例的具有两个节点的数据库存储系统的系统结构图;
图2是本发明实施例的分布式节点的架构图;
图3是本发明实施例的系统模块图。
【具体实施方式】
下面通过具体的实施例并结合附图对本发明作进一步详细的描述。
实施例一:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京大学深圳研究生院,未经北京大学深圳研究生院许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/200810241555.X/2.html,转载请声明来源钻瓜专利网。