Yandex 发布了其 DBMS «YDB» 的源代码

最近有消息说 Yandex 发布了其 DBMS 的源代码 «YDB»,它实现了对 SQL 方言和 ACID 事务的支持。

数据库管理系统 从头开始构建,最初开发时着眼于确保容错、自动故障转移和可扩展性。 需要注意的是,Yandex 推出了工作中的 YDB 集群,包括超过 10 个节点,它们存储数百 PB 的数据,每秒服务数百万个分布式事务。

YDB的主要创新

YDB 的突出特点是 将关系数据模型与 YQL 表一起使用(YDB Query Language)用于查询和定义数据模式,即 一种适用于大型分布式数据库的 SQL 方言. 创建存储模式时,支持树状表分组,类似于文件系统的目录。 提供了一个 API 用于处理 JSON 格式的数据。

创建容错配置的能力 当磁盘、节点、机架,甚至单个数据中心出现故障时,它们仍能继续运行。 YDB 支持跨三个可用区的同步部署和复制,同时在其中一个可用区发生故障时保持集群的状态。

数据访问支持 使用扫描查询,旨在对数据库执行临时分析查询,以只读模式执行并返回 grpc 流。

此外,它还脱颖而出 使用 PDisk 组件将数据直接存储在块设备上 本机和 VDisk 层。 除了 VDisk,DSProxy 还会运行,它会分析磁盘的可用性和性能,以便在检测到问题时将其排除。

其它功能 脱颖而出:

  • 一种灵活的架构,允许您在 YDB 之上构建各种服务,直至虚拟块设备和持久队列。 适用于不同类型的工作负载:OLTP 和 OLAP(分析查询)。
  • 支持多用户(多租户)和无服务器配置。
  • 能够对客户端进行身份验证。 用户可以在公共共享基础设施上创建自己的虚拟集群和数据库,根据请求数量和数据大小考虑资源消耗,或者通过租用/保留某些计算资源和存储空间。
  • 可以调整记录的使用寿命以自动删除过时的数据。
  • 与 DBMS 交互和提交请求是使用命令行界面、集成 Web 界面或 YDB SDK 完成的,它为 C++、C# (.NET)、Go、Java、Node.js、PHP 和 Python 提供库。
  • 以最小的延迟自动从故障中恢复到应用程序,并在存储数据时自动保持指定的冗余。
  • 在主键上自动创建索引并能够定义二级索引以提高任意列访问的效率。
  • 水平可扩展性。 随着存储数据的负载和大小的增长,只需​​连接新节点即可扩展集群。 计算层和存储层是分开的,允许您单独扩展计算和存储。 DBMS 本身监控数据和负载的均匀分布,同时考虑到可用的硬件资源。 可以实施覆盖世界不同地区的多个数据中心的地理分布配置。
  • 在处理跨多个节点和表的查询时支持强一致性模型和 ACID 事务。 为了提高性能,您可以选择性地禁用一致性检查。
  • 自动数据复制,当大小或负载增加时自动分区(分区,分片),以及节点之间的自动负载和数据平衡。

最后, 需要注意的是,YDB 是在 Yandex 项目中使用的, 该代码是用 C/C++ 编写的,并在 Apache 2.0 许可下分发,您可以查看源代码以及有关它的更多详细信息 在下面的链接.


发表您的评论

您的电子邮件地址将不会被发表。 必填字段标有 *

*

*

  1. 负责数据:MiguelÁngelGatón
  2. 数据用途:控制垃圾邮件,注释管理。
  3. 合法性:您的同意
  4. 数据通讯:除非有法律义务,否则不会将数据传达给第三方。
  5. 数据存储:Occentus Networks(EU)托管的数据库
  6. 权利:您可以随时限制,恢复和删除您的信息。