SQLite дээр суурилсан тархсан, алдааг тэсвэрлэх чадвартай DBMS болох rqlite 7.0 хувилбар

Түгээмэл DBMS rqlite 7.0 хувилбар гарсан бөгөөд энэ нь SQLite-ийг хадгалах хөдөлгүүр болгон ашигладаг бөгөөд өөр хоорондоо синхрончлогдсон агуулахуудаас кластерын ажлыг зохион байгуулах боломжийг олгодог. Qlite-ийн нэг онцлог нь etcd болон Consul-тай зарим талаараа төстэй, гэхдээ түлхүүр/утга форматын оронд харилцааны өгөгдлийн загварыг ашигладаг тархсан гэмтэлд тэсвэртэй хадгалах санг суурилуулах, байрлуулах, засварлахад хялбар байдаг. Төслийн код нь Go дээр бичигдсэн бөгөөд MIT лицензийн дагуу түгээгддэг.

Бүх зангилаануудыг синхрончлолд байлгахын тулд Raft зөвшилцлийн алгоритмыг ашигладаг. Rqlite нь анхны SQLite номын сан болон go-sqlite3 драйверийг ашигладаг бөгөөд дээр нь үйлчлүүлэгчийн хүсэлтийг боловсруулах, бусад зангилаа руу хуулбарлах, тэргүүлэх зангилааны сонголт дээр зөвшилцөлд хүрсэн эсэхийг хянадаг давхарга ажиллуулдаг.

Өгөгдлийн сангийн өөрчлөлтийг зөвхөн удирдагчаар сонгогдсон зангилаа хийх боломжтой, гэхдээ бичих үйлдэлтэй холболтыг кластерын бусад зангилаа руу илгээж болох бөгөөд энэ нь хүсэлтийг давтахын тулд удирдагчийн хаягийг буцаана (дараагийн хувилбарт тэд удирдагч руу хүсэлтийг автоматаар дамжуулахыг амлаж байна). Гол ач холбогдол нь алдааг тэсвэрлэх чадвар юм, тиймээс DBMS нь зөвхөн унших үйлдлээр хэмжигддэг бөгөөд бичих үйлдлүүд нь саад тотгор болдог. Нэг зангилаанаас rqlite кластер ажиллуулах боломжтой бөгөөд энэ шийдлийг алдааг тэсвэрлэхгүйгээр HTTP-ээр дамжуулан SQLite-д хандахад ашиглаж болно.

Зангилаа бүр дээрх SQLite өгөгдөл нь файлд хадгалагддаггүй, харин санах ойд байдаг. Raft протоколыг хэрэгжүүлэх давхаргын түвшинд мэдээллийн санд өөрчлөлт оруулахад хүргэдэг бүх SQLite командуудын бүртгэл хөтөлдөг. Энэ бүртгэлийг хуулбарлах үед (бусад зангилаанууд дээрх хүсэлтийг хуулбарлах түвшинд), шинэ зангилаа эхлүүлэх эсвэл холболтын алдагдлыг сэргээхэд ашигладаг. Бүртгэлийн хэмжээг багасгахын тулд автомат сав баглаа боодлыг ашигладаг бөгөөд энэ нь тодорхой тооны өөрчлөлт хийсний дараа эхэлж, агшин зуурын зургийг засахад хүргэдэг бөгөөд үүнтэй холбоотойгоор шинэ бүртгэл хөтөлж эхэлдэг (санах ой дахь мэдээллийн сангийн төлөв агшин зуурын зураг + хуримтлагдсан өөрчлөлтийн бүртгэлтэй ижил).

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

  • Тусдаа SQLite суулгах шаардлагагүйгээр кластер байрлуулахад хялбар.
  • Хуулбарласан SQL санах ойг хурдан олж авах чадвар.
  • Үйлдвэрлэлийн төслүүдэд ашиглахад бэлэн (үйлдвэрлэлийн зэрэг).
  • Багц горимд өгөгдлийг шинэчлэх, кластерын тэргүүлэх зангилааг тодорхойлох боломжийг олгодог HTTP(S) API байгаа эсэх. Төрөл бүрийн програмчлалын хэлэнд зориулсан командын мөрийн интерфейс болон үйлчлүүлэгчийн сангууд бас хангагдсан.
  • Бусад зангилааг тодорхойлох үйлчилгээний хүртээмж нь кластеруудыг динамикаар үүсгэх боломжийг танд олгоно.
  • Зангилаа хоорондын өгөгдлийн солилцоог шифрлэх дэмжлэг.
  • Унших үед өгөгдлийн хамаарал, тууштай байдлыг шалгах түвшинг тохируулах чадвар.
  • Зөвшилцлийг тодорхойлоход оролцдоггүй, унших үйлдлүүдийн хувьд кластерын өргөтгөх чадварыг нэмэгдүүлэхэд ашигладаг зангилаануудыг зөвхөн унших горимд холбох нэмэлт боломж.
  • Нэг хүсэлтэд командуудыг нэгтгэх үндсэн дээр өөрийн гэсэн гүйлгээний хэлбэрийг дэмжих (ЭХЛҮҮЛЭХ, ХАМГААЛАХ, БУЦАХ, ХАДГАЛАХ POINT болон RELEASE дээр суурилсан гүйлгээг дэмждэггүй).
  • Халуун нөөцлөлтийг үүсгэх дэмжлэг.

Шинэ хувилбарт:

  • Consul гэх мэт тархсан хадгалалт дээр ажиллах боломжтой шинэ зангилаа илрүүлэх үйлчилгээг ашиглан rqlite-ийн автомат кластерчлалын дэмжлэгийг нэмсэн. Энэ үйлчилгээ нь rqlite зангилаануудыг бие биенээ автоматаар олох боломжийг олгодог бөгөөд администратор зөвхөн өөр өөр серверүүд дээр олон зангилаа ажиллуулах шаардлагатай. серверүүд, Consul эсвэл etcd кластерын хуваалцсан хаягийг (жишээ нь, "example.com:8500") зааж өгснөөр зангилаанууд кластерт автоматаар нэгдэх болно. Удирдагчийн зангилаа нь Consul эсвэл etcd хадгалалт дахь хаягийн мэдээллээ үе үе шинэчилдэг бөгөөд энэ нь танд бусад зангилааг дахин тохируулахгүйгээр дараа нь удирдагчийг өөрчлөх, мөн удирдагч өөрчлөгдсөний дараа ч шинэ зангилаа нэмэх боломжийг олгодог. AWS Lambda-аар ажилладаг хуучин зангилаа илрүүлэх үйлчилгээг (Discovery mode) дэмжихээ больсон.
  • CLI интерфэйс нь хэд хэдэн хостуудыг нэг дор зааж өгөх боломжийг олгодог - хэрэв эхний зангилаа байхгүй бол дараагийн хостуудтай холбогдох болно.
  • rqlited командын мөрийн аргументуудыг задлан шинжлэх кодыг дахин боловсруулсан.
  • Хуучирсан протобуф багцыг зогсоосон.
  • Raft протоколыг хэрэгжүүлэхэд ашигласан BoltDB хадгалах санг etcd төслийн сэрээ bbolt-оор сольсон.

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

DDoS хамгаалалт, VPS VDS сервер бүхий сайтуудад найдвартай хостинг худалдаж аваарай 🔥 DDoS хамгаалалттай, VPS VDS сервертэй найдвартай вэбсайт хостинг худалдаж аваарай | ProHoster