分布式 SQL 数据库 CockroachDB 花了将近五年的时间才将其服务移植到微软的 Azure 平台——这与竞争对手 MariaDB 形成鲜明对比,MariaDB 于 2020 年 3 月在所有三大云上发布了SkySQL 。但时间花得很值,首席执行官兼联合创始人 Spencer Kimball 向The Register承诺。他说,由于它被设计为一个分布式系统,将数据库服务移植到一个新的云是一项“非常重要的工作”。
“有很多表面区域需要覆盖。为了使其在 AWS、GCP 和 Azure 中良好运行——它们都有类似物,但它们也各不相同。”
例如,当 Cockroach 为客户启动专用集群时,它会代表客户在云服务中创建一个由 Cockroach 控制的子账户。
Kimball 说:“AWS 对这些有一个基本限制,以个位数的千来衡量。” “GCP 没有这样的限制。你如何创建它们之间的差异——它是一个完全不同的 API;有不同种类的设置;它们需要不同的时间;它们有不同的失败率。支持一个云,你有点习惯所有这些限制和性能,然后你转移到另一个云。你使用一个新的 API,得到不同的结果,它以不同的方式失败。这只是一个例子。”
Cockroach Labs于 2018 年宣布了其在 AWS 和 GCP 上的 DBaaS。最终,在主要云提供商中最后一个在 Azure 上提供数据库服务的决定是基于客户需求——尤其是最大的企业客户。
Kimball 表示,四五年前,云中数据库的早期采用者希望使用 AWS 和 GCP。然而,企业客户希望自己托管它。随着后一组组织越来越习惯于在云中进行部署,对 Azure 的需求也在增长。
“在那些大企业中,你实际上更有可能看到他们有 Azure 的足迹,”他告诉El Reg。
Cockroach Labs 承诺提供一个无服务器数据库,可以根据用户的要求进行扩展和缩减。Bose、Comcast 和 Netflix 等全球公司都欢迎这一信息。
为了吸引更多具有全球影响力的企业,这家成立八年的数据库初创公司为其无服务器、基于消费的自动扩展服务发布了多区域功能。
CockroachDB 已经在多个地区可用,但只能在专用的云平台上使用——这会产生成本影响。“没有无服务器的多区域非常昂贵:你可以像最高价值的用例一样获得它,”Kimball 说。
事实上,首先采用无服务器的好处之一是允许更有效地路由到多区域部署。
无服务器部署意味着用户可以通过配置进行部署。相反,他们获得了更大物理集群的虚拟切片。
走向多区域意味着客户可以在本地为区域提供服务,而无需在每个区域部署整个集群。
“这就像跨越所有这些数据中心的 Cockroach 的物理部署,然后你可以在该物理足迹内创建虚拟或逻辑集群。每个人都可以在该物理拓扑中有一个非常精确的切片来满足他们的需求,而无需一堆未使用的闲置资源。这就是无服务器的最初动机。不过,诀窍是试图让这一切成为现实,”Kimball 说。
“只是构建无服务器是一项艰巨的任务,因为我们必须改变 CockroachDB 的底层架构才能真正有效地支持多租户。”
作为加州大学伯克利分校的学生,Kimball 和联合创始人兼首席技术官 Peter Mattis 开发了流行的开源图像编辑软件 General Image Manipulation Program(GIMP,后来分叉为 Glimpse,主要是为了以另一个名称提供该软件)。
Kimball 和 Mattis 也是谷歌软件工程团队的元老,曾在 Colossus 分布式文件存储方面工作过。
尽管有这种传统,CockroachDB 在分布式 SQL 数据库方面仍有一些竞争——包括 Yugabyte 和 MariaDB。
虽然Yugabyte声称与 PostgreSQL 100% 兼容,但 MariaDB最近为其分布式 MariaDB 后端推出了与 PostgreSQL 兼容的前端,包括对熟悉流行开源数据库的技术团队使用的工具的支持,例如 PG Admin。
Kimball 承认 CockroachDB 不具备完全的 PostgreSQL 兼容性,但它正在做到这一点。
“我们从头开始重新实现了 PostgreSQL 语法和功能。我们选择这样做是因为我们认为架构是主要关注点,以便获得客户要求的那种 3,000 节点集群。你必须考虑分布式开始。这显然不是 PostgreSQL 的构建方式,这就是为什么你不能简单地导入它的原因。MariaDB 是基于 MySQL 构建的。它们是单体数据库引擎。
“我们与 PostgreSQL 非常兼容。随着每个版本的发布,我们变得更加兼容。我们在这个最新版本中推出了分布式 Unix Domain Sockets,存储过程将在下一个版本中推出。”
CockroachDB 曾考虑在 2021 年上市,但随着市场胃口降温,该计划被搁置。尽管如此,Kimball 指出,通过直接向企业销售——而不是像许多数据库公司和其他新技术公司倾向于这样做的其他初创公司——CockroachDB 确保了其收入来源。
“我们没有试图跳入企业,而是发现自己在销售品牌产品——因为这就是我们拥有的产品。从长远来看,他们仍将在 10 年或 20 年内存在,并且它们具有巨大的扩张潜力。我们首先解决了困难的部分,”他说。
但随着分布式 SQL 市场竞争的加剧,他可能会发现困难的部分还在继续。