您的浏览器禁用了JavaScript(一种计算机语言,用以实现您与网页的交互),请解除该禁用,或者联系我们。[ArchSummit深圳2023|全球架构师峰会]: 发展用于处理大型 发展应程序的新址库 _ MichaelMonty + Widenius - 发现报告

发展用于处理大型 发展应程序的新址库 _ MichaelMonty + Widenius

AI智能总结
查看更多
  发展用于处理大型  发展应程序的新址库 _ MichaelMonty + Widenius

2023 年 7 月 Michael Widenius MySQL 和 MariaDB CTO 的创造者 @MariaDB Overview ● RDBMS 和 MariaDB 的历史 ● 大数据由开源驱动 ● AI 和数据库 ● 数据库和云 ● 我最近一直在做什么 RDBMS 的历史 是什么让 MySQL 成功 ? ● 当MySQL于1994年启动时,市场上已有微软、IBM、Oracle等大型竞争对手,它们已经占据了相当大的市场份额。 ○ 互联网是新的 , 每个人都需要一个网络优化的数据库 ● 然而 , 大玩家并没有将互联网视为一个可行的商业平台 !● 我们创建了一个 “虚拟公司 ” , 这使得它很容易找到好人web)● 新的 “免费 ” 许可方案(这是在开源之前)● MySQL 在发布之前已经被证明是稳定的(用于数据仓库和○ 大多数免费 , 少数需要付费○ 第二个程序(ghostscript 是第一个) 使用双重许可。■ MySQL 首先使用 GPL 做到这一点。 ● MySQL 是一款需要的 , 稳定且易于使用的产品 , 价格合适● 非常容易安装和使用(15 分钟规则)● 为大多数平台发布源代码和经过测试的二进制文件 是什么让 MySQL 成功 ? ● MySQL 从自下而上开始 , 为 Web 行业提供廉价(或免费) 的解决方案。 ○ 我们对社区友好和乐于助人 ● 我个人在前 5 年写了 30, 000 多封电子邮件来帮助人们使用 MySQL ○ MySQL 遵循开源开发模式。○ MySQL 随后开始在其他行业(企业部门) 发展。 ● “1000 个客户中有 1 个实际付款 ” - 仍然足以快速增长。 ● 社区提供测试、营销和简单的支持需求。 ● MySQL Ab 为那些想要 / 需要它的人提供全面支持。 ● 我们(MySQL 创始人) 等待投资 , 直到产品 “足够好 ” 为什么创建 MariaDB "拯救人民 , 拯救产品" ●保持MySQL人才团队稳定 ●确保始终存在一个免费版本的MySQL ●开发并维护一个社区分支 ●与其他MySQL分支合作共享知识和代码 在甲骨文宣布想要收购 Sun & MySQL 之后 , 这一点变得更加重要。 MariaDB 是如何中断的 ? MariaDB 遵循 MySQL 的原始步骤(Oracle 尚未完成) : ● 这是一个真正的开源项目 , 遵循适当的自由软件 / 开源实践。 ● 发展发生在开放中 , 与社区一起工作。 ●MariaDB 基金会创建 MariaDB 是为了确保 MariaDB 始终是开源的。 这个过程使 MariaDB 脱颖而出。 ○ MariaDB 已集成到大多数主要的 Linux 和其他免费操作系统发行版中, 作为默认的 “MySQL ” 变体。 MariaDB 生态系统 MariaDB Foundation 与社区合作 MariaDB Corporation 与客户合作 构建和测试二进制文件 - 开发MariaDB buildbot 为 MariaDB(企业和社区) 提供付费支持和订阅 采用驱动器 - 与操作系统配合使用 ,确保 MariaDB 无处不在 雇用大多数 MariaDB 开发人员 - MariaDB 开发的主要驱动力 MariaDB Enterprise - 较长的产品生命周期 -稳定的功能将回ported到早期版本,以减少升级需求。 与社区开发人员合作 - 审查体系结构和补丁程序 - 批准和推动更改 确保 MariaDB 始终免费。成立槽赞助。 提供 NRE(新的 MariaDB 功能的付费开发) 。 MariaDB 未来计划 蒙蒂的观点 与客户合作 , 帮助他们从商业迁移将复杂应用程序移动到 MariaDB 时 , 这一点非常重要闭源数据库到 MariaDBMariaDB Oracle 兼容层使这一点变得简单改进优化器以处理非常复杂的查询 MariaDB 11.0 有一个新的成本模型 , 极大地改善了复杂查询的处理。与 SAS 数据库提供商紧密合作 , 使 MariaDB 在其环境中更好地工作 MariaDB 多租户功能是此次合作的一部分。 大数据由开源驱动 开源驱动的大数据 ● 阿帕奇 Cassandra ○ 可调一致性 ○ 键映射到多个值,这些值被组织成列族 ○ CQL 语言 ● MongoDB ○ 像文档一样将结构化数据存储为 JSON ● CouchDB ○ MVCC , 酸 , 最终一致● HBase(Hadoop + 分布式文件系统) 一套) 。 ○ 用 Java 编写。压缩、内存操作和 Bloom 过滤器 (是数据的一部分 ● HAWQ , Pivotal HDB○ Hadoop + SQL 为什么使用 NoSQL ● 更快速的复制● 快速且简便的键/值访问● 数据通常存储在内存中● 请注意,在相似的内存资源条件下,也可以通常将SQL数据保留在内存中。● 可处理非结构化数据 ● 在传统 SQL 中 , 无法轻松实现 Web 存储 ● 大多数 NoSQL 供应商都在考虑增加 SQL 支持。像 Atlas SQL for MongoDB(非开源) 为什么不使用 NoSQL 关系数据库设计为仅保存一种关系的一份副本(如客户数据)● 无法(容易地)合并数据 ● 没有标准化的语言 ; 难以在系统之间移动数据和应用程序 ● 完全锁定到一个系统 ● 通常很少连接到需要数据库的计算机语言或现有应用程序。 ● 允许人们最初忽略解决数据库布局问题 , 因为人们可以 “像这样 ” 存储数据 ● 最初更容易使用 , 后来更难 他们依赖于 BSD 或 Apache 许可证)● 大多数开源 NoSQL 解决方案没有可持续的可扩展业务模型(作为大多数 使用 BIG 数据要克服的问题 ○ 内存( 非常昂贵) ○ SSD(昂贵但速度较慢)○ 硬盘(价格较高但随机读取速度慢,顺序读取速度快。未来的“磁带”) ● 访问模式 ○ 一些访问模式适合大数据(并行扫描),而其他模式则较为困难 ■ 即使简单的连接操作在petabyte级别的表上也可能需要数天时间 ● 当事情失败时起床○ 恢复; 可能需要几天或几周 ○ 获得缓存温暖(您需要 > 90 % 的命中率与缓冲区 !) ● 复制和热备 ○ 必须有 , 但使大数据更加昂贵 大数据的定义正在改变 ● 当我从事数据仓库工作(1986-1993年),大数据是指(一家瑞典石油公司的所有信用卡交易记录):● 100万用户,每月400万笔交易(每笔交易30字节)。 10 年数据 = 1.3 G ● 由 Sun SparcStation , 25Mz , 32M 内存处理。 2G 硬盘 ● CPU 现在快 700 倍 , 内存多 10000 倍。 SSD / 硬盘搜索速度比 1986 年快 6000倍 ● 尽管机器的速度不断提升,大多数数据(除了社交和行为数据)仍然较小,可以轻松由单台机器处理。 为什么大数据解决方案是炒作 ● 他们必须使用的解决方案不适用于其他解决方案。等等 , 需要 “一次 ” 访问● 大多数公司的真实数据不会像 Facebook , Twitter , Bilibili , TikTok , ○ 在近未来,大多数公司认为的大数据可以在少数几台机器上运行:○ 现存内存价格约为2100$/T;大多数公司可以负担200G的RAM。 ○ SSD 现在是 50 $/ T(读取 : 560 - 3100MB / sec 98K IOPS , 写入 : 520 - 2250MB / sec ○ 您可以从 Nimbus 获得 100Tb 的 SSD , 从戴尔获得 960Tb 的 SSD 。 16T 可以轻松获得 ● 当前,MariaDB可以轻松处理500GB的活跃数据。只有在数据量超过1TB时,才需要考虑使用分析型数据库。● 几乎没有用户需要超过500GB的数据。 ● 大企业最常见的数据库大小是100G数据库。 他们最大的产量 ○ 有关详细信息 , 请参阅 https: / / motherduck. com / blog / big - data - is - dead /● 90% 的查询处理量小于100 MB的数据。 AI 和数据库 AI 和数据库 ● 就个人而言 , 我不认为 AI 有助于优化数据库内部的查询(数据正在变化不断 , 优化器已经在使用统计信息和直方图来做出决策) 。 的记忆。● 优化器还必须非常快 , 并以有限的数量处理大量并发 ● AI 可用于优化应用程序的 SQL 查询。● 人工智能可以用于将自然语言转换为SQL,这适用于交互式查询但太慢而无法在生产中应用于实际 应用。 ● 在编程方面 , 我只相信 AI :○ 初始设置一个通用问题的解决方案(编写一个易于解释的脚本) ○ 尝试查找代码中的“简单错误/漏洞”,如可能的缓冲区溢出、缺少参数等可以简化的问题等。○ 将一种语言的内容翻译成另一种语言。○ 进行一个简单的更改,可以在代码的多个部分重复使用。■ 最终代码必须仔细审查! ■ 将此类型的参数添加到此函数中 , 并确保所有调用方都是固定的。 AI 和数据库 ● 我什至不会尝试使用 AI 在复杂的项目中进行更改 , 例如向 MariaDB 添加目录。 MariaDB 中太多的东西以不明显的方式互连(如果没有○在现有软件中没有可以训练的类似模式。○知道代码) 这样的事情。● 如果 AI 会产生 “难以理解的代码 ” , 我不能用 AI 来解释为什么他们领域的复杂问题。我没有看到任何人在他们的与我合作的所有 MariaDB 开发人员都是专家 , 可以解决非常或他们孩子的一生。 数据库和云 SaaS 提供商的数据库扩展 SaaS 提供商希望优化他们可以在硬件上托管的客户数量。 ● 在提供MySQL/MariaDB的管理服务时,SaaS提供商有以下选项:○ 为每位客户创建单独的虚拟机(VM)。 ■ 开销大 - 成本高■ 典型的 “空闲 ” MariaDB 服务器需要〜 1GB 内存 ■ 最佳用户体验 ○ 使用共享实例■ 强制用户限制 , 只授予有限的数据库访问权限。 ● cPanel 有这个模型 , 许多其他数据库管理系统共享它 ■ 开销非常有限■ 用户体验差 , 对用户实施人为限制■ 受 “吵闹邻居 ” 影响 , 难以追踪 MariaDB 的新目录功能 ● 目录提供两全其美。○ 共享实例 ○ 一个目录看起来像一个正常的 MariaDB Server ○ 无用户限制 ■ 每个用户对其目录拥有完全控制权 ■目录上的根访问权限 ● 目录仍然存在邻居嘈杂的问题○ 然而,现在为每个目录收集统计数据 ○ 从而可以轻松检测出有问题的目录 ○ 将有问题的用户迁移到更大的机器上,增加成本 ● 图表也可以实施配额 ○ 每个图表都有自己的配置文件和限制 ○ 强制用户遵守特定的性能限制。 ● 系统管理员可以控制所有图表。 目录功能 ● Catalogs enable hyper - scaling for SaaS providers. ○ For basic users, one cannow host - to 100x more users on the same machines. ● 在MariaDB中,该功能仍在开发中 ○ 如果您想指导这一路线图,现在正是时候! ■ 工具支持 ■ 性能优化 ■ 特定功能 程序员的职业道路 我最近一直在做什么 我还在积极编码 ! ● I改进 MariaDB 优化器以处理大型数据库的复杂查询 ○这是基于 MariaDB 客户和用户的输入○我在近一年的时间里重新制作并改进了MariaDB优化器的成本模型,适用于MariaDB 1