写点什么

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

评论 1 条评论

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

数字货币期权交易系统开发|数字货币期权交易APP软件开发

系统开发

模块一课后作业

追随哆咪

架构实战营

查漏补缺!驱动核心源码详解和Binder超系统学习资源,挥泪整理面经

欢喜学安卓

android 程序员 面试 移动开发

Knative 基于流量的灰度发布和自动弹性实践

阿里巴巴云原生

Serverless 容器 开发者 云原生 k8s

双非本化学跨专业,投岗阿里/滴滴后端三面,最终拿下offer

Java 编程 程序员 架构 面试

给视频添加雪花飘落特效

老猿Python

OpenCV 音视频 图形图像处理 视频特效 引航计划

翻译:《实用的Python编程》02_00_Overview

codists

Python

项目优化-代码拆分

Darren

android 组件化 代码优化

秒合约交易系统开发|秒合约交易APP软件开发

系统开发

全网最全人工智能专业术语表(中英文对照)

澳鹏Appen

人工智能 大数据 数据 科技互联网 专业术语

apk优化,Android高级工程师必看系列,在线面试指南

欢喜学安卓

android 程序员 面试 移动开发

Linux ln 命令

一个大红包

4月日更

架构实战营课程1作业

求索

学习 架构实战营

北京天源迪科上线迪科商旅App

DT极客

阿里巴巴开源容器镜像加速技术

阿里巴巴云原生

Serverless 容器 云原生 k8s 存储

安全之路其修远兮,吾将上下而求索

Thrash

史上最全的Java面试题库宝典,Github上标星200k,太香了!

Java架构之路

Java 程序员 架构 面试 编程语言

音频应用类开源 Demo 大盘点

anyRTC开发者

ios android 音视频 WebRTC RTC

跟单交易系统开发|跟单交易APP软件开发

系统开发

二十八分钟,带你用gitlab向企业微信发出灵魂拷问

📿

Java gitlab gitlab ci

Flink集成Iceberg在同程艺龙的实践

Apache Flink

flink

金三银四旗开得胜!春招字节正式批4面,顺利拿到offer

Java 编程 程序员 架构 面试

架构实战营模块1作业

半夏

学习 架构实战营

锁仓挖矿系统开发|锁仓挖矿APP软件开发

系统开发

Fluid — 云原生环境下的高效“数据物流系统”

阿里巴巴云原生

人工智能 云计算 容器 云原生 存储

七进七出,终获阿里32k*16offer,这就是我悲惨的面试经历~

Java架构师迁哥

聪明人的训练(六)

Changing Lin

4月日更

架构实战营模块一作业

冷大大

作业 架构实战营 模块一

阿里的 RocketMQ 如何让双十一峰值之下 0 故障?

阿里巴巴云原生

容器 运维 云原生 k8s 消息中间件

微信业务架构图

@oo?金樱子

图解云原生应用设计模式

倪朋飞

Kubernetes 云原生

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