Փաստաթղթերի վրա հիմնված DBMS Apache CouchDB 3.0-ի թողարկում

տեղի ունեցավ բաշխված փաստաթղթերի վրա հիմնված տվյալների բազայի թողարկում Apache CouchDB 3.0NoSQL համակարգերի դասին պատկանող։ Ծրագրի աղբյուրները տարածվել լիցենզավորված Apache 2.0-ի համաձայն:

Բարելավումներիրականացված Apache CouchDB 3.0-ում.

  • Լռելյայն կոնֆիգուրացիան բարելավվել է:
    Սկսելիս այժմ պետք է սահմանվի ադմինիստրատորի օգտատերը, առանց որի սերվերը կդադարեցվի սխալմամբ (թույլ է տալիս լուծել խնդիրներ այն սերվերների գործարկման հետ, որոնք ակամա թողնում են մուտքն առանց նույնականացման): «/_all_dbs»-ի զանգերն այժմ պահանջում են ադմինիստրատորի իրավունքներ, և բոլոր տվյալների բազաները ստեղծվում են լռելյայնորեն, որոնք հասանելի են միայն ադմինիստրատորի օգտագործողին (մուտքի պարամետրերը կարող են փոխվել «_security» օբյեկտի միջոցով): Լռելյայնորեն, _users տվյալների բազայում օբյեկտների խմբագրումն արգելված է.

  • Ավելացված է օգտագործողի կողմից սահմանված հատվածավորված (բաժանված) տվյալների շտեմարաններ ստեղծելու ունակություն, ինչը հնարավորություն կտա սահմանել փաստաթղթերը սեգմենտներով բաշխելու ձեր սեփական կանոնները (բեկորային տիրույթ): Մանգո-ի դիտումներին և ինդեքսներին ավելացվել են հատուկ օպտիմիզացումներ բեկորային տվյալների բազաների համար;
  • Իրականացվել է ավտոմատ բաժանման ռեժիմը սեգմենտավորման ժամանակ (sharding): Տվյալների բազայում այժմ հնարավոր է վերաբաշխել տվյալները հատվածների միջև՝ հաշվի առնելով q-գործոնի արժեքի աճը, որն օգտագործվում է քայքայման մակարդակը որոշելու համար.
  • Ավելացված է ken ենթահամակարգ՝ ֆոնային ավտոմատ ինդեքսավորման և երկրորդական ինդեքսները (JavaScript, Mango, տեքստային որոնման ինդեքսներ) թարմացնելու համար՝ առանց դրանց շինարարական գործողությունների հստակ մեկնարկի.
  • Տվյալների տվյալների բազայի ավտոմատ փաթեթավորման համար օգտագործվող smoosh գործընթացը ամբողջությամբ վերաշարադրվել է.
  • Առաջարկվում է նոր ենթահամակարգ IO հերթ, օգտագործվում է որոշակի գործողությունների համար I/O առաջնահերթությունը փոխելու համար.
  • Իրականացրել է ռեգրեսիոն թեստավորման համակարգ;
  • Ավելացվել է պաշտոնական աջակցություն arm64v8 (aarch64) և ppc64le (ppc64el) հարթակների համար;
  • Ավելացվեց JavaScript շարժիչով SpiderMonkey 1.8.5 (Firefox 60-ի ESR մասնաճյուղ) կապելու աջակցություն՝ ES5, ES6 և ES2016+ բարելավված աջակցությամբ;
  • Ներառված է որոնման համակարգը Dreyfus Lucene-ի վրա հիմնված, ինչը մեծապես հեշտացնում է CouchDB-ի վրա հիմնված որոնման համակարգի տեղակայումը.
  • Ավելացվեց backend՝ systemd-journald-ի միջոցով գրանցման համար;
  • Ավելացվել է «[couchdb] single_node» պարամետրը, երբ սահմանված է, CouchDB-ն ավտոմատ կերպով կստեղծի համակարգի տվյալների բազաները, եթե դրանք բացակայեն;
  • Couch_server գործընթացի կատարումը օպտիմիզացվել է.
  • Windows պլատֆորմի տեղադրիչը զգալիորեն բարելավվել է.
  • Դիտումները սահմանափակված են 2^28 (268435456) արդյունքով: Այս սահմանաչափը կարող է առանձին կազմաձևվել սովորական և հատվածավորված դիտումների համար՝ օգտագործելով «[query_server_config]» բաժնում query_limit և partition_query_limit տարբերակները;
  • Հեռացվել է HTTP տեղական հանգույցի կառավարման առանձին ինտերֆեյս, որը գործարկվել է ցանցի 5986 պորտում, որի գործառույթն այժմ հասանելի է կլաստերի կառավարման ընդհանուր ինտերֆեյսի միջոցով.
  • Փաստաթղթի առավելագույն չափը կրճատվել է մինչև 8 ՄԲ, ինչը CouchDB 3.0-ի թարմացումից հետո կարող է խնդիրներ առաջացնել հին սերվերներից տվյալների կրկնօրինակման հետ: Սահմանաչափը մեծացնելու համար կարող եք օգտագործել «[couchdb] max_document_size» պարամետրը;
  • Կատարվել է հնացած գործառույթների խոշոր մաքրում, ինչպիսիք են _ replicator և _external calls, disk_size and data_size դաշտերը և delayed_commits տարբերակը;
  • Գործող CouchDB-ն այժմ պահանջում է Erlang/OTP 20.3.8.11+, 21.2.3+ կամ 22.0.5: Տեսականորեն Erlang/OTP 19 մասնաճյուղի հետ ֆունկցիոնալությունը պահպանվում է, սակայն այն ծածկված է թեստերով:

