GemFire

一、GemFire是什么?

如果你了解Redis或memCached,那么恭喜,你很快就能理解GemFire是什么,没错,你可以把它理解为一个增强版的Redis,具体在哪些方面增强,我们日后慢慢聊。如果你不了解Redis,也没有关系,先看官方网站上的说法:Pivotal GemFire is the distributed, in-memory database for developers who are building the highest scaling and performing data-centric apps in the world. 但是,按照我对它的理解,我更愿意用下面的语言来描述它,GemFire是一个高性能的分布式内存对象缓存系统,如果非要说它是数据库,那也只能算是一个Key/Value数据库(我更愿意称之为Key/Value存储系统)

我们通过把对象或数据缓存在内存中,减少对传统关系型数据库的读写次数(减少IO瓶颈),从而使我们的应用支持更多的TPS,更多的并发用户数。GemFire能够在部分场景下对关系型数据库起到很好的补充(甚至替代)作用,它可以作为应用层与传统数据层的“润滑剂”。

二、关于GemFire的前世今生?

GemFire的第一个版本发布于2002年3月份,当时它还属于一家独立的公司GemStone Systems.后来GemStone System这家公司被VMware给收购了,GemFire也被整合到了VMware Vfabric产品线。请注意,VMWare当时也收购了Redis项目。在2013年4月EMC与VMware/GE合资成立一家新公司Pivotal,VMware慷慨的贡献出了它的vfabric产品线,以及它收购的一些开源项目。

目前,GemFire的商业版权已经属于Pivotal了。顺便说一句,Redis的创始人Salvatore Sanfilippo 现在也供职于Pivotal.

三、GemFire有什么特点?

1.分布式数据存储
•     稳定而高性能的的基于内存的数据数据存储
•     灵活的Cache部署策略:点对点(peer to peer);客户端/服务端(client server);多集群(multiple clusters)的本地或远程数据同步,支持数据高性能灾备和双活
•     灵活的Region(数据对象集或者可理解为表)分布式处理:同一集合数据(可理解为一个表的数据)可以整集多点同步或切割后不同点保存,并支持数据实时再平衡(rebalance)既数据分隔保存后若加入新的空闲服务器,数据可以在不重启服务的情况下重新切割和平衡数据,从而达到真正的数据在线动态延展
•     具有持续性的数据高可用性和容错性:各个分散的数据点可以配置一个或多个基于内存的热备数据点,当主数据点宕机的情况下,其中一个热备点就会提升称为主数据点,同时可以继续在空闲机器上创建备份点,从而达到数据的持续的可用性。同时数据可以通过配置同步或异步地持续化到本地硬盘,或者到指定的数据库或文件中。
•     数据地客户端缓存:客户端可以将最常用数据缓存一个备份与本地,进一步加快效能
•     在线数据备份
•     数据全内存和部分内存策略:通过配置可以将数据全部存入内存,或者通过将非频繁使用数据挤出策略(LRU)来将部分频繁适用数据保存于内存中达到成本效益最大化
•     内置资源优化器用以降低JAVA GC所带来的延迟,支持单个大容量Cache点(一般服务器可配置超过40GB内存的Java heap size)
•     安全支持:基于用户和角色的数据访问,数据传输渠道加密(SSL)
•     数据存取
•     除key-value简单cache支持外,支持复杂数据对象和关系存储
•     丰富的OQL(类SQL)的查询语言支持
•     支持数据单记录或批处理
•     本地或分布式事务处理
•     Map-Reduce并行查询:同一查询命令可并行发送到各Cache点(Map),结果集自动在客户端汇合(Reduce)
•     智能定点查询:查询命令在包含数据特征如主键值时,查询命令会自动命中数据点
2.服务和事件
•     Function支持: Function相当于一个数据库存储过程,区别在于其可动态植入Cache点。
•     亲密关系数据同业务逻辑聚合:亲密关系数据指需要相互直接依赖完成一个交易的多个数据,例如客户A和属于客户A的产品数据。GemFire可以将业务逻辑涉及到亲密关系数据放到同一个计算机进程来处理,避免数据网络传输和数据序列化等带来的延迟,并极大体现Share Nothing的涉及理念,因为互相不依赖从而加大服务的涉及延展性
•     最大化的并行处理:数据各子集合和业务逻辑可分散在各点并行处理,而不需要想数据库等产皮按顺序处理
•     事件监听处理:Cache点可以根据数据的增、删、改和过期等事件来触发另外的业务逻辑处理。
•     类消息队列处理:客户端可以注册其感兴趣数据在Cache点,当满足条件数据出现时,自动向客户端发布。可实现类似于消息队列的Queue 或 Topic机制。
•     持续查询功能:客户端可以定制复杂查询条件在Cache点,同样在满足条件的数据出现时向客户端发送。
•     Delta数据传输:所有数据的网络同步可以选择只将变化碎片传输同步,例如当一个客户只有地址数据发生改变时,就只需要将地址同步而非整个客户数据对象。

