首页 时政热点 科技头条 智能AI 安全攻防 数码硬件 开发者生态 汽车 游戏 社会热点 开源推荐 医疗健康 归档 标签 关于

好的,但是它可以扩展吗?

2026-09-05 1 阅读 约5分钟阅读 theanonymousone
分享:
字号:
这可能是我被问到最多的关于时空的问题。这是一个足够简单的问题,而且看起来也应该有一个简单的答案。扩展是一个复杂的话题,而问题往往在于细节。另一方面,它也没有复杂到我们无法从博客文章中的首要原则来理解可扩展性。让我们首先探讨一般的可扩展性,然后回答这个问题:“时空如何扩展?” 如果您想要简单明了:扩展有三个维度:计算、存储和网络。水平扩展存储相对简单,将于 2026 年 10 月 31 日发货。但是,并非所有网络和计算都可以水平扩展。声称具有一般水平可扩展性的 OLTP 数据库通常会为每个事务付出巨大的开销,并且在面对竞争事务时性能极差。 Spacetime 在争用情况下提供高性能,并提供工具让您轻松扩展可并行 OLTP 工作负载。注意:我在本文中多次讨论了 CockroachDB。 CockroachDB 是基本上所有通用用途、水平扩展 RDBMS(包括 Spanner 和 Aurora DSQL)的粗略替代品。尽管我谈论了这些技术的一些问题,但它们都是令人难以置信的令人印象深刻的工程壮举。凭直觉,每个人都知道“规模化”的含义。这意味着能够做更多的事情。这意味着跟上需求。它意味着处理十亿个请求,或“无限”请求,或无限量的数据,或无限数量的客户,或者能够以每年 10 倍或 100 倍的速度增长您的应用程序,而无需重写您的软件。特别是,我认为当大多数人说一个系统是可扩展的时,他们谈论的是它是否具有特定的水平可扩展性。垂直可扩展性意味着使用单台计算机执行更多操作,而水平可扩展性则是使用更多计算机执行更多操作的能力。如果将计算机数量增加一倍,我们可以完成大约两倍的工作量,那么计算量就会水平扩展。毕竟,一台计算机的容量和速度有限,但理论上您可以购买的计算机数量没有限制。这个想法非常令人满意,因此这就是每个人都在寻找的财产。注意:“用更多计算机做更多事情”的定义意味着所有水平可扩展的系统都必须是分布式系统。然而,这并不意味着分布式系统的唯一目的是水平可扩展性。例如,分布式状态机复制旨在在许多计算机上冗余地执行相同的计算,以实现可靠性而非扩展性。下面的时空部分将详细介绍这一点。问题“它是否水平扩展?”未明确说明。更好的问题是,“它以什么方式水平扩展?”这是因为可扩展性实际上存在三个相当独立的维度: 计算:您可以处理多少事务 存储:您可以存储多少数据 网络:您可以支持多少连接和多少带宽 为了了解我在说什么,让我们看一下几个数据库系统,它们都公开了广泛的 PostgreSQL 兼容接口,但具有截然不同的架构。例如:Postgres 在很大程度上是一个单节点数据库。 Postgres 不会为您水平扩展计算、存储或网络。当然,您可以通过部署许多 Postgres 实例来水平扩展 Postgres,但就 Postgres 代码而言,它基本上不知道那些其他实例。唯一的例外是只读副本,它允许您手动将读取器定向到副本。这有助于扩展网络和计算,但它也带来了有关写入后读取一致性和性能的警告。 Postgres 本身没有主集群的概念,无法在它们之间运行事务或查询,也无法将您路由到适当的集群。你当然可以编写软件来做到这一点,这就是人们可以水平扩展 Postgres 的方式,但如何做到这一点留给读者作为练习。 Neon 是 Postgres 的修改变体,可以水平扩展存储。 Neon 表由具有本地页面缓存结构的对象存储支持,使数据访问快速高效。由于缓存未命中,页面访问延迟可能会更高,但这种架构为您的 Neon 数据库提供了有效的无限存储空间。然而,Neon 不会自动水平扩展计算和网络。与 Postgres 一样,所有写入事务都必须经过单个主数据库。然而,作为 Postgres 的变体,Neon 还支持只读副本来水平扩展读取工作负载的计算和网络,尽管这也有类似的一致性警告。即使没有自动计算扩展,水平扩展存储也是一个巨大的胜利。即使是使用次数不多的小型网络应用程序
这篇文章对您有帮助吗?

订阅66必读

每日精选科技资讯,直达你的邮箱