论文部分内容阅读
rNoSql代表rafaello’s NoSql database,它是一个分布式的非关系型数据库系统,设计这个数据库的目的是为了处理吉林社保系统中数以百万的参保信息,这些数据将被分布放置在数百台普通的PC服务器上,其总容量可能达到PB级的。不同的应用对rNoSql提出的要求差异非常大,有些是在数据量上而另外一些是在响应速度上。尽管应用需求差异很大,最总rNoSql仍旧提供了一个灵活并且高性能的解决方案。本论文将描述rNoSql提供的基础数据模型,利用这个模型,我们将可以动态的控制数据的分布和格式;我也将解释rNoSql的设计和实现过程。rNoSql将自己管理的所有服务器组称作“数据群”,每个数据群又由一个或数个“数据子群”组成,子群的成员是“节点服务器”,节点服务器是rNoSql系统的最小单位,每个子群处理整个数据集合中的一部分内容,所有的子群和节点服务器在结构上都是平行单位,彼此独立处理事务.rNoSql在分布式架构上参考了流行的P2P软件如BT和电骡的一些设计,首先被启动的服务器被称作“种子服务器”或“根”服务器,其他服务器将根据种子服务器提供的种子创建,并加入到服务器群组中,但是其他节点服务器并不受种子服务器管理,所有节点服务器都可以动态的添加并且制定其负责的具体数据范围。rNoSql的客户端通过种子服务器生成的种子文件与种子服务器建立连接,并且获得种子服务器保存的节点服务器列表,客户端遍历这个列表并且依次与这些节点建立连接,当查询业务发生时,客户端将同时与这些节点服务器发生联系,最后将这些节点服务器返回的结果汇总起来作为查询结果。为了保证rNoSql与传统的关系型数据库的兼容性,rNoSql的数据模型被设计为与传统的关系型数据库类似,也提供了诸如“表”,“字段”以及“行”,“列”等相关概念,同时rNoSql提供了一个在语法和语义上与SQL语言类似的非关系型查询语言,被称作RQL(rNoSql Query Language),该语言提供了类似SQL的表达方式,例如select,from和where等关键字,并不支持多表关联查询,使用RQL,数据库操作人员可以更方便的操作rNoSql内部的数据,降低学习曲线,减小学习难度。rNoSql的持久化是由其自身完成的,既一个rNoSql数据群本身使用另一个由rNoSql作为核心组件的分布式文件系统RFS(r`FileSystem)作为持久化工具,但是通常的,这个持久化工具只运行在本地的硬件环境上。SVN:http://javaforge.com/svn/rNoSql用户名:raffaello密码:711004