PayPal เป€เบ›เบตเบ”เบฅเบฐเบซเบฑเบ” JunoDB DBMS

PayPal เป„เบ”เป‰เป€เบ›เบตเบ”เบฅเบฐเบซเบฑเบ”เปเบซเบผเปˆเบ‡เบ‚เบญเบ‡ DBMS JunoDB เบ—เบตเปˆเบ—เบปเบ™เบ—เบฒเบ™เบ•เปเปˆเบ„เบงเบฒเบกเบœเบดเบ”, เป€เบŠเบดเปˆเบ‡เบˆเบฑเบ”เบเบฒเบ™เบ‚เปเป‰เบกเบนเบ™เปƒเบ™เบฎเบนเบšเปเบšเบšเบ—เบตเปˆเบชเปเบฒเบ„เบฑเบ™. เบฅเบฐเบšเบปเบšเบ”เบฑเปˆเบ‡เบเปˆเบฒเบงเป„เบ”เป‰เบ–เบทเบเบญเบญเบเปเบšเบšเปƒเบ™เป€เบšเบทเป‰เบญเบ‡เบ•เบปเป‰เบ™เบ—เบตเปˆเบกเบตเบ„เบงเบฒเบกเบ›เบญเบ”เป„เบžเบชเบนเบ‡, เบเบฒเบ™เบ‚เบฐเบซเบเบฒเบเบญเบญเบเบ•เบฒเบกเบฅเบงเบ‡เบ™เบญเบ™, เบ„เบงเบฒเบกเบ—เบปเบ™เบ—เบฒเบ™เบ•เปเปˆเบ„เบงเบฒเบกเบœเบดเบ”, เปเบฅเบฐเบ„เบงเบฒเบกเบชเบฒเบกเบฒเบ”เปƒเบ™เบเบฒเบ™เบˆเบฑเบ”เบเบฒเบ™เบซเบผเบฒเบเบฎเป‰เบญเบเบžเบฑเบ™เบ‚เบญเบ‡เบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบžเป‰เบญเบกเป†เบเบฑเบ™เบเบฑเบš latencies เบ„เบฒเบ”เบ„เบฐเป€เบ™เบขเบนเปˆเปƒเบ™เปƒเบˆ. เบขเบนเปˆ PayPal, เป€เบเบทเบญเบšเบ—เบธเบเบเบฒเบ™เบšเปเบฅเบดเบเบฒเบ™, เบˆเบฒเบเบเบฒเบ™เป€เบ‚เบปเป‰เบฒเบชเบนเปˆเบฅเบฐเบšเบปเบšเบ‚เบญเบ‡เบœเบนเป‰เปƒเบŠเป‰เป„เบ›เบชเบนเปˆเบเบฒเบ™เบ›เบฐเบกเบงเบ™เบœเบปเบ™เบ—เบธเบฅเบฐเบเปเบฒเบ—เบฒเบ‡เบ”เป‰เบฒเบ™เบเบฒเบ™เป€เบ‡เบดเบ™, เปเบกเปˆเบ™เบœเบนเบเบกเบฑเบ”เบเบฑเบš JunoDB. เบฅเบฐเบซเบฑเบ”เป‚เบ„เบ‡เบเบฒเบ™เบ–เบทเบเบ‚เบฝเบ™เป„เบงเป‰เปƒเบ™ Go (เบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ”เบฅเบนเบเบ„เป‰เบฒ Java) เปเบฅเบฐเบ–เบทเบเปเบˆเบเบขเบฒเบเบžเบฒเบเปƒเบ•เป‰เปƒเบšเบญเบฐเบ™เบธเบเบฒเบ” Apache 2.0. เบเบฒเบ™เบžเบฑเบ”เบ—เบฐเบ™เบฒเบ•เปเปˆเป„เบ›เบˆเบฐเบเบญเบกเบฎเบฑเบšเบเบฒเบ™เปเบเป‰เป„เบ‚, เบเบฒเบ™เบ›เบฑเบšเบ›เบธเบ‡เปเบฅเบฐเบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡เบˆเบฒเบเบŠเบธเบกเบŠเบปเบ™.

