Нашри rqlite 6.0, DBMS тақсимшуда ва ба хатогиҳо тобовар дар асоси SQLite

Нашри тақсимшудаи DBMS rqlite 6.0 пешниҳод карда шуд, ки он SQLite-ро ҳамчун муҳаррики нигоҳдорӣ истифода мебарад ва ба шумо имкон медиҳад кори кластерро аз анборҳои бо ҳам ҳамоҳангшуда ташкил кунед. Яке аз хусусиятҳои rqlite осонии насб, ҷойгиркунӣ ва нигоҳдории нигаҳдории тақсимшудаи ба хатогиҳо таҳаммулпазир аст, ки то ҳадде ба etcd ва Consul монанд аст, аммо ба ҷои формати калид/арзиш истифода бурдани модели реляционии додаҳо мебошад. Рамзи лоиҳа дар Go навишта шудааст ва таҳти иҷозатномаи MIT паҳн карда мешавад.

Барои дар ҳолати ҳамоҳангшуда нигоҳ доштани ҳама гиреҳҳо, алгоритми консенсуси Raft истифода мешавад. Rqlite китобхонаи аслии SQLite ва драйвери стандартии go-sqlite3-ро истифода мебарад, ки дар болои он қабате оғоз мешавад, ки дархостҳои муштариро коркард мекунад, такрориро ба гиреҳҳои дигар иҷро мекунад ва ба даст овардани консенсус дар интихоби гиреҳи пешбар назорат мекунад.

Тағирот ба пойгоҳи додаҳо танҳо аз ҷониби гиреҳе, ки ҳамчун пешво интихоб шудааст, ворид карда мешавад, аммо пайвастшавӣ бо амалиёти навиштан метавонад ба дигар гиреҳҳои кластер фиристода шавад, ки суроғаи пешворо барои такрори дархост бармегардонад (дар версияи оянда онҳо ваъда медиҳад, ки ба роҳбар ирсоли автоматии дархостҳоро илова мекунад). Диққати асосӣ ба таҳаммулпазирии хатоҳост, аз ин рӯ DBMS танҳо бо амалиёти хондан миқёс мекунад ва амалиёти навиштан монеа мебошанд. Аз як гиреҳ як кластери rqlite-ро идора кардан мумкин аст ва ин ҳалли онро метавон барои таъмини дастрасӣ ба SQLite тавассути HTTP бидуни таҳаммулпазирии хато истифода кард.

Маълумоти SQLite дар ҳар як гиреҳ на дар файл, балки дар хотира нигоҳ дошта мешавад. Дар сатҳи қабат бо татбиқи протоколи Raft, сабти ҳама фармонҳои SQLite, ки боиси тағирот дар пойгоҳи додаҳо мешаванд, нигоҳ дошта мешавад. Ин гузориш ҳангоми такрорӣ (репликатсия дар сатҳи такрори дархостҳо дар гиреҳҳои дигар), оғоз кардани гиреҳи нав ё барқароршавӣ аз гум шудани пайвастшавӣ истифода мешавад. Барои кам кардани андозаи журнал, бастабандии автоматӣ истифода мешавад, ки пас аз миқдори муайяни тағирот оғоз меёбад ва боиси сабти лаҳза дар диск мегардад, ки дар робита ба он журнали нав нигоҳ дошта мешавад (ҳолати базаи маълумот дар хотира). ба аксбардорӣ + сабти тағироти ҷамъшуда шабеҳ аст).

Хусусиятҳои rqlite:

  • Ҷойгиркунии кластер бе зарурати насби алоҳидаи SQLite осон аст.
  • Имконияти зуд ба даст овардани захираи такрории SQL.
  • Омода барои истифода дар лоиҳаҳои корӣ (Сад истеҳсолот).
  • Мавҷудияти HTTP(S) API, ки ба шумо имкон медиҳад, ки маълумотро дар реҷаи партия навсозӣ кунед ва гиреҳи пешбари кластерро муайян кунед. Он инчунин интерфейси сатри фармон ва қобилияти истифодаи китобхонаҳои гуногуни муштариёнро, ки барои SQLite сохта шудаанд, таъмин мекунад.
  • Мавҷудияти хидмат барои муайян кардани гиреҳҳои дигар, ки ба шумо имкон медиҳад кластерҳоро динамикӣ эҷод кунед.
  • Дастгирии рамзгузории мубодилаи маълумот байни гиреҳҳо.
  • Қобилияти танзим кардани сатҳи санҷиши мувофиқат ва мувофиқати маълумот ҳангоми хондан.
  • Имконияти ихтиёрии пайваст кардани гиреҳҳо дар ҳолати танҳо барои хондан, ки дар муайян кардани консенсус иштирок намекунанд ва барои баланд бардоштани миқёспазирии кластер барои амалиёти хониш истифода мешаванд.
  • Дастгирии шакли транзаксияҳои шахсии шумо дар асоси омезиши фармонҳо дар як дархост (амалиётҳо дар асоси ОГОҲ, КОМИТЕТ, ROLLBACK, SAVEPOINT ва RELEASE дастгирӣ намешаванд).
  • Дастгирии эҷоди захираҳои гарм.

Нашри нав тағйироти назарраси меъмориро ворид мекунад, ки ба баланд бардоштани эътимоднокии кластер тавассути такмил додани раванди масир кардани дархостҳои хондан ва навиштан ба гиреҳҳои кластери дуруст нигаронида шудааст. гиреҳҳои rqlite акнун метавонанд бо истифода аз пайвастҳои TCP, ки дар байни гиреҳҳо бо протоколи Raft муқаррар карда шудаанд, пайвастҳои мантиқии сершуморро байни худ мултипликатсия кунанд. Агар дархост ваколати роҳбарро талаб кунад, аммо ба гиреҳи дуюмдараҷа фиристода шавад, гиреҳи дуввум метавонад суроғаи пешворо муайян кунад ва онро бидуни анҷом додани ҳисобҳои консенсуси Raft ба муштарӣ расонад.

Тағйирот инчунин зарурати ҷузъи ҷудогонаи ҳамоҳангсозии метамаълумотро аз байн бурд ва коркарди алоҳидаи ҳолати Raft ва метамаълумотро аз байн бурд. Гиреҳҳои дуюмдараҷа ҳоло танҳо ҳангоми зарурат, вақте ки онҳо бояд суроғаи гиреҳи пешворо пайдо кунанд, дархостҳоро ба гиреҳи пешбар мефиристанд. API қобилияти гирифтани маълумотро дар бораи ҳолати гиреҳҳои дигар дар кластер таъмин мекунад. Фармони ".sysdump" ба интерфейси сатри фармон илова карда шудааст.

Манбаъ: opennet.ru

Илова Эзоҳ