内存计算技术资料整理
1 内存计算与云计算
如果说云计算这个新瓶装的是虚拟化+ SOA/网格计算+SaaS(软件即服务)的老酒,那么内存计算则重点是释放了计算这一部分的能量。
但是对内存计算经常有一些误解:
Ø 大容量内存很贵
Ø 内存计算不会持久化:实际上几乎所有的内存计算中间件都提供多种内存备份、持久存储备份以及基于磁盘的swap空间溢出的策略。
Ø 内存计算要取代数据仓库:内存计算的目的是要改善那些需要OLTP和OLAP混合处理的可操作数据集(Operational Dataset)的计算,而非历史数据集(Historical dataset)。简言之,内存计算不是要把企业的所有数据都放进内存。
Ø 闪存已经足够快了:内存计算不是要达到2-3倍的边际效应提升(Marginal Effect),而是10-100倍的提升,使之前那些不可行的业务和服务成为可能。
Ø 内存计算等于内存数据库:首先,内存计算是一种技术而不是某种产品。其次,内存数据库只是目前内存计算触手可及的成果,内存计算长期的发展还是在流式处理(Stream Processing)上。此外,内存计算与传统内存数据库的区别是:内存计算是为分布式、弹性环境以及内存数据处理而设计的。
2 内存计算产品分类
根据内存计算技术的发展顺序,内存计算大致可以分为三类产品:
Ø 分布式缓存(Memcached/Redis):主要使用场景就是将频繁访问的数据保存在内存中避免磁盘加载。多数产品都是分布式内存key/value存储,并提供简单的put和get方法。随着不断成熟,与后端的read/write-through,ACID事务,复制和分区,eviction策略等也逐渐加入到产品中,这些特性也成为了后来出现的IMDG/IMCG产品的基础。
Ø 内存数据/计算网格(IMDG/IMCG, GemFire/Hazelcast/GridGain):数据网格的显著特性是co-location计算,将计算过程发送到数据本地执行。这是数据/计算网格的关键创新点,在数据量不断增长的情况下再加数据抓取过来执行计算已经变得不现实了。这种创新也不仅使内存计算从简单的缓存产品进化,也激发了后来IMDB的诞生。
Ø 分布式内存数据库(IMDB, VoltDB/Impala):分布式内存数据库的显著特性是增加了基于标准SQL或MapReduce的MPP(大规模并行处理)能力。如果说数据网格的核心是解决数据量不断增长下计算的困境,那么分布式内存数据库就是解决计算复杂度不断增长的困境。它提供了分布式SQL、复杂(分布式共享)索引、MapReduce处理等工具。
值得注意的是,随着技术的发展,有些界限不再那样清晰。像现在很多IMDG产品已经具有IMDB的特性,能够提供复杂的分布式SQL和MapReduce计算能力。不管怎样,这些产品中的核心技术和算法都是不变的,所以学习时不必过分纠结某个产品到底属于那一类。
3 应用场景
以上提到的各种内存计算产品可以应用到大数据处理的各个环节上,如下图所示,其中涉及内存计算的技术标成红色。
1)事务处理:主要分为Cache(Memcached, Redis, GemFire)、RDBMS、NewSQL(以VoltDB为首的)三部分,缓存和NewSQL数据库是关注的重点。
2)流式处理:Storm本身只是计算的框架,而Spark-Streaming才实现了内存计算式的流处理。
3)分析阶段的对比:
Ø 通用处理:MapReduce,Spark
Ø 查询:Hive,Pig,Spark-Shark
Ø 数据挖掘:Mahout,Spark-MLLib,Spark-GraphX
从上可以看出,Spark生态圈的子项目以及Impala都是值得关注的重点。
4 核心技术
因为内存计算主要释放了云计算中的计算部分的能量,所以它主要涉及并行/分布式计算和内存数据管理这两大方面的技术体系:
Ø 并行/分布式计算:网络拓扑、RPC通信、系统同步、持久化、日志。
Ø 内存数据管理:字典编码、数据压缩、内存中数据格式、数据操作、内存索引、内存中并发控制和事务。
以下简单列举了内存计算主流产品中涉及到的技术点:
Ø Memcached/Redis:一致性哈希。
Ø GridGain:DHT、refresh-ahead、off-heap、continuous query。
Ø Infinispan:LIRS eviction。
Ø Spark(LMAX):immutable model(RDD)。
Ø VoltDB:single-threaded。
Ø Impala(Dremel):LLVM optimizing、nested record、MPP。
理论
直接在Google或Bing.com搜索"论文名 pdf"
《Implementation Techniques for Main Memory Database Systems》
《Main Memory Database Systems: An Overview》
《The Revolution in Database Architecture》 – Jim Gary
《A Study of Index Structures for Main Memory Database Management Systems》
《High-Performance Concurrency Control Mechanisms for Main-Memory Databases》
《A bridging model for parallel computation》 (BSP model)
《SEDA: An Architecture for Scalable, Well-Conditioned Internet Services》
实时处理与流处理
关系代数的并行计算
并发计算模型BSP与SEDA
从NSM到Parquet:存储结构的衍化
产品
GemFire,VoltDB:
分布式缓存GemFire架构介绍
NewSQL数据库VoltDB特性简介
Spark:
Spark分布式计算和RDD模型研究
Spark发展现状与战线
分布式内存文件系统Tachyon
Impala(Dremel):
Google Dremel数据模型详解(上)
Google Dremel数据模型详解(下)
Impala中的代码生成技术
内存计算技术资料整理相关推荐
- 软件设计师提纲+复习资料整理(上午题)
文章目录 软件设计师考试大纲 上午题(选择题) 一.计算机组成原理 考点:CPU结构组成 考点:原码.反码.补码定点整数范围 考点:浮点数表示 考点:RISC和CISC计算机的区别 考点:奇校验与偶校 ...
- orcale 期末复习资料整理
orcale 期末复习资料整理 我们的征程是星辰大海,而非人间烟尘 文章目录 orcale 期末复习资料整理 实验整理 数据库打开过程 数据库启动模式 数据库关闭模式 数据字典 SQL\*PLUS命令 ...
- 爆肝!!! orcale 期末复习资料整理
orcale 期末复习资料整理 文章目录 orcale 期末复习资料整理 实验整理 数据库打开过程 数据库启动模式 数据库关闭模式 数据字典 SQL\*PLUS命令的使用 系统函数的使用 PL/SQL ...
- 程序员优秀学习资料整理(不断更新中)
如果你发现自己陷入各种新技术.工具包围中,而纠结于该选择哪些学习,读读这篇文章,技术的执念. 综合资源 资源链接汇集 awesome - 各种主流语言的优秀项目汇集 :+1: lists - 资源集合 ...
- 一图看懂 aiohttp 模块:基于 asyncio 的异步HTTP网络库, 资料整理+笔记(大全)
本文由 大侠(AhcaoZhu)原创,转载请声明. 链接: https://blog.csdn.net/Ahcao2008 一图看懂 aiohttp 模块:基于 asyncio 的异步HTTP网络库, ...
- HTTP/2和WebSocket及HTML5资料整理--HTTP2篇
发现HTTP/2.WebSocket.HTML5这些东西很多人都听过,但具体到各有哪些特点?有什么区别? 各自要解决什么问题? 其实很多人并不是那么清楚的.所以我之前在公司内部做了个这方面的分享. 当 ...
- 一图看懂 docx 读取、查询、修改 Ms Word docx 文件, 资料整理+笔记(大全)
本文由 大侠(AhcaoZhu)原创,转载请声明. 链接: https://blog.csdn.net/Ahcao2008 一图看懂 docx 读取.查询.修改 Ms Word docx 文件, 资料 ...
- ROS及机器人课程资料整理(苏黎世联邦理工学院, ETH Zürich)
ROS及机器人课程资料整理(苏黎世联邦理工学院, ETH Zürich) 详细版ROS编程课程习题解答和说明: http://blog.csdn.net/zhangrelay/article/deta ...
- epoll相关资料整理
http://www.cppblog.com/converse/archive/2008/10/13/63928.html epoll相关资料整理 学习epoll有一段时间了,最近终于有一个服务器采用 ...
最新文章
- require demo 记录备份
- php字符串处理函数大全
- 中国六个漂亮的古镇风景名胜区网站欣赏
- 批量下载,多文件压缩打包zip下载
- 让老照片重现光彩(一):Bringing Old Photos Back to Life
- SpringBoot FK-关联表查询(三)
- Android趣味课程:超简单猜数游戏
- 矩阵操作(转置、相加、相乘)
- IOS开发之——音乐播放器-资源和Model(02)
- Matlab学习笔记(8)——hist函数
- windowsServer安装sqlServer2008
- 音频(二) 基音周期与共振峰
- 第2章	无人艇局部危险避障算法研究
- potato社交苹果版下载-potato土豆社交ios下载
- 微服务拆分时机与原则
- vscode终端无输出
- 浏览器无法连接网络,学校校园网无法跳转到登录页面
- java:对字母进行大写(小写)的转化
- Session | 基于Session改造oa项目的登录功能
- 浙江大学计算机学院 潘刚,潘刚 - 江苏科技大学 - 生物技术学院
热门文章
- 风机变桨控制基于FAST与MATLAB SIMULINK联合仿真模型非线性风力发电机的
- 解决eclipse中热键冲突问题,ctrl+alt+up,向上复制与桌面旋转热键冲突。
- linux命令rm rf什么意思,关于对linux命令rm -rf 的理解
- 通达信l2接口如何获取自选股数据?
- 牛新庄:IT独行侠 (ZT)
- 创意黑板学术汇报毕业答辩PPT模板分享
- 学3D人物建模以后能干什么呢,吃香吗?
- [渝粤教育] 中国地质大学 概率论与数理统计 复习题
- 外星人 17R4笔记本 win10 UEFL 安装Ubuntu16.04 LTS并更换Nvidia显卡驱动 教程+个人心得
- 一个请求到响应的详细过程