123
返回列表 发新帖
楼主: jieforest

基于JSON的文档存储NoSQL数据库RaptorDB详述

[复制链接]
论坛徽章:
277
马上加薪
日期:2014-02-19 11:55:14马上有对象
日期:2014-02-19 11:55:14马上有钱
日期:2014-02-19 11:55:14马上有房
日期:2014-02-19 11:55:14马上有车
日期:2014-02-19 11:55:14马上有车
日期:2014-02-18 16:41:112014年新春福章
日期:2014-02-18 16:41:11版主9段
日期:2012-11-25 02:21:03ITPUB年度最佳版主
日期:2014-02-19 10:05:27现任管理团队成员
日期:2011-05-07 01:45:08
21#
 楼主| 发表于 2014-1-6 11:27 | 只看该作者
源代码里包含以下单元测试(所有测试的输出文件夹是C:\RaptorDbTest):

1)Duplicates_Set_and_Get:这个测试自动生成了1000个Guid的100个复制,然后获取每个guid的值(它同样对字对齐形式的位图子系统进行了测试)

2)Enumerate:这个测试自动生成100001个Guid,并列举出已确定的Guid的索引,然后显示最终索引数目(每次运行的最终数目会不同)

3)Multithread_test:这个测试创建了两个插入1000000条记录的线程,以及插入开始5秒后读取2000000条记录的第三个线程。

4)One_Million_Set_Get:这个测试插入一百万条记录,并读取一百万条记录

5)One_Million_Set_Shutdown_Get:这个测试与上面的测试完成的动作相同,只不过在读取记录前要关闭并重新启动。

6)RaptorDBString_test:这个测试将创建100,00个1kb的字符串关键字,然后读取这些索引。

7)Ten_Million_Optimized_GUID:这个测试使用RaptorDBGuid类对一千万个Guid进行Murmur散列,然后写入这些数据,接着读取出来。

8)Ten_Million_Set_Get:同一百万条记录一样做插入和读取这样的测试,只不过记录数为一千万

9)Twenty_Million_Optimized_GUID:同一千万个GUID一样做相同散列、写入和读取的测试,只不过GUID数为两千万

10)Twenty_Million_Set_Get:同一百万条记录一样做插入和读取这样的测试,只不过记录数为两千万

11)StringKeyTest:对最大为255长度的常见字符串关键字进行测试

12)RemoveKeyTest:测试关闭前后是否可以正确地删除关键字。

使用道具 举报

回复
论坛徽章:
277
马上加薪
日期:2014-02-19 11:55:14马上有对象
日期:2014-02-19 11:55:14马上有钱
日期:2014-02-19 11:55:14马上有房
日期:2014-02-19 11:55:14马上有车
日期:2014-02-19 11:55:14马上有车
日期:2014-02-18 16:41:112014年新春福章
日期:2014-02-18 16:41:11版主9段
日期:2012-11-25 02:21:03ITPUB年度最佳版主
日期:2014-02-19 10:05:27现任管理团队成员
日期:2011-05-07 01:45:08
22#
 楼主| 发表于 2014-1-6 11:28 | 只看该作者
文件格式

文件格式:*.mgdat

磁盘上按照下面结构存储数值的:

使用道具 举报

回复
论坛徽章:
277
马上加薪
日期:2014-02-19 11:55:14马上有对象
日期:2014-02-19 11:55:14马上有钱
日期:2014-02-19 11:55:14马上有房
日期:2014-02-19 11:55:14马上有车
日期:2014-02-19 11:55:14马上有车
日期:2014-02-18 16:41:112014年新春福章
日期:2014-02-18 16:41:11版主9段
日期:2012-11-25 02:21:03ITPUB年度最佳版主
日期:2014-02-19 10:05:27现任管理团队成员
日期:2011-05-07 01:45:08
23#
 楼主| 发表于 2014-1-6 11:28 | 只看该作者
文件格式:*.mgbmp

磁盘上是按照下面格式存储位图索引的:

使用道具 举报

回复
论坛徽章:
277
马上加薪
日期:2014-02-19 11:55:14马上有对象
日期:2014-02-19 11:55:14马上有钱
日期:2014-02-19 11:55:14马上有房
日期:2014-02-19 11:55:14马上有车
日期:2014-02-19 11:55:14马上有车
日期:2014-02-18 16:41:112014年新春福章
日期:2014-02-18 16:41:11版主9段
日期:2012-11-25 02:21:03ITPUB年度最佳版主
日期:2014-02-19 10:05:27现任管理团队成员
日期:2011-05-07 01:45:08
24#
 楼主| 发表于 2014-1-6 11:29 | 只看该作者
位图索引行的长度是可变的,如果新添加的数据可以填充到磁盘上的记录里,那么就可以再次使用这以位图行,如果不能填充,那么就需要创建另一条记录了。正是由于这个原因,我们必须定期对索引进行缩减,删除前一次更新后不再使用的记录。

文件格式:*.mgidx

MGIndex索引按照下面的格式保存的,如下图所示:

使用道具 举报

回复
论坛徽章:
277
马上加薪
日期:2014-02-19 11:55:14马上有对象
日期:2014-02-19 11:55:14马上有钱
日期:2014-02-19 11:55:14马上有房
日期:2014-02-19 11:55:14马上有车
日期:2014-02-19 11:55:14马上有车
日期:2014-02-18 16:41:112014年新春福章
日期:2014-02-18 16:41:11版主9段
日期:2012-11-25 02:21:03ITPUB年度最佳版主
日期:2014-02-19 10:05:27现任管理团队成员
日期:2011-05-07 01:45:08
25#
 楼主| 发表于 2014-1-7 13:04 | 只看该作者
文件格式: *.mgbmr,*.mgrec

Rec文件是一系列写入到磁盘的long型数值,没有特定的格式。这些数值把记录编号映射为位图索引文件内的偏移量和文档存储文件内的偏移量。

使用道具 举报

回复
论坛徽章:
277
马上加薪
日期:2014-02-19 11:55:14马上有对象
日期:2014-02-19 11:55:14马上有钱
日期:2014-02-19 11:55:14马上有房
日期:2014-02-19 11:55:14马上有车
日期:2014-02-19 11:55:14马上有车
日期:2014-02-18 16:41:112014年新春福章
日期:2014-02-18 16:41:11版主9段
日期:2012-11-25 02:21:03ITPUB年度最佳版主
日期:2014-02-19 10:05:27现任管理团队成员
日期:2011-05-07 01:45:08
26#
 楼主| 发表于 2014-1-7 13:05 | 只看该作者
Over.

使用道具 举报

回复

您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

TOP技术积分榜 社区积分榜 徽章 团队 统计 知识索引树 积分竞拍 文本模式 帮助
  ITPUB首页 | ITPUB论坛 | 数据库技术 | 企业信息化 | 开发技术 | 微软技术 | 软件工程与项目管理 | IBM技术园地 | 行业纵向讨论 | IT招聘 | IT文档
  ChinaUnix | ChinaUnix博客 | ChinaUnix论坛
CopyRight 1999-2011 itpub.net All Right Reserved. 北京盛拓优讯信息技术有限公司版权所有 联系我们 未成年人举报专区 
京ICP备16024965号-8  北京市公安局海淀分局网监中心备案编号:11010802021510 广播电视节目制作经营许可证:编号(京)字第1149号
  
快速回复 返回顶部 返回列表