Нашри 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, индексҳои ҷустуҷӯии матн) бидуни оғоз намудани амалиёти сохтмонии онҳо;
  • Раванди 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 МБ кам карда шуд, ки метавонад пас аз навсозӣ ба 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 навишта шудааст ва ба муҳаррики JavaScript аз лоиҳаи Mozilla асос ёфтааст. Дастрасӣ ба пойгоҳи додаҳо бо истифода аз протоколи HTTP бо истифода аз API RESTful JSON анҷом дода мешавад, ки ба шумо имкон медиҳад, ки маълумотро дастрас кунед, аз ҷумла аз барномаҳои веб, ки дар браузер кор мекунанд.

Воҳиди нигаҳдории маълумот ҳуҷҷатест, ки идентификатор, версияи беназир дорад ва маҷмӯи ихтиёрии майдонҳои номбаршударо дар формати калид/арзиш дорад. Барои ташкили маҷмӯи псевдосохтори додаҳо аз ҳуҷҷатҳои худсарона (маҷмӯа ва интихоб) мафҳуми ташаккули афкор (намоиш) истифода мешавад, ки барои муайян кардани он, ки забони JavaScript истифода мешавад. JavaScript инчунин метавонад функсияҳоро барои тасдиқи маълумот ҳангоми илова кардани ҳуҷҷатҳои нав дар намуди мушаххас муайян кунад.

Манбаъ: opennet.ru

Илова Эзоҳ