Алибаба PostgreSQL дээр суурилсан тархсан DBMS болох PolarDB-ийн кодыг нээлээ.

Хятадын хамгийн том мэдээллийн технологийн компаниудын нэг Алибаба PostgreSQL дээр суурилсан тархсан DBMS PolarDB-ийн эх кодыг нээлээ. PolarDB нь PostgreSQL-ийн чадавхийг өөр өөр кластерийн зангилаануудаар тархсан дэлхийн мэдээллийн сангийн хүрээнд ACID гүйлгээг бүрэн бүтэн, түгээх мэдээлэл хадгалах хэрэгслүүдээр өргөтгөдөг. PolarDB нь нэг буюу хэд хэдэн зангилаа бүтэлгүйтсэний дараа мэдээллийг сэргээхийн тулд тархсан SQL асуулгын боловсруулалт, алдааг тэсвэрлэх чадвар, нэмэлт өгөгдөл хадгалах боломжийг дэмждэг. Хэрэв та хадгалах сангаа өргөтгөх шаардлагатай бол кластерт шинэ зангилаа нэмж болно. Код нь Apache 2.0 лицензийн дагуу нээлттэй байна.

PolarDB нь PostgreSQL-д зориулсан өргөтгөлүүд болон засваруудын багц гэсэн хоёр бүрэлдэхүүн хэсгээс бүрдэнэ. Засварууд нь PostgreSQL-ийн цөмийн чадавхийг өргөжүүлж, өргөтгөлүүдэд PostgreSQL-ээс тусад нь хэрэгжсэн, тухайлбал тараагдсан гүйлгээний удирдлагын механизм, глобал үйлчилгээ, тархсан SQL асуулгын процессор, нэмэлт мета өгөгдөл, кластерыг удирдах, кластер байрлуулах, хялбаршуулах хэрэгслүүд орно. одоо байгаа системийг түүн рүү шилжүүлэх.

Энэхүү засварууд нь янз бүрийн тусгаарлах түвшний олон хувилбар (MVCC, Multiversion concurrency control) ашиглан өгөгдөлд зэрэгцээ хандалтыг хянах механизмын тархсан хувилбарыг PostgreSQL цөмд нэмж өгдөг. PolarDB-ийн ихэнх функцууд нь өргөтгөлүүдэд багтсан бөгөөд энэ нь PostgreSQL-ийн хамаарлыг бууруулж, PolarDB дээр суурилсан шийдлүүдийг шинэчлэх, хэрэгжүүлэх ажлыг хялбаршуулдаг (энэ нь PostgreSQL-ийн шинэ хувилбарууд руу шилжих, PostgreSQL-тэй бүрэн нийцтэй байдлыг хадгалахад хялбар болгодог). Кластерыг удирдахын тулд PostgreSQL-XC болон PostgreSQL-XL-ийн ижил төстэй хэрэгсэлд суурилсан pgxc_ctl хэрэгслийг ашигладаг.

Кластерт гурван үндсэн бүрэлдэхүүн хэсэг байдаг: мэдээллийн сангийн зангилаа (DN), кластер менежер (CM) болон гүйлгээний удирдлагын үйлчилгээ (TM). Үүнээс гадна прокси ачааллын тэнцвэржүүлэгчийг ашиглаж болно. Бүрэлдэхүүн хэсэг бүр нь тусдаа процесс бөгөөд өөр сервер дээр ажиллах боломжтой. Өгөгдлийн сангийн зангилаа нь үйлчлүүлэгчдээс ирсэн SQL асуулгад үйлчилдэг бөгөөд нэгэн зэрэг бусад мэдээллийн баазын зангилааны оролцоотойгоор тархсан асуулгын гүйцэтгэлийн зохицуулагчийн үүрэг гүйцэтгэдэг. Кластер менежер нь өгөгдлийн сангийн зангилаа бүрийн төлөвийг хянаж, кластерийн тохиргоог хадгалж, зангилаа удирдах, нөөцлөх, ачааллыг тэнцвэржүүлэх, шинэчлэх, эхлүүлэх, зогсоох хэрэгслүүдээр хангадаг. Гүйлгээний удирдлагын үйлчилгээ нь бүхэл бүтэн кластерийн бүрэн бүтэн байдлыг хангах үүрэгтэй.

Алибаба PostgreSQL дээр суурилсан тархсан DBMS болох PolarDB-ийн кодыг нээлээ.

PolarDB нь Shared-nothing тархсан тооцооллын архитектур дээр суурилдаг бөгөөд үүний дагуу өгөгдөл нь өөр өөр зангилаанууд дээр хадгалагдах үед бүх зангилааны нийтлэг санах ой ашиглахгүйгээр тархдаг бөгөөд зангилаа бүр түүнтэй холбоотой өгөгдлийн хэсгийг хариуцаж, холбогдох асуултуудыг гүйцэтгэдэг. өгөгдөл рүү. Хүснэгт бүрийг үндсэн түлхүүр дээр суурилсан хэш ашиглан хэсэг болгон хуваасан. Хэрэв хүсэлт нь өөр өөр зангилаанууд дээр байрлах өгөгдлийг хамардаг бол атом, тууштай, тусгаарлалт, найдвартай байдлыг (ACID) хангахын тулд хуваарилагдсан гүйлгээний гүйцэтгэх механизм болон гүйлгээний зохицуулагчийг идэвхжүүлдэг.

Гэмтлийг тэсвэрлэхийн тулд сегмент бүрийг дор хаяж гурван зангилаа болгон хуулбарлана. Нөөцийг хэмнэхийн тулд бүрэн өгөгдөлд зөвхөн хоёр хуулбар багтдаг бөгөөд нэг нь буцаан бичих бүртгэлийг (WAL) хадгалахад хязгаарлагддаг. Бүрэн хуулбартай хоёр зангилааны нэг нь удирдагчаар сонгогдож, хүсэлтийг боловсруулахад оролцдог. Хоёрдахь зангилаа нь тухайн өгөгдлийн сегментийн нөөцийн үүрэг гүйцэтгэдэг бөгөөд гурав дахь нь тэргүүлэх зангилааг сонгоход оролцдог бөгөөд бүрэн хуулбар бүхий хоёр зангилаа бүтэлгүйтсэн тохиолдолд мэдээллийг сэргээхэд ашиглаж болно. Кластерийн зангилаа хоорондын өгөгдлийн хуулбарыг Paxos алгоритмыг ашиглан зохион байгуулдаг бөгөөд энэ нь найдваргүй зангилаа бүхий сүлжээнд зөвшилцлийн тогтвортой тодорхойлолтыг баталгаажуулдаг.

PolarDB DBMS-ийн бүрэн ажиллагааг гурван хувилбар дээр гаргахаар төлөвлөж байна: Эхний хувилбарт хуулбарлах хэрэгслүүд, өндөр хүртээмжтэй байдал, кластерын менежментийг нийтлэх болно. Хоёрдахь хувилбар нь зангилаа хоорондын ACID болон тархсан SQL гүйцэтгэлийг дэмждэг тархсан гүйлгээний гүйцэтгэлийн системтэй байх болно. Гурав дахь хувилбарт PostgreSQL-д зориулсан залгаас, оновчтой гүйцэтгэлд хүрэхийн тулд сегментүүдийг дасан зохицох байдлаар байрлуулах, шинэ зангилаа нэмэх замаар кластерыг өргөжүүлэх чадварыг багтаасан зангилаанд уян хатан мэдээлэл түгээх хэрэгслүүд багтах болно.

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

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