เบชเบฐเบ–เบฒเบ›เบฑเบ”เบ•เบฐเบเบฐเบเปเบฒเบ‚เบญเบ‡ JunoDB เปเบกเปˆเบ™เบญเบตเบ‡เปƒเบชเปˆเบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰เบ•เบปเบงเบ”เบธเปˆเบ™เบ”เปˆเบฝเบ‡เบเบฒเบ™เป‚เบซเบผเบ”เบ—เบตเปˆเบเบญเบกเบฎเบฑเบšเบ„เปเบฒเบฎเป‰เบญเบ‡เบ‚เปเบˆเบฒเบเบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบเบ‚เบญเบ‡เบฅเบนเบเบ„เป‰เบฒเปเบฅเบฐเปเบˆเบเบขเบฒเบเบžเบงเบเบกเบฑเบ™เปƒเบ™เบšเบฑเบ™เบ”เบฒเป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบเบ•เบปเบงเปเบ—เบ™เบ—เบตเปˆเป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡เบเบธเปˆเบกเบ‚เบญเบ‡เป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบเบเบฒเบ™เป€เบเบฑเบšเบฎเบฑเบเบชเบฒเบžเป‰เบญเบกเป†เบเบฑเบ™เปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเบเบฒเบ™เบฎเป‰เบญเบ‡เบ‚เปเบ–เบทเบเบ›เบฐเบ•เบดเบšเบฑเบ”. เปเบ•เปˆเบฅเบฐเป€เบŠเบตเบšเป€เบงเบตเบžเบฃเบฑเบญเบเบŠเบตเบชเป‰เบฒเบ‡เบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบเบฑเบšเป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบเบเบฒเบ™เป€เบเบฑเบšเบฎเบฑเบเบชเบฒเบ—เบฑเบ‡เบซเบกเบปเบ”เปƒเบ™เป€เบงเบฅเบฒเบ”เบฝเบงเบเบฑเบ™เปเบฅเบฐเบชเบปเปˆเบ‡เบ•เปเปˆเบ„เปเบฒเบฎเป‰เบญเบ‡เบ‚เปเป„เบ›เบซเบฒเบเบธเปˆเบกเบ‚เบญเบ‡เป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบเบเบฒเบ™เป€เบเบฑเบšเบฎเบฑเบเบชเบฒเป‚เบ”เบเบญเบตเบ‡เปƒเบชเปˆเบ”เบฑเบ”เบŠเบฐเบ™เบตเบžเบฒเบ—เบดเบŠเบฑเบ™, เป€เบŠเบดเปˆเบ‡เบ–เบทเบเป€เบเบฑเบšเป„เบงเป‰เปƒเบ™เบฅเบฐเบšเบปเบšเบเบฒเบ™เป€เบเบฑเบšเบฎเบฑเบเบชเบฒเบ—เบตเปˆเปเบˆเบเบขเบฒเบ etcd configuration.

PayPal เป€เบ›เบตเบ”เบฅเบฐเบซเบฑเบ” JunoDB DBMS

