Download - In-memory No SQL- GIDS2014
![Page 1: In-memory No SQL- GIDS2014](https://reader033.vdocuments.mx/reader033/viewer/2022052823/554f76bdb4c905bb178b5522/html5/thumbnails/1.jpg)
In-‐Memory NoSQL
Miko Matsumura, VP of Marke9ng and Developer Rela9ons, Hazelcast
![Page 2: In-memory No SQL- GIDS2014](https://reader033.vdocuments.mx/reader033/viewer/2022052823/554f76bdb4c905bb178b5522/html5/thumbnails/2.jpg)
![Page 3: In-memory No SQL- GIDS2014](https://reader033.vdocuments.mx/reader033/viewer/2022052823/554f76bdb4c905bb178b5522/html5/thumbnails/3.jpg)
Why NoSQL-‐Venkat Said It Best!
• Impedance Mismatch or “impotence” mismatch?
• Using OODB
• CAP Theorem and eventual consistency
![Page 4: In-memory No SQL- GIDS2014](https://reader033.vdocuments.mx/reader033/viewer/2022052823/554f76bdb4c905bb178b5522/html5/thumbnails/4.jpg)
Company Snapshot
• Founded in 2008 • Open source business model • Headquarters in Palo Alto, CA • R&D in Istanbul, Turkey • $2.5M Series A funding led by Bain Capital (June 2013)
• Key investors/advisors include Rod Johnson, founder of Spring Source, and Ali Kutay, CEO of WebLogic and Golden Gate So\ware
![Page 5: In-memory No SQL- GIDS2014](https://reader033.vdocuments.mx/reader033/viewer/2022052823/554f76bdb4c905bb178b5522/html5/thumbnails/5.jpg)
Open source, Apache v2 License
2MB Jar with no Dependency
In-Memory
Embeddable
Dynamic Clustering, Backup and Failover
Partitioned
Highly Available
Scalable
Hazelcast is
![Page 6: In-memory No SQL- GIDS2014](https://reader033.vdocuments.mx/reader033/viewer/2022052823/554f76bdb4c905bb178b5522/html5/thumbnails/6.jpg)
In-Memory Data Grid
Distributed (Elastic) Cache
NoSQL Key-Value Store
Clustering, Scalability, Partitioning, Big Data
Cloud Computing
Keywords
![Page 7: In-memory No SQL- GIDS2014](https://reader033.vdocuments.mx/reader033/viewer/2022052823/554f76bdb4c905bb178b5522/html5/thumbnails/7.jpg)
Who Uses Hazelcast?
![Page 8: In-memory No SQL- GIDS2014](https://reader033.vdocuments.mx/reader033/viewer/2022052823/554f76bdb4c905bb178b5522/html5/thumbnails/8.jpg)
Projects that use Hazelcast
![Page 9: In-memory No SQL- GIDS2014](https://reader033.vdocuments.mx/reader033/viewer/2022052823/554f76bdb4c905bb178b5522/html5/thumbnails/9.jpg)
![Page 10: In-memory No SQL- GIDS2014](https://reader033.vdocuments.mx/reader033/viewer/2022052823/554f76bdb4c905bb178b5522/html5/thumbnails/10.jpg)
GETTING RID OF IMPEDENCE
![Page 11: In-memory No SQL- GIDS2014](https://reader033.vdocuments.mx/reader033/viewer/2022052823/554f76bdb4c905bb178b5522/html5/thumbnails/11.jpg)
All you need is Map
James Gosling Creator of Java
![Page 12: In-memory No SQL- GIDS2014](https://reader033.vdocuments.mx/reader033/viewer/2022052823/554f76bdb4c905bb178b5522/html5/thumbnails/12.jpg)
Map
import java.util.Map; !import java.util.HashMap;!!Map map = new HashMap();!map.put(“1”, “value”); !map.get(“1”);!
![Page 13: In-memory No SQL- GIDS2014](https://reader033.vdocuments.mx/reader033/viewer/2022052823/554f76bdb4c905bb178b5522/html5/thumbnails/13.jpg)
Thread Safe Map
import java.util.Map; !import java.util.concurrent.*;!!Map map = new ConcurrentHashMap();!map.put(“1”, “value”); !map.get(“1”);!
![Page 14: In-memory No SQL- GIDS2014](https://reader033.vdocuments.mx/reader033/viewer/2022052823/554f76bdb4c905bb178b5522/html5/thumbnails/14.jpg)
Distributed Map
import java.util.Map; !import com.hazelcast.core.Hazelcast;!!HazelcastInstance h;!h = Hazelcast.newHazelcastInstance();!Map map = h.getMap(“mymap”);!map.put(“1”, “value”); !map.get(“1”);!
![Page 15: In-memory No SQL- GIDS2014](https://reader033.vdocuments.mx/reader033/viewer/2022052823/554f76bdb4c905bb178b5522/html5/thumbnails/15.jpg)
Map
Queue
Set
List
MultiMap
AtomicNumber
CountdownLatch
Lock
Semaphore
Topic
IdGeneretor
Hazelcast Data Structures
![Page 16: In-memory No SQL- GIDS2014](https://reader033.vdocuments.mx/reader033/viewer/2022052823/554f76bdb4c905bb178b5522/html5/thumbnails/16.jpg)
Database
Application
Hazelcast
We scale the applica9on 9er
![Page 17: In-memory No SQL- GIDS2014](https://reader033.vdocuments.mx/reader033/viewer/2022052823/554f76bdb4c905bb178b5522/html5/thumbnails/17.jpg)
Big Data Sharing/Caching
Session Replication
Hibernate 2nd Level Cache
Producer - Consumer
Spring Cache
Parallel Processing
Pub/Sub Messaging
Use Cases
![Page 18: In-memory No SQL- GIDS2014](https://reader033.vdocuments.mx/reader033/viewer/2022052823/554f76bdb4c905bb178b5522/html5/thumbnails/18.jpg)
All you need is JCache
Greg Luck Creator of Ehcache
Co Spec Lead Jsr107 JCache
![Page 19: In-memory No SQL- GIDS2014](https://reader033.vdocuments.mx/reader033/viewer/2022052823/554f76bdb4c905bb178b5522/html5/thumbnails/19.jpg)
Hazelcast leads standardiza9on • Hazelcast CTO Greg Luck is the newest addi_on to the
management team
• Greg Co-‐led the standardiza9on effort with Oracle which makes Hazelcast one of the standard-‐bearers
• Greg has credibility in this market having founded Ehcache, the world’s most popular Java cache
• Jcache will be released Mon March 17th by JCP and widely implemented by IMDG vendors and embedded in Java EE 8 and Spring
• The caching standard will expand IMDG market and adop9on of Hazelcast
19
JCache is the standard way for Java to talk to caches
![Page 20: In-memory No SQL- GIDS2014](https://reader033.vdocuments.mx/reader033/viewer/2022052823/554f76bdb4c905bb178b5522/html5/thumbnails/20.jpg)
From Local Cache to
Distributed Cache
From Local to Distributed Caching
![Page 21: In-memory No SQL- GIDS2014](https://reader033.vdocuments.mx/reader033/viewer/2022052823/554f76bdb4c905bb178b5522/html5/thumbnails/21.jpg)
Req Local Caching
![Page 22: In-memory No SQL- GIDS2014](https://reader033.vdocuments.mx/reader033/viewer/2022052823/554f76bdb4c905bb178b5522/html5/thumbnails/22.jpg)
Req
V =
read(K)
Local Caching
![Page 23: In-memory No SQL- GIDS2014](https://reader033.vdocuments.mx/reader033/viewer/2022052823/554f76bdb4c905bb178b5522/html5/thumbnails/23.jpg)
Req
K: V
Local Caching
![Page 24: In-memory No SQL- GIDS2014](https://reader033.vdocuments.mx/reader033/viewer/2022052823/554f76bdb4c905bb178b5522/html5/thumbnails/24.jpg)
Req
K: V
Local Caching
![Page 25: In-memory No SQL- GIDS2014](https://reader033.vdocuments.mx/reader033/viewer/2022052823/554f76bdb4c905bb178b5522/html5/thumbnails/25.jpg)
V =
read(K)
Req
Local Caching
K: V
![Page 26: In-memory No SQL- GIDS2014](https://reader033.vdocuments.mx/reader033/viewer/2022052823/554f76bdb4c905bb178b5522/html5/thumbnails/26.jpg)
K: V
Req
K: V
Local Caching
![Page 27: In-memory No SQL- GIDS2014](https://reader033.vdocuments.mx/reader033/viewer/2022052823/554f76bdb4c905bb178b5522/html5/thumbnails/27.jpg)
Local Caching
K: V K: V
![Page 28: In-memory No SQL- GIDS2014](https://reader033.vdocuments.mx/reader033/viewer/2022052823/554f76bdb4c905bb178b5522/html5/thumbnails/28.jpg)
Req Local Caching
K: V K: V
![Page 29: In-memory No SQL- GIDS2014](https://reader033.vdocuments.mx/reader033/viewer/2022052823/554f76bdb4c905bb178b5522/html5/thumbnails/29.jpg)
Req
V =
read(K)
Local Caching
K: V K: V
![Page 30: In-memory No SQL- GIDS2014](https://reader033.vdocuments.mx/reader033/viewer/2022052823/554f76bdb4c905bb178b5522/html5/thumbnails/30.jpg)
Req Local Caching
K: V K: V K: V
![Page 31: In-memory No SQL- GIDS2014](https://reader033.vdocuments.mx/reader033/viewer/2022052823/554f76bdb4c905bb178b5522/html5/thumbnails/31.jpg)
Req
Adding a new Node increases load on Backend!
Local Caching
K: V K: V K: V
![Page 32: In-memory No SQL- GIDS2014](https://reader033.vdocuments.mx/reader033/viewer/2022052823/554f76bdb4c905bb178b5522/html5/thumbnails/32.jpg)
Req
Hazelcast Cluster 2X capacity
Distributed Caching
![Page 33: In-memory No SQL- GIDS2014](https://reader033.vdocuments.mx/reader033/viewer/2022052823/554f76bdb4c905bb178b5522/html5/thumbnails/33.jpg)
Req
V =
read(K)
Hazelcast Cluster 2X capacity
Distributed Caching
![Page 34: In-memory No SQL- GIDS2014](https://reader033.vdocuments.mx/reader033/viewer/2022052823/554f76bdb4c905bb178b5522/html5/thumbnails/34.jpg)
Use Case - Distributed Caching
Req
K: V Hazelcast Cluster 2X capacity
![Page 35: In-memory No SQL- GIDS2014](https://reader033.vdocuments.mx/reader033/viewer/2022052823/554f76bdb4c905bb178b5522/html5/thumbnails/35.jpg)
K: V
Req
Hazelcast Cluster 2X capacity
Distributed Caching
![Page 36: In-memory No SQL- GIDS2014](https://reader033.vdocuments.mx/reader033/viewer/2022052823/554f76bdb4c905bb178b5522/html5/thumbnails/36.jpg)
K: V
Req
Hazelcast Cluster 3X capacity
Distributed Caching
![Page 37: In-memory No SQL- GIDS2014](https://reader033.vdocuments.mx/reader033/viewer/2022052823/554f76bdb4c905bb178b5522/html5/thumbnails/37.jpg)
Features
• Java Concurrency API – Lock, Semaphore, CountdownLatch, ExecutorService
• Java Collec_on API: – Map, Queue, Set, List
• Mul_Map • Topics (PubSub) • EntryProcessor • Predicate API (Secondary Indexes) • SQL Query • Off-‐Heap Support * • Na_ve Client: C#*, C++*, Java, REST, Memcache • Dynamic Discovery, Redundancy and Recovery
![Page 38: In-memory No SQL- GIDS2014](https://reader033.vdocuments.mx/reader033/viewer/2022052823/554f76bdb4c905bb178b5522/html5/thumbnails/38.jpg)
Features…
• WAN Replica_on • Backup Groups • Indexing Key, values and value proper_es • Distributed SQL-‐like Query and Predicate API • Write Behind / Write Through Persistence • 2PC Transac_ons (v3) • EntryListeners • EntryProcessors (v3) • Automa_c Evic_on • Data Affinity • HTTP Session Clustering • Spring & Hibernate 2nd Level Cache • Control Par__oning (v 3) • EC2 Auto Discovery
![Page 39: In-memory No SQL- GIDS2014](https://reader033.vdocuments.mx/reader033/viewer/2022052823/554f76bdb4c905bb178b5522/html5/thumbnails/39.jpg)
Features…
• SPI (v3) • Con_nuous Query (v3) • Custom Pluggable Serializa_on • Portable Serializa_on (v3) • Par_al Deserializa_on (v3) • Binary and/or Object Storage (v3) • Dynamic Indexing (v3) • 2PC Transac_ons (v3) • Server Side Before and A\er Interceptors (v3) • JAAS Authen_ca_on and Authoriza_on (v3) * • Socket Encryp_on
![Page 40: In-memory No SQL- GIDS2014](https://reader033.vdocuments.mx/reader033/viewer/2022052823/554f76bdb4c905bb178b5522/html5/thumbnails/40.jpg)
Management Center *
![Page 41: In-memory No SQL- GIDS2014](https://reader033.vdocuments.mx/reader033/viewer/2022052823/554f76bdb4c905bb178b5522/html5/thumbnails/41.jpg)
Roadmap 2014
Scale Up • Second Genera_on off-‐heap
– 200GB+ versus 20GB in 3.1 – Exposed via API – In addi_on to map:
• Queue • Set
![Page 42: In-memory No SQL- GIDS2014](https://reader033.vdocuments.mx/reader033/viewer/2022052823/554f76bdb4c905bb178b5522/html5/thumbnails/42.jpg)
Roadmap 2014
Opera_onal Store • Persistence
– Faster restart and data load – Opera_onal storage rather than DB
![Page 43: In-memory No SQL- GIDS2014](https://reader033.vdocuments.mx/reader033/viewer/2022052823/554f76bdb4c905bb178b5522/html5/thumbnails/43.jpg)
Roadmap 2014
Distributed Compute • Map/Reduce • Scheduled Executor Service
![Page 44: In-memory No SQL- GIDS2014](https://reader033.vdocuments.mx/reader033/viewer/2022052823/554f76bdb4c905bb178b5522/html5/thumbnails/44.jpg)
Roadmap 2014
Cache • JCache
– New standard December 2013 – Being implemented by most vendors (Hazelcast, Coherence, Infinispan, Gemfire, Terracona)
– February 2014 – javax.cache – To be included in Java EE 8, Spring
![Page 45: In-memory No SQL- GIDS2014](https://reader033.vdocuments.mx/reader033/viewer/2022052823/554f76bdb4c905bb178b5522/html5/thumbnails/45.jpg)
Hazelcast V3
![Page 46: In-memory No SQL- GIDS2014](https://reader033.vdocuments.mx/reader033/viewer/2022052823/554f76bdb4c905bb178b5522/html5/thumbnails/46.jpg)