白瘕风会出现什么状况 http://pf.39.net/bdfyy/zjdy/150408/4605030.html昨日,FoundationDB数据库宣布开源FoundationDBRecordLayer。既然提到了“层(layer)”这个概念,我们不妨在这里简单说一下FoundationDB和层之间的渊源。
“层(layer)”源于FoundationDB创立之初的理念——FoundationDB的愿景是从一个简单且强大的核内核开始,然后逐渐通过添加“层(layer)”以进行扩展。“层”通过为其模型的特定数据类型添加功能来扩展内核,并支持新的存储访问模式。
而最新开源的FoundationDBRecordLayer在FoundationDB之上提供了关系数据库语义,具有模式管理、索引功能和丰富的查询功能。
开源公告中还提到,FoundationDBRecordLayer已应用在Apple的生产环境中,以支持具有数亿用户的应用程序和服务。
基于FoundationDB构建的面向记录的数据库
和关系数据库一样,RecordLayer可以存储结构化数据,由RecordLayer管理的数据库支持包含字段和类型、模式、复杂的主索引和辅助索引以及声明性查询执行的记录。
RecordLayer还包括传统关系数据库中不常见的功能,例如支持复杂的嵌套数据类型、记录提交时的索引以及跨不同类型记录的索引和查询。
基于FoundationDB而构建的RecordLayer,不仅在分布式环境中继承了FoundationDB的ACID、可靠性和性能,而且还使用了FoundationDB的事务语义以提供类似于传统关系数据库的功能。
例如,RecordLayer的二级索引是以事务方式维护的,因此它们始终与最新的数据更改保持同步,减少了应用程序代码中的错误数量,并大大简化了应用程序开发。
为大规模数据库实例而生
RecordLayer天生就适用于大规模数据库实例,支持在单个FoundationDB集群中管理数百万个离散数据库实例。它的设计和核心功能集可以扩展到数百万并发用户和各种客户端应用程序生态系统,每个客户端应用程序都具备自有的数据模型和查询访问模式。
而为了简化操作,RecordLayer是无状态的,所以扩展就像启动实例一样简单。面对各种各样的工作负载和活动,RecordLayer通过可预测的方式严格限制和平衡用户之间的资源消耗。
据官方透露,RecordLayer和FoundationDB共同构成了AppleCloudKit的核心支撑。
FoundationDBRecordLayer的一些特性:
将记录表示为协议缓冲区消息,提供行业标准序列化和模式演变,支持嵌套和重复字段等功能。
支持充分利用ProtocolBuffer数据模型的事务性二级索引,此外,还有各种高级索引类型,包括聚合索引,如分组计数、全文索引、序数排名索引和可扩展功能索引。在可能的情况下,还可以利用FoundationDB的高级功能,如原子突变。
用于检索数据的声明性查询API和用于将这些查询转换为具体数据库操作的查询计划程序
更多关于FoundationDBRecordLayer的介绍查看(可跳转):