Харилцааны өгөгдлийн сангууд нь найдвартай, тууштай байхаар бүтээгдсэн. Тэдгээрийг боловсруулсан инженерүүд ACID загварын дөрвөн зарчмыг үргэлж хадгалж үлдэх гүйлгээний загварт анхаарлаа хандуулсан. Гэсэн хэдий ч шинэ бүтэцгүй мэдээллийн сангийн загвар гарч ирснээр ACID-ийг эргүүлж байна. NoSQL өгөгдлийн сангийн загвар нь уян хатан түлхүүр/үнэ цэнийн хадгалалтын аргыг ашиглахын тулд өндөр бүтэцтэй харилцааны загвараас зайлсхийдэг. Өгөгдлийн энэхүү бүтэцгүй хандлага нь ACID загвараас өөр хувилбарыг шаарддаг: BASE загвар.
ACID загварын үндсэн зарчим
ACID загварын дөрвөн үндсэн зарчим байдаг:
- Гүйлгээний атомийн чанар нь мэдээллийн сангийн гүйлгээ бүрийг гүйцэтгэхдээ "бүх юмуу юу ч биш" гэсэн арга барилтай нэг нэгж байхыг баталгаажуулдаг. Гүйлгээний аливаа мэдэгдэл амжилтгүй болвол гүйлгээг бүхэлд нь буцаана.
- Харилцан өгөгдлийн сан нь өгөгдлийн сангийн бизнесийн дүрэмтэй гүйлгээ бүрийн тууштай байдлыг баталгаажуулдаг. Хэрэв атомын гүйлгээний аль нэг элемент нь өгөгдлийн сангийн тогтвортой байдлыг алдагдуулах юм бол бүх гүйлгээ амжилтгүй болно.
- Өгөгдлийн сангийн хөдөлгүүр нь нэгэн зэрэг эсвэл ойролцоох олон гүйлгээний хооронд тусгаарлах-г хэрэгжүүлдэг. Гүйлгээ бүр нь бусад гүйлгээ бүрийн өмнө эсвэл дараа явагддаг бөгөөд гүйлгээний эхэнд хардаг мэдээллийн сангийн үзэмжийг зөвхөн гүйлгээ хийхээс өмнө өөрчилдөг. Ямар ч гүйлгээнд өөр гүйлгээний завсрын бүтээгдэхүүнийг харах ёсгүй.
- ACID-ийн эцсийн зарчим болох бат бөх чанар нь өгөгдлийн санд гүйлгээ хийгдсэний дараа нөөцлөлт болон гүйлгээний бүртгэлийг ашиглан бүрмөсөн хадгалагдахыг баталгаажуулдаг. Алдаа гарсан тохиолдолд эдгээр механизмыг хийсэн гүйлгээг сэргээхэд ашиглаж болно.
BASE-ийн үндсэн зарчмууд
NoSQL өгөгдлийн сан нь нөгөө талаас ACID загвар хэтрүүлсэн эсвэл өгөгдлийн сангийн үйл ажиллагаанд саад учруулж болзошгүй нөхцөл байдлыг хамардаг. Үүний оронд NoSQL нь BASE загвар гэж нэрлэгддэг илүү зөөлөн загварт тулгуурладаг. Энэхүү загвар нь NoSQL-ийн санал болгож буй уян хатан байдал болон бүтэцгүй өгөгдлийн менежмент, менежментийн ижил төстэй аргуудыг багтаасан болно. BASE нь гурван зарчмаас бүрдэнэ:
- Үндсэн Availability NoSQL мэдээллийн сангийн арга нь олон удаа алдаа гарсан ч өгөгдлийн бэлэн байдалд анхаарлаа хандуулдаг. Энэ нь мэдээллийн баазын менежментийн өндөр тархсан хандлагыг ашиглан үүнийг хийдэг. NoSQL мэдээллийн сан нь нэг том өгөгдлийн санг хадгалж, тухайн дэлгүүрийн алдааг тэсвэрлэх чадварт анхаарлаа төвлөрүүлэхийн оронд өгөгдлийг хуулбарлах өндөр түвшинд олон хадгалах системд тараадаг. Алдаа нь өгөгдлийн сегментэд хандах хандалтыг саатуулах магадлал багатай тохиолдолд энэ нь мэдээллийн баазыг бүрэн тасалдуулахад хүргэдэггүй.
- Зөөлөн төлөв. BASE мэдээллийн сан нь ACID загварын тууштай байдлын шаардлагыг бараг бүрэн орхигдуулдаг. BASE-ийн үндсэн ойлголтуудын нэг бол өгөгдлийн нийцтэй байдал нь хөгжүүлэгчийн асуудал бөгөөд мэдээллийн бааз үүнийг зохицуулах ёсгүй.
- Eventual Consistency NoSQL өгөгдлийн сангийн тууштай байдлын талаархи цорын ганц шаардлага бол ирээдүйд хэзээ нэгэн цагт өгөгдөл тогтмол төлөвт нийлэхийг шаарддаг. Гэхдээ энэ нь хэзээ болох талаар ямар ч баталгаа өгөөгүй байна. Энэ нь өмнөх гүйлгээг хийж дуустал гүйлгээ хийхийг хориглодог ACID-ийн нэн даруй тууштай байх шаардлагаас бүрэн татгалзаж, мэдээллийн сан тогтвортой төлөвт шилжих болно.
BASE-д үндсэн хүртээмжтэй байгаа нь та өгөгдлийн эх сурвалжийг хянах ч боломжгүй гэсэн үг юм. Жишээлбэл, та хүчин чармайлтынхаа нэг хэсэг болгон нийтийн мэдээллийн багц руу холбож болно.
Харьцангуй хэрэглээний тохиолдол
BASE загвар нь бүх нөхцөл байдалд тохиромжгүй, гэхдээ энэ нь харилцааны загварыг чанд мөрдөх шаардлагагүй мэдээллийн санд зориулсан ACID загварын уян хатан хувилбар юм.
ХҮЧЛИЙН өгөгдлийн санг ашиглах оновчтой тохиолдол нь урьдчилан таамаглах боломжтой оролт, гаралт бүхий өндөр бүтэцтэй өгөгдлөөс хамаарна. Тиймээс хүний нөөцийн мэдээллийн сан, жижиглэн худалдааны мэдээллийн сан болон эмнэлгийн цахим бүртгэл нь ACID-ийн санал болгож буй дотоод тогтвортой байдлын шалгалтын үр шимийг хүртдэг.
Гэсэн хэдий ч BASE шийдлүүд нь мэдрэмжийн шинжилгээ зэрэг тодорхой бус сэдвүүдэд илүү тохиромжтой. Жишээлбэл, BASE-бүтэцтэй төсөл нь тодорхой hashtag дээр тулгуурлан сэтгэл хөдлөлийг илэрхийлсэн үгсийг хайж буй Twitter мэдээллийн сувгийг сканнердаж болно. Твиттерийн хангамж нь сайн зохион байгуулалттай эсвэл орон нутагт үүсгэгдээгүй боловч өгөгдлийн урсгал нь тухайн өгөгдлийн хамрах хүрээ, мөн чанар нь тодорхой хязгаарлагдаагүй байсан ч асуулгад програмчлагдсан мэдээллийг санал болгодог.