写点什么

PayPal 开源 JunoDB,支持 3500 亿次日请求的键值存储

  • 2023-06-24
    北京
  • 本文字数:1172 字

    阅读完需:约 4 分钟

PayPal开源JunoDB,支持3500亿次日请求的键值存储

PayPal 最近开源了JunoDB,这是一个底层使用 RocksDB 存储引擎的分布式键值存储。JunoDB 是一个高度可用且非常注重安全的数据库。在 PayPal,它每天处理 3500 亿次请求。

 

JunoDB是用 Golang 编写的,采用了基于代理的设计,支持连接的线性横向扩展。它使用一致性哈希算法对数据进行分区,最大限度地减少了集群扩展或收缩时的数据移动。为了实现零停机,JunoDB 使用了数据中心内和跨数据中心复制,并通过基于仲裁的协议和两阶段提交确保数据一致性。PayPal 首席 MTS Yaping Shi写道:


实际上,PayPal 的每一个核心后端服务都依赖于 JunoDB,从登录到风险再到最终的交易处理。使用 JunoDB,应用程序可以有效地存储和缓存数据,以便在关系数据库和其他服务上快速访问以及降低负载。



图片来源:https://medium.com/paypal-tech/unlocking-the-power-of-junodb-paypals-key-value-store-goes-open-source-ee85f935bdc1

 

该数据库主要包含三个组件:JunoDB 客户端库(有面向不同语言的版本)、JunoDB 客户端代理(一个连接存储服务器并负责分片的负载平衡器),以及 JunoDB 存储(基于高性能嵌入式数据库RockDB,同时提供了内存和磁盘持久化存储)。

 

如果出现节点故障,那么它提供的自动化即时故障转移功能避免了集群领导的重新选举或数据的重新分配。

 

对于这个新的 NoSQL 解决方案,其建议的应用场景包括缓存、存储用户首选项、帐户详情和 API 响应等信息、幂等性(确保操作幂等并消除任何重复处理)和延迟桥接(帮助解决由跨区域的分布式数据库所造成的复制延迟)。Shi 介绍了该项目在 PayPal 内部的演进情况:


它最初是一个单线程的 C++程序,但后来,为了实现高并发和多核友好性,我们用 Golang 进行了重写。JunoDB 还从一个短 TTL(生存时间)的内存数据存储演变为一个支持长 TTL 的持久数据存储。默认情况下,它通过磁盘加密和 TLS 传输来提升数据的安全性。

 

Mercado Libre 高级软件工程师 Nahim Felicito Gomez评论道:


使用 Golang 重写 JunoDB,PayPal 充分利用了该语言的并发性和多核能力,那也是 Golang 成为构建 JunoDB 客户端库的理想选择的原因。

 

Hacker News上,许多用户讨论了该项目及键值存储的好处,并将 JunoDB 与FoundationDB等其他数据库进行了比较,而用户 gregwebs 则质疑公告中缺乏数据:


如果能看到一些基准测试,或者只是提供一些数据,那就太好了。TiKV是 CNCF 捐赠的项目,具有大致相同的架构,并已部署在超过 200 个节点的大型集群中。

 

JunoDB 是GitHub上的一个开源项目,遵循 Apache 2 许可。为了帮助开发人员有效地使用该数据库,PayPal 发布了服务器设置客户端构建视频教程。该项目的路线图上还包括 Golang 客户端和 Kubernetes JunoDB 操作符。

 

原文链接:

https://www.infoq.com/news/2023/06/paypal-junodb-kv-store/


相关阅读:

Skyscanner 数据文化的改进之道

DevSecOps,将安全性集成到软件开发的每一个阶段

零拷贝技术升级,V6D 让数据传输更高效

2023-06-24 08:004958

评论 1 条评论

发布
用户头像
如果已经存储10亿条数据在内了,一天存取3500亿还是可以的,如果本身10条数据,任何一个循环存储本地map对象都比这个快。。。。。
2023-08-01 21:36 · 广东
回复
没有更多了
发现更多内容

32个问题,学习Java虚拟机的运行时数据区

AI乔治

Java 架构 JVM JVM虚拟机原理

自我管理系列-为啥要做生产问题分析报告呀

罗小龙

复盘 IT, 经验总结 职场搞笑 生产事故

vim快捷键收藏版

良知犹存

vim

陈山枝:5G+车联网 推动中国特色车路协同发展

可视化数据科学中的概率分布以帮你更好地理解各种分布

计算机与AI

学习 数据科学

英特尔老矣,尚能“转”否?

脑极体

今天你的idea崩了吗?分享6种“白嫖”正版idea的途径,真香定律

小Q

学习 架构 面试 开发 IntelliJ IDEA

分布式系统使用网关到底是好还是坏?

架构师修行之路

分布式 微服务 网关

同学信誓旦旦地说,我司的系统从来不做性能调优!

沉默王二

Java 性能调优

AES加密模式

Mars

AES

LeetCode题解:47. 全排列 II,回溯,JavaScript,详细注释

Lee Chen

算法 大前端 LeetCode

它可能是分布式系统中最重要的枢纽

架构师修行之路

分布式 微服务 注册

区块链助力跨省、零材料办理 成都武侯打造“中国政务服务第一链”

CECBC

区块链

杰哥获奖了!

JackTian

Linux 程序人生 运维工程师 运维人生

记一次Jvm参数调优实战

AI乔治

Java 架构 JVM 编程思维 jvm调优

谷歌朝南,华为朝北

脑极体

JVM系列-第一节:JVM简介、运行时数据区、内存分代模型

诸葛小猿

Java JVM JVM简介 运行时数据区 内存分代模型

为你总结了N个真实线上故障,从容应对面试官!

AI乔治

Java 架构 GC

"全能"人才的概念真的对吗

supernova

创业 读书笔记 随笔杂谈

信息量爆炸!78天闭门深造1258页SpringCloud学习进阶笔记,再战蚂蚁金服

996小迁

Java 架构 面试 SpringCloud

谈谈贪官污吏

空山

视频客服的应用和优点

anyRTC开发者

音视频 WebRTC 直播 RTC

一次艰难的内存泄露排查,BeanUtils的锅

AI乔治

Java 架构

京东智联云4篇论文入选国际语音顶级大会Interspeech 2020

京东科技开发者

人工智能 大数据 语音识别

新基建下区块链基础设施建设

CECBC

区块链

中国银行前行长李礼辉:区块链技术优势与产业前景

CECBC

区块链 数字货币

系统从初期到支撑亿级流量,都经历了哪些架构的变迁?

冰河

分布式 微服务 系统架构 SOA 垂直架构

Dubbo 微服务调用时序图

Acker飏

甲方日常 39

句子

工作 随笔杂谈 日常

如何在微信公众号图文中插入外链

Ceelog

微信公众号

算法学习1-- 数组常见问题

菜鸟小sailor 🐕

算法和数据结构

PayPal开源JunoDB,支持3500亿次日请求的键值存储_数据库_Renato Losio_InfoQ精选文章