เบ‚เปเป‰เบกเบนเบ™เบ–เบทเบเปเบšเปˆเบ‡เบชเปˆเบงเบ™ เปเบฅเบฐเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบเบฑเบš nodes เบเบฒเบ™เป€เบเบฑเบšเบฎเบฑเบเบชเบฒเป‚เบ”เบเปƒเบŠเป‰ hashing, เป€เบŠเบดเปˆเบ‡เบŠเปˆเบงเบเบซเบผเบธเบ”เบœเปˆเบญเบ™เบเบฒเบ™เป€เบ„เบทเปˆเบญเบ™เป„เบซเบงเบ‚เบญเบ‡เบ‚เปเป‰เบกเบนเบ™ เป€เบ™เบทเปˆเบญเบ‡เบˆเบฒเบ nodes เปƒเบ™ cluster เป€เบ•เบตเบšเป‚เบ• เบซเบผเบทเบซเบเปเป‰เบฅเบปเบ‡. เป€เบžเบทเปˆเบญเบฎเบฑเบšเบ›เบฐเบเบฑเบ™เบ„เบงเบฒเบกเบ—เบปเบ™เบ—เบฒเบ™เบ•เปเปˆเบ„เบงเบฒเบกเบœเบดเบ”, เบ‚เปเป‰เบกเบนเบ™เปเบ•เปˆเบฅเบฐเบญเบฑเบ™เป„เบ”เป‰เบ–เบทเบเบˆเปเบฒเบฅเบญเบ‡เบขเบนเปˆเปƒเบ™เบซเบผเบฒเบเป‚เบซเบ™เบ”เบเบฒเบ™เป€เบเบฑเบšเบฎเบฑเบเบชเบฒ, เป€เบŠเบดเปˆเบ‡เบŠเปˆเบงเบเปƒเบซเป‰เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบšเบฑเบ™เบ—เบถเบเบ‚เปเป‰เบกเบนเบ™เปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบเปเบ•เปˆเบฅเบฐเบ„เบปเบ™เบฅเบปเป‰เบกเป€เบซเบฅเบง. เบเบฒเบ™เบชเป‰เบฒเบ‡เบšเปˆเบญเบ™เป€เบเบฑเบšเบฎเบฑเบเบชเบฒเบ—เบตเปˆเปเบˆเบเบขเบฒเบเบ•เบฒเบกเบžเบนเบกเบชเบฑเบ™เบ–เบฒเบ™เปเบกเปˆเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™, เป€เบŠเบดเปˆเบ‡เบเบธเปˆเบกเบ‚เบญเบ‡ nodes เปเบกเปˆเบ™เบขเบนเปˆเปƒเบ™เบชเบนเบ™เบ‚เปเป‰เบกเบนเบ™เบ—เบตเปˆเปเบ•เบเบ•เปˆเบฒเบ‡เบเบฑเบ™.

PayPal เป€เบ›เบตเบ”เบฅเบฐเบซเบฑเบ” JunoDB DBMS

เปƒเบ™เป‚เบซเบ™เบ”เบเบฒเบ™เป€เบเบฑเบšเบฎเบฑเบเบชเบฒเบ‚เปเป‰เบกเบนเบ™, เบžเบงเบเบกเบฑเบ™เบ•เบฑเป‰เบ‡เบขเบนเปˆเปƒเบ™ RAM เบซเบผเบทเบšเปˆเบญเบ™เป€เบเบฑเบšเบ‚เปเป‰เบกเบนเบ™เปƒเบ™เบ—เป‰เบญเบ‡เบ–เบดเปˆเบ™เป‚เบ”เบเบญเบตเบ‡เปƒเบชเปˆเบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ” RocksDB. เป€เบกเบทเปˆเบญเบ–เบทเบเป€เบเบฑเบšเป„เบงเป‰เบขเปˆเบฒเบ‡เบ–เบฒเบงเบญเบ™, เบ‚เปเป‰เบกเบนเบ™เบˆเบฐเบ–เบทเบเป€เบเบฑเบšเป„เบงเป‰เปƒเบ™เบฎเบนเบšเปเบšเบšเบ—เบตเปˆเบ–เบทเบเป€เบ‚เบปเป‰เบฒเบฅเบฐเบซเบฑเบ” (เบฅเบฐเบซเบฑเบ”เบเบฒเบ™เป€เบ‚เบปเป‰เบฒเบฅเบฐเบซเบฑเบ”เบชเบฒเบกเบฒเบ”เบ–เบทเบเบเปเบฒเบ™เบปเบ”เป‚เบ”เบเบฅเบนเบเบ„เป‰เบฒเบซเบผเบทเบ•เบฑเป‰เบ‡เบขเบนเปˆเปƒเบ™เบฅเบฐเบ”เบฑเบšเบ•เบปเบงเปเบ—เบ™).

