发布面向文档的 DBMS Apache CouchDB 3.0

发生 发布面向文档的分布式数据库 阿帕奇 CouchDB 3.0,属于NoSQL系统类。 项目来源 传播 在 Apache 2.0 下获得许可。

改进之处在 Apache CouchDB 3.0 中实现:

  • 默认配置已得到增强。
    启动时,现在必须定义管理员用户,否则服务器将因错误而终止(允许您解决启动服务器时无意中未经身份验证而离开访问权限的问题)。 现在,调用“/_all_dbs”需要管理员权限,并且默认情况下创建的所有数据库只能由管理员用户访问(可以通过“_security”对象更改访问参数)。 默认情况下,禁止编辑_users数据库中的对象;

  • 添加者 能够创建用户定义的分段(分区)数据库,从而可以定义自己的规则来跨分段(分片范围)分布文档。 Mango视图和索引中添加了针对分片数据库的特殊优化;
  • 实施的 分段(分片)时自动划分模式。 在数据库中,现在可以在各段之间重新分配数据,同时考虑到用于确定故障级别的 q 因子值的增加;
  • 添加者 ken 子系统,用于自动后台索引并保持二级索引(JavaScript、Mango、文本搜索索引)最新,无需显式启动其构建操作;
  • 用于自动数据库打包的smoosh流程已完全重写;
  • 提出新的子系统 IO队列,用于更改某些操作的I/O优先级;
  • 实施回归测试系统;
  • 新增对arm64v8(aarch64)和ppc64le(ppc64el)平台的官方支持;
  • 添加了对与 JavaScript 引擎 SpiderMonkey 1.8.5(Firefox 60 的 ESR 分支)链接的支持,并改进了对 ES5、ES6 和 ES2016+ 的支持;
  • 包含搜索引擎 德雷福斯 基于Lucene,大大简化了基于CouchDB的搜索引擎的部署;
  • 添加了使用 systemd-journald 进行日志记录的后端;
  • 添加“[couchdb] single_node”设置,设置后,如果系统数据库缺失,CouchDB将自动创建系统数据库;
  • couch_server进程的性能得到了优化;
  • Windows 平台的安装程序已得到显着改进;
  • 视图仅限于 2^28 (268435456) 个结果。 可以使用“[query_server_config]”部分中的query_limit和partition_query_limit选项为常规视图和分段视图单独配置此限制;
  • 删除了在网络端口 5986 上启动的单独 HTTP 本地节点管理界面,现在可以通过公共集群管理界面使用其功能;
  • 最大文档大小已减少到 8 MB,这可能会导致升级到 CouchDB 3.0 后从旧服务器复制数据时出现问题。 要增加限制,您可以使用“[couchdb] max_document_size”设置;
  • 已对过时功能进行了重大清理,例如 _replicator 和 _external 调用、disk_size 和 data_size 字段以及elasted_commits 选项;
  • 运行 CouchDB 现在需要 Erlang/OTP 20.3.8.11+、21.2.3+ 或 22.0.5。 理论上,Erlang/OTP 19 分支的功能会保留,但已被测试覆盖。

让我们回想一下,CouchDB 以有序列表格式存储数据,并允许在主-主模式下在多个数据库之间进行部分数据复制,同时检测和解决冲突情况。 每个服务器都存储自己的本地数据集,并与其他服务器同步,这些数据可以脱机并定期复制更改。 特别是,此功能使 CouchDB 成为在不同计算机之间同步程序设置的有吸引力的解决方案。 基于 CouchDB 的解决方案已在 BBC、Apple 和 CERN 等公司实施。

可以根据范式进行CouchDB查询和数据索引 映射简化,使用JavaScript生成数据采样逻辑。 系统核心是用 Erlang 编写的,它针对创建服务多个并行请求的分布式系统进行了优化。 视图服务器是用 C 语言编写的,基于 Mozilla 项目的 JavaScript 引擎。 对数据库的访问是通过使用 RESTful JSON API 的 HTTP 协议进行的,该 API 允许您访问数据,包括从浏览器中运行的 Web 应用程序访问数据。

数据存储单元是具有唯一标识符、版本并包含任意一组键/值格式的命名字段的文档。 为了组织来自任意文档的伪结构化数据集(聚合和选择),使用形成视图(视图)的概念来定义使用哪种 JavaScript 语言。 JavaScript 还可以定义在特定视图中添加新文档时验证数据的函数。

来源: opennet.ru

添加评论