ACM的人-Margo Seltzer

2023年5月23日

为什么1992年需要伯克利数据库这样的软件库?开发伯克利数据库的关键挑战是什么?

BDB源于计算机科学研究小组开发一组用户级实用程序和库的努力,这些实用程序和库不受UNIX许可证的限制。当时,有多种可用的哈希表实现:NDBM(及其前身DBM),用于持久数据,hsearch,用于内存中数据。Keith Bostic领导了整个用户级工作,正在寻找这些库的替代品。我刚刚参加了Mike Stonebraker的研究生数据库课程,我认为动态线性散列的新实现可能满足这两个需求。这导致了一个名为“hash”的包。Bostic随后说服Mike Olson开发一个B树实现,该实现将通过相同的API集提供。这两项开发工作的结合,再加上Bostic的高级设计,导致了一个生产质量库(DB1.85),用于存储我们现在所称的“密钥数据对”

当时,需要数据存储的开发人员几乎没有选择。他们可以投资于一个大型且通常昂贵的数据库管理系统,也可以读写普通文件。BerkeleyDB提供了一个与编写普通文件一样轻量级的解决方案,并提供了一些数据库最常见的功能。Olson和我随后演示了可以扩展DB1.85所基于的基于UNIX工具的哲学,以包括事务支持,然而,代码从来都不是产品质量。当网络出现在20世纪90年代中期时,每一个网络服务都在寻找相同的东西:一个轻量级的存储系统,足以满足网络规模的需求,但即使在出现故障时也可以保护数据。最终,这一需求推动了伯克利数据库商业版的开发。

BDB工作中的关键挑战是在提供与大型单片数据库服务器相当的服务的同时,保留基于UNIX工具的理念。

根据您使用Berkeley DB和Sleepy Cat软件的经验,对于刚刚开发出新软件包并正在考虑双重许可方法的用户,您会提供什么建议?

自1992年(以及1996年我们创立伯克利DB)以来,世界已经取得了长足进步。1996年,我们仍然需要解释什么是开源,我们必须发明一种双重许可证。幸运的是,使用Berkeley DB需要客户将其应用程序与我们的软件链接起来。因此,我们能够准确地指定何时需要专有许可。今天的世界大不相同,我认为发展双许可证业务要困难得多。更常见的是,你会看到销售支持和服务的开源公司。

在不列颠哥伦比亚大学Systopia实验室列出的研究领域中,您的团队写道:“我们都将系统技术应用于机器学习系统的构建,并利用机器学习来改进系统。”您能否举例说明机器学习是如何改进系统的?

有一个活跃的研究领域试图用学习过的算法取代启发式算法。我们已经看到了整个系统堆栈的进步,从实现数据结构到选择参数以优化系统性能。

你已经获得了教学奖项。根据你的经验,这些年来你的教学风格发生了什么变化?

让我们从它是如何保持不变开始——我真心关心学生和他们的学习。我想帮助学生发展技能,帮助他们成为“未来的赢家”。也就是说,我想让他们为明天出现的任何技术做好准备,而不是简单地教他们如何使用现有的工具。

至于变化,最剧烈的变化发生在2010年左右。我听了Lynn Stein(Olin)的一次演讲,她在演讲中提出了这样一个观点:利用宝贵的课堂时间进行“第一次材料展示”可能并不是最好的利用时间。这导致了一个“啊哈”的时刻——学生们很有阅读能力,那么为什么我要浪费宝贵的时间来展示他们可以自己阅读的材料呢?我立即与学生签订了一份新合同。我会努力让阅读作业保持简短,作为交换,我希望他们能真正阅读材料(人们可能会惊讶于这种行为是多么的不寻常)。这份合同将允许我们在课堂上花时间更深入地挖掘材料,综合不同的想法和观点,并更积极地参与主题。

这自然导致我从2013年左右开始翻转教室(一个过程我在博客上发表了大量关于). 来到UBC后,我还采用了一种精通学习的方法,学生可以反复练习概念(甚至在分级作业上),直到他们掌握为止。

Margo Seltzer是不列颠哥伦比亚大学计算机科学加拿大150研究主席和Cheriton家族主席。她也是哈佛大学Berkman Klein互联网与社会中心董事会成员。她的研究兴趣是系统,其解释非常广泛:用于捕获和访问数据来源的系统、文件系统、数据库、事务处理系统、图形结构数据的存储和分析,以及用于构建最佳和可解释的机器学习模型的系统。Seltzer与Keith Bostic和Mike Olson一起获得了伯克利数据库(Berkeley DB)的认可,这是一个支持一系列第一代互联网服务的数据库软件库。

在她众多的荣誉中,萨尔茨被命名为2023-2024 ACM雅典娜讲师在文件和存储系统的基础研究、数据来源的开创性研究、伯克利数据库中有影响力的软件贡献,以及对服务和指导的不懈奉献。