3.2. 基础配置

3.2.1. 基础 CouchDB 选项

[couchdb]
attachment_stream_buffer_size

较高的值可能会导致更好的读取性能,因为读取操作更少,或者更多操作系统页面缓存命中。但是,当有许多附件写入请求同时进行时,它们也会增加写入的总体响应时间。

[couchdb]
attachment_stream_buffer_size = 4096
database_dir

指定 CouchDB 数据库文件(*.couch 命名)的位置。此位置应可供 CouchDB 服务运行的用户(默认情况下为 couchdb)写入和读取。

[couchdb]
database_dir = /var/lib/couchdb
default_security

在版本 3.0 中更改: admin_only 现在是默认值。

如果未显式设置,则为数据库的默认安全对象。当设置为 everyone 时,任何人都可以执行读写操作。当设置为 admin_only 时,只有管理员可以读写。当设置为 admin_local 时,分片数据库可以被任何人读写,但分片只能被管理员读写。

[couchdb]
default_security = admin_only
enable_database_recovery

启用此选项仅在发出 DELETE /{db} DELETE 请求时“软删除”数据库。这将使用 <dbname>.YMD.HMS.deleted.couchdb 形式的后缀重命名数据库的所有分片。然后,您可以根据需要手动删除这些文件。

默认值为 false

[couchdb]
enable_database_recovery = false
file_compression

在版本 1.2 中更改: 添加了 Google Snappy 压缩算法。

用于压缩附加到数据库和视图索引文件的所有内容的方法,附件除外(请参阅 attachments 部分)。可用方法为

  • none: 无压缩

  • snappy: 使用 Google Snappy,一种非常快速的压缩器/解压缩器

  • deflate_N: 使用 zlib 的 deflate;N 是压缩级别,范围从 1(最快,压缩率最低)到 9(最慢,压缩率最高)

[couchdb]
file_compression = snappy
maintenance_mode

通过设置此配置参数,可以将 CouchDB 节点置于两种不同的维护模式。

  • true: 该节点将不会响应来自其他节点的集群请求,并且 /_up 端点将返回 404 响应。

  • nolb: /_up 端点将返回 404 响应。

  • false: 该节点正常响应,/_up 返回 200 响应。

预计管理员已在集群中的 CouchDB 节点前面配置了负载均衡器。此负载均衡器应使用 /_up 端点来确定是否将 HTTP 请求发送到任何特定节点。对于 HAProxy,以下配置是合适的

http-check disable-on-404
option httpchk GET /_up
max_dbs_open

此选项对可以同时打开的数据库数量设置上限。CouchDB 在内部对数据库访问进行引用计数,并将根据需要关闭空闲数据库。有时需要同时保持比默认值更多的数据库打开,例如在许多数据库将持续复制的部署中。

[couchdb]
max_dbs_open = 100
max_document_size

在版本 3.0.0 中更改。

限制最大文档主体大小。大小是根据 JSON 文档主体序列化后的 Erlang 表示形式计算的,因为这更准确地反映了磁盘上消耗的存储量。特别是,此限制不包括附件。

如果一个或多个文档大于此配置值,则创建或更新文档的 HTTP 请求将失败,并显示错误代码 413。

_update 处理程序的情况下,文档大小将在转换后且在插入数据库之前进行检查。

[couchdb]
max_document_size = 8000000 ; bytes

警告

在版本 2.1.0 之前,此设置是通过简单地检查 http 请求主体大小来实现的。对于通过 PUT 进行的单个文档更新,该近似值足够接近,但是对于 _bulk_docs 端点来说情况并非如此。在 2.1.0 之后,定义了一个单独的配置参数:chttpd/max_http_request_size,它可用于限制最大 http 请求大小。升级后,建议您查看这些设置并相应地调整它们。

os_process_timeout

如果外部进程(例如查询服务器或外部进程)运行了此毫秒数而没有返回任何结果,它将被终止。保持此值较小可以确保您获得及时的错误,但您可能需要根据您的特定需求对其进行调整。

[couchdb]
os_process_timeout = 5000 ; 5 sec
single_node

在版本 3.0.0 中新增。

当此配置设置设置为 true 时,在启动时自动创建系统数据库。对于集群式 CouchDB 安装,必须设置为 false

uri_file

此文件包含可用于访问此 CouchDB 实例的完整 URI。它用于帮助发现 CouchDB 运行的端口(如果它被设置为 0(例如自动分配任何空闲端口)。此文件应可供运行 CouchDB 服务的用户(默认情况下为 couchdb)写入和读取。

[couchdb]
uri_file = /var/run/couchdb/couchdb.uri
users_db_security_editable

在版本 3.0.0 中新增。

当此配置设置设置为 false 时,拒绝任何修改 _users 数据库安全对象的尝试。在 3.x 中,修改此对象已弃用,并且将在 CouchDB 4.x 中完全禁止。

users_db_suffix

指定用于存储 CouchDB 用户的系统数据库的后缀(名称的最后一个部分)。

[couchdb]
users_db_suffix = _users

警告

如果您更改了数据库名称,请不要忘记删除或清理旧数据库,因为它将不再受 CouchDB 保护。

util_driver_dir

指定二进制驱动程序(icuejson 等)的位置。此位置及其内容应可供运行 CouchDB 服务的用户读取。

[couchdb]
util_driver_dir = /usr/lib/couchdb/erlang/lib/couch-1.5.0/priv/lib
uuid

在版本 1.3 中新增。

此 CouchDB 服务器实例的唯一标识符。

[couchdb]
uuid = 0a959b9b8227188afc2ac26ccdf345a6
view_index_dir

指定 CouchDB 视图索引文件的位置。此位置应可供运行 CouchDB 服务的用户(默认情况下为 couchdb)写入和读取。

[couchdb]
view_index_dir = /var/lib/couchdb