PayPal เป€เบ›เบตเบ”เบฅเบฐเบซเบฑเบ” JunoDB DBMS

เป€เบžเบทเปˆเบญเป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡เบ–เบฒเบ™เบ‚เปเป‰เบกเบนเบ™เบˆเบฒเบเปเบญเบฑเบšเบžเบฅเบดเป€เบ„เบŠเบฑเบ™, เบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ”เบฅเบนเบเบ„เป‰เบฒเปเบกเปˆเบ™เบชเบฐเบซเบ™เบญเบ‡ API เบชเปเบฒเบฅเบฑเบšเปเบญเบฑเบšเบžเบฅเบดเป€เบ„เบŠเบฑเบ™เปƒเบ™ Java, Go เปเบฅเบฐ C ++. เบžเบฒเบเบชเปˆเบงเบ™เบฅเบนเบเบ„เป‰เบฒเปเบกเปˆเบ™เบ‡เปˆเบฒเบเบ”เบฒเบเบซเบผเบฒเบเป€เบ—เบปเปˆเบฒเบ—เบตเปˆเป€เบ›เบฑเบ™เป„เบ›เป„เบ”เป‰, เปเบฅเบฐเป€เบซเบ”เบœเบปเบ™เปเบฅเบฐเบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒเบ—เบตเปˆเบชเบฑเบšเบชเบปเบ™เบ–เบทเบเป‚เบญเบ™เป„เบ›เบซเบฒเบเปˆเบฒเบ DBMS เบ—เบธเบเบ„เบฑเป‰เบ‡เบ—เบตเปˆเป€เบ›เบฑเบ™เป„เบ›เป„เบ”เป‰. เบเบฒเบ™เป‚เบ•เป‰เบ•เบญเบšเบฅเบฐเบซเบงเปˆเบฒเบ‡เบฅเบนเบเบ„เป‰เบฒเปเบฅเบฐเบœเบนเป‰เบ”เบธเปˆเบ™เบ”เปˆเบฝเบ‡เบซเบผเบทเบ•เบปเบงเปเบ—เบ™เปเบกเปˆเบ™เบ”เปเบฒเป€เบ™เบตเบ™เป‚เบ”เบเบœเปˆเบฒเบ™เบŠเปˆเบญเบ‡เบ—เบฒเบ‡เบเบฒเบ™เบชเบทเปˆเบชเบฒเบ™เบ—เบตเปˆเบ–เบทเบเป€เบ‚เบปเป‰เบฒเบฅเบฐเบซเบฑเบ”. เป€เบžเบทเปˆเบญเบˆเบฑเบ”เบเบฒเบ™เปเบฅเบฐเบชเบปเปˆเบ‡เบ„เปเบฒเบฎเป‰เบญเบ‡เบ‚เป, เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบ™เปเบฒเปƒเบŠเป‰เบเบฒเบ™เป‚เบ•เป‰เบ•เบญเบšเป€เบชเบฑเป‰เบ™เบ„เปเบฒเบชเบฑเปˆเบ‡, เป€เบŠเบดเปˆเบ‡ replicates เบ„เบงเบฒเบกเบชเบฒเบกเบฒเบ”เบ—เบฑเบ‡เบซเบกเบปเบ”เบ‚เบญเบ‡ API เบฅเบนเบเบ„เป‰เบฒ.

