1 简单介绍

将内存作为首要存储介质不是什么新奇事儿,我们身边有非常多主存数据库(IMDB或MMDB)的样例。在对主存的使用上。内存数据网格(In Memory Data Grid,IMDG)与IMDB相似,但二者在架构上全然不同。

IMDG特性能够总结为下面几点:

Ø  数据是分布式存储在多台server上的。

Ø  每台server都是active模式。

Ø  数据模型一般是面向对象和非关系型的。

Ø  依据须要。常常会增减server。

此外,IMDG与普通缓存系统也是不同的。

相同地,在主存使用以及水平扩展上缓存系统与IMDG相似。可是,两者的用法和目的是全然不同的。缓存系统仅仅是缓冲读压力。像RDBMS这样的持久化存储是必备的。比例如以下图中的Arcus缓存系统。而IMDG的架构请參考第二部分。

换言之,IMDG将对象本身存储在内存中,并保证可扩展性。常见的商业以及开源产品例如以下:

Ø  Hazelcast

Ø  Terracotta Enterprise Suite

Ø  VMware Gemfire

Ø  Oracle Coherence

Ø  Gigaspaces XAP Elastic Caching Edition

Ø  IBM eXtreme Scale

Ø  JBoss Infinispan

2 架构

IMDG亟需克服的两个核心问题是:容量限制和可靠性。通常,IMDG通过水平扩展来克服内存容量上的限制,而通过复制系统来保证可靠性。典型的IMDG架构例如以下图所看到的。

因此。前面介绍过的缓存系统与IMDG的差别非常明显。

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvZGNfNzI2/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="" />

3 特性

除了提供各种数据结构的分布式实现外。IMDG通常会使用堆外内存(off-heap,或叫弹性内存)来减少垃圾回收的压力。

參考资料

Introduction to In-Memory Data Grid: Main Features

内存数据网格IMDG简单介绍的更多相关文章

  1. 内存数据网格IMDG简介

    1 简介 将内存作为首要存储介质不是什么新鲜事儿,我们身边有很多主存数据库(IMDB或MMDB)的例子.在对主存的使用上,内存数据网格(In Memory Data Grid,IMDG)与IMDB类似 ...

  2. 内存数据网格hazelcast的一些机制原理

    hazelcast作为一个内存数据网格工具,还算比较优秀,听说有Apache顶级项目使用它,值得研究下,使用文档可以直接看官方文档,但机制原理相关的资料基本没有,本人硬撸源码写的一些东西,跟大家分享一 ...

  3. Hazelcast 内存数据网格

    Hazelcast ( www.hazelcast.com)是一种内存数据网格 in-memory data grid,提供Java程序员关键任务交易和万亿级内存应用. Hazelcast的集群属于“ ...

  4. JVM内存各个区域分工简单介绍

    JVM内存各个区域简单介绍: 程序计数器:程序计数器是一块较小的内存空间,它可以看作是当前线程所执行的字节码的行号指示器. 在使用多线程时,为了线程切换后能恢复到正确的执行位置,每条线程都需要有个独立 ...

  5. ListView和Adapter数据适配器的简单介绍

    ListView 显示大量相同格式数据 常用属性: listSelector            listView每项在选中.按下等不同状态时的Drawable divider            ...

  6. VBox虚拟机与主机(宿主)通讯原理以及socat(套接字猫)简单介绍

    前言 尝试虚拟机使用socat建立服务器端接口转发时,发现对虚拟机接入网络原理不是非常了解,于是乎上网查找资料想搞明白是怎么回事,于是乎有了这篇总结博文.socat可以在服务器端口间建立全双工通信通道 ...

  7. 【C/C++学院】0724-堆栈简单介绍/静态区/内存完毕篇/多线程

    [送给在路上的程序猿] 对于一个开发人员而言,可以胜任系统中随意一个模块的开发是其核心价值的体现. 对于一个架构师而言,掌握各种语言的优势并能够运用到系统中.由此简化系统的开发.是其架构生涯的第一步. ...

  8. Java内存分析简单介绍

    原创:转载需注明原创地址 https://www.cnblogs.com/fanerwei222/p/11904422.html Java内存分析简单介绍: 1. # 设置内存溢出时自动生成堆内存快照 ...

  9. easyui数据网格视图(Datagrid View)的简单应用

    下面介绍datagrid的数据网格详细视图和数据网格的分组视图 1.先引用的js和css文件 1)包含eauyui必备的四个文件easyui.css,icon.css, jquery-min.js.j ...

随机推荐

  1. UML03-类图

    1.在类图中,聚合关系表达总体与局部的关系. 2.请根据下面的需求,画出用例图和类图. 系统允许管理员通过磁盘加载存货数据来运行存货清单报告: 管理员通过从磁盘加载存货数据.向磁盘保存存货数据来更新存 ...

  2. 手把手教你安装QT集成开发环境(操作系统为ubuntu10.04)

    在安装QT集成开发工具包之前需要先安装build-essential和libncurses5-dev这两个开发工具和库,libncurses5-dev库是一个在Linux/Unix下广泛应用的图形函数 ...

  3. No resource found that matches the given name 'android:WindowTitle'

    当你的androidAPI 由2.1版本更换成2.2版本时:  res/vavlues/styles.xml中使用的android:WindowTitle会报以下异常, error: Error re ...

  4. 查询mysql哪些表正在被锁状态

    1.查进程,主要是查找被锁表的那个进程的ID SHOW PROCESSLIST; 2.kill掉锁表的进程ID KILL   10866;//后面的数字即时进程的ID

  5. eclipse 默认jdk 的设置 eclipse.ini -vm 参数

    eclipse 的配置文件 eclipse.ini 不仅仅可以设置eclipse的堆栈内存大小,也可设置默认使用的jdk版本. 一.现有个eclipse 默认启动jdk版本是jdk1.5,需更改为1. ...

  6. javascript函数的声明,及返回值

    <1> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>< ...

  7. 基于visual Studio2013解决面试题之0801对称字符串

     题目

  8. 基于visual Studio2013解决C语言竞赛题之1062高与矮

       题目 解决代码及点评 /************************************************************************/ /* 62 ...

  9. MFC 关于对话框的注意点

    1.对于模态对话框而言,单击确定以后对话框窗口对象即被销毁了,而对于非模态对话框来说,对话框的对象并未销毁而是隐藏起来(EndDialog函数),因此对于非模态对话框,必须重写OnOK这个虚函数,并在 ...

  10. javascript 中对this关键字的一些理解

    var self = this 可能会觉得奇怪为什么我会定义一个_self的变量, 因为在js里,this不用对于其他的对象语言,他的解析过程与运行过程中this会改变的.这里简单说说js里this的 ...