Документке багытталган DBMS 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 кыймылдаткычына негизделген. Берилиштер базасына кирүү HTTP протоколунун жардамы менен RESTful JSON API аркылуу ишке ашырылат, ал маалыматтарга, анын ичинде браузерде иштеген веб-тиркемелерден кирүүгө мүмкүндүк берет.

Маалыматтарды сактоо бирдиги – уникалдуу идентификатору, версиясы бар жана ачкыч/маани форматындагы аталган талаалардын ыктыярдуу топтомун камтыган документ. Ыктыярдуу документтерден маалыматтардын псевдоструктуралуу топтомун уюштуруу үчүн (бириктирүү жана тандоо) көз караштарды (көз караштарды) түзүү түшүнүгү колдонулат, кайсы JavaScript тили колдонуларын аныктоо үчүн. JavaScript ошондой эле белгилүү бир көрүнүштө жаңы документтерди кошууда маалыматтарды текшерүү үчүн функцияларды аныктай алат.

Source: opennet.ru

Комментарий кошуу