เบฅเบฐเบšเบปเบšเป„เบ”เป‰เบ–เบทเบเบญเบญเบเปเบšเบšเป€เบžเบทเปˆเบญเบ›เบฐเบกเบงเบ™เบœเบปเบ™เบเบฒเบ™เบฎเป‰เบญเบ‡เบ‚เปเบ—เบตเปˆเบกเบต latency เบ•เปˆเปเบฒเบ—เบตเปˆเบ„เบฒเบ”เป€เบ”เบปเบฒเป„เบ”เป‰, เบ•เบปเบงเบขเปˆเบฒเบ‡, เบเบธเปˆเบกเบ‚เบญเบ‡เบชเบฒเบก nodes เบเบฒเบ™เป€เบเบฑเบšเบฎเบฑเบเบชเบฒเปเบฅเบฐเบซเบ™เบถเปˆเบ‡ proxy, เบชเป‰เบฒเบ‡เบ•เบฑเป‰เบ‡เบ‚เบถเป‰เบ™เบˆเบฒเบเบชเบฐเบžเบฒเบšเปเบงเบ”เบฅเป‰เบญเบก n1-highmem-32 (32 Intel Xeon 2.30GHz CPUs, 214G RAM เปเบฅเบฐ 450G SSD-based storage) , เบชเบฒเบกเบฒเบ”เบชเบฐเบซเบ™เบญเบ‡เบ„เบงเบฒเบกเบฅเปˆเบฒเบŠเป‰เบฒเบ„เบปเบ‡เบ—เบตเปˆเบšเปเปˆเป€เบเบตเบ™ 2.5 ms เปƒเบ™ 95% เบ‚เบญเบ‡เบเปเบฅเบฐเบ™เบตเปเบฅเบฐ 16 ms เปƒเบ™ 99% เป€เบกเบทเปˆเบญเบ›เบฐเบกเบงเบ™เบœเบปเบ™ 200 เบžเบฑเบ™เบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆ TLS เบžเป‰เบญเบกเบเบฑเบ™เปเบฅเบฐเบเบฒเบ™เป„เบซเบผเป€เบ‚เบปเป‰เบฒเบ‚เบญเบ‡ 15 เบžเบฑเบ™เบ„เปเบฒเบฎเป‰เบญเบ‡เบ‚เปเบ•เปเปˆเบงเบดเบ™เบฒเบ—เบต (เบกเบต 3000 เบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบžเป‰เบญเบกเป†เบเบฑเบ™เปเบฅเบฐเบเบฒเบ™เป„เบซเบผเป€เบ‚เบปเป‰เบฒเบ‚เบญเบ‡ 80 เบžเบฑเบ™เบ„เปเบฒเบฎเป‰เบญเบ‡เบ‚เป. เบ•เปเปˆเบงเบดเบ™เบฒเบ—เบต, เบ„เบงเบฒเบกเบฅเปˆเบฒเบŠเป‰เบฒเบšเปเปˆเป€เบเบตเบ™ 6 ms เปƒเบ™ 95% เบ‚เบญเบ‡เบเปเบฅเบฐเบ™เบตเปเบฅเบฐ 15 ms เปƒเบ™ 99%). เบขเบนเปˆ PayPal, เบเบฒเบ™เบšเปเบฅเบดเบเบฒเบ™เบ—เบตเปˆเบญเบตเบ‡เปƒเบชเปˆ JunoDB เปƒเบซเป‰เบšเปเบฅเบดเบเบฒเบ™เบ›เบฐเบกเบฒเบ™ 350 เบ•เบทเป‰เบ„เปเบฒเบฎเป‰เบญเบ‡เบ‚เปเบ•เปเปˆเบกเบทเป‰.

PayPal เป€เบ›เบตเบ”เบฅเบฐเบซเบฑเบ” JunoDB DBMS


เปเบซเบผเปˆเบ‡เบ‚เปเป‰เบกเบนเบ™: opennet.ru

เป€เบžเบตเปˆเบกเบ„เบงเบฒเบกเบ„เบดเบ”เป€เบซเบฑเบ™