Hibernate Object/Grid Mapper (OGM)这个项目能够为NoSQL数据库提供Java Persistence(JPA)支持。它复用了Hibernate Core引擎将实体持久化至NoSQL数据存储中,而不是关系型数据库中。它还复用了Java Persistence Query Language(JP-QL)来搜索数据。这个项目现在还处于初期阶段,但随着时间的推移它的功能将逐渐增强。
短期目标是:
1、支持Infinispan (已实现)
2、支持Hibernate Search全文搜索(已实现)
3、支持简单JP-QL查询
中期目标是:
1、支持其它key/value存储
2、支持其它NoSQL数据库
3、支持复杂的关联和聚合 <

Infinispan 是个开源的数据网格平台。它公开了一个简单的数据结构(一个Cache)来存储对象。虽然可以在本地模式下运行Infinspan,但其真正的价值在于分布 式,在这种模式下,Infinispan可以将集群缓存起来并公开大容量的堆内存。这可比简单的复制强大的多,因为它会为每个结点分配固定数量的副本——服 务器故障的一种恢复手段——同时还提升了可伸缩性,这是由于存储每个结点所需的工作量是与集群大小息息相关的。

Infinispan提供了一种简单的机制来利用大容量的堆内存。如果对每个结点维护一个拷贝,假如集群当中有100个结点,每个结点分配2GB的堆内存, 那么网格中的任何实例都能使用多达100GB的空间,这可都是内存,显然速度会非常快。同时Infinispan还兼容于JTA,这样它就能很好地处理事务 了。我们还有一个超级强大的异步API,它可以保证同步的网络调用以及异步调用的并行性及可伸缩性。比方说:Future f = cache.putAsync(k, v) 可以阻塞线程,再调用f.get()可以让网络调用继续进行或是忽略掉f。更为重要的是,线程还可以做别的事情,这一点非常有用。然后再回来通过调用 f.get()来检查该网络调用是否能继续进行。可以将其看作是NIO与传统的阻塞性IO之间的关系。

Infinispan公开了一个CacheStore接口和几个高性能的实现,包括JDBC CacheStores、基于文件系统的CacheStores以及Amazon S3 CacheStores等等。CacheStores可用作“温启动(warm starts)”或是确保网格中的数据在重启后依然可用,同时在内存耗尽时还能将数据写到磁盘上。

主要特点:

  • 大量的堆体
  • 极高的可扩展性
  • 快速轻量级核心
  • 不仅仅支持Java(PHP,Python,Ruby,C…)
  • 支持Compute Grids
  • 管理是关键:当你在grid上运行几百个服务时,实现管理是必须的

[JavaEE] Hibernate OGM的更多相关文章

  1. JavaEE Hibernate初级概念

    1.  Hibernate 是连接Java应用程序和关系数据库的中间件: 对JDBC API进行了封装.负责Java对象的持久化: 在三层软件架构中它位于持久层(数据访问层),封装了所有数据访问细节, ...

  2. [JavaEE] Hibernate ORM

    一. Hibernate的简要介绍 Hibernate是轻量级Java EE应用的持久层解决方案,Hibernate不仅管理者Java类到数据库表的映射(包括Java 数据类型到SQL数据类型的映射) ...

  3. [JavaEE] Hibernate连接池配置测试

    转载自51CTO http://developer.51cto.com/art/200906/129914.htm Hibernate支持第三方的连接池,官方推荐的连接池是C3P0,Proxool,以 ...

  4. [JavaEE]Hibernate 所有缓存机制详解

    Hibernate提供的一级缓存 hibernate是一个线程对应一个session,一个线程可以看成一个用户.也就是说session级缓存(一级缓存)只能给一个线程用,别的线程用不了,一级缓存就是和 ...

  5. wildfly 10上使用最新的 Hibernate ORM OGM

    ORM是关系型数据库连接:ogm是No sql数据库连接,Mongo, redis等. 1,下载ogm zip包,解压到wildfly_home\modules\system\layers\base, ...

  6. 玩耍Hibernate系列(一)--基础知识

    Hibernate框架介绍: Hibernate  ORM  主要用于持久化对象(最常用的框架) Hibernate  Search 用于对对象进行搜索,底层基于Apache Lucene做的 Hib ...

  7. 【Hibernate那点事儿】—— Hibernate应该了解的知识

    前言: 最近由于有点时间,就像深入的学习一下Hibernate.之前只是简单的使用,并没领会它的妙处.这里就趁着分享的机会,好好整理一下. 这篇主要讲到了下面几个部分: Hibernate框架 Hib ...

  8. Hibernate-ORM:01.Hibernate恍如隔世般初见

    ------------吾亦无他,唯手熟尔,谦卑若愚,好学若饥------------- 对于学过ORM框架的朋友来说,上手HibernateORM来说,既熟悉有有一点陌生,熟悉无非是灵魂相通,陌生的 ...

  9. java新手笔记4 数组

    1.数组 import java.util.Random; public class ArrayDemo1 { public static void main(String[] args) { int ...

随机推荐

  1. POJ3280(DP)

    题目大意是说一个字符串,每插入或者删除一个字符都需要一定的代价,问怎样可以使这个字符串变成一个回文串,且花费最小. 首先明确的就是如果已经将区间[i,j]整理成为一个回文串(不管中间有多少个字符或者是 ...

  2. conn,stmt,rset 的关闭(规范)

    Connection conn = null; Statement stmt = null; ResultSet rset = null; try { conn = dataSource.getCon ...

  3. BeanFactory和ApplicationContext的作用和区别

    BeanFactory和ApplicationContext的作用和区别 作用: 1. BeanFactory负责读取bean配置文档,管理bean的加载,实例化,维护bean之间的依赖关系,负责be ...

  4. PostgreSQL的AnynonArray的例子

    程序: CREATE OR REPLACE FUNCTION kappend(anynonarray, anyelement) RETURNS text AS $$ ; $$ LANGUAGE SQL ...

  5. Java常见排序算法之堆排序

    在学习算法的过程中,我们难免会接触很多和排序相关的算法.总而言之,对于任何编程人员来说,基本的排序算法是必须要掌握的. 从今天开始,我们将要进行基本的排序算法的讲解.Are you ready?Let ...

  6. JavaScript的角色巨变和Web技术的发展

    曾经JavaScript是职业程序员看不上眼的脚本语言,如今只有高级程序员才能驾驭它. JavaScript性质和地位的天翻地覆,正是Web技术飞速变化的印证. 最初职业程序员轻视JavaScript ...

  7. Swift学习笔记十一

    类与结构体 Swift中,并不要求把自定义类或结构的接口和实现写在不同的文件中.你在一个文件中定义类或结构体,那么这个类或结构体的外部接口就自动可以在其他代码中使用了. 类和结构有很多相似和区别,相同 ...

  8. Ajax获得站点文件内容实例

    一个简单的Ajax实例:选择一部著作,会通过 Ajax 实时获得相关的名字. 把4个html文件放到 web站点 的同一个文件下. index.html <html> <head&g ...

  9. SMARTFORM报表程序设计(2)

    在创建并设置好STYLE程序之后,在SMARTFORM页面选择单选框FORM输入报表程序名称(ZS_SFLIGHT),点击CREATE按钮即可进入SMARTFORM BUILDER图形设置界面,SMA ...

  10. C# 6与VB 12即将加入模式匹配

    又有一种源自于函数式编程语言中的概念加入了C#和VB的阵营,这就是被称为模式匹配(Pattern Matching)的特性.初看上去,模式匹配的作用类似于一段switch/select语句块,但它的功 ...