HighLoad ++ 2019上的数据库

使用数据库是对任何Web服务的性能产生重大影响的因素。 如果您尝试 ,则可以安排高负载而根本没有负载。

而且,如果您明智地做所有事情,它将处理大量用户的请求。 因此,传统上, HighLoad ++计划有许多关于数据库的报告。 我们在PostgreSQL,MySQL和ClickHouse上有专题报道,关于MongoDB的报道很多(按照传统,讲者是MongoDB的性能工程师)。 此外,还有关于不同方法比较或考虑专门解决方案的演讲。 为了通用起见,让我们在此处添加Tarantool和内存。 共有33个报告与“数据库和存储系统”部分直接相关,至少有10个间接与报告相关。 这还不包括不少于10个的mitaps ,并且还会增加新的mitaps

我们将尽力帮助您进行各种浏览,不要错过真正独特的报告。 为了提高可靠性,我们请负责本节的程序委员会成员Nikolay Samokhvalov提出意见。 而且不要以为尼古拉(Nikolai)是Postgres.ai的创始人,通常也不是Postgresmen的创始人-他精通数据库世界,知道有趣的后台故事和趋势。

审查的组织方式尽可能简单:我们打开了报告列表,并从上至下进行了讨论,集中讨论了必须注意的主题。

ClickHouse查询分析器


分析数据库中的查询探查器是一件非常有趣的事情。 该方法应该与OLTP数据库有很大不同,因为通常,在分析数据库中执行查询的时间很长。 如果在PostgreSQL中查询执行计划是静态的,则几乎监视一个查询是有意义的。

在此报告中, Nikita Lapkov将讨论用于ClickHouse请求的事件探查器的设备,该设备可让您确定特定请求的代码哪一部分速度变慢 。 并采取适当措施实施著名的“ ClickHouse不会放慢速度”。

现代基础架构中的备份


报告仅来自“数据库旁”系列,它研究了系统问题,但其中大部分致力于MySQL的备份问题。 Anton Turetsky的故事肯定会很有趣,因为这是Badoo的经验,也就是说,这是有关大量服务器的问题 。 在这样的规模上,备份以及最重要的是检查所有内容都是一项艰巨的任务。 另外,他们设法结交了现代趋势和带备份设计系统范例的朋友,以免失去对在任何甚至最关键的情况下都能获得必要数据的信心。

注意:没有自动验证的备份不是备份。

迁移到ClickHouse:3年后


ClickHouse充满信心地征服了它的位置,但是很少有第三方开发人员能够积累使用它的扎实经验。 Alexander Zaitsev和Altinity是使用ClickHouse的先驱;早在3年前的HighLoad ++上,他们就曾讨论过多PB的分析系统移至ClickHouse。

从那以后发生了什么变化? 亚历山大将分享他的经验和专门知识,这些在文档中找不到。

MongoDB与 Postgres基准


两个来宾将讨论HighLoad ++中的MongoDB。 阿尔瓦罗·埃尔南德斯(ÁlvaroHernández)的报告有一个有趣,甚至丑闻的背景。 当Alvaro提出并引入比较MongoDB和PostgreSQL的基准测试时,互联网上出现了小规模冲突。 MongoDB随后介绍了他们的基准。

结果,每个世界都只有自己的哲学。 PostgreSQL的支持者很难接受对数据的这种模糊态度,但是市场上对MongoDB解决方案有需求。 直接比较它们几乎是不可能的,这使Alvaro的报告非常令人兴奋。 盲目地坚持一种观点很容易,但是了解和理解这两种观点要好得多。

这对每个人来说都是一个有趣的事实-Michael Stonebreaker参加了。 他提请注意Postgres和Mongo之间的争议,并发表了有关该模型问题的几篇文章。 就是说,Postgres的创始人曾经说过一种尺寸并不适合所有人,因此开始创建包括NoSQL在内的专用数据库,现在基本上回到了Postgres。 他写了有什么问题,建议结合数据模型,并通常说Postgres一切都很好。 观看这二十年的周期非常有趣。

MongoDB从上到下的分布式事务


关于MongoDB的第二份报告将由MongoDB解决方案架构师Henrik Ingo撰写,他专门致力于提高MongoDB的性能并提供高可用性。 但是在MongoDB之前的Henrik在MySQL领域工作了很多年,因此他确切地了解各种阵营的观点。

在HighLoad ++上,Henrik 会告诉您如何使分布式NoSQL数据库中的事务满足ACID,以及为什么根本需要它。

奥德赛路线图:我们还要从连接器中获得什么


三周前,公司经常遇到的PgBouncer的主要限制已被删除,但它已经设法打扰了所有人。 例如,由于不可能对开放源代码进行改进-Yandex和Avito补丁多年来没有被接受。

Yandex并没有等待这些更改,而是将其设置为连接器-Odyssey。 它是多线程的,具有其他芯片,Andrei Borodin将在他的报告中详细介绍。 此外,还可以讨论路线图-拔钉器希望在新版本的社区中看到哪些功能。

