ПаиПал је отворио изворни код ДБМС ЈуноДБ отпорног на грешке, који манипулише подацима у формату кључ/вредност. Систем је првобитно дизајниран са високом безбедношћу, хоризонталном скалабилности, толеранцијом грешака и способношћу да рукује стотинама хиљада истовремених веза са предвидљивим кашњењима на уму. У ПаиПал-у су скоро све услуге, од пријављивања корисника до обраде финансијских трансакција, везане за ЈуноДБ. Код пројекта је написан у Го (Јава клијентска библиотека) и дистрибуира се под лиценцом Апацхе 2.0. Даљи развој ће прихватити исправке, побољшања и промене од стране заједнице.
Архитектура JunoDB-а је заснована на коришћењу балансера оптерећења који прихвата захтеве од клијентских апликација и дистрибуира их између прокси сервера који истовремено приступају групи сервери складиштење приликом извршавања захтева. Сваки прокси сервер успоставља везе са свима њима одједном. сервери складиштење и усмерава захтеве ка групи сервера за складиштење на основу индекса партиционисања сачуваног у дистрибуираном систему за складиштење конфигурације etcd.

Подаци се партиционирају и повезују са чворовима за складиштење помоћу хеширања, што смањује кретање података како чворови у кластеру расту или се смањују. Да би се обезбедила толеранција грешака, сваки део података се реплицира на неколико чворова за складиштење, што вам омогућава да сачувате информације када појединачни сервери не успеју. Подржано је креирање географски дистрибуираних складишта у којима се групе чворова налазе у различитим центрима података.

На чворовима за складиштење података, они се налазе у РАМ-у или у локалној меморији заснованој на РоцксДБ библиотеци. Када се трајно чувају, подаци се чувају у шифрованом облику (кључ за шифровање може да одреди или клијент или да се подеси на нивоу проксија).

За приступ бази података из апликација, испоручује се клијентска библиотека која обезбеђује АПИ за апликације у Јави, Го и Ц++. Клијентски део је максимално поједностављен, а сложена логика и подешавања се преносе на страну ДБМС кад год је то могуће. Интеракција између клијента и балансера или проксија се врши преко шифрованог комуникационог канала. За управљање и слање захтева можете користити интерфејс командне линије, који реплицира све могућности клијентског АПИ-ја.
Систем је дизајниран да обрађује захтеве са предвидљивим малим кашњењима, на пример, кластер од три чвора за складиштење и једног проксија, формираног од н1-хигхмем-32 окружења (32 Интел Ксеон 2.30ГХз ЦПУ-а, 214Г РАМ-а и 450Г ССД-базираног складишта) , успео је да обезбеди фиксна кашњења која не прелазе 2.5 мс у 95% случајева и 16 мс у 99% при обради 200 хиљада истовремених ТЛС веза и проток од 15 хиљада захтева у секунди (са 3000 истовремених веза и протоком од 80 хиљада захтева у секунди кашњења нису прелазила 6 мс у 95% случајева и 15 мс у 99%). У ПаиПал-у, услуге засноване на ЈуноДБ-у опслужују око 350 милијарди захтева дневно.

Извор: опеннет.ру