Հիշեցնենք, որ CouchDB-ն տվյալները պահպանում է պատվիրված ցուցակի ձևաչափով և թույլ է տալիս տվյալների մասնակի վերարտադրությունը մի քանի տվյալների բազաների միջև Master-Master ռեժիմով՝ կոնֆլիկտային իրավիճակների միաժամանակյա հայտնաբերմամբ և լուծմամբ: Յուրաքանչյուր սերվեր պահում է իր տեղական տվյալների հավաքածուն՝ համաժամանակացված այլ սերվերների հետ, որոնք կարող են անջատվել ցանցից և պարբերաբար կրկնել փոփոխությունները: Մասնավորապես, այս հատկությունը CouchDB-ին դարձնում է գրավիչ լուծում տարբեր համակարգիչների միջև ծրագրի կարգավորումները համաժամացնելու համար: CouchDB-ի վրա հիմնված լուծումները ներդրվել են այնպիսի ընկերություններում, ինչպիսիք են BBC-ն, Apple-ը և CERN-ը:

CouchDB հարցումները և տվյալների ինդեքսավորումը կարող են իրականացվել ըստ պարադիգմայի MapReduce, օգտագործելով JavaScript՝ տվյալների նմուշառման տրամաբանություն ստեղծելու համար: Համակարգի միջուկը գրված է Erlang-ով, որն օպտիմիզացված է բաշխված համակարգեր ստեղծելու համար, որոնք սպասարկում են բազմաթիվ զուգահեռ հարցումներ: View server-ը գրված է C-ով և հիմնված է Mozilla նախագծի JavaScript շարժիչի վրա: Տվյալների բազա մուտքն իրականացվում է HTTP արձանագրության միջոցով՝ օգտագործելով RESTful JSON API, որը թույլ է տալիս մուտք գործել տվյալներ, այդ թվում՝ բրաուզերում աշխատող վեբ հավելվածներից:

Տվյալների պահպանման միավորը փաստաթուղթ է, որն ունի եզակի նույնացուցիչ, տարբերակ և պարունակում է անվանված դաշտերի կամայական շարք բանալի/արժեքի ձևաչափով: Կամայական փաստաթղթերից տվյալների կեղծ կառուցվածքային հավաքածու կազմակերպելու համար (հավաքում և ընտրություն), օգտագործվում է դիտումների (դիտումների) ձևավորման հայեցակարգը, որոշելու համար, թե որ JavaScript լեզուն է օգտագործվում: JavaScript-ը կարող է նաև սահմանել գործառույթներ՝ տվյալ դիտման մեջ նոր փաստաթղթեր ավելացնելիս տվյալները վավերացնելու համար:

Source: opennet.ru

Добавить комментарий