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...