当前位置:网站首页>Apache Doris 社区 PMC 杨政国:开源项目如何在自身和社区的需求中取得平衡?
Apache Doris 社区 PMC 杨政国:开源项目如何在自身和社区的需求中取得平衡?
2022-08-09 16:24:00 【OSCHINA编辑部】
本期单口开源我们请到 Apache Doris社区的PMC、百度的资深研发工程师杨政国来和大家聊一聊“开源项目如何在自身和社区的需求中取得平衡?”。
单口开源栏目旨在分享开源理念与观点。
大家好,我是Apache Doris社区的PMC杨政国,同时也是百度的资深研发工程师。
今天我想要和大家分享的内容是开源项目如何平衡自身和社区需求的问题。
首先要搞清楚的问题是开源项目的需求到底是从何而来?很多开源项目最早其实都是来自于某个公司的内部产品,在项目发展的早期阶段项目大多数的核心贡献者可能都来自于这个公司,他们除了负责开源项目以外,也负责公司内部产品的研发和运维等等工作,那在这种情况下我们可以认为项目的自身需求其实很大程度上取决于公司内部的需求,这样就有可能会和社区的需求产生矛盾。
比如说Apache Doris它最早是起源于百度公司,最初的贡献者也多数来自于百度公司。Doris是作为一款MPP的分析型数据库产品,它在使用过程中必然就会有数据的导入导出、备份恢复等等需求。因为Doris本身存储的数据量可能是非常巨大的,所以它就需要和外部的分布式文件系统做交互。
那在百度内部它的分布式文件存储主要有3种:第一种是百度版的HDFS,然后还有AFS和BOS。其中百度版的HDFS和社区的类似但是它并不兼容,做了一些安全等等的改进;AFS是百度自研的分布式文件系统,它相比HDFS能够支撑更大的容量,能够有更高的效率;BOS是百度自己的对象存储系统,他们的访问方式在社区没有对应的实现,其实也不便于开源,即使百度内部的HDFS它和社区的库也是相互不兼容的,但是社区也有同样的需求,他们也需要去对数据进行导入导出。他们的使用可能更多的是开源版的HDFS,像如果镜像存储的话可能用的是S3的镜像存储等等。
因此我们实现了一个读取外部数据的组件叫做Broker,它实现了一套独立的文件读取和写入的接口,在我们百度内部和开源社区分别维护了实现不同的版本,但他们使用相同的文件读写接口,这样解决了社区和内部需求的矛盾问题,另外随着社区的发展我们更进一步直接实现了原生的HDFS和S3的读取和写入功能,更加方便了社区用户的部署和使用;
还有一种情况就是项目本身来源社区或者社区都发展到一个比较成熟的阶段,这种情况下其实项目本身的需求本来就应该来自于社区,社区是最主要的目标用户同时也是最直接的需求来源,如果一个项目长期地偏离于社区的需求那我觉得这个项目也不可能走的太远。
边栏推荐
- [ Kitex 源码解读 ] 请求重试
- 重谈联想5G编码投票事件
- 使用SourceTree添加SSH公钥并克隆码云项目(笔记整理篇)
- A40 - 基于51单片机的GSM模块优化设计
- 元宇宙虚拟场景互动获得生活、工作、学习新鲜体验
- 记一次 .NET 某工控自动化控制系统 卡死分析
- SQL trill interview: send you a universal template, to?(key, each user to log on to the maximum number of consecutive monthly)
- In-depth understanding of MySQL common data types and data type selection optimization
- 为了高性能、超大规模的模型训练,这个组合“出道”了
- 电子产品硬件开发中存在的问题
猜你喜欢

BSN季度版本2022年8月31日迭代更新预告

crm系统哪家好?好用的crm管理系统推荐

【燃】是时候展现真正的实力了!一文看懂2022华为开发者大赛技术亮点

1.1、VIFB: A Visible and Infrared Image Fusion Benchmark(一个可见光与红外图像融合Benchmark)文章阅读

<IDEA using tricks & & combined operation of common keys>

聊聊基于docker部署的mysql如何进行数据恢复

Axure实现表格带滚动条

110+ public professional datasets summarized

B50 - 基于51单片机的儿童成长管理系统

kubernetes之helm简介、安装、配置
随机推荐
程序员的专属浪漫——用3D Engine 5分钟实现烟花绽放效果
HR获取入职日期 RP_GET_HIRE_DATE
面试官:Redis 大 key 要如何处理?
B024 – STM32温湿度控制体温检测烟雾报警系统
Jenkins使用pipeline部署服务到远程服务器
基于ABP和Magicodes实现Excel导出操作
称重模块的分类及特点
元宇宙虚拟场景互动获得生活、工作、学习新鲜体验
JVM内存模型和结构详解(五大模型图解)
.NET 6 study notes (4) - Solve the Nullable warning in VS2022
在 .NET MAUI 中如何更好地自定义控件
【.NET 6】开发minimal api以及依赖注入的实现和代码演示
字节也开始缩招了...
dichotomy
ceph部署
MASA Stack 第三期社区例会
为了高性能、超大规模的模型训练,这个组合“出道”了
重谈联想5G编码投票事件
测试/开发程序员喜欢跳槽?跳了就能涨工资吗?
小家电控制板开发——未来小家电行业的发展方向