Apache Pegasus:高性能强一致分布式KV存储系统|系统软件Tech Day

08/23 17:30
阅读数 113

系统软件Tech Day 第2期,我们邀请到了小米软件研发工程师何昱晨为大家带来话题「Apache Pegasus: 高性能强一致分布式KV存储系统」。 该话题将介绍Apache Pegasus的整体架构、数据模型、特性、应用场景和生态工具,最后聚焦社区,便于大家更好地了解Apache P egasus的社区建设。

该话题主要面向所有对分布式存储、开源感兴趣的开发者。

为了让大家更好地了解话题,活动组对何昱晨就几个问题进行了简单采访。

Q:请简单介绍一下您自己和目前从事的工作

何昱晨 :大家好,我是何昱晨,本科和硕士均毕业于中国人民大学。2017年硕士毕业后加入小米,负责分布式KV存储系统Pegasus及其生态工具的研发工作。工作期间,独立开发了Pegasus Bulk Load和Partition Split两个大功能,向社区共提交约200个patch,致力于不断完善系统功能、持续提升系统健壮性。在2020年Pegasus加入Apache之后,成为Apache Pegasus PPMC。

Q:请介绍一下您在本次分享中的内容

何昱晨 Pegasus是一个可水平扩展、高性能、强一致的分布式Key Value存储系统,是Apache孵化器项目。本次分享,我首先会介绍Pegasus的整体架构,数据模型,特性和应用场景,帮助大家对Pegasus有一个基本的了解,之后我会深入介绍一些新特性,例如热备份、Bulk Load等,然后会介绍Pegasus的生态工具,例如如何与Hadoop生态结合,来扩大Pegasus的应用场景,便于用户使用。最后我将聚焦社区,阐述Pegasus在社区建设中面临的挑战,以及我们计划如何解决它们。

Q:我们了解到Pegasus是一个分布式Key Value存储系统,能否展开介绍下它和Hbase的区别

何昱晨HBase是强一致的分布式表格存储系统,使用Java语言开发,适用于高吞吐、存储容量大的场景。但是由于HBase的分层架构和Java的GC问题,HBase在读写数据时可能出现长尾问题,即部分请求耗时很长。因此,对延迟敏感且有持久化存储需求的场景,HBase不能很好地满足他们的需求。在分布式存储系统中,每个系统都有其适用的场景,在该场景下能够发挥它最大的优势。具体来说,Pegasus与HBase的相似点与区别如下

1. 开发语言 :HBase:Java;Pegasus:C++
2. 存储 :HBase:存储在HDFS上; Pegasus:本地磁盘
3. 一致性 :都是强一致
4. 适用场景 :HBase:高吞吐、存储容量大(PB级);Pegasus:低延迟、数据规模较大(TB级)
5. 开源 :都是Apache开源项目,HBase是顶级项目,社区更成熟、功能也更完备

Q:和TDengine一样,Pegasus也是一款开源软件,能否从自身经历讲讲,从事开源软件的研发和闭源软件有何不同?

何昱晨 除了Pegasus系统本身之外,我也开发过一些公司内部使用的Pegasus生态工具。从事开源软件,需求通常先提交在Issue里,复杂功能也需要有详细的设计文档,社区会一起Review。 在提交代码时,除了功能本身,社区还会注重代码风格、注释合理性、测试覆盖率等问题。

在闭源软件研发时,一般也是遵循这样的原则,但是却更依赖于开发者个人的自觉性,特别是文档、注释这种文字类的工作。但是开源软件不同,每个PR都是公开的,大家会更自觉遵循社区的规范和要求。

更大的不同就是开源软件的用户更多,社区用户的力量是非常强大的,他们会提出很多有意义的需求和建议,甚至有些是开发者本身想不到的。用户也可以参与到开源软件的建设中,成为贡献者。我想这就是开源精神,众人拾柴火焰高,大家集思广益把系统打造得更好。

Q:从事系统软件研发是一件非常辛苦的事,有什么经验可以和大家分享?

何昱晨 我觉得也不会很辛苦,和其他软件研发工作都是一样的,都是开发需求,上线给用户使用。如果说有什么不同的话,系统软件研发需要更细心吧,不仅要进行完备的错误处理,还需要考虑如何在出现故障后尽快恢复,以及增强系统的自我保护功能等。上线新功能都要进行完备测试,有故障处理和回退预案。但同时也不能因噎废食,不能一味追求稳定性而放弃了创新,只有不断挖掘新功能才能为项目带来生机,扩大使用场景,进而成为更优秀的项目。

系统软件Tech Day由涛思数据主办,是一个有深度、有温度的技术分享舞台,内容中立,旨在促进系统软件研发人员的技术交流。相对来说,核心的系统软件开发人员还比较稀缺。我们希望能邀请这个领域比较资深的专家,给大家带来分享;也希望更多专家能主动走向前台,一起交流。

2021年8月28日14:00-17:00 ,系统软件Tech Day第2期,将由来自爱奇艺、小米和涛思数据的3位系统软件领域的专家为大家带来深度技术分享。让你学习技术干货的同时,也能从他人的实战经验中得到一些帮助。名额有限,感兴趣的扫描下方海报二维码,了解话题详情,免费报名参与!


👇点击阅读原文,报名系统软件Tech Day!

本文分享自微信公众号 - TDengine(taosdata_news)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。

展开阅读全文
打赏
0
0 收藏
分享
加载中
更多评论
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部