CouchDB Apache CouchDB是一个开源数据库专注于易用性和成为完全拥抱web的数据库它是一个使用JSON作为存储格式JavaScript作为查询语言MapReduce和HTTP作为API的面向文档的NoSQL数据库其中一个显著的功能就是多主复制CouchDB的第一个版本发布在年在年成为了Apache的项目 不同于关系型数据库CouchDB没有将数据和关系存储在表格里替代的每个数据库是一个独立的文档集合每一个文档维护其自己独立的数据和自包涵的schema一个应用程序可能会访问多个数据库比如其中一个位于用户的手机上另一个位于在远程的服务器上文档的元数据包含版本信息让其能够合并可能因为数据库链接丢失导致的任何差异 CouchDB实现了一个多版本并发控制MVCC形式用来避免在数据库写操作的时候对文件进行加锁冲突留给应用程序去解决解决一个冲突的通用操作的是首先合并数据到其中一个文档然后删除旧的数据 其他功能包括文档级别的ACID语义和最终一致性MapReduce复制Replication它还支持通过一个做Futon的内置web应用程序来进行数据库管理