1.7. 2.0.x分支¶
1.7.1. 版本2.0.0¶
- 现在支持本机集群。与其在多个不同的CouchDB服务器之间使用CouchDB复制,不如配置一个CouchDB节点集群。这些节点将使用优化的Erlang驱动的“内部复制”,以确保数据的持久性和可访问性。将集群CouchDB与负载平衡器(例如
haproxy
)水平缩放CouchDB。有关群集功能的更多详细信息,请参阅 集群管理 . - Futon 取而代之的是全新的,完全重新设计的 Fauxton 接口。URL保持不变。
- 新的Mango查询服务器提供了一种简单的基于JSON的方法来执行CouchDB查询,而不需要JavaScript或MapReduce。与Erlang查询相比,Mango查询具有与JavaScript查询相似的索引速度优势(根据文档大小和系统配置,索引速度提高了2-10倍)。我们建议所有新应用开始使用芒果作为默认设置。有关详细信息,请参阅 _find, _index and _explain API .
- 芒果 selectors 可用于_changesfeed而不是JavaScript MapReduce过滤器。在这个应用程序中,Mango已经被测试为比JavaScript快一个数量级(10倍)。
- Rewrite rules for url可以使用JavaScript函数执行。
- Multiple queries 可以由具有单个HTTP请求的视图组成。
- 可以在关闭排序的情况下查询视图(
sorted=false
)为了提高性能。 - “全球变化”订阅源已得到增强。它现在是可恢复和持久的。
- 添加了新端点(文档即将提供):
- /_membership 显示群集中的所有节点
/_bulk_get
通过低延迟连接加速复制协议/_node/
访问单个节点的配置和压缩特性的api/_cluster_setup
从头建立集群的api。/_up
向负载平衡器发送节点运行状况信号的api/db/_local_docs
和/db/_design_docs
(类似于/db/_all_docs
)
- 这个
/_log
终结点已删除。 - 端口5986上的“后端”接口用于特定的群集管理任务。感兴趣的是
_nodes
和_dbs
仅通过此接口可见的数据库。 - 增加了对Erlang/otp17.x、18.x和19的支持
- 为类Unix系统和microsoftwindows编写的新的流线型构建系统
- Configuration has moved from
/_config
to/_node/{node-name}/_config
instance_start_time
现在总是报告"0"
.
1.7.2. 升级说明¶
- 返回的更新序列 /db/_changes feed不再是整数。它们可以是任何JSON值。应用程序应将它们视为不透明值,并按原样返回CouchDB。
- 不再支持临时视图。
- 有可能有多个replicator数据库。
replicator/db
配置选项已删除。取而代之的是_replicator
以及任何以/_replicator
后缀将被系统识别为复制器数据库。 - 注意,由于集群特性的引入,一些API调用的语义已经改变。具体地说,注意接收
201
和A202
存储文档时。 all_or_nothing
不再受 bulk_docs API- 更新包含
show
,一个立即得到相同的show
函数仍可能返回上一个定义的结果。这是由于设计文档缓存,完全清除可能需要几秒钟,对于群集安装,可能需要更长时间(最多30秒)。
1.7.3. 已知问题¶
所有 known issues 针对2.0版本的文件包含在官方文件中 CouchDB JIRA instance 或 CouchDB GitHub Issues .
以下是2.0.0版中未及时修复的已知问题的一些亮点:
COUCHDB-2980 :复制器(是否通过
_replicate
或存储在_replicator
数据库)了解两种来源和目标:- 一个URL(例如。,
https://foo:bar@foo.com/db1
),称为“远程”源或目标 - 数据库名称(例如。,
db1
),称为“本地”源或目标。
无论何时使用后一种类型,都会引用本地未群集的数据库,而不是集群数据库。
在未来的版本中,我们希望支持集群数据库的“本地”源或目标规范。目前,我们建议始终对源规范和目标规范使用URL格式。
- 一个URL(例如。,
COUCHDB-3034 :CouchDB在多个客户机尝试同时放置或删除同一个数据库时,偶尔会返回500个错误。
COUCHDB-3119 :如果Erlang节点名不是,则向集群添加节点失败
couchdb
(形式)couchdb@hostname
)COUCHDB-3050 :偶尔
dev/run
用于开发目的以启动本地3节点群集的脚本将无法启动一个或多个节点。COUCHDB-2817 :压缩守护程序只压缩包含设计文档的碎片的视图。
COUCHDB-2804 :群集接口上未启用fast_-view优化。
#656 :OAuth 1.0支持已中断并已弃用。它将在CouchDB的未来版本中被删除。
1.7.4. 正在中断更改¶
2.0中的以下更改代表了与CouchDB 1.x的显著偏差,并可能会改变设计用于CouchDB旧版本的系统的行为:
- #620 :
POST /dbname
不再返回ETag响应头,符合rfc7231第7.2节。