写点什么

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:004570

评论 1 条评论

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

5K字详解HttpClient 在vivo内销浏览器的高并发实践优化

了不起的程序猿

Java 后端 HTTP 并发 java程序员

Linux下玩转nginx系列(八)---如何使用upsync模块实现动态负载均衡

anyRTC开发者

nginx Linux 负载均衡 音视频 服务器

【Django | allauth】登录_注册_邮箱验证_密码邮箱重置

计算机魔术师

8月月更

【Django | allauth】重写allauth重置密码方法

计算机魔术师

8月月更

4KMILES加入艾盛集团,携手打造中国品牌在全球网络的增长机遇

Geek_2d6073

如何给玩偶建模并让它跳个舞?

HarmonyOS SDK

开源一夏 | 实战Node.js原理对于阻塞和EventEmitter及其继承的运用心得

恒山其若陋兮

开源 8月月更

【Django | allauth】useprofile 用户模型扩展

计算机魔术师

8月月更

昇思MindSpore 1.8:丰富的算法集与套件,实现高性能训练,降低部署门槛

科技热闻

2022BATJ1000道Java面试题解析,已有372人上岸(必看攻略)

程序知音

Java 程序员 java面试 后端技术 Java八股文

兆骑科创创新创业服务平台,海内外高层次人才引进,活动赛事

兆骑科创凤阁

Vue3知识点梳理(一)

青柚1943

Vue3

兆骑科创创服平台,招商引资,招才引智,投融资对接

兆骑科创凤阁

精益+敏捷,两大管理思路让研发效能「飞」起来

万事ONES

4KMILES加入艾盛集团,加速中国品牌跨境业务的全域全效增长

Geek_2d6073

MobPush丨iOS端SDK API

MobTech袤博科技

ios API MobTech袤博科技 mobpush

五大数据安全保障措施看这里!

行云管家

信息安全 数据安全 企业安全 数据库审计

出海浪潮下,Edgio引领CDN安全新风向!

科技热闻

Go 事,Gopher 要学的数字类型,变量,常量,运算符 ,第2篇

梦想橡皮擦

Python 爬虫 8月月更

RT-Thread记录(九、RT-Thread 中断处理与阶段小结)

矜辰所致

RT-Thread 8月月更

C#/VB.NET: 改变Word中的字体颜色

Geek_249eec

C# word VB.NET 改变字体颜色

微服务性能分析|Pyroscope 在 Rainbond 上的实践分享

北京好雨科技有限公司

Kubernetes 微服务 云原生

Android进阶(十六)子线程调用Toast报Can‘t create handler inside thread that has not called Looper.prepare() 错误

No Silver Bullet

android 8月月更 toast

终究还是错付了!这2种Python字符串格式化的写法已经被淘汰了,你是不是还在用?

程序员晚枫

Python 字符串 格式化

大咖说·对话开源|企业如何用好开源数据库

大咖说

开源 企业数据库

架构实战营模块九作业

Geek_Q

开源一夏|OpenHarmony之如何实现震动

坚果

开源 OpenHarmony 8月月更

业务数据迁移上云的一些技术思考

京东科技开发者

MySQL 迁移 云数据库Redis

鄢贵海:DPU发展中的四个关键问题

硬科技星球

创新能力加速产业发展,SphereEx 荣获“中关村银行杯”『大数据与云计算』领域 TOP1

SphereEx

数据库 开源 架构 SphereEx Apache ShardingSphere

语音直播系统源码——解决应用瘦身问题

开源直播系统源码

软件开发 语聊房 语音直播系统 语音直播系统连麦

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