ืฉื—ืจื•ืจ ื”-DBMS Apache CouchDB 3.0 ืžื•ื ื—ื” ืžืกืžื›ื™ื

ื”ืชืจื—ืฉ ืฉื—ืจื•ืจ ืฉืœ ืžืกื“ ื ืชื•ื ื™ื ืžื‘ื•ื–ืจ ืžื•ื ื—ื” ืžืกืžื›ื™ื Apache CouchDB 3.0, ื”ืฉื™ื™ืš ืœืžื—ืœืงืช ืžืขืจื›ื•ืช NoSQL. ืžืงื•ืจื•ืช ื”ืคืจื•ื™ืงื˜ ื”ืชืคืฉื˜ื•ืช ืžื•ืจืฉื” ืชื—ืช Apache 2.0.

ืฉื™ืคื•ืจื™ืืžื™ื•ืฉื ื‘- Apache CouchDB 3.0:

  • ืชืฆื•ืจืช ื‘ืจื™ืจืช ื”ืžื—ื“ืœ ืฉื•ืคืจื”.
    ื‘ืขืช ื”ื”ืคืขืœื”, ื™ืฉ ืœื”ื’ื“ื™ืจ ื›ืขืช ืืช ืžืฉืชืžืฉ ื”-admin, ืฉื‘ืœืขื“ื™ื• ื”ืฉืจืช ื™ืกืชื™ื™ื ืขื ืฉื’ื™ืื” (ืžืืคืฉืจ ืœืš ืœืคืชื•ืจ ื‘ืขื™ื•ืช ื‘ื”ืคืขืœืช ืฉืจืชื™ื ืฉืžืฉืื™ืจื™ื ื‘ื˜ืขื•ืช ื’ื™ืฉื” ืœืœื ืื™ืžื•ืช). ืงืจื™ืื•ืช ืœ-"/_all_dbs" ื“ื•ืจืฉื•ืช ื›ืขืช ื–ื›ื•ื™ื•ืช ืžื ื”ืœ, ื•ื›ืœ ืžืกื“ื™ ื”ื ืชื•ื ื™ื ื ื•ืฆืจื™ื ื›ื‘ืจื™ืจืช ืžื—ื“ืœ, ื ื’ื™ืฉื™ื ืจืง ืœืžืฉืชืžืฉ ื”ืื“ืžื™ืŸ (ื ื™ืชืŸ ืœืฉื ื•ืช ืคืจืžื˜ืจื™ ื’ื™ืฉื” ื“ืจืš ื”ืื•ื‘ื™ื™ืงื˜ "_security"). ื›ื‘ืจื™ืจืช ืžื—ื“ืœ, ืขืจื™ื›ืช ืื•ื‘ื™ื™ืงื˜ื™ื ื‘ืžืกื“ ื”ื ืชื•ื ื™ื _users ืืกื•ืจื”;

  • ื ื•ืกืฃ ื”ื™ื›ื•ืœืช ืœื™ืฆื•ืจ ืžืกื“ื™ ื ืชื•ื ื™ื ืžืคื•ืœื—ื™ื (ืžื—ื•ืœืงื™ื) ื”ืžื•ื’ื“ืจื™ื ืขืœ ื™ื“ื™ ื”ืžืฉืชืžืฉ, ืžื” ืฉืžืืคืฉืจ ืœื”ื’ื“ื™ืจ ื›ืœืœื™ื ืžืฉืœืš ืœื”ืคืฆืช ืžืกืžื›ื™ื ื‘ื™ืŸ ืžืงื˜ืขื™ื (ื˜ื•ื•ื— ืจืกื™ืกื™ื). ื ื•ืกืคื• ืื•ืคื˜ื™ืžื™ื–ืฆื™ื•ืช ืžื™ื•ื—ื“ื•ืช ืขื‘ื•ืจ ืžืกื“ื™ ื ืชื•ื ื™ื ืžืคื•ืฆืœื™ื ืœืชืฆื•ื’ื•ืช ื•ืื™ื ื“ืงืกื™ื ืฉืœ ืžื ื’ื•;
  • ืžื•ื˜ืžืข ืžืฆื‘ ื—ืœื•ืงื” ืื•ื˜ื•ืžื˜ื™ืช ื‘ืžื”ืœืš ืคื™ืœื•ื— (ืจื™ืกื•ืง). ื‘ืžืกื“ ื”ื ืชื•ื ื™ื ื ื™ืชืŸ ื›ื™ื•ื ืœื—ืœืง ืžื—ื“ืฉ ื ืชื•ื ื™ื ื‘ื™ืŸ ืžืงื˜ืขื™ื, ืชื•ืš ื”ืชื—ืฉื‘ื•ืช ื‘ืขืœื™ื™ื” ืฉืœ ืขืจืš ื”-q-factor ื”ืžืฉืžืฉ ืœืงื‘ื™ืขืช ืจืžืช ื”ืคื™ืจื•ืง;
  • ื ื•ืกืฃ ืชืช-ืžืขืจื›ืช ken ืœืื™ื ื“ืงืก ืื•ื˜ื•ืžื˜ื™ ืฉืœ ืจืงืข ื•ืฉืžื™ืจื” ืขืœ ืื™ื ื“ืงืกื™ื ืžืฉื ื™ื™ื (JavaScript, Mango, ืื™ื ื“ืงืกื™ื ืฉืœ ื—ื™ืคื•ืฉ ื˜ืงืกื˜) ืขื“ื›ื ื™ื•ืช ืžื‘ืœื™ ืœื”ืคืขื™ืœ ื‘ืžืคื•ืจืฉ ืืช ืคืขื•ืœื•ืช ื”ื‘ื ื™ื™ื” ืฉืœื”ื;
  • ืชื”ืœื™ืš ื”-smoosh ื”ืžืฉืžืฉ ืœืืจื™ื–ืช ืžืกื“ ื ืชื•ื ื™ื ืื•ื˜ื•ืžื˜ื™ืช ืฉื•ื›ืชื‘ ืœื—ืœื•ื˜ื™ืŸ;
  • ืชืช-ืžืขืจื›ืช ื—ื“ืฉื” ืžื•ืฆืขืช ืชื•ืจ IO, ืžืฉืžืฉ ืœืฉื™ื ื•ื™ ืขื“ื™ืคื•ืช ื”ืงืœื˜/ืคืœื˜ ืขื‘ื•ืจ ืคืขื•ืœื•ืช ืžืกื•ื™ืžื•ืช;
  • ื”ื˜ืžื™ืข ืžืขืจื›ืช ื‘ื“ื™ืงื•ืช ืจื’ืจืกื™ื”;
  • ื ื•ืกืคื” ืชืžื™ื›ื” ืจืฉืžื™ืช ืขื‘ื•ืจ ืคืœื˜ืคื•ืจืžื•ืช arm64v8 (aarch64) ื•-ppc64le (ppc64el);
  • ื ื•ืกืคื” ืชืžื™ื›ื” ื‘ืงื™ืฉื•ืจ ืœืžื ื•ืข ื”-JavaScript SpiderMonkey 1.8.5 (ืขื ืฃ ESR ืฉืœ Firefox 60) ืขื ืชืžื™ื›ื” ืžืฉื•ืคืจืช ืขื‘ื•ืจ ES5, ES6 ื•-ES2016+;
  • ืžื ื•ืข ื—ื™ืคื•ืฉ ื›ืœื•ืœ ื“ืจื™ื™ืคื•ืก ืžื‘ื•ืกืก ืขืœ Lucene, ืžื” ืฉืžืคืฉื˜ ืžืื•ื“ ืืช ื”ืคืจื™ืกื” ืฉืœ ืžื ื•ืข ื—ื™ืคื•ืฉ ื”ืžื‘ื•ืกืก ืขืœ CouchDB;
  • ื”ื•ืกืคื” ืื—ื•ืจื™ ืœืจื™ืฉื•ื ื‘ืืžืฆืขื•ืช systemd-journald;
  • ื”ื•ืกืคื” ืืช ื”ื”ื’ื“ืจื” "[couchdb] single_node", ื›ืืฉืจ ื”ื™ื ืžื•ื’ื“ืจืช, CouchDB ืชื™ืฆื•ืจ ืื•ื˜ื•ืžื˜ื™ืช ืžืกื“ื™ ื ืชื•ื ื™ื ืฉืœ ืžืขืจื›ืช ืื ื”ื ื—ืกืจื™ื;
  • ื”ื‘ื™ืฆื•ืขื™ื ืฉืœ ืชื”ืœื™ืš couch_server ืขื‘ืจื• ืื•ืคื˜ื™ืžื™ื–ืฆื™ื”;
  • ืชื•ื›ื ื™ืช ื”ื”ืชืงื ื” ืฉืœ ืคืœื˜ืคื•ืจืžืช Windows ืฉื•ืคืจื” ืžืฉืžืขื•ืชื™ืช;
  • ื”ืฆืคื™ื•ืช ืžื•ื’ื‘ืœื•ืช ืœ-2^28 (268435456) ืชื•ืฆืื•ืช. ื ื™ืชืŸ ืœื”ื’ื“ื™ืจ ืžื’ื‘ืœื” ื–ื• ื‘ื ืคืจื“ ืขื‘ื•ืจ ืชืฆื•ื’ื•ืช ืจื’ื™ืœื•ืช ื•ืžืคื•ืœื—ื•ืช ื‘ืืžืฆืขื•ืช ืืคืฉืจื•ื™ื•ืช query_limit ื•-partition_query_limit ื‘ืงื˜ืข "[query_server_config]";
  • ืžืžืฉืง ื ืคืจื“ ืœื ื™ื”ื•ืœ ืฆื•ืžืช HTTP ืžืงื•ืžื™, ืฉื”ื•ืฉืง ื‘ื™ืฆื™ืืช ืจืฉืช 5986, ื”ื•ืกืจ, ืฉื”ืคื•ื ืงืฆื™ื•ื ืœื™ื•ืช ืฉืœื• ื–ืžื™ื ื” ื›ืขืช ื“ืจืš ืžืžืฉืง ื ื™ื”ื•ืœ ื”ืืฉื›ื•ืœื•ืช ื”ืžืฉื•ืชืฃ;
  • ื’ื•ื“ืœ ื”ืžืกืžืš ื”ืžืจื‘ื™ ื”ืฆื˜ืžืฆื ืœ-8 MB, ืžื” ืฉืขืœื•ืœ ืœื’ืจื•ื ืœื‘ืขื™ื•ืช ื‘ืฉื›ืคื•ืœ ื ืชื•ื ื™ื ืžืฉืจืชื™ื ื™ืฉื ื™ื ื™ื•ืชืจ ืœืื—ืจ ืฉื“ืจื•ื’ ืœ-CouchDB 3.0. ื›ื“ื™ ืœื”ื’ื“ื™ืœ ืืช ื”ืžื’ื‘ืœื”, ืืชื” ื™ื›ื•ืœ ืœื”ืฉืชืžืฉ ื‘ื”ื’ื“ืจื” "[couchdb] max_document_size";
  • ื‘ื•ืฆืข ื ื™ืงื•ื™ ื’ื“ื•ืœ ืฉืœ ืชื›ื•ื ื•ืช ืžื™ื•ืฉื ื•ืช, ื›ื’ื•ืŸ ื”-_replicator ื•_external calls, ืฉื“ื•ืช ื“ื™ืกืง_size ื•-data_size ื•ืืคืฉืจื•ืช delayed_commits;
  • ื”ืคืขืœืช CouchDB ื“ื•ืจืฉืช ื›ืขืช Erlang/OTP 20.3.8.11+, 21.2.3+ ืื• 22.0.5. ืชื™ืื•ืจื˜ื™ืช, ื”ืคื•ื ืงืฆื™ื•ื ืœื™ื•ืช ืขื ืขื ืฃ Erlang/OTP 19 ื ืฉืžืจืช, ืืš ื”ื™ื ืžื›ื•ืกื” ืขืœ ื™ื“ื™ ื‘ื“ื™ืงื•ืช.

ื ื–ื›ื™ืจ ืฉ-CouchDB ืžืื—ืกืŸ ื ืชื•ื ื™ื ื‘ืคื•ืจืžื˜ ืจืฉื™ืžื” ืžืกื•ื“ืจืช ื•ืžืืคืฉืจ ืฉื›ืคื•ืœ ื—ืœืงื™ ืฉืœ ื ืชื•ื ื™ื ื‘ื™ืŸ ืžืกืคืจ ืžืกื“ื™ ื ืชื•ื ื™ื ื‘ืžืฆื‘ ืžืืกื˜ืจ-ืžืืกื˜ืจ ืขื ื–ื™ื”ื•ื™ ื•ืคืชืจื•ืŸ ืกื™ืžื•ืœื˜ื ื™ ืฉืœ ืžืฆื‘ื™ ืงื•ื ืคืœื™ืงื˜. ื›ืœ ืฉืจืช ืžืื—ืกืŸ ืงื‘ื•ืฆืช ื ืชื•ื ื™ื ืžืงื•ืžื™ืช ืžืฉืœื•, ื”ืžืกื•ื ื›ืจื ืช ืขื ืฉืจืชื™ื ืื—ืจื™ื, ืื•ืชื ื ื™ืชืŸ ืœื”ืขื‘ื™ืจ ืœื ืžืงื•ื•ืŸ ื•ืœืฉื›ืคืœ ืฉื™ื ื•ื™ื™ื ืžืขืช ืœืขืช. ื‘ืžื™ื•ื—ื“, ืชื›ื•ื ื” ื–ื• ื”ื•ืคื›ืช ืืช CouchDB ืœืคืชืจื•ืŸ ืื˜ืจืงื˜ื™ื‘ื™ ืœืกื ื›ืจื•ืŸ ื”ื’ื“ืจื•ืช ืชื•ื›ื ื™ื•ืช ื‘ื™ืŸ ืžื—ืฉื‘ื™ื ืฉื•ื ื™ื. ืคืชืจื•ื ื•ืช ืžื‘ื•ืกืกื™ CouchDB ื™ื•ืฉืžื• ื‘ื—ื‘ืจื•ืช ื›ืžื• BBC, Apple ื•-CERN.

ื ื™ืชืŸ ืœื‘ืฆืข ืฉืื™ืœืชื•ืช CouchDB ื•ืื™ื ื“ืงืก ื ืชื•ื ื™ื ืœืคื™ ื”ืคืจื“ื™ื’ืžื” MapReduce, ืฉื™ืžื•ืฉ ื‘-JavaScript ืœื™ืฆื™ืจืช ืœื•ื’ื™ืงื” ืฉืœ ื“ื’ื™ืžืช ื ืชื•ื ื™ื. ืœื™ื‘ืช ื”ืžืขืจื›ืช ื›ืชื•ื‘ื” ื‘-Erlang, ืืฉืจ ืžื•ืชืืžืช ืœื™ืฆื™ืจืช ืžืขืจื›ื•ืช ืžื‘ื•ื–ืจื•ืช ื”ืžืฉืจืชื•ืช ืžืกืคืจ ื‘ืงืฉื•ืช ืžืงื‘ื™ืœื•ืช. ืฉืจืช ื”ืชืฆื•ื’ื” ื›ืชื•ื‘ ื‘-C ื•ืžื‘ื•ืกืก ืขืœ ืžื ื•ืข JavaScript ืžืคืจื•ื™ืงื˜ ืžื•ื–ื™ืœื”. ื”ื’ื™ืฉื” ืœืžืกื“ ื”ื ืชื•ื ื™ื ืžืชื‘ืฆืขืช ื‘ืืžืฆืขื•ืช ืคืจื•ื˜ื•ืงื•ืœ HTTP ื‘ืืžืฆืขื•ืช RESTful JSON API, ื”ืžืืคืฉืจ ื’ื™ืฉื” ืœื ืชื•ื ื™ื, ื›ื•ืœืœ ืžื™ื™ืฉื•ืžื™ ืื™ื ื˜ืจื ื˜ ื”ืคื•ืขืœื™ื ื‘ื“ืคื“ืคืŸ.

ื™ื—ื™ื“ืช ืื—ืกื•ืŸ ื”ื ืชื•ื ื™ื ื”ื™ื ืžืกืžืš ื‘ืขืœ ืžื–ื”ื” ื™ื™ื—ื•ื“ื™, ื’ืจืกื” ื•ืžื›ื™ืœ ืงื‘ื•ืฆื” ืฉืจื™ืจื•ืชื™ืช ืฉืœ ืฉื“ื•ืช ื‘ืขืœื™ ืฉื ื‘ืคื•ืจืžื˜ ืžืคืชื—/ืขืจืš. ื›ื“ื™ ืœืืจื’ืŸ ืกื˜ ื ืชื•ื ื™ื ืžื•ื‘ื ื” ืคืกืื•ื“ื• ืžืžืกืžื›ื™ื ืฉืจื™ืจื•ืชื™ื™ื (ืฆื‘ื™ืจื” ื•ื‘ื—ื™ืจื”), ื ืขืฉื” ืฉื™ืžื•ืฉ ื‘ืžื•ืฉื’ ื™ืฆื™ืจืช ืชืฆื•ื’ื•ืช (ืฆืคื™ื•ืช), ื›ื“ื™ ืœื”ื’ื“ื™ืจ ื‘ืื™ื–ื• ืฉืคืช JavaScript ืžืฉืžืฉืช. JavaScript ื™ื›ื•ืœ ื’ื ืœื”ื’ื“ื™ืจ ืคื•ื ืงืฆื™ื•ืช ืœืื™ืžื•ืช ื ืชื•ื ื™ื ื‘ืขืช ื”ื•ืกืคืช ืžืกืžื›ื™ื ื—ื“ืฉื™ื ื‘ืชืฆื•ื’ื” ืžืกื•ื™ืžืช.

ืžืงื•ืจ: OpenNet.ru

ื”ื•ืกืคืช ืชื’ื•ื‘ื”