PayPal JunoDB DBMS кодын ашты

PayPal кілт-мән пішіміндегі деректерді басқаратын қатеге төзімді ДҚБЖ JunoDB үшін бастапқы кодты ашты. Жүйе бастапқыда жоғары қауіпсіздік, көлденең масштабтау, ақауларға төзімділік және болжамды кідірістерді ескере отырып, жүздеген мың бір уақытта қосылымдарды өңдеу мүмкіндігімен жасалған. PayPal жүйесінде пайдаланушының кіруінен қаржылық транзакцияларды өңдеуге дейінгі барлық дерлік қызметтер JunoDB-ге байланысты. Жоба коды Go (Java клиенттік кітапханасы) бағдарламасында жазылған және Apache 2.0 лицензиясы бойынша таратылады. Әрі қарай дамуда қауымдастықтан түзетулер, жақсартулар мен өзгерістер қабылданады.

JunoDB архитектурасы клиенттік қосымшалардан сұраныстарды қабылдайтын және оларды бір уақытта топқа кіретін прокси-серверлер арасында тарататын жүктеме теңгергішін пайдалануға негізделген серверлер сұранысты орындау кезінде сақтау орны. Әрбір прокси-сервер олардың барлығымен бірден байланыс орнатады. серверлер сақтау және сұраныстарды etcd таратылған конфигурация сақтау жүйесінде сақталған бөлім индексіне негізделген сақтау серверлері тобына бағыттайды.

PayPal JunoDB DBMS кодын ашты

Деректер кластерде өсетін немесе кішірейген кезде деректер қозғалысын азайту үшін хэштеу арқылы деректер бөлінеді және сақтау түйіндеріне байланыстырылады. Ақауларға төзімділікті қамтамасыз ету үшін деректердің әрбір бөлігі жеке серверлер істен шыққан кезде ақпаратты сақтауға мүмкіндік беретін бірнеше сақтау түйіндерінде қайталанады. Түйіндердің топтары әртүрлі деректер орталықтарында орналасқан географиялық бөлінген қоймаларды құруға қолдау көрсетіледі.

PayPal JunoDB DBMS кодын ашты

Сақтау түйіндерінде деректер оперативті жадқа немесе RocksDB кітапханасына негізделген жергілікті жадқа орналастырылады. Тұрақты сақтау кезінде деректер шифрланған түрде сақталады (шифрлау кілтін клиент анықтауы мүмкін және прокси деңгейінде орнатуға болады).

PayPal JunoDB DBMS кодын ашты

Қолданбалардан дерекқорға қол жеткізу үшін Java, Go және C++ тілдеріндегі қолданбаларды API қамтамасыз ететін клиент кітапханасы жеткізіледі. Клиент бөлігі мүмкіндігінше жеңілдетілген және күрделі логика мен параметрлер, мүмкін болса, ДҚБЖ жағына жылжытылады. Клиент пен теңгеруші немесе прокси арасындағы өзара әрекеттесу шифрланған байланыс арнасы арқылы жүзеге асырылады. Сұрауларды басқару және жіберу үшін пәрмен жолы интерфейсін пайдалануға болады, ол клиент API толық функционалдығын еліктейді.

Жүйе болжамды төмен кідіріспен сұрауларды өңдеуге арналған, мысалы, n1-highmem-32 орталарынан (32 Intel Xeon 2.30 ГГц процессорлары, 214G жедел жады және 450G SSD негізіндегі жад) құрылған үш сақтау түйіні және бір прокси кластері, 2.5% жағдайда 95 мс және 16 мс-ден аспайтын 99% кідіріспен қамтамасыз ете алды. 200 мың бір уақыттағы TLS қосылымы және секундына 15 мың сұраныс ағыны (бір мезгілде 3000 қосылым және секундына 80 мың сұраныс ағыны кезінде кідіріс 6% жағдайда 95 мс және 15% жағдайда 99 мс-тен аспады). PayPal жүйесінде JunoDB негізіндегі қызметтер күніне шамамен 350 миллиард сұранысқа қызмет етеді.

PayPal JunoDB DBMS кодын ашты


Ақпарат көзі: opennet.ru
DDoS қорғауы бар сайттар үшін сенімді хостинг, VPS VDS серверлерін сатып алыңыз 🔥 DDoS қорғанысы, VPS VDS серверлері бар сенімді веб-сайт хостингін сатып алыңыз | ProHoster