Numberly has been using both ScyllaDB and MongoDB in production for 5+ years. Learn which NoSQL database they rely on for different use cases and why. NoSQL домонд, ScyllaDB болон MongoDB нь хоёр янз бүрийн хүн юм. MongoDB-ийг эхлэхэд зориулсан стандарт юм. Түүний хялбар хэрэглээ, өргөн олон нийтийн / экосистем ScyllaDB-ийн гол металл архитектур нь өндөр дамжуулалттай урьдчилан сэргийлэх бага давтамж боломжийг олгодог. Энэ нь бүлэгт хооронд хэрэглээг нэмэгдүүлж байна. Нөхцөл болон бусад олон хүмүүст scaling мөн тэдний одоогийн өгөгдлийн бааз нь хавтгай хавтгай. Үнэгүй Үнэлгээ Түлхүүр Data-интенсив хэрэглээ Үүнээс гадна, бид энэ хоёр янз бүрийн өгөгдлийн бааз нь нэг технологийн багц хооронд харьцуулахын тулд хэрхэн үзнэ үү - тэд бүрийн хувьд хамгийн сайн хэрэглээний тохиолдолд фундаменталь янз бүрийн юм. Бусад янз бүрийн боодлын бооцоо нь маратон ажиллуулахын тулд илүү сайн ажилладаг. Эверест хоорондоо шүршүүлдэг. Таны шүршүүрт зориулахад, янз бүрийн өгөгдлийн багц нь янз бүрийн хэрэглээний тохиолдолд илүү сайн ажилладаг. Та ScyllaDB vs. MongoDB-ийг ашиглахыг хүсч байна уу? Нийт нийлүүлэгч үзэсгэлэнг санал болгож байгаа бол бид ScyllaDB болон MongoDB-ийг үйлдвэрлэхэд ашиглахын тулд өргөн туршлагатай нээлттэй эх сурвалжаас туслах болно: Alexys Jacob, Numberly-ийн CTO. Alexys ScyllaDB Саммит 2019-д түүний үзэсгэлэнг хуваалцах болно. Энд түүний дэлгэрэнгүй технологийн хуваалцах нь гурван гол олборлолт байна: Scaling Writes нь MongoDB дээр илүү том юм MongoDB топологийн үндсэн нэгж нь реплик цуврал гэж нэрлэдэг бөгөөд энэ нь нэг эх сурвалж, ихэвчлэн хэд хэдэн доорх цуврал (халуун реплик гэж бодож байна). Дараа нь зөвхөн эх сурвалж өгөгдлийг бүртгүүлэх боломжийг олгодог. MongoDB дээр vertical write scaling-ийг max-ийг ашиглах дараа, нэг реплик цуврал дээр хэд хэдэн эхний цуврал нэмэх хэрэгтэй. MongoDB-ийн реплик цуврал хооронд өгөгдлийг хуваалцах нь тусгай ключ ашиглахыг шаарддаг. Энэ нь MongoDB-ийн реплик цуврал дээр ямар ч өгөгдлийн цуврал (доорх диаграм дахь гоо сайхны цуврал). Мөн MongoDB-ийн цувралтэй холбогдсон хэрэглэгчдийн туслах хэрэгтэй. Энэ нь реплик цувралтай холбогдсон MongoDB-ийн Smart Router-ийн инстанцыйг (Диаграмын дээд доорх хавтгайны хэлбэрээр санал болгож буй) ашиглах, хадгалах хэрэгтэй. MongoDB-д scaling хувилбар нь хязгаарлалт Гэсэн хэдий ч, эдгээр нодоодын бүхэн нь өндөр үйл ажиллагааны, хадгалах зардал, ресурсны харьцуулалттай байдаг. Хэрэв та реплик нодоодын IO-ийг харж чадахгүй бол, энэ нь MongoDB-ийн хавтан нь таны нийт эзэмшилтын зардал нь найдвартай эрэгтэй болгодог. Alexys харж байна. ScyllaDB-ийн хувьд scaling writes илүү хялбар юм. Тэр хэлсэн, "ScyllaDB-ийн хуудсууд дээр, та илүү дамжуулахыг хүсэж байгаа бол, та зүгээр л нодоо нэмнэ. Alexys энэ scaling thread дээр холбогдсон: "MongoDB цуглуулаг үүсгэхийн тулд хялбар байх болно, тавтай морилно уу! Би энэ талаарх түүхүүдтэй ном бичж чадах. Энэ нь MongoDB-ийг CPU-д ажлын ачааллыг холбогдсон биш юм. Тэгээд цуглуулаг, цуглуулаг дахь реплик цуглуулаг хооронд өгөгдлийн хуваалцах нь задлалт ажил (балансагч) хийж байна. Энэ цуглуулаг үргэлж ажиллуулж байгаа бөгөөд хэзээ ч энэ цуглуулаг дээр өгөгдлийг хуваалцаж, байлгах ёстой. Энэ нь байгалийн хашаа дээр суурилсан биш юм. Энэ нь өөр өөр өөр удаа тооцох хэрэгтэй зүйл юм. Энэ нь өгөгдлийг цуглуулаг руу хуваалцаж, дараа нь эргэн тойронд хуваалцах. MongoDB-ийн үр дүнтэй үр дүнтэй үр дүнтэй үр дүнтэй үр дүнтэй үр дүнтэй үр дүнтэй үр дүнтэй үр дүнтэй үр дүнтэй үр дүнтэй үр дүнтэй үр дүнтэй үр дүнтэй үр дүнтэй үр дүнтэй үр дүнтэй үр дүнтэй үр дүнтэй үр дүнтэй үр дүнтэй үр дүнг юм. ScyllaDB болон MongoDB нь флексибилност, гүйцэтгэлийн талаар янз бүрийн приоритеттай байдаг. Бүтээгдэхүүний талаархи талаархи талаархи талаархи талаархи талаархи талаархи талаархи талаархи талаархи талаархи талаархи талаархи талаархи талаархи талаархи талаархи талаархи талаархи талаархи талаархи талаархи талаархи талаархи талаархи талаархи талаархи талаархи талаархи талаархи талаархи талаархи талаархи талаархи талаархи талаархи талаархи талаархи талаархи талаархи талаархи талаархи талаархи талаархи талаархи талаархи талаархи талаархи талаархи талаархи талаархи талаархи талаархи талаархи талаархи талаархи талаархи талаархи талаархи талаархи талаархи талаархи талаархи талаархи талаархи талаархи талаархи талаархи талаархи талаархи талаархи талаархи талаархи талаархи талаархи талаархи талаархи талаархи талаархи талаархи талаархи талаархи талаархи талаархи талаархи талаархи талаархи талаархи талаархи талаархи талаархи талаархи талаархи талаархи талаархи талаархи талаар ScyllaDB-ийн өгөгдлийн суулгах өмнө схем баталгаажуулах Энэ өгөгдлийн тодорхойлолттай схемуудтай байна. Албан ёсны Үйлчилгээ Хэрэв та JSON-тэй шүүлтүүр, хамтран ажилладаг бол MongoDB-тэй асуултууд нь илүү хялбар байдаг. Энэ нь илүү гүнзгий байдаг. MongoDB нь таны үйлдвэрлэлийн ажлын ачаалалтай гүйцэтгэлийг үүсгэдэг асуултууд гэх мэт ямар ч төрлийн асуултуудыг хүргэх боломжийг олгодог. ScyllaDB энэ боломжийг олгодоггүй. Хэрэв та туршиж байгаа бол, ScyllaDB танд хандуулах болно. Хэрэв та өөрийн ризиктай ажиллуулахыг хүсч байгаа бол та зүгээр л та нартай юу гэж мэдэж байгаа эсэхийг харуулж болно. Алексис хөгжилтийн үзэсгэлэнт харьцуулахад гол янз бүрийн харьцуулалттай: "MongoDB нь гүйцэтгэлийн илүү хялбар юм. Энэ нь харилцаа холбооны хялбар бөгөөд энэ нь та нарын арга зайлсхийхгүй болно. Гэхдээ энэ нь гүйцэтгэлийн үр нөлөөтэй болно. Энэ нь зарим ажлын ачаалалтай, гэхдээ бусад хүмүүст хялбар байдаг. Дараа нь, ScyllaDB нь янз бүрийн ачаалалтай харьцуулахад харьцуулахад харьцуулахад хүчин чадалтай байдаг. Энэ нь богино, гүйцэтгэлийн үр ашигтай ажлын ачаалалтай байдаг. Гэхдээ нэг удаа, энэ нь танд харьцуулахад хүчин чадалтай байх, системтэй сайн ажиллахад боломжийг олгодог." Энэ нь үзэсгэлэнт хамгийн сайн практик дараах асуулт MongoDB-д ScyllaDB-д харьцуулахад янз бүрийн байх болно. Хэрэв та нарийвчлалтай бол, үр дүнтэй архитектурын янз бүрийн үр дүнтэй харьцуулахад үр дүнтэй харьцуулахад туслах болно. ScyllaDB болон MongoDB нь Great NoSQL Combo юм. "Энэ нь үхэх багц биш; Бид MongoDB болон ScyllaDB-ийн сайн хэрэглэгчид юм," Алексис дараа. Numerly тус бүрийн хэрэглээний хэрэгцээний техникийн шаардлагад хамгийн сайн мэдээллийн сан сонгоно. Numerly-д MongoDB нь хоёр төрлийн хэрэглээний тохиолдолд ашиглаж байна: REST API-ийг ашиглан веб-бакэндын болон хялбар схемүүдтэй. Үнэгүй цаг хугацааны асуултууд нь урьдчилан сэргийлэх үйл ажиллагааны өгөгдлийн талаар. Жишээ нь, Numberly-ийн зарим програмууд нь хэрэглэгчид цуглуулах, илгээх вэб даатгалын өгөгдөлтэй хязгаарлагддаг. Numberly-ийн энэ өгөгдөлд зориулсан нарийвчлалтай схемуудыг хангахын тулд аргагүй байдаг боловч энэ өгөгдлийг хайж, боловсруулах боломжтой байх ёстой. Alexys-ийн хэлбэлээр, "MongoDB энд тохиромжтой байдаг; энэ нь өгөгдлийг ямар нэг газарт хадгалах, үүнийг хялбар хайж чадна. ScyllaDB нь Numberly-д гурван төрлийн хэрэглээний тохиолдолд ашиглаж байна: Real-time latency-sensitive data pipelines. Энэ нь хэд хэдэн өгөгдлийн эх сурвалжаас хамаарах хэрэгтэй, Real-time, data pipelines. According to Alexys, “Энэ хийх нь хялбар юм ... and you need strong latency guarantees to not break the SLAs [service-level agreements] of the applications and data processes that your clients rely on down the pipe.” Нийтэлсэн багц, бодит цаг хугацааны ажлын ачаалал. Numerly нь ScyllaDB-д олон багц, бодит цаг хугацааны ажлын ачаалалтай байдаг, учир нь энэ нь хоёр дэлхийн хамгийн сайн санал болгож байна (Numerly-ийн өмнөх хэлбэрээр). "We had Hive on one path and MongoDB on the other. We put everything on ScyllaDB and its sustaining Hadoop-like batch workloads and real-time pipeline workloads." GraphQL-ийг ашиглан вэб-бакалаврын програм хангамжийг ашигладаг. Numerly-ийн вэб-бакалаврын програм хангамжийг GraphQL-ийг ашигладаг. Шагналт дээр суурилсан API-ийг ажиллуулж байгаа үед бага давтамж, өндөр тавтай морилно уу. Алексис сүүлд хэлсэн: "Энэ нь манай backend инженерийн олон, frontend инженерийн бас, ScyllaDB-ийг хэрэглэж байна. Бид ScyllaDB-ийг хэрэглэж байгаа хүмүүсийн шинж чанарыг харах, илүү технологийн хүмүүс "Би энэ хэрэглээний тохиолдолд байна, ScyllaDB-ийг сайн тохиромжтой байж болох уу?" -ийг хайж байна. Үүнээс гадна, ScyllaDB-ийг хэрэглээн нэмэгдэж байна. MongoDB-ийг хэрэглэдэг, гэхдээ MongoDB-ийг маш их сонирхолтой шинж чанарыг бий болгохын тулд энд байна. Бонус: Алексис Якоб-аас дэлгэрэнгүй мэдээлэл Alexys нь код болон конференц хэлбэрийн талаарх нь нээлттэй эх сурвалжаас маш их алдартай туслагч юм. https://ultrabug.fr/ тухай Сайнхи Dunlop Cynthia ScyllaDB-ийн контент стратегийн алдартай менежер юм. Энэ нь програм хангамжийн хөгжүүлэх, чанарын инженерийн талаар 20 гаруй жилийн турш бичсэн байна.