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

пікір қалдыру