3.整合与管理:
•     Cache的监控和数据分析工具,便于管理
•     Springdata-GemFire项目,使得GemFire和Spring的集成浑然一体

最后,想问一句,今年你买到回家的火车票了吗?如果你用过12306的网站,那么GemFire已经为你服务过了,虽然只是余票查询。

时间: 2024-08-29 01:11:42

GemFire的相关文章

GemFire 是什么?

一.GemFire是什么? 如果你了解Redis或memCached,那么恭喜,你很快就能理解GemFire是什么,没错,你可以把它理解为一个增强版的Redis,具体在哪些方面增强,我们日后慢慢聊.如果你不了解Redis,也没有关系,先看官方网站上的说法:Pivotal GemFire is the distributed, in-memory database for developers who are building the highest scaling and performing

Spring Data GemFire学习

英文手册:http://docs.spring.io/spring-data/gemfire/docs/1.5.2.RELEASE/reference/html/(Spring Data GemFire Reference Guide) 新版本不用配置Gemfire自带的cache.xml直接用引用名空间的方式,配置Spring配置文件. <?xml version="1.0" encoding="UTF-8"?> <beans xmlns=&qu

GemFire架构介绍

1什么是GemFire GemFire是一个位于应用集群和后端数据源之间的高性能.分布式的操作数据(operational data)管理基础架构.它提供了低延迟.高吞吐量的数据共享和事件分发.GemFire充分利用网络中的内存和磁盘资源,形成一个实时的数据网格(data fabric or grid). GemFire的主要特性有: ?  多种网络拓扑 ?  高并发的内存数据结构,避免锁争夺 ?  可选的ACID ?  序列化(native serialization)和智能缓冲(smart

gemfire基本使用以及spring-data-gemfire的使用

1.安装程序的使用 locator 启动locator gfsh>start locator --name=locator1 指定端口启动 gfsh>start locator --name=locator1 --port=12105 指定端口和绑定ip启动 gfsh>start locator --name=locator1 --port=12105 --bind-address=10.10.10.110 查看locator状态 gfsh>status locator --nam

Spark转GemFire任务(二)

ADMG-2.2.1.3 - BRAVO CoA Mapping - TB Revision 7/11: If Bravo code is not numeric, need to find one level up in FAGL_011PC to find the 6 digits for bravo, look at blue colored text Create GFS account mapped to Bravo using FAGL_011ZC, write to /tax/gf

Spark转GemFire任务(一)

ADMG-40 2.2.2.4 - Global Tax Warehouse (GTW) CoA mapping -- Both BtB and Project 1 Revision 7/15, change all latam to mdg Create GFS account mapped to GTW using FAGL_011ZC, write to /tax/gfs_gtw_mapping and go through /btb_mdg/ska1 to check all 10 di

十年一场云之战,重建这些科技公司与人的技术信仰

2006年是一个开始,当时一个叫做Amazon Web Service的小业务,掀起了一场十年之久.席卷全球的云计算狂潮. 从2000左右年开始的互联网大潮已经让很多科技企业对互联网盲目崇拜,然而自2006年由亚马逊开始的一场云之战,才让更多的传统科技企业彻底失去了方向.因为源自亚马逊的AWS云计算模式,彻底颠覆了微软.IBM.VMware.Oracle.Cisco.HP等一系列曾经的科技巨头,这些曾经被全球其它所有科技公司视为风向标的公司终于风光不在,转而各自寻找新生存与发展方向. 2017年

转:通过Spring Session实现新一代的Session管理

长期以来,session管理就是企业级Java中的一部分,以致于我们潜意识就认为它是已经解决的问题,在最近的记忆中,我们没有看到这个领域有很大的革新. 但是,现代的趋势是微服务以及可水平扩展的原生云应用(cloud native application),它们会挑战过去20多年来我们设计和构建session管理器时的前提假设,并且暴露了现代化session管理器的不足. 本文将会阐述最近发布的Spring Session API如何帮助我们克服眼下session管理方式中的一些不足,在企业级Ja

内存计算

如果说云计算这个新瓶装的是虚拟化+ SOA/网格计算+SaaS(软件即服务)的老酒,那么内存计算则重点是释放了计算这一部分的能量. 但是对内存计算经常有一些误解: 1.大容量内存很贵 2. 内存计算不会持久化:实际上几乎所有的内存计算中间件都提供多种内存备份.持久存储备份以及基于磁盘的swap空间溢出的策略. 3.内存计算要取代数据仓库:内存计算的目的是要改善那些需要OLTP和OLAP混合处理的可操作数据集(Operational Dataset)的计算,而非历史数据集(Historical d