4.4.1 内存计算概述

更新于 2026年10月10日 版权声明
4.4.1 内存计算概述

传统的数据处理方式通常会将数据存储在磁盘上,然后从磁盘读取数据进行处理。这种方式存在磁盘访问时间长的问题,限制了数据处理速度和实时性。而内存计算则将数据存储在内存中,通过直接访问内存来进行计算和分析,大幅度减少了数据访问和处理的时间。

内存计算是一种数据处理和分析的技术,具有快速响应和实时处理、高性能和可伸缩性、简化数据处理流程、支持复杂分析和即席查询等优势。

内存计算的应用场景包括实时数据分析、流式数据处理、大规模机器学习、交互式查询和搜索等领域。通过利用内存计算技术,组织和企业可以更高效地处理大数据,并实现快速、准确的决策和洞察力。

1)内存计算产品演进及分类

根据内存计算技术的发展顺序,如图4⁃22所示,内存计算大致可以分为四类产品。

图示

图4⁃22 内存计算产品

(1)分布式缓存

分布式缓存的主要使用场景就是将频繁访问的数据保存在内存中避免磁盘加载。多数产品都是分布式内存key/value存储,并提供简单的put和get方法。随着产品的不断成熟,与后端的Read/Write⁃through、ACID事务、复制和分区、Eviction策略等也逐渐加入到产品中,这些特性也成为了后来出现的IMDG/IMCG产品的基础。

(2)内存数据/计算网格

内存数据/计算网格的显著特性是Co⁃location计算,将计算过程发送到数据所在的本地执行(移动计算而非移动数据),这是内存数据/计算网格的关键创新点,在数据量不断增长的情况下通过大量移植数据而进行的计算已经变得不现实了。这种创新促进了内存计算从简单的缓存产品进化的同时,也激发了后来分布式内存数据库的诞生。

(3)分布式内存数据库

分布式内存数据库的显著特性是增加了基于标准SQL或MapReduce的MPP(大规模并行处理)能力。如果说数据网格的核心是解决数据量不断增长下计算的困境,那么分布式内存数据库就是解决计算复杂度不断增长的困境。它提供了分布式SQL、复杂(分布式共享)索引、MapReduce处理等工具。

(4)分布式内存计算框架(https://www.daowen.com)

Spark是典型的分布式内存计算系统,是一种基于内存的迭代计算框架,适用于需要多次操作特定数据集的应用场合。分布式内存计算框架对于需要反复操作的次数越多、所需读取的数据量越大的应用,其受益越大;对于数据量小但是计算密集度较大的应用,其受益就相对较小。分布式内存计算不仅支持“map”和“reduce”,它还支持SQL查询、流数据、机器学习(ML)和图算法。

2)核心技术

因为内存计算主要释放了云计算中的计算部分的能量,所以它主要涉及并行/分布式计算和内存数据管理这两大方面的技术体系。

①并行/分布式计算技术体系主要包括:网络拓扑、RPC通信、系统同步、持久化、日志。

②内存数据管理技术体系主要包括:字典编码、数据压缩、内存中数据格式、数据操作、内存索引、内存中并发控制和事务。

3)应用场景

内存计算产品可以应用到大数据处理的各个环节上。

①事务处理:主要分为Cache(Memcached, Redis, GemFire)、RDBMS、NewSQL(以VoltDB为首的)三部分,缓存和NewSQL数据库是关注的重点。

②流式处理:Storm本身只是计算的框架,而Spark⁃Streaming才实现了内存计算式的流处理。

③通用处理:MapReduce、Spark。

④查询:Hive、Pig、Spark⁃Shark。

⑤数据挖掘:Mahout、Spark⁃MLlib和Spark⁃GraphX。

↑上一章 ↓下一章
关注公众号获取验证码
复制内容需要验证码(7.99元/天)