谷歌近日为其产品谷歌云的分布式 SQL 数据库 Spanner 引入了分层存储。此分层存储基于一种新的 HDD 存储选项,比现有的 SSD 选项便宜 80%,可以有效优化旧数据的成本,同时最大限度地减少与传统数据迁移相关的开销。
虽然默认的 SSD 层是为需要高吞吐量和低延迟的数据而设计的,但新的 HDD 层是为不经常访问或对延迟不敏感的较大数据集而设计的。存储分层是由策略驱动的,异步后台进程会根据用户定义的策略自动将数据从 SSD 移动到 HDD,作为维护任务的一部分。无论存储层如何,SQL 查询都可以访问 SSD 和 HDD 层中的数据,并且备份策略在所有数据中一致应用。
Google 团队强调,对于大多数数据库记录而言,其运营价值会随着时间的推移而降低,而其报告和合规性的作用则会不断增强。这种转变意味着较旧的“冷”数据不需要与当前“热”事务数据相同的高性能访问,从而鼓励公司寻求更具成本效益的历史信息存储解决方案。
谷歌软件工程师马修·穆克卢(Matthew Muckloo)和谷歌集团产品经理皮尤什·马图尔(Piyush Mathur)如此写道:
迁移到其他类型的存储通常需要复杂的数据管道,并且会影响操作系统的性能。手动在存储解决方案之间分离数据可能会导致读取不一致,需要应用程序级协调。此外,这种分离对应用程序如何查询当前和历史数据(例如响应监管机构)施加了重大限制;它还增加了需要审计的治理接触点。
现在可以在Spanner 的各个级别(数据库、表、列或二级索引)实施存储分层策略,并可以灵活地将特定数据移动到速度较慢但成本较低的 HDD 存储。例如,可以将很少访问的数据(如 JSON 产品属性)移动到 HDD,而无需重组表,并且可以将索引保留在速度更快的 SSD 上,同时将实际数据存储在 HDD 上。
[SSD (default)/HDD]要启用分层存储,必须创建一个定义存储选项的位置组,并可以选择ssd_to_hdd_spill_timespan定义在压缩周期将数据移动到 HDD 之前应在 SSD 上保留数据的时间。
例如:
CREATE LOCALITY GROUP recent_on_ssd OPTIONS (storage = 'ssd', ssd_to_hdd_spill_timespan = '15d');
创建 SSD 到 HDD 的溢出策略。在移动数据之前,必须在 SSD 中存储的最短时间为 1 小时。
虽然 Google Spanner 并不是唯一提供分层存储的分布式云数据库,但 Amazon DynamoDB 隐藏了所使用的存储技术,提供具有不同存储和检索费用的标准和标准 IA 存储类。
Spanner 的分层存储支持 GoogleSQL 和 PostgreSQL 方言,并且可在 Spanner 可用的所有 Google Cloud 区域中使用。可以从System Insights监控 HDD 使用情况。
来源:谷歌官方博客
本文为 @ 万能的大雄 创作并授权 21CTO 发布,未经许可,请勿转载。
内容授权事宜请您联系 webmaster@21cto.com或关注 21CTO 公众号。
该文观点仅代表作者本人,21CTO 平台仅提供信息存储空间服务。