摘要
本文探讨了将数据密集型分析应用从本地迁移到云原生环境这一普遍的行重趋势。我们发现,与云存储相关的独特成本模型要求对性能优化有更细致的了解,具体而言,根据从Uber Presto生产环境中收集的数据,我们认为在云中简单地应用常见的I/O优化,比如table scan和fiter(表扫描和过滤),以及broadcast join(广播连接)可能会产生意想不到的成本。这是因为传统的I/O优化主要侧重于改善本地环境中的吞吐量或延迟,而没有考虑到与存储API调用相关的财务成本。在云环境中,这些成本可能会非常高昂,仅在Uber实际的使用规模下,Presto工作负载每天就可能涉及数十亿次的API调用。本文将以案例研究的形式呈现I/O优化逻辑和思路,可作为读者进一步研究的起点,从而设计出专门针对云环境中数据密集型应用的高效IVO策略。
1导言
本文对数据密集型分析应用从本地迁移到云原生环境这一普遍的行重趋势进行了研究。通过分析Uber生产环境中的Presto查询记录,由于不同云厂商的成本模型星著不同,对这些分析应用的常见I/O优化可能会因为存储API调用而产生意想不到的成本(每年数千万美元)。此外还可能导致这些应用在迁移到云环境后产生高昂的额外成本且降低效率,要实现成功迁移上云和正常运行,系统研究人员和开发人员必须了解云存储服务的细微差别,并为这些环境中的应用量身定制高效的IVO策略。
数据密集型分析应用主要是Apache Spark,Apache Hive、Presto [22,20,17等分析计算引擎。一直以来,这些应用都是在本地环境中构建和运行的,依赖于HDFS(Hado op分布式文件系统)等存储系统,通过最大限度地减少存储和计算之间的数据传榆来确保数据本地性。此外,分布式计算引擎中的离散节点或进程通常单独进行文件级请求,例如读取文件或列出目录(ist directory)。这里不进行节点协作的前提条件是IV/O请求的成本主要体现在瞬时资源消耗(网络带宽、内存或处理能力)上,而非直接的财务支出。十多年来,这些设计原则一直指导着计算引攀的发展,主导井推动着V/O优化,有效提高了I/O吞吐量井降低了延迟。
然而,随着这些应用程序向云环境迁移,有关数据本地性和成本模型的假设都受到了考验。首先,云存储服务(如ANSS3、Azure Blob Sorage和GoogleCloud Storage(GCS))在备自的云生态系统中迅速皑起,成为主要的数据湖解决方案。因此,数据不再局限于本地网络上的服务,而是由云基础设施提供,节点数据本地性的概念不再适用。其次,这些云存储服务采用了与传统本地存储解决方案完全不同的定价结构。具体来说,它们对分散的API调用收费,而这些费用不一定与传输的数据量成正比[2,14,9]。如果没有认识到这一点可能会导政成本迅速增加。
本文来自知之小站
PDF完整报告已分享至知识星球,微信扫码加入立享4万+最新精选报告
(星球内含更多专属精选报告.其它事宜可联系zzxz_88@163.com)
