作者
digoal
日期
2020-09-11
标签
PostgreSQL , 人物采访
背景
谷歌翻译的, 便于阅读, 英文阅读没有障碍的同学建议阅读原文.
原文
https://postgresql.life/post/melanie_plageman/
PostgreSQL是世界上最先进的开源关系数据库。采访系列“ PostgreSQL一周之人”介绍了使该项目成为今天的人们。在这里阅读所有采访。
请告诉我们您自己,您的爱好以及您的来历。
我在工作的开发人员的Greenplum在VMware的。我住在湾区。在业余时间,我喜欢编码方面的项目,参加计算机科学课程,跑步,旅行和烘焙。我是一个喜欢冒险的人,喜欢尝试新食物。
我们应该注意您的任何社交媒体渠道吗?
Twitter-虽然我发布的内容不多
我的Postgres叉子
我目前最活跃的分支(截至撰写本文时)
您何时开始使用PostgreSQL,为什么?
在PwC从事数据管理咨询工作时,我开始在自己构建的工具中使用PostgreSQL。我编写了core format()函数的C语言扩展,可以对行和hstore进行插值。PostgreSQL具有我一直在寻找的所有功能,并且可以扩展。我喜欢它是开源的,以便可以调试遇到的问题。加入Pivotal之后,我成为Postgres开发的更多人,当时他是从事Greenplum(Postgres的MPP分支)的软件工程师。
您还记得您开始使用哪个版本的PostgreSQL吗?
我想我从Postgres 9.1或9.2开始。
你上过大学吗?如果是,那与计算机有关吗?您的学习对您目前的工作有帮助吗?
我在大学学习文学批评理论和电影。我确实参加了一些计算机科学课程,并对编程感兴趣。我认为我在媒体研究方面的背景给了我不同寻常的见解。我学会了以不同于传统系统编程模型的创造性方式思考复杂系统。
您还在使用其他哪些数据库?哪一个是你的最爱?
青梅!
您目前正在从事哪些与PostgreSQL相关的项目?
我一直在研究一种称为自适应哈希连接的功能。这是基于磁盘的哈希联接的后备策略。当多批次哈希联接的内侧特别偏斜时,而不是超出work_mem时,哈希联接会将有问题的批次的内侧分成“条带”,然后一次将它们加载到哈希表中,探查哈希表,然后将其重置并重复该步骤,直到内侧批次用尽。它最终是一种块嵌套的哈希循环联接。
自适应hashjoin上的线程。
我为自适应hashjoin编写的最新补丁集。
我目前正在更改回退到串行版本的逻辑,该版本位于我的Postgres分支上。这是与master的区别。
您如何为PostgreSQL做贡献?
我通过补丁审查和补丁作者为PostgreSQL做出了贡献。在过去的几年中,我已经审查了大多数commitfest中的补丁。
如果该月我没有太多时间,我通常会注册以查看一个小补丁并尝试一下(检查它是否按广告要求工作并且通过了回归和TAP测试)。如果我没有时间审查代码本身,则在审查中指出这一点,以便另一位审查者注册进行代码审查。
如果我有更多时间,可以进行代码审查。
如果我有很多时间并且对某个特定补丁感兴趣,我将与作者联系,看看是否有什么我可以帮助您的,或者在线程上提供任何帮助来完成似乎需要的任务完成。
过去,我曾帮助进行性能测试,编写功能的各个部分(例如,基于磁盘的哈希聚合的列投影)以及一些小任务,例如对补丁进行基础调整和更新补丁集,以使其在commitfest补丁测试器上通过测试。
最终版本中并没有使用我提供的所有帮助,但是参与使我受益匪浅。
在开发Greenplum时,我们有时会遇到Postgres代码中的错误或效率低下的情况,并进行报告。通常,我们会开发并提出补丁来修复它们。
对PostgreSQL的任何贡献都与编写代码无关?
我曾在PGCon和PostgresOpen演讲过如何入侵Postgres规划器。我今年将与Jeff Davis一起在work-mem和Postgres查询执行程序上在虚拟PGCon上发言。
我参加了PUG聚会。我计划并主持了南湾PUG的补丁审查聚会。一切进行得很顺利,因此我们计划举办更多聚会以进行补丁审查,并最终发布Postgres黑客程序。
在最新的PostgreSQL版本中,您最喜欢的功能是什么?
我为基于磁盘的哈希聚合感到兴奋。它是最近提交的。我提供了一些帮助,并吸引了一些团队成员参与开发。当我将支持大型数据集和分析工作负载的功能添加到Postgres中时,总是让我感到兴奋。
除此之外,您想在PostgreSQL中看到什么功能/机制?又为什么呢
我希望看到将自适应hashjoin添加到Postgres。对于用户和云提供商而言,允许用户确定其数据库的内存预算是一项重要功能。为了使该合同生效,应该遵守该内存预算。
您能描述一下PostgreSQL开发工具箱吗?
我大约有75%的时间使用Ubuntu,而其余25%的时间使用macOS。我使用Vim编写代码和编辑文本。我使用IDE(CLion)读取代码和调试。就每天的小时数而言,我花在调试和阅读代码上的时间要多于编写代码的时间。我开始更频繁地使用Ubuntu,因为gdb具有后叉,而lldb没有,这对于调试多进程代码非常重要。从那以后,我发现了在Linux上工作的其他吸引人的方面,但是我绝对希望尝试其他发行版。
PostgreSQL开发人员/用户必须具备哪些技能?
我认为多样化的技能很重要。每个人的工作方式都不一样。与其他Postgres开发人员结伴,我学到了很多东西。
如今,我没有太多机会大规模使用Postgres,因此对我而言,有机会与用户交流非常重要。我的合伙人是Postgres用户,我从他的经验中学到很多东西。我还在会议和聚会上会见用户并与用户交谈。
我想说的是,我已经注意到,作为黑客最有用的技能是将“卡住”视为一种学习体验。很多时候,有些事情是没有道理的,当我将其视为只需要“通过”的事情时,我并没有从中学到很多。
您是否使用任何git最佳实践,这使使用PostgreSQL更容易?
经常调整开发分支的基础,并避免因合并大冲突而头疼。感谢Alvaro Herrera的这个技巧,它为邮件列表生成了补丁:
git format-patch -vN origin/master
(其中N是您要发布的补丁集的版本,来源是Postgres git remote)可以生成良好的补丁文件,并通过电子邮件发送给黑客。
哦,撰写电子邮件时在Vim中“设置ft = mail”很好。
关于补丁集的最佳实践:在为邮件列表创建补丁集时,应将其看作是精美的产品(如套牌或报告),并考虑如果不参与编写,将如何使用它。例如,进行重构以为您的代码腾出空间的提交通常应位于单独的补丁程序中,该补丁程序首先出现在补丁程序集中。
您访问哪些PostgreSQL会议?你提交演讲吗?
我非常喜欢PGCon。对于Postgres开发人员来说,感觉就像是夏令营。我曾经有幸在PGCon上认识了来自世界各地的社区的黑客,这很有趣。看到今年的虚拟体验会很有趣。我喜欢PostgresOpen,因为它的曲目较少,因此有更多的共享体验。
我已经向参加的大多数会议发表了演讲。
我要说的是,参加不是专门关于Postgres的会议并传播有关Postgres的消息也是一种很好的经验。很多人都对此感兴趣,这是一个很好的方式,可以通过听开发人员对当前数据库的喜欢和不喜欢,来发展社区以及获得改进社区的想法。
去年,我在All Things Open上使用Postgres规划器发表了演讲,并从想要了解更多有关Postgres黑客的人那里得到了很多好评。
您认为Postgres的入门门槛很高吗?
我不能谈别人的经历。对我来说,对Postgres进行黑客攻击是我最初的开发经验之一,因此,我遇到的一些问题与总体上与开发有关,而不是特定于Postgres。
Postgres开发过程中有一些部分比其他部分难于学习。我发现通过电子邮件发送补丁要比提交PR更难习惯。我认为,一旦您了解了基本原理,社区就代码库和开发过程所做出的许多决定都是有意义的。我喜欢有机会向多年来一直使用相同代码库的社区学习,并通过软件开发的许多趋势来学习,并尝试了不同的方法,并了解了行之有效的方法。
如果您只是对一般参与开放源代码软件开发感兴趣,那么Postgres作为修补程序作者可能会不太满意,因为编写提交修补程序的修补程序可能需要很长时间。但是,如果您对Postgres特别感兴趣,并准备花一些时间到达那里,那么社区中有很多人乐于为您提供帮助。
我还要补充一下,Postgres黑客非常关心开发人员的可用性。您可能找不到其他代码库中的生活质量功能,但是黑客拥有的目标是您可以
git clone [postgres git remote]
./configure && make install
然后,您应该能够运行测试或初始化数据库并启动它,并且它应该“起作用”。在实践中,这并不总是成立(如果您缺少依赖项等),但是目标是您不需要一天就可以开始使用Postgres开发并开始运行。
社区还非常关心在开发过程中减慢迭代时间的事情,例如回归测试套件的运行时。
对于想要开始PostgreSQL开发的人(例如为该项目做贡献的人),您有什么建议?他们应该从哪里开始?
修补程序审查是开始开发PostgreSQL的好地方。注册以查看commitfest应用程序上的补丁。
开始入侵Postgres的另一个好方法是编写扩展。如果您想在核心中看到某些Postgres功能,并且想要编写它,我建议您在黑客邮件列表中提出它。如果您可以使其他人对开发功能感兴趣,那么他们可以帮助您确定如何开发功能。为您的想法建立动力的另一种方法是在Postgres会议上的闪电演讲中或在非会议上的会议上提出。
您正在阅读-hackers邮件列表吗?还有其他清单吗?
是的 我读过黑客。我偶尔检查pgsql-bugs。我希望今年能建立一个建筑农场动物,所以也许很快就会有建筑农场成员。
您还在其他哪些地方闲逛?
我在Greenplum开放源代码的松弛。
您参与或感兴趣的其他哪些开源项目?
我是Greenplum社区的开发人员。
我希望很快能更多地参与其他开源项目。我从事小型个人项目,但是,我希望更多地参与另一个开源社区。不过,我还没有选一个。
您还想添加其他内容吗?
我和其他一些贡献者正在寻找有兴趣对Postgres进行黑客攻击或推动补丁的志愿者,他们已经开始参与一些配对编程会议。
志愿者可以给我发电子邮件或Peter Geoghegan。
PostgreSQL 许愿链接
您的愿望将传达给PG kernel hacker、数据库厂商等, 帮助提高数据库产品质量和功能, 说不定下一个PG版本就有您提出的功能点. 针对非常好的提议,奖励限量版PG文化衫、纪念品、贴纸、PG热门书籍等,奖品丰富,快来许愿。开不开森.