HeadlinesBriefing favicon HeadlinesBriefing.com

PlanetScale推出Neki:分片Postgres可扩展工作负载

Hacker News •
×

Neki现已平台预览。Neki基于我们八年运行世界上部分最大分片MySQL集群的经验而建。数千个产品工作负载,每秒数百万查询,针对即使几秒停机也是公开事件的公司。我们知道为世界最大的第0级工作负载提供动力意味着什么。当我们一年半前发布Planet Scale Postgres时,我们知道我们需要做更多。在这段时间里,我们已经为数千个客户上线了Planet Scale,其中一些客户的规模与我们最大的MySQL客户相匹敌。时间和时间再次,我们看到团队在单机Postgres的上限前遇到瓶颈。购买金属给他们争取了时间,但随着客户达到单机能够承受的上限,我们发现没有好的办法可以交给他们。进入Neki。Neki是什么?Neki是Planet Scale的分片Postgres。它让你能够将Postgres数据库跨越许多机器进行扩展,同时在每个分片上保持真正的Postgres。你的应用程序通过标准Postgres wire协议连接到Neki路由器,因此你现有的驱动程序、ORMs和连接字符串继续工作。每个分片都是一个拥有1个主节点和至少2个副本的完整Postgres集群,跨越3个可用区。没有自定义存储引擎,所以扩展、SQL支持和性能行为就像Postgres一样。你选择分片键,并通过JSON数据拓扑控制表如何分组和分布。模式变更、版本升级、故障转移、导入和重新分片都作为内置的完全在线的工作流运行。你也可以获得你已经依赖的Planet Scale功能,包括Insights、模式建议、分支和MCP。你不需要在第一天就进行分片。作为单个主节点带有副本运行Neki,当你超出一个机器的容量时,重新分片是一个你可以对已经拥有的集群运行的工作流。为什么Neki?你已经知道快速增长的Postgres数据库带来的问题:太大的表,无法在不影响流量的情况下进行清理或建索引,耗时数小时的备份,连接限制,模式变更的维护窗口,事务包装器和更多。你可以迁移到更大的实例,但最终你会用尽足够大的机器,且问题不会线性地随着你添加更多核心和IOPS而扩展。现有的每个答案都要求你放弃一些东西。应用级分片将路由推到你的代码中。Postgres“兼容”分布式数据库隐藏分片键 from you,拿走你的扩展,并增加复杂度和延迟,这变得难以处理和调试。所以我们按照几个原则建立了Neki,最大的原则是:贴近Postgres,不要围绕它工作,不要假装它,也不要远离它。Neki是如何工作的?我们从第一性原理为Postgres架构了Neki,每个分片都是真正的Postgres。有四个移动部分。Neki路由器你的应用程序首先连接到Neki路由器。路由器 speaks the Postgres wire protocol,所以你的现有驱动程序和ORMs继续使用单个连接字符串工作。一个路由器拥有完整的Postgres查询解析器,一个分布式查询计划,查询缓冲和更多。它解析你的查询,构建一个决定哪些分片应该运行它的计划,发送工作出去,并将结果合并回一个流中。路由器可以垂直和水平扩展,所以没有单个路由器成为瓶颈。分片和分片组每个Neki中的分片都是拥有1个主节点和至少2个副本的真正Postgres,跨越可用区。没有修改过的存储引擎。扩展、SQL支持和性能行为就像Postgres一样,因为它就是Postgres。分片组织成分片组,所以不同的表或工作负载可以居住在不同的分片集合中。每个分片使用一个配置文件,定义其实例大小,副本计数,存储,Postgres参数和扩展,这样你可以为每个组根据i...