【资讯】开源和SaaS产品着手重构数据库
这是一种由Facebook.com开发并捐赠给Apache软件项目的工具,实际上它并不是数据库。事实上,它更像是一种将描述数据结构的文件转换为你选择的语言代码的预编译器。这类代码可能需要一些额外的库(Java提供一些将这些数据序列化为输出流的方法),但它加入您自己的代码。该项目包括用于许多主要语言(例如C、Perl、Java、PHP和Python)的程式化程序,旨在接受熟悉某种语言的编程员使用的不同的方言。程序员赋予它纲要(schema),它负责完成其他的工作。
ThruDB
它是将Lucene文本索引库与Thrift和许多用于在云中保存数据的工具连接在一起的连接层。更复杂的选择之一是将在硬盘上本地保存数据来实现快速存储,同时将交易集合复本发送给Amazon S3(简单存储服务)。目前该产品还未正式发布,因此你必须从Subversion库中下载代码。
MongoDB
它为不同节点上的存储接受JSON(JavaScript对象符号)键/值对,然后构建完全文本的值索引,从而使深入搜索数据内部结构成为可能。发起MongoDB开源项目的公司10gen还计划发布一个应用服务器。这种名为Babble的应用服务器运行在MongoDB上。而名为Auto-sharding的产品,即跨许多分散服务器的无共享分区,据说将在2009年下半年面世。
Hibernate Shards和HiveDB
现在有一些设计用于向传统数据库添加水平分区的工具,Hibernate Shards和HiveDB便是其中的代表。它们可以配合将查询发送给数据库群集中合适的服务器,它们通过Hibernate接口连接任意的数据库。
Voldemort
该项目构建了一张“巨大、分布式、一致、容错的散列表”。您所输入的键/值对,被序列化传送给云中某个位置的硬盘。这里没有查询,您不能请求某个范围内的域。你只能请求键,并得到结果。当数据同时保存在两个不同的节点时,Voldemort利用向量时钟(vector clock)选择胜利者。
HBase和Hypertable
这是两个旨在模拟Google BigTable的项目。HBase是利用Java开发的,运行在Hadoop之上,提供C++ API。Hypertable是用C++编写的,采用C++ API。
其他
许多在线服务为数据库提供很好的基于Web的接口。一些在线服务自称是“共享电子数据表”,但它们本质上还是数据库。这些SaaS产品包括,Caspio Bridge、DabbleDB.com和Zoho(Zoho Sheet和Zoho Creator),主要定位于商务人员,而不是程序员,但它们非常实用。
而如果您不想永远抛弃关系型数据库,可以使用Drizzle。它是一种由一些MySQL团队成员开发的派生产品。按照GNU公共许可证开发的新版本提供了许多MySQL曾努力试图具有的奇特的特性。