Valkey开源社区再添新成员!阿里云与Redis核心贡献者再聚首

1. 背景

2024年3月21日,Redis Inc. 宣布正式修改开源Redis core的服务协议至RSALv2与SSPLv1的双Dual-License,并于 Redis 7.4 版本后关闭开源BSD软件分发协议。同时,Redis Inc. 也关闭了自2020年7月买断Redis社区后形成的以Core Member(一共5人,Redis Inc.  3 人, Alibaba Cloud 1 人,AWS 1 人)为核心的社区管理方式,后续开发由Redis Inc. 全权管理。

社区的突然转向让诸多开发者和社区参与者感到意外,进行中的讨论和项目(主要是Redis 8.0进行中的开发等)不得不因此而中断,包括一系列云厂商对社区Redis底层和能力的重构如:集群无感扩缩容(由阿里云提案,阿里云已有)、主从无感HA(由阿里云提案)、unsharded-cluster(由AWS提案,AWS已有)、cluster v2(去gossip)(由Redis Inc. 提案,阿里云已有)、多IO优化(阿里云已有)等。

2. Valkey社区的成立

在Redis Inc. 修改协议之后,社区成员快速做出反应,由原来Redis社区的多名核心开发者全新组建了Valkey社区,并捐献给Linux开源基金会进行运营。在4月16日召开的Linux基金会北美开源峰会上,Linux基金会宣布阿里云等多家厂商正式加入Valkey社区,并发布全新版本Valkey 7.2.5。目前Valkey项目的maintainer共有六名,分别来自阿里云、AWS、谷歌等全球知名企业,同时还有甲骨文、Percona、Verizon、Snap等商业公司也宣布对Valkey的支持。

Valkey_Social.png

Valkey旨在延续Redis开源社区的工作,项目依然采用宽松的BSD-3开源协议,同时Redis社区未完成的PR和Issue将转移到Vakey社区持续开发。Valkey最新发布的7.2.5版本,完全兼容Redis 7.2,原Redis社区用户可无缝迁移至Valkey。在未来版本计划中,Valkey目前规划了Redis社区原8.0计划但搁置的工作,如slot迁移可靠性提升、集群slot存储优化、扩充命令集合、可观测性提升等特性,阿里云也将持续参与并积极贡献诸多特性、组织讨论社区发展。

作为Linux基金会下的开源项目,Valkey社区将具有更高的开放性,会一如既往地听取用户的心声。可以说,它是一个真正由社区开源精神驱动演进的项目,相信其会成为更多用户的选择。目前Valkey在GitHub上已经收到超过1万star,这也正是广大开发者和用户真心诉求的体现。

3. 阿里云对Redis开源社区的贡献

阿里云是最早参与到Redis开源社区贡献的公司之一,最早可追溯至Redis 4.0时期。Redis虽然已经是一款足够优秀的开源产品,但在实际部署和生产中,用户在稳定性、可靠性等方面依然面临诸多问题。在长期使用过程中,开源用户也向社区提出了诸多发展性需求。对此,阿里云Tair云原生内存数据库团队在内部不断持续打磨,并把这些积累都回馈给了开源社区,包括:

  • PSYNC2的持续改进,如断线重连、实例重启、数据过期、命令重写等多种场景进行了多轮修复和优化,以保证数据复制的效率和正确性,使得PSYNC2能够应对生成环境中各种复杂的场景;
  • AOF持久化机制支持Multi-Part AOF,是直接从Tair功能反向贡献至社区的企业级能力,有效降低抖动和持久化链路复杂性;
  • Pipeline模式下的性能优化,让Redis以单线程运行达到百万QPS的上限;
  • 增加复制流量、Pubsub连接数、Rehash监控等诸多可观测性指标等等。

除了Commit和核心功能,阿里云坚持基于国内Redis用户及亚太区需求来支持开源社区生态并反馈开源。以上提到的Commit很大一部分来自云数据库的客户需求,以及在云上的复制、接入、模块化和可观测等实际问题。在Redis最近3个大release中,来自亚太区的贡献占比超过60%。在过去7年里,阿里云向Redis社区贡献了数百项功能,涵盖稳定性、性能、功能和可观测性等诸多方面。

4. 阿里云Tair云原生内存数据库的发展

阿里云推出云数据库Redis服务已经近十年,遍及各行各业的客户对我们提出了众多稳定性、成本、性能和可靠性等需求。基于用户的需求,在保证对Redis社区版的兼容基础之上,阿里云瑶池数据库团队开发了云原生内存数据库Tair。目前Tair已经在阿里云上服务广泛客户,并且在阿里集团内部各核心链路中深度使用。

瑶池+tair@2x.png

当前,阿里云提供的Redis及自研的云原生内存数据库Tair产品均不受本次Redis开源协议变更的影响。未来,我们也将继续在第一时间提供更新的产品版本,满足用户对新版本的需求。

阿里云瑶池数据库团队后续将持续参与Valkey社区,如过往在Redis社区一样耕耘,为开源社区作出持续贡献。在Valkey的新版本中,阿里云将会为Valkey加入如 TairHash(支持 fields 过期的增强型 Hash 数据结构)、TairString(原生支持 CAD 与 CAS 的 String 数据结构)以及通过SDK的增强来降低服务端故障对客户端的影响等功能。

Tair会继续保持和社区生态的兼容性,使Tair成为低延时、高可靠、服务于实时在线的数据库产品。我们将持续关注用户的需求,并积极参与Valkey的改进和优化工作,与开源社区共同推动Valkey项目的发展。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/626466.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

软件设计:UML 模型图总结

1. 相关链接 参考教程: https://sparxsystems.com/resources/tutorials/ https://sparxsystems.com/enterprise_architect_user_guide/15.2/model_domains/whatisuml.html Unified Modeling Language (UML) description, UML diagram examples, tutorials and r…

浅谈Java IO流

Java中的IO流(Input/Output streams)是Java程序用来处理数据输入和输出的核心工具集。IO流抽象了数据流动的概念,允许Java程序与外部世界进行数据交换,无论是从文件、网络、键盘输入还是向屏幕、文件或网络发送数据。Java IO流按照…

切换plesk面板语言

近期购入了Hostease的Windows虚拟主机产品,由于进入他们主机Plesk面板后查看全都是英文的,对于英文也不是很懂,尤其是像这种专业 词汇的更不明白。因此这边咨询了Hostease的技术支持,寻求帮助了解到可以Plesk面板可以切换语言的&a…

SAP HANA锁表查询,解锁操作

锁表查看 --锁表检查语句 SELECT C.CONNECTION_ID,PS.STATEMENT_STRINGFROM M_CONNECTIONS C JOIN M_PREPARED_STATEMENTS PSON C.CONNECTION_ID PS.CONNECTION_ID AND C.CURRENT_STATEMENT_ID PS.STATEMENT_IDWHERE C.CONNECTION_STATUS RUNNINGAND C.CONNECTION_TYPE Re…

Canvas使用详细教学:从基础绘图到进阶动画再到实战(海报生成、Flappy Bird 小游戏等),掌握绘图与动画的秘诀

一、Canvas基础 1. Canvas简介 Canvas是HTML5引入的一种基于矢量图形的绘图技术,它是一个嵌入HTML文档中的矩形区域,允许开发者使用JavaScript直接操作其内容进行图形绘制。Canvas元素不包含任何内在的绘图能力,而是提供了一个空白的画布&a…

【开发规范】Mapstruct 转换器使用教程

【开发规范】Mapstruct 转换器使用教程 一、对象转化二、推荐使用 MapStruct三、MapStruct 介绍3.1 概念3.2 特点3.3 使用场景3.4 使用教程3.4.1 导入依赖3.4.2 编写 Entity 和 DetailInfo3.4.3 编写转换器(※)3.4.4 使用转换器3.4.5 结果3.4.6 扩展&…

MySQL死锁与死锁检测

一、什么是MySQL死锁 MySQL中死锁是指两个或多个事务在互相等待对方释放资源,导致无法继续执行的情况。 MySQL系统中当两个或多个事务在并发执行时,就可能会遇到每项事务都持有某些资源同时又请求其他事务持有的资源,从而形成事务之间循环等…

java学习之路-多态

文章目录 目录 文章目录 前言 1.多态 1.1 多态的概念 1.2 多态实现条件(重点) 多态实现的栗子 1.3重写 重写的规则 重写和重载的区别 1.4静态和动态绑定 1.5向上转型和向下转型 1.向上转型 2.向下转型 1.6多态的优点 前言 本文内容:多…

OpenHarmony开源三方库的cmake在IDE上直接引用的问题

前言 DevEco Studio的native工程的C/C部分当前只支持cmake脚本的编译,工程的目录结构如下图所示 在工程中引用第三方库有如下三种方式, 一、find_package模式 通过find_package,可以在指定目录下去搜索已安装的库(三方库构建完后…

【Linux】详解如何利用共享内存实现进程间通信

一、共享内存(Shared Memory)的认识 共享内存(Shared Memory)是多进程间共享的一部分物理内存。它允许多个进程访问同一块内存空间,从而在不同进程之间共享和传递数据。这种方式常常用于加速进程间的通信,因…

Linux - 线程

目录 一.Linux线程的概念 1.1什么是线程 1.2 线程的优点 1.3 线程的缺点 1.4 线程异常 1.5 线程用途 二. Linux进程VS线程 2.1 进程和线程 三. Linux线程控制 3.1 POSIX线程库 3.2 创建线程 3.3 进程ID和线程ID 3.4 线程ID及进程地址空间布局 3.5 线程终止 3.6 线…

SASE:打造数据安全保障新模式

在企业纷纷拥抱数字业务的过程中,由于边缘计算、云服务、混合网络的逐渐兴起,使得本就漏洞百出的传统网络安全架构更加岌岌可危,而且远远无法满足企业数字业务的需要。 伴随企业全球化发展,企业的数据中心不再是用户与设备访问需…