Құжатқа бағытталған ДҚБЖ Apache CouchDB 3.0 шығарылымы

Орын алу таратылған құжатқа бағытталған деректер қорын шығару Apache CouchDB 3.0, NoSQL жүйелерінің класына жатады. Жоба көздері кеңейтіңіз Apache 2.0 бойынша лицензияланған.

ЖақсартуларApache CouchDB 3.0 жүйесінде енгізілген:

  • Әдепкі конфигурация жақсартылды.
    Іске қосу кезінде әкімші пайдаланушыны анықтау керек, онсыз сервер қатемен аяқталады (аутентификациясыз қол жеткізуді байқаусызда қалдыратын серверлерді іске қосу мәселелерін шешуге мүмкіндік береді). "/_all_dbs" қызметіне қоңыраулар енді әкімшілік құқықтарды талап етеді және барлық дерекқорлар әдепкі бойынша тек әкімші пайдаланушыға қол жетімді түрде жасалады (қатынау параметрлерін "_security" нысаны арқылы өзгертуге болады). Әдепкі бойынша, _users дерекқорындағы нысандарды өңдеуге тыйым салынады;

  • Қосылды сегменттер бойынша құжаттарды таратудың жеке ережелерін анықтауға мүмкіндік беретін пайдаланушы анықтайтын сегменттелген (бөлінген) дерекқорларды жасау мүмкіндігі (үзінді диапазон). Mango көріністері мен индекстеріне бөлінген дерекқорлар үшін арнайы оңтайландырулар қосылды;
  • Орындалды сегменттеу (бөлу) кезінде автоматты бөлу режимі. Мәліметтер базасында енді бөлшектеу деңгейін анықтау үшін қолданылатын q-фактор мәнін арттыруды ескере отырып, сегменттер арасында деректерді қайта бөлуге болады;
  • Қосылды ken автоматты фондық индекстеу және қосалқы индекстерді (JavaScript, Mango, мәтіндік іздеу индекстері) олардың құрылыс операцияларын нақты іске қоспай, жаңартып отыруға арналған ішкі жүйесі;
  • Дерекқорды автоматты түрде орау үшін қолданылатын тегістеу процесі толығымен қайта жазылды;
  • Жаңа шағын жүйе ұсынылды IO кезегі, белгілі бір операциялар үшін енгізу/шығару басымдылығын өзгерту үшін пайдаланылады;
  • Регрессиялық тестілеу жүйесі енгізілді;
  • arm64v8 (aarch64) және ppc64le (ppc64el) платформаларына ресми қолдау қосылды;
  • ES1.8.5, ES60 және ES5+ үшін жақсартылған қолдауы бар SpiderMonkey 6 (Firefox 2016 жүйесінің ESR тармағы) JavaScript қозғалтқышымен байланыстыруға қолдау қосылды;
  • Іздеу жүйесі енгізілген Dreyfus 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 Мбайтқа дейін азайтылды, бұл CouchDB 3.0 нұсқасына жаңартқаннан кейін ескі серверлерден деректерді репликациялауда ақауларды тудыруы мүмкін. Шекті арттыру үшін «[couchdb] max_document_size» параметрін пайдалануға болады;
  • _репликатор және _сыртқы шақырулар, диск_өлшемі және деректер_өлшемі өрістері және кешіктірілген_тауарлар опциясы сияқты ескірген мүмкіндіктерді үлкен тазалау жүргізілді;
  • 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 тілінде жазылған және Mozilla жобасындағы JavaScript қозғалтқышына негізделген. Дерекқорға кіру деректерге, соның ішінде шолғышта жұмыс істейтін веб-қосымшалардан қол жеткізуге мүмкіндік беретін RESTful JSON API көмегімен HTTP протоколы арқылы жүзеге асырылады.

Деректерді сақтау бірлігі – бірегей идентификаторы, нұсқасы бар және кілт/мән пішіміндегі аталған өрістердің ерікті жиынын қамтитын құжат. Ерікті құжаттардан деректердің псевдоқұрылымдық жинағын ұйымдастыру үшін (агрегация және таңдау) көріністерді (көріністерді) қалыптастыру тұжырымдамасы пайдаланылады, қай JavaScript тілі қолданылатынын анықтау үшін. JavaScript сонымен қатар белгілі бір көріністе жаңа құжаттарды қосқан кезде деректерді тексеру функцияларын анықтай алады.

Ақпарат көзі: opennet.ru

пікір қалдыру