DBA机器人乔。 减轻后端开发的痛苦


通过此报告,Postgres.ai建议从根本上改变后端开发的方法。 不用检查小型数据库的代码和查询,而是检查大型数据库并立即查看结果。 听起来很合逻辑-如果请求很慢,则会立即检测到它。 另一件事是为此要做什么,例如,作战数据库的完整副本非常不便。 这是人工DBA机器人Joe进行救援的地方

Joe可以编写请求或要求创建索引,然后他将在战斗数据库的完整副本上执行所有操作。 您可以随时重新开始,在几秒钟内取消所有更改,并删除OS和DBMS缓存。 而且对于十个开发人员的工作来说,不需要x10磁盘空间。 Anatoly Stansler 会告诉您,该魔术的工作原理以及您可以尝试从哪些开源组件中收集这些魔术。

亲爱的DELETE。 在高负载的PostgreSQL数据库中执行大量操作时的典型错误


并且,如果在某人看来,用一个DELETE删除几百万行没有错,那么当条件已知并且有合适的索引时,那么您就需要听听Nikolai Samokhvalov的报告 。 如果您尝试在这种情况下执行某项操作,则该服务很可能会崩溃,并且有很多原因会立即导致该错误:DBA无法正常工作,开发人员的行为不正确以及组织方法错误。

Nikolay将展示Postgres.ai如何帮助解决这些问题以及如何在不使用保护的情况下配置保护,并始终可靠地执行操作而不会掉落产品。 所有这些都是基于痛苦和巨大经济损失的真实经验 。 因为很明显您不能立即删除,但是,例如,先标记要删除的数据,却遇到了上百万行的阻塞操作。

GitLab.com上的Patroni


GitLab将PostgreSQL用于完整的,最近废弃的MySQL,并确保HA从REPMGR切换到Patroni。 Patroni由Zalando开发,其任务是在向导发生问题时自动切换,并确保服务的可用性。

现在Patroni已成为 事实上的标准 ,并且GitLab已在其云解决方案上实施了该解决方案-每天进行第二次2500万次git pull操作-并正在准备一种用于检查安装的解决方案。 Jose Cores Finotto 将于 11月7日在HighLoad ++上分享这种超级有趣的体验。

StackGres:Kubernetes上的Cloud-Native PostgreSQL


与PostgreSQL和MongoDB相比,ÁlvaroHernández还将推出 StackGres产品-本质上是RDS的替代产品。 但是,这使得在Kubernetes中更便宜地部署RDS,使用预告片,用于自动故障转移的Patroni,运行状况检查以及许多其他工具以最小的工作量配置备份成为可能。

这在与Linux故事相似的方向上是一项有前途的工作。 有一个Linux内核,周围有许多不同的程序集。 对于PostgreSQL,我们看到了相同的东西,可以将其视为DBMS的内核,并且程序集将出现在它周围。 StackGres有很好的机会获得普及,因为这里有一支活跃的团队和客户,您可以在其中做出决定。

PostgreSQL锁


锁基本上是使用PostgreSQL的每个人都应该听的话题。 此外,已经确立自己的职业讲师资格的Yegor Rogov将谈论这些问题。 他非常了解相关材料,将帮助您了解锁的类型,并了解如何读取pg_locks和pg_stat_activity并避免系统设计中的许多错误。 Egor关于HighLoad ++的报告是一个很好的机会,不仅可以倾听,还可以与专家交谈,向他询问您的问题,并可能讨论完全不同的问题。

备份已加载的DBMS


Andrey Borodin和Georgy Rylov在Yandex工作,并且正在开发开源备份工具WAL-G。

最初,WAL-G是由Citus开发的PostgreSQL工具(很好奇微软最近吸收了Citus,也就是说,实际上是购买了一部分PostgreSQL)。 但是事实证明,使用WAL-G进行组织工作的想法非常适合其他数据库。 安德鲁和乔治将只讨论 MySQL,Redis,MongoDB的功能以及与此相关的前景。

Vitess:在云中无所畏惧地扩展


Sugu Sougoumarane是PlanetScale的创始人。 您可能还没有听说过这家公司,但是最近它获得了2500万美元的资金来开发其开放的Vitess产品。 您可能也没有听说过Vitess。 因此, Vitess是一个MySQL分片系统 ,并且您肯定知道多家使用Vites来处理高负载数据库的大公司。

一切始于YouTube。 Sugu和他的团队在那里创建了后来成为Vitess开源系统的软件。 顺便说一句,他们选择了Go-当时还很年轻的一种语言。 苏古(Sugu)可以讲述许多关于Go成立的头几年的故事,以及有关其发展的总体情况-在Google上,他的团队成为了该语言的第一个主要用户。

好吧,现在,除了YouTube,Vites还被GitHub,Pinterest,Slack,Square等公司使用。 离开Goog​​le后,Sugu创立了PlanetScale,并继续开发Vitess,使代码保持开放。 快来听听有关在行星尺度上进行分片以及在实际高负载中使用Go的知识。 而且不要忘了问一下Postgres版本的Vitess的计划-Sugu非常喜欢这个问题。

Patroni失败案例或如何使PostgreSQL集群崩溃


有趣的是,我们将听取Patroni主要维护人员的不同话题 ,因为他已经向我们介绍了Patroni。 但是Aleksey Lesovsky可以告诉我们Patroni是如何在Zalando之外被利用的,以及塞满了什么圆锥体。 因为这些圆锥体可能非常不同,所以Alex承诺会分享真实的崩溃案例详细信息 。 我们将从报告中了解存在的问题,在Data Egret中吸取了哪些经验教训以及如何正确配置Patroni(以及可能的PostgreSQL)。 而且,当然,我们对如何快速发现新出现的问题并快速解决它们有了一个想法。

SQL / JSON:我们实现了标准,并且不止于此


最近,关系型和面向文档的DBMS之间的边界已经模糊。 SQL标准具有使用JSON的功能,而PostgreSQL是关系DBMS之间有效的JSON支持的先驱 。 很大程度上要感谢Postgres Professional,该标准已经部分实施。

Alexander Korotkov 的报告是SQL / JSON实现及其在PostgreSQL中的“心脏” jsonpath的第一手资料。 这是一个了解内部功能,运营经验和未来计划的机会。

Zalando上的K8上的PostgreSQL:两年的战斗


亚历山大·库库什金(Alexander Kukushkin)是Patroni的合著者,但今年他将谈论 Zalando的另一有趣发展。 两年前,他们开始开发Postgres-Operator,目前,DBA操作员在其帮助下为Kubernetes上运行的1000多个Postgres集群提供服务。

尽管仍然有人怀疑Kubernetes中是否可以使用数据库,但大型公司已经在使用所有这些工具。 了解和学习其他地方会很酷。

企业呼吁Postgres


大型公司越来越多地使用PostgreSQL,常常期望它在企业中已经习惯了。 一个典型的例子-我们需要逻辑复制的解决方案-我们求助于供应商。 一些供应商甚至提供了这种支持-有Oracle,现在出现了PostgreSQL。 但是我们开始了解,事实证明,许多工作方式有所不同。

我们目睹了开放源代码和企业世界的碰撞。 安德森·霍洛维茨(Andreessen Horowitz)最近发表了一项研究,称投资者对开源的兴趣已大大增加,并将继续增长。 因此,供应商需要切换到开源和新的获利模型-出于多种原因,这样做会更好。

伊万·潘琴科(Ivan Panchenko) 确切地告诉您 ,企业迁移到PostgreSQL的哪些困难是主观的,属于“弯腰”类型,以及PostgreSQL在其开发过程中必须应对的这些重要挑战是什么时候。 摘要有望讨论以下主题:缩放因子(表大小,对象数,内存,连接,复制),存储功能(堆,可插拔存储),临时表,真空,与OS的交互。

在此注释上- 未来是 开源的 -我们将完成对报告的详细研究。 不幸的是,在后台MySQL几乎被完全抛在了后面。 如果这是您的主题,请查看Vittorio CioeAlkin Tezuysal

ClickHouse在大量报告中也有代表,与往常一样, mitap具有特别的价值,您可以在其中提出有关ClickHouse的任何问题,并与开发人员一起找到问题的解决方案,讨论机会和计划。

我们也没有碰过Tarantool,因为这是一个数据库和应用程序服务器。 HighLoad ++ 2019程序中的报告重点关注此多功能性。 Vasily Tyubek将谈论Tarantool Kubernetes Operator,以在Kubernetes中运行数据库,Yaroslav Dynnikov将展示使用Tarantool构建分布式系统的便利性。 并且不要错过与开发人员自己澄清所有细节的机会-比阅读文档更有效和有趣。

一般而言,我们会考虑向演讲者提出的问题,后台讨论和网络交流-这是会议中非常重要的部分,即使不是最重要的部分。 因此,我们为非正式交流创造了所有条件,并努力度过美好时光。

在11月7日和8日, HighLoad ++将把 SKOLKOVO充满,并从中溢出。 在新西伯利亚和圣彼得堡,将有他们的HighLoad ++分支机构,并在大会堂设有电话会议,并提供了联网的所有好处。 在youtube上,我们将启动最预期的报告和HighLoad ++ Award的公开视频广播,在电报频道中,我们将沿着不同的轨迹启动文本翻译代理。 简而言之,即使您不使用HighLoad ++(徒劳的,您仍然可以改变主意,获得机票并起飞),您仍然可以通过我们的网络获得很多好处。

Source: https://habr.com/ru/post/zh-CN474496/


All Articles