PayPal нь JunoDB DBMS кодыг нээсэн

PayPal нь түлхүүр утгын форматаар өгөгдлийг өөрчилдөг алдааг тэсвэрлэх чадвартай DBMS JunoDB-ийн эх кодыг нээсэн. Уг систем нь анхандаа өндөр хамгаалалт, хэвтээ өргөтгөл, алдааг тэсвэрлэх чадвар, урьдчилан таамаглах боломжтой саатал бүхий олон зуун мянган холболтыг нэгэн зэрэг зохицуулах чадвартайгаар бүтээгдсэн. PayPal дээр хэрэглэгчийн нэвтрэхээс эхлээд санхүүгийн гүйлгээг боловсруулах хүртэлх бараг бүх үйлчилгээ JunoDB-тэй холбоотой байдаг. Төслийн код нь Go (Java клиент номын сан) дээр бичигдсэн бөгөөд Apache 2.0 лицензийн дагуу түгээгддэг. Цаашид хөгжүүлэлт хийхдээ олон нийтээс залруулга, сайжруулалт, өөрчлөлтийг хүлээн авна.

JunoDB-ийн архитектур нь үйлчлүүлэгчийн програмуудын хүсэлтийг хүлээн авч, хүсэлт гаргах үед хадгалах серверүүдийн бүлэгт нэгэн зэрэг ханддаг прокси серверүүдийн дунд түгээдэг ачааллын тэнцвэржүүлэгчийг ашиглахад суурилдаг. Прокси бүр нь бүх хадгалалтын серверүүдтэй нэг дор холболт үүсгэж, etcd тохиргооны тархсан хадгалах системд хадгалагдсан хуваалтын индекс дээр үндэслэн хадгалах серверүүдийн бүлэгт хүсэлтийг дахин чиглүүлдэг.

PayPal нь JunoDB DBMS кодыг нээсэн

Кластерт зангилаа өсөх эсвэл багасах үед өгөгдлийн хөдөлгөөнийг багасгахын тулд өгөгдлийг хэш ашиглан хадгалах цэгүүдэд хувааж, холбодог. Гэмтлийг тэсвэрлэхийн тулд өгөгдлийн хэсэг бүрийг хэд хэдэн хадгалах цэг дээр хуулбарладаг бөгөөд энэ нь серверүүд ажиллахаа больсон үед мэдээллийг хадгалах боломжийг олгодог. Зангилааны бүлгүүд өөр өөр мэдээллийн төвд байрладаг газарзүйн хувьд хуваарилагдсан хадгалах сангуудыг бий болгохыг дэмждэг.

PayPal нь JunoDB DBMS кодыг нээсэн

Хадгалах цэгүүд дээр өгөгдлийг RocksDB номын санд тулгуурлан RAM эсвэл дотоод санах ойд байрлуулдаг. Байнгын хадгалалтын тусламжтайгаар өгөгдлийг шифрлэгдсэн хэлбэрээр хадгалдаг (шифрлэлтийн түлхүүрийг үйлчлүүлэгч тодорхойлж, прокси түвшинд тохируулж болно).

PayPal нь JunoDB DBMS кодыг нээсэн

Програмаас мэдээллийн санд хандахын тулд Java, Go, C++ хэл дээрх програмуудад зориулсан API-г хангадаг клиент номын санг нийлүүлсэн болно. Үйлчлүүлэгчийн хэсгийг аль болох хялбаршуулж, нарийн төвөгтэй логик, тохиргоог боломжтой бол DBMS-ийн тал руу шилжүүлдэг. Үйлчлүүлэгч ба тэнцвэржүүлэгч эсвэл прокси хоорондын харилцан үйлчлэл нь шифрлэгдсэн холбооны сувгаар явагддаг. Та хүсэлтийг удирдах, илгээхийн тулд командын мөрийн интерфейсийг ашиглаж болох бөгөөд энэ нь клиент API-ийн бүрэн ажиллагааг дуурайдаг.

Энэхүү систем нь n1-highmem-32 орчноос (32 Intel Xeon 2.30GHz CPU, 214G RAM болон 450G SSD-д суурилсан санах ой) үүсгэсэн гурван санах ойн зангилаа болон нэг прокси-с бүрдсэн кластер, жишээлбэл, урьдчилан таамаглах боломжтой хоцролт багатай хүсэлтийг боловсруулахад зориулагдсан. , нэгэн зэрэг 2.5 мянган TLS холболт, секундэд 95 мянган хүсэлтийн урсгалыг (16 нэгэн зэрэг холболт, 99 мянган хүсэлтийн урсгалтай) боловсруулахад тохиолдлын 200% -д 15 мс-ээс хэтрэхгүй тогтмол саатал, 3000% -д 80 мс-ээс ихгүй саатал гаргаж чадсан. секундэд саатал нь тохиолдлын 6% -д 95 мс, 15% -д 99 мс-ээс хэтрэхгүй байна. PayPal дээр JunoDB-д суурилсан үйлчилгээнүүд өдөрт 350 тэрбум орчим хүсэлтийг хүлээн авдаг.

PayPal нь JunoDB DBMS кодыг нээсэн


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

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