Slide 1

Slide 1 text

hibernate-ogm overview [email protected] @debop68 1 13֙ 6ਘ 9ੌ ੌਃੌ

Slide 2

Slide 2 text

Hibernate-OGM Object / Grid Mapping Hibernate for NoSQL Current support Datastore - EhCache, Infinispan, MongoDB 앞으로 제공할 Datastore - Redis, Couchbase, Neo4j 2 13֙ 6ਘ 9ੌ ੌਃੌ

Slide 3

Slide 3 text

Relational Databases Data structure abstraction Transactions Referential integrity Simple types Common query language Scale up (not Scale out) 3 13֙ 6ਘ 9ੌ ੌਃੌ

Slide 4

Slide 4 text

Why NoSQL 대량의 데이터 저장 저장할 데이터 량이 기하급수적으로 증대 RDB의 scale-up 만으로는 한계 웹 서비스의 구조 변화 데이터의 구조 변화가 큼 비정형 데이터의 관리 필요 Cloud 환경에 맞는 자료저장소 필요 scale-out 기능 강조 Operation 비용 절감 4 13֙ 6ਘ 9ੌ ੌਃੌ

Slide 5

Slide 5 text

NoSQL Features 대량의 데이터 다양한 구조 다양한 목표 data size / availability low latency / higher throughput 특정 사용 패턴에 최적화 다양한 자료 구조 5 13֙ 6ਘ 9ੌ ੌਃੌ

Slide 6

Slide 6 text

NoSQL Types Graph oriented databases key-value stores Document based stores Big Table style 6 13֙ 6ਘ 9ੌ ੌਃੌ

Slide 7

Slide 7 text

NoSQL 약점 Programming Model no common API query (Map Reduce, specific DSL, ...) no schema => app driven schema Physical data structure transpires Transaction/durability/consistency 7 13֙ 6ਘ 9ੌ ੌਃੌ

Slide 8

Slide 8 text

JPA for NoSQL 8 13֙ 6ਘ 9ੌ ੌਃੌ

Slide 9

Slide 9 text

Goals 새로운 데이터 사용 패턴을 쉽게 사용하도록한다. 데이터 크기, 종류, 형태에 상관없이... Full JPA support 익숙한 환경, 빠른 적용 9 13֙ 6ਘ 9ੌ ੌਃੌ

Slide 10

Slide 10 text

Hibernate-OGM Hibernate-ogm 4.0 CRUD support for @Entity EhCache, Infinispan, MongoDB Full-text queries (hibernate-search) Future JP-QL query Neo4j, Cassandra, Couchbase, HBase, Redis https://community.jboss.org/wiki/HibernateOGMRoadmap 10 13֙ 6ਘ 9ੌ ੌਃੌ

Slide 11

Slide 11 text

Domain Model POJO Hibernate Core JPA: programmatic API Hibernate Search persists indexes/searches Infinispan Lucene Search engine store index indexing store object RDBMS 11 13֙ 6ਘ 9ੌ ੌਃੌ

Slide 12

Slide 12 text

Domain Model POJO Hibernate Core JPA: programmatic API Hibernate Search persists indexes/searches Infinispan Lucene Search engine store index indexing store object 12 13֙ 6ਘ 9ੌ ੌਃੌ

Slide 13

Slide 13 text

Domain Model POJO Hibernate Core JPA: programmatic API Hibernate Search persists indexes/searches Infinispan EhCache MongoDB Lucene Search engine NoSQL store index indexing store object 13 13֙ 6ਘ 9ੌ ੌਃੌ

Slide 14

Slide 14 text

Domain Model POJO Hibernate Core JPA: programmatic API Hibernate Search Hibernate OGM Core JP-QL converter persists indexes/searches Infinispan EhCache MongoDB Lucene Search engine NoSQL store object store index delegates object logic to indexing 14 13֙ 6ਘ 9ੌ ੌਃੌ

Slide 15

Slide 15 text

Domain Model POJO Hibernate Core JPA: programmatic API Hibernate Search Hibernate OGM Core JP-QL converter persists indexes/searches Infinispan EhCache MongoDB Lucene Search engine NoSQL store object store index delegates object logic to Object/Grid Mapper indexing 15 13֙ 6ਘ 9ੌ ੌਃੌ

Slide 16

Slide 16 text

Domain Model POJO Hibernate Core JPA: programmatic API Hibernate Search Hibernate OGM Core JP-QL converter persists indexes/searches Infinispan EhCache MongoDB Lucene Search engine NoSQL DataStore store object store index delegates object logic to Object/Grid Mapper indexing 16 13֙ 6ਘ 9ੌ ੌਃੌ

Slide 17

Slide 17 text

Hibernate-OGM Concept 17 13֙ 6ਘ 9ੌ ੌਃੌ

Slide 18

Slide 18 text

Schema or no schema? Schema-less developer friendly data structure migration? need strict development guidelines Schema strong documentation share with other apps / tooling 18 13֙ 6ਘ 9ੌ ੌਃੌ

Slide 19

Slide 19 text

Entities as serializable blobs? Store the whole graph? Consistency with duplicated objects Concurrency / Latency Structure change and (de)serialization 19 13֙ 6ਘ 9ੌ ੌਃੌ

Slide 20

Slide 20 text

OGM’s approach 관계형 모델의 장점은 최대한 수용 객체와 데이터 구조의 관계를 끊음 데이터는 tuple 형태로 저장 기본 수형으로 제한 CRUD 작업은 key lookup 으로 작업 20 13֙ 6ਘ 9ੌ ੌਃੌ

Slide 21

Slide 21 text

Infinispan In-memory key/value store + cache store Data grid memory >>>> network >> local disk access Transaction JTA / XAResource Distributed virtual memory = (servers) / redundancy 21 13֙ 6ਘ 9ੌ ੌਃੌ