用户您好!请先登录!

分类目录文件数据库

CouchDB-技术概述

1. 文档存储

一个承载着CouchDB服务器主机的数据库,以文档方式存储。每个文档在数据库中都有唯一的名称,CouchDB提供一个RESTful HTTP API来读取和更新(添加、编辑、删除)数据库文档。

文档是CouchDB中的主要数据单元,由任意数量的字段和附件组成。文档还包括数据库系统维护的元数据。文档字段是唯一命名的,并且包含不同类型的值(文本、数字、布尔值、列表等),并且没有对文本大小或元素数量的设置限制。

CouchDB文档更新模型是无锁且乐观的。文档编辑是通过客户机应用程序加载文档、应用更改并将它们保存回数据库来完成的。如果另一个编辑相同文档的客户端首先保存其更改,则客户端在保存时将获得编辑冲突错误。要解决更新冲突,可以打开最新的文档版本,重新应用编辑并再次尝试更新。

阅读更多

WiredTiger存储引擎原理

Mongodb-3.2已经WiredTiger设置为了默认的存储引擎,最近通过阅读wiredtiger源代码(在不了解其内部实现的情况下,读代码难度相当大,代码量太大,强烈建议官方多出些介绍文章),理清了wiredtiger的大致原理,并简单总结,不保证内容都是正确的,如有问题请指出,欢迎讨论交流。

按照Mongodb默认的配置,WiredTiger的写操作会先写入Cache,并持久化到WAL(Write ahead log),每60s或log文件达到2GB时会做一次Checkpoint,将当前的数据持久化,产生一个新的快照。Wiredtiger连接初始化时,首先将数据恢复至最新的快照状态,然后根据WAL恢复数据,以保证存储可靠性。
0102-zyd-MongoDB WiredTiger存储引擎实现原理-1

阅读更多