2023年3月27日,从 2005 年开始合作创建EnterpriseDB 的Denis Lussier 和Phillip Merrick正在推出一个名为pgEdge的新项目,以解决组织面临的一些最棘手的数据库挑战,例如数据延迟、超高可用性和数据驻留限制。
通过他们称之为 Door No. 1 的 EnterpriseDB,他们试图在开源 PostgreSQL 之上添加一个 Oracle 兼容层。他们将他们最新的冒险称为 Door No. 2,使分布式 Postgres 数据库更接近边缘。
什么是边缘?
Cloudflare、Akamai 和 Fastly 等公司一直在处理更靠近边缘的计算,但ChiselStrike 的创始人兼首席执行官Glauber Costa在一篇名为“边缘到底是什么?”的帖子中发表了一篇文章。指出,如果您要调用远处某个地方的集中式数据库,将计算带到边缘只能解决一半的问题。
虽然边缘有很多方面,包括物联网设备、5G 和智能设备,但 CloudFlare Workers、Fastly、Netlify 或 Vercel 等边缘开发平台专注于通过将更多应用程序组件放在更近的位置来加快更多传统 Web 应用程序和企业应用程序的速度到边缘。所以 pgEdge 也在拉近数据库的距离。
“对于试图将应用程序前端性能缩短几毫秒的 Web 应用程序开发人员来说,如果你有一个到数据库的往返行程,这可能是像 Amazon us-east-1 这样的地方,这将花费你 100每次你需要访问数据库的时间都是几毫秒,那么无论你在前端做什么优化工作都会被数据延迟问题淹没,”Merrick 解释道。
Cockroach Labs 高级软件工程师(和 TNS 贡献者)Paul Scanlon一直在跟踪数据在现实边缘场景中必须传输的距离。
pgEdge 的解决方案是减少与分布式 Postgres 数据库的距离。
“您不会在网络周围放置 400 个 Postgres 数据库节点。那会有点过分,也没有必要。因此,您将战略性地在网络周围放置一些 pgEdge 节点,并且这些节点中的每一个都可以读取或写入流量。如果你打算将它们与边缘平台结合使用,比如 Cloudflare Workers 或 Fastly,这就是我们设计的目的,你将能够从数据库中获得非常好的响应时间层,”梅里克说。
纯 Postgres 及其标准扩展
从他们使用 EnterpriseDB 的经验中吸取教训后,他们希望从一个强大的基础层开始。超过 35 年的历史,Postgres最近正在复苏。
“我们没有重写底层的数据库引擎。它是 Postgres。它与 Postgres 不兼容。它是Postgres,这是一个重要的区别,”Merrick 说。
它还使用 Postgres 标准扩展机制。它的扩展名为 Spock,参考了《星际迷航》中的逻辑角色。它是pgLogical的衍生物,提供双向多活动(也称为多主)逻辑复制。
pgEdge 集群中的节点可以跨越多个云区域和数据中心,以实现高水平的弹性、可用性和性能。
根据 Merrick 的说法,这对开发人员,尤其是那些使用 JAMStack 架构的开发人员意味着什么:
“是的,您可以测量页面加载时间,但它也是获得非常高可用性的数据库应用程序的成本更低且更容易的途径。因为如果您在网络上有多个读/写节点,您可能会丢失一些节点,具体取决于您拥有的节点数量,并且一切都会继续独立进行。流量可以故障转移到幸存的节点。因此,它是一个低延迟、超高可用性的分布式数据库。”
每个节点都运行标准的 PostgreSQL (v15),并通过异步逻辑复制保持更新,并具有可配置的冲突解决和避免。它提供增量冲突避免,以保持数据字段的一致性,这些数据字段保持运行总和,如财务余额或库存盘点。
它还提供地理分片,以帮助用户遵守 GDPR 等要求某些数据保留在特定地理边界内的法规。它在位置字段上分解表格,因此可以将一些数据保存在本地,而其余数据则在全球范围内共享。
现有的 Postgres 应用程序,几乎没有任何变化
该公司本月早些时候从隐形状态中脱颖而出,并宣布了一轮 900 万美元的种子融资。该技术仍处于测试阶段,少数客户即将投入生产。该公司正在寻找第三季度的普遍可用性。
Zenni Optical 首席技术官David Ting表示:“对于像我们这样的领先电子商务公司来说,pgEdge 改变了游戏规则,无论我们的客户身在何处,它都会为我们提供快速的页面加载和流畅的客户体验,”他补充说,pgEdge 还可以“通过允许开发人员在本地 Postgres 上进行开发,同时拥有现代分布式数据存储的优势,为我们的工程师构建新一代电子商务应用程序奠定了坚实的基础。”
Merrick 说,Postgres 用户应该能够使用他们现有的 Postgres 应用程序,几乎不需要任何更改。
“……您可以使用所有适用于 Postgres 的工具,以及许多适用于 Postgres 的扩展。因此,[开发人员可以]以他们今天使用 Postgres 的方式使用它,无论他们的应用程序如何访问它,无论他们喜欢使用什么工具,来管理模式和类似的东西。那会起作用,因为它是标准的 Postgres。”
SaaS 媒体分析公司 PublicRelay 的 CTO Bill Mitchell说: “我们已经使用 pgEdge 几个月了,它的性能和稳定性给我留下了深刻的印象。拥有他们的多主复制功能使我能够轻松地管理和扩展我的 PostgreSQL 数据库,没有任何问题。该产品易于管理,为我节省了大量时间和精力。”
全部开源
其他人也在尝试将数据库移动到更靠近边缘的位置。例如,Costa 的公司 ChiselStrike 正在解决与SQLite 兼容的嵌入式数据库Turso 的延迟问题。EnterpriseDB 还有一个类似于 pgEdge 的产品叫做EDB Postgres Distributed (PGD)。
Merrick 表示,Cockroach、Yugabyte 等竞争对手在解决分布式边缘问题时,做出了使用不同数据库的设计决定,然后在上面放置了一个兼容层。
“从我们与 Oracle 兼容性的工作中我们知道,这只会让你完成 90%,而最后的 10% 有点致命,”他说。
第二个区别是 pgEdge 的源代码都是开源的,可以在 GitHub 上找到(https://github.com/pgEdge)。
该公司已经制作了整个 PostgreSQL 发行版,一个名为 pgEdgePlatform 的自托管和自管理版本,可以免费下载(https://www.pgedge.org/)。它还提供托管数据库即服务,称为 AWS 和 Azure 上的 pgEdge Cloud。您可以在此处加入私人测试版(https://www.pgedge.com/#cloud-beta)。
文章来源:https://thenewstack.io/startup-pgedge-tackles-the-distributed-edge-with-postgres/




