Canonical-ийн SQLite-ийн тархсан хувилбар болох Dqlite 1.0 бэлэн байна

Каноник компани Нийтлэгдсэн чухал төслийн нээлт Dqlite 1.0 (Distributed SQLite) нь SQLite-тай нийцтэй суулгагдсан SQL хөдөлгүүрийг хөгжүүлдэг бөгөөд энэ нь өгөгдлийг хуулбарлах, бүтэлгүйтлээс автоматаар сэргээх, олон зангилаанд зохицуулагчийг түгээх замаар алдааг тэсвэрлэх чадварыг дэмждэг. DBMS нь програмууд болон хавсаргасан Си номын сан хэлбэрээр хэрэгждэг тараасан Apache 2.0 лицензийн дагуу (анхны SQLite нь нийтийн домэйнд байдаг). Хэлний холболтууд боломжтой Go.

Номын сан нь одоо байгаа SQLite кодын сангийн нэмэлт бөгөөд өөр өөр хостууд дээр ажиллаж байгаа програмын олон тохиолдлыг хооронд нь холбох сүлжээний протоколын дэмжлэгийг нэмдэг. Dqlite-ээр эмхэтгэсэн програм нь гадны DBMS-ээс хамааралгүй, өөрөө өөрийгөө хангалттай, гэмтэлд тэсвэртэй кластерын үүрэг гүйцэтгэдэг. Практикт Dqlite-г Canonical өөрийн контейнер удирдлагын системд ашигладаг LXD. Номын сангийн хэрэглээний чиглэлүүдийн дунд алдааг тэсвэрлэх чадвартай интернетийн төхөөрөмж, систем дэх процессоруудыг бий болгох талаар дурьдсан болно.
Ирмэг- тооцоолол.

Өгөгдлийг хуулбарлахад нийцтэй байдлыг хангахын тулд алгоритмд суурилсан зөвшилцлийн аргыг ашигладаг Raftetcd, RethinkDB, CockroachDB, OpenDaylight зэрэг төслүүдэд ашигладаг. Dqlite нь өөрийн асинхрон хэрэгжилтийг ашигладаг Гар урлал, Си хэл дээр бичигдсэн. Бэлэн номын сангууд нь холболтын олон талт боловсруулалт хийх, корутиныг эхлүүлэх ажлыг зохион байгуулахад ашиглагддаг libuv и libco.

Үүнтэй төстэй төсөлтэй харьцуулахад rqlite,Dqlite нь гүйлгээний бүрэн дэмжлэг үзүүлдэг, ямар ч C төсөлтэй харилцаж чаддаг, time() функцийг ашиглахыг зөвшөөрдөг, ,SQL орчуулгад суурилсан хуулбарлахын оронд фрейм дээр суурилсан хуулбарыг ашигладаг.

Dqlite-ийн онцлогууд:

  • Диск болон сүлжээний бүх үйлдлийг асинхроноор гүйцэтгэх;
  • Мэдээллийн үнэн зөвийг баталгаажуулах тестийн багц байгаа эсэх;
  • Санах ойн зарцуулалт бага, сүлжээгээр үр ашигтай өгөгдөл солилцох;
  • Өгөгдлийн сан болон гүйлгээний бүртгэлийг дискэн дээр байнга хадгалах (санах ойд кэш хийх боломжтой);
  • Алдаа дутагдлаас хурдан сэргэх;
  • Өгөгдлийн санг эхлүүлэх, репликацийг тохируулах, зангилааг холбох/таслах зэрэгт ашиглаж болох Go хэл дээрх тогтвортой CLI клиент;
  • ARM, X86, POWER болон IBM Z архитектуруудыг дэмждэг;
  • Raft алгоритмын хэрэгжилтийг гүйлгээ хийх үед саатлыг багасгахын тулд оновчтой болгосон.

Эх сурвалж: opennet.ru

сэтгэгдэл нэмэх