MySQL的Hyperdrive支持现已全面推出( GA )。Hyperdrive是Cloudflare面向Workers的数据库连接池,最初仅支持Postgres。自从我们去年宣布MySQL协议支持的测试版以来,我们一直在努力使我们的MySQL处理与我们的Postgres支持一样可靠。我们在Cloudflare网络上构建和运行MySQL连接池的过程中学到了一些东西。
事实证明, beta和GA之间的区别只是风衣中的20个错误修复。在测试期间,我们的目标是验证真实世界的客户使用率达到了99.99%的生产可用性目标。我们知道我们的可靠性存在差距,因为我们跟踪来自Worker的客户端连接出现与Hyperdrive相关的错误的频率。
此外,我们从测试版的客户那里获得了反馈,这导致我们在生产环境中发现了一个罕见且微妙的错误。为了传达这个特定错误的复杂性,我们首先需要解释Hyperdrive的工作原理。Hyperdrive是一个将Cloudflare Workers连接到SQL数据库的分布式数据库连接池。
Hyperdrive在我们的全球网络上保持热SQL连接打开,并在许多Worker请求中共享这些连接。除了连接池之外, Hyperdrive还可以在我们的全局CDN缓存中缓存常见查询,从而减少源数据库的延迟和负载。建立与SQL数据库的连接是昂贵的,至少需要五次网络往返。
在像Workers这样的无服务器计算平台上,为每个请求建立连接是不切实际的,这既是因为每个请求增加了延迟量,也是因为大量打开的连接会产生高昂的每个连接资源成本。