SlideShare a Scribd company logo
manik@jboss.org | http://twitter.com/maniksurtani | http://blog.infinispan.org
Infinispan
    In-memory data grid meets NoSQL


Manik Surtani
Founder and project lead, Infinispan
Senior Principal Engineer
Red Hat, Inc.
                    manik@jboss.org | http://twitter.com/maniksurtani | http://blog.infinispan.org
“Could data storage be the one
thing that hampers true cloud
scalability and elasticity?”




        manik@jboss.org | http://twitter.com/maniksurtani | http://blog.infinispan.org
Who is Manik?
• R&D Engineer, Red Hat Inc.
   • Founder and project lead, Infinispan
   • Project lead, JBoss Cache
   • Frequent speaker on cloud computing and
    cloud data storage

   http://twitter.com/maniksurtani
   http://blog.infinispan.org



                    manik@jboss.org | http://twitter.com/maniksurtani | http://blog.infinispan.org
Agenda



• What is Data-as-a-Service?
• Introducing Infinispan
• Implementing Data-as-a-Service with data grids
• Data grids vs. NoSQL

               manik@jboss.org | http://twitter.com/maniksurtani | http://blog.infinispan.org
Traditional 3-tier App




   manik@jboss.org | http://twitter.com/maniksurtani | http://blog.infinispan.org
Typical IaaS App




 manik@jboss.org | http://twitter.com/maniksurtani | http://blog.infinispan.org
Typical PaaS App




 manik@jboss.org | http://twitter.com/maniksurtani | http://blog.infinispan.org
Where’s your
data stored??

    manik@jboss.org | http://twitter.com/maniksurtani | http://blog.infinispan.org
Clouds are
ephemeral!

    manik@jboss.org | http://twitter.com/maniksurtani | http://blog.infinispan.org
State




manik@jboss.org | http://twitter.com/maniksurtani | http://blog.infinispan.org
Virtualizing Data

• Some public services do exist
 • Amazon RDS and SimpleDB
 • FathomDB
 • Cloundant
 • MongoHQ
 • etc.

             manik@jboss.org | http://twitter.com/maniksurtani | http://blog.infinispan.org
What about private clouds?

• Not all cloud deployments
  are public!
• Private cloud is very
 important
• How can you build DaaS
  yourself?


               manik@jboss.org | http://twitter.com/maniksurtani | http://blog.infinispan.org
Characteristics of DaaS
• Elastic data
• Needs to scale with other tiers
• Response times should be linear
• Needs to be highly available
 • Nodes will die! The service
  shouldn’t.



                manik@jboss.org | http://twitter.com/maniksurtani | http://blog.infinispan.org
“Traditional” RDBMSs

• Lack of distribution hampers elasticity and HA
• These limitations can be worked around
 • ... but this isn’t trivial
 • ... or cheap


             manik@jboss.org | http://twitter.com/maniksurtani | http://blog.infinispan.org
“Traditional” RDBMSs

• Lack of distribution hampers elasticity and HA
• These limitations can be worked around
 • ... but this isn’t trivial
 • ... or cheap


             manik@jboss.org | http://twitter.com/maniksurtani | http://blog.infinispan.org
Distributed Data Grid


• Far better suited to elastic data
• Distributed by nature
• Highly available by nature
• A good building block for your data service

                 manik@jboss.org | http://twitter.com/maniksurtani | http://blog.infinispan.org
API is king
• Apps should use their native data storage APIs
 • E.g., JPA (Java EE), ActiveRecord (Ruby), etc.
• Key/value too low level
 • Akin to direct JDBC calls!



               manik@jboss.org | http://twitter.com/maniksurtani | http://blog.infinispan.org
Introducing



manik@jboss.org | http://twitter.com/maniksurtani | http://blog.infinispan.org
What is Infinispan?
• Open source (LGPL) in-memory Data Grid
• Some concepts from Amazon Dynamo

2 usage modes
• Embedded
• Client-server
  • memcached
  • Hot Rod
  • REST

                  manik@jboss.org | http://twitter.com/maniksurtani | http://blog.infinispan.org
Embedded Mode

   manik@jboss.org | http://twitter.com/maniksurtani | http://blog.infinispan.org
P2P Embedded Architecture




      manik@jboss.org | http://twitter.com/maniksurtani | http://blog.infinispan.org
API
• Map-like key/value store
• Upcoming JPA-like layer
• Other high-level APIs being discussed in the
  community e.g., ActiveRecord



         manik@jboss.org | http://twitter.com/maniksurtani | http://blog.infinispan.org
Consistent hash based distribution
• Self healing
• No single point of failure

Highly concurrent
• MVCC locking


               manik@jboss.org | http://twitter.com/maniksurtani | http://blog.infinispan.org
Persistence
• Not just in memory!
• Write through and write behind
• Pluggable “drivers”

Eviction and expiry
• Efficient, adaptive algorithms
• Addresses shortcomings of LRU & FIFO
              manik@jboss.org | http://twitter.com/maniksurtani | http://blog.infinispan.org
XA Transactions
• 2-phase commit based
• Deadlock detection algorithms
• Coming soon: Atomic Broadcast



       manik@jboss.org | http://twitter.com/maniksurtani | http://blog.infinispan.org
Map/Reduce
 • In a pre-release state right now
 • Please try out 5.0.0.ALPHA3 with these APIs!

Querying
 • Using Lucene and Hibernate Search to index


           manik@jboss.org | http://twitter.com/maniksurtani | http://blog.infinispan.org
Client/Server Mode

    manik@jboss.org | http://twitter.com/maniksurtani | http://blog.infinispan.org
Client/Server Architecture

                                        Supported Protocols
                                      • REST
                                      • Memcached
                                      • Hot Rod




      manik@jboss.org | http://twitter.com/maniksurtani | http://blog.infinispan.org
WTF is Hot Rod?
• Wire protocol for client server
  communications
• Open
• Language independent
• Built-in failover and load balancing
• Smart routing


                  manik@jboss.org | http://twitter.com/maniksurtani | http://blog.infinispan.org
Server Endpoint Comparison
                           Client       Clustered Smart              Load Balancing/
            Protocol
                          Libraries         ?     Routing               Failover


  REST       Text            N/A            Yes          No       Any HTTP load balancer


                                                                    Only with predefined
Memcached    Text           Plenty          Yes          No
                                                                         server list

                          Currently
 Hot Rod    Binary                          Yes          Yes              Dynamic
                          only Java



                       manik@jboss.org | http://twitter.com/maniksurtani | http://blog.infinispan.org
So is Infinispan
 a data grid?
• In-memory
• P2P, distributed
• Low-latency, fast key/
  value store




                       manik@jboss.org | http://twitter.com/maniksurtani | http://blog.infinispan.org
So is Infinispan
 a data grid?
• In-memory
• P2P, distributed          ... or is it a NoSQL
• Low-latency, fast key/
  value store
                            database?
                           • Persistence
                           • Map/Reduce
                           • Client/Server mode



                       manik@jboss.org | http://twitter.com/maniksurtani | http://blog.infinispan.org
So is Infinispan
 a data grid?
• In-memory
• P2P, distributed           ... or is it a NoSQL
• Low-latency, fast key/
  value store
                             database?
                           • Persistence
                                                ... or something
                           • Map/Reduce
                           • Client/Server mode else?
                                                              • Querying support
                                                              • Transactional

                       manik@jboss.org | http://twitter.com/maniksurtani | http://blog.infinispan.org
DaaS with
Infinispan

    manik@jboss.org | http://twitter.com/maniksurtani | http://blog.infinispan.org
Architecture




                                                                Manage and Monitor
manik@jboss.org | http://twitter.com/maniksurtani | http://blog.infinispan.org
Data Grids
   vs.
 NoSQL
manik@jboss.org | http://twitter.com/maniksurtani | http://blog.infinispan.org
Data Grids vs. NoSQL
• Data grids/distributed caches as proto-NoSQL?
• Been around since early 2000’s
• Used as database offload
   • Bottleneck removal
• Primary K/V stores for certain types of data
• Low latency data access



              manik@jboss.org | http://twitter.com/maniksurtani | http://blog.infinispan.org
Their roots
Data Grids
in-memory, non-clustered -> add clustering ->
add persistence -> add txns -> add M/R

NoSQL
persistence -> add clustering -> add M/R -> add
memory cache


                 manik@jboss.org | http://twitter.com/maniksurtani | http://blog.infinispan.org
Evolving: Enterprise NoSQL
• Taking NoSQL mainstream
• Adding enterprise features
  • Transactions
  • Querying
• Adding common APIs
  • Easy access, portability


              manik@jboss.org | http://twitter.com/maniksurtani | http://blog.infinispan.org
NoSQL standards
• APIs - basic interactions and Map/Reduce
  • JCP for Java + others
    • http://bit.ly/data_grid_jsr
• Wire protocol
  • Remote communications.
    • Hot Rod?
• Query language
  • Without relational presumptions
              manik@jboss.org | http://twitter.com/maniksurtani | http://blog.infinispan.org
Summing things up

• Elastic data is hard
• Public data services not always suitable
• Data grids make elastic storage easy
• Infinispan server endpoints help build
  elastic data tiers
• Discussed data grids versus NoSQL

               manik@jboss.org | http://twitter.com/maniksurtani | http://blog.infinispan.org
Questions?
    http://www.infinispan.org
    http://blog.infinispan.org
    http://github.com/infinispan
    http://twitter.com/infinispan - #infinispan
    #infinispan on FreeNode (IRC)




          manik@jboss.org | http://twitter.com/maniksurtani | http://blog.infinispan.org
Starting an Infinispan Server

• Hot Rod or memcached server endpoint

 $ bin/startServer.sh -r           hotrod 
                      -c           infinispan.xml
 $ bin/startServer.sh -r           memcached 
                      -c           infinispan.xml




                     manik@jboss.org | http://twitter.com/maniksurtani | http://blog.infinispan.org
Starting an Infinispan Server


• REST endpoint
   • Deploy infinispan-server-rest.war in your
     favorite servlet container.




               manik@jboss.org | http://twitter.com/maniksurtani | http://blog.infinispan.org
Roadmap
4.0.0 Starobrno
• Map-like API
• Async API
• Consistent Hash based distribution
• Write-through, write-behind
• Eviction, expiration
• Management tooling
• REST API
• Hibernate 2nd Level Cache
• Released Feb 2010

                manik@jboss.org | http://twitter.com/maniksurtani | http://blog.infinispan.org
Roadmap
4.1.0 Radegast
• Deadlock detection
• Client/Server protocols
  • Memcached
  • Hot Rod
  • Smart clients using Hot Rod
• Lucene Directory implementation
• LIRS: adaptive, recency-based eviction policies
• Released August 2010


                 manik@jboss.org | http://twitter.com/maniksurtani | http://blog.infinispan.org
Roadmap
5.0.0 Pagoa
• JPA-like API
• Fine-grained replication
• Distributed code execution
  • Map/reduce
• Virtual nodes for more even distribution
• In active development

5.1.0 and beyond
• Dynamic provisioning based on SLAs
• Complex event processing features
                 manik@jboss.org | http://twitter.com/maniksurtani | http://blog.infinispan.org

More Related Content

What's hot (20)

PPTX
Chicago Data Summit: Geo-based Content Processing Using HBase
Cloudera, Inc.
 
PDF
Thug feb 23 2015 Chen Zhang
Chen Zhang
 
PPTX
In Memory Data Grids, Demystified!
Uri Cohen
 
PDF
Rails on HBase
EffectiveUI
 
PPTX
Trusted advisory on technology comparison --exadata, hana, db2
Ajay Kumar Uppal
 
PDF
Thousands of Threads and Blocking I/O
George Cao
 
PPTX
Spring Meetup Paris - Getting Distributed with Hazelcast and Spring
Emrah Kocaman
 
PDF
Introduction to hazelcast
Emin Demirci
 
PDF
Web session replication with Hazelcast
Emrah Kocaman
 
PPTX
Demystifying Benchmarks: How to Use Them To Better Evaluate Databases
Clustrix
 
PDF
An Elastic Metadata Store for eBay’s Media Platform
MongoDB
 
PDF
Connector/J Beyond JDBC: the X DevAPI for Java and MySQL as a Document Store
Filipe Silva
 
PPTX
Hazelcast For Beginners (Paris JUG-1)
Emrah Kocaman
 
PPTX
Transform your DBMS to drive engagement innovation with Big Data
Ashnikbiz
 
PDF
PayPal Big Data and MySQL Cluster
Mat Keep
 
PDF
Introduction to Apache Geode (Cork, Ireland)
Anthony Baker
 
PDF
Avoiding.the.pitfallsof.oracle.migration.2013
EDB
 
PPTX
Fast Online Access to Massive Offline Data - SECR 2016
Felix GV
 
PDF
Building Apps with Distributed In-Memory Computing Using Apache Geode
PivotalOpenSourceHub
 
PPT
Choosing the Right Big Data Tools for the Job - A Polyglot Approach
DATAVERSITY
 
Chicago Data Summit: Geo-based Content Processing Using HBase
Cloudera, Inc.
 
Thug feb 23 2015 Chen Zhang
Chen Zhang
 
In Memory Data Grids, Demystified!
Uri Cohen
 
Rails on HBase
EffectiveUI
 
Trusted advisory on technology comparison --exadata, hana, db2
Ajay Kumar Uppal
 
Thousands of Threads and Blocking I/O
George Cao
 
Spring Meetup Paris - Getting Distributed with Hazelcast and Spring
Emrah Kocaman
 
Introduction to hazelcast
Emin Demirci
 
Web session replication with Hazelcast
Emrah Kocaman
 
Demystifying Benchmarks: How to Use Them To Better Evaluate Databases
Clustrix
 
An Elastic Metadata Store for eBay’s Media Platform
MongoDB
 
Connector/J Beyond JDBC: the X DevAPI for Java and MySQL as a Document Store
Filipe Silva
 
Hazelcast For Beginners (Paris JUG-1)
Emrah Kocaman
 
Transform your DBMS to drive engagement innovation with Big Data
Ashnikbiz
 
PayPal Big Data and MySQL Cluster
Mat Keep
 
Introduction to Apache Geode (Cork, Ireland)
Anthony Baker
 
Avoiding.the.pitfallsof.oracle.migration.2013
EDB
 
Fast Online Access to Massive Offline Data - SECR 2016
Felix GV
 
Building Apps with Distributed In-Memory Computing Using Apache Geode
PivotalOpenSourceHub
 
Choosing the Right Big Data Tools for the Job - A Polyglot Approach
DATAVERSITY
 

Viewers also liked (20)

PDF
NoSQL in Practice with TIBCO: Real World Use Cases and Customer Success Stori...
Kai Wähner
 
PDF
Apache conbigdata2015 christiantzolov-federated sql on hadoop and beyond- lev...
Christian Tzolov
 
PPTX
Архитектура Apache Ignite .NET
Mikhail Shcherbakov
 
PDF
Building Wall St Risk Systems with Apache Geode
Andre Langevin
 
PDF
JBoss Community Introduction
jbugkorea
 
KEY
Infinispan, Data Grids, NoSQL, Cloud Storage and JSR 347
Manik Surtani
 
PDF
Infinispan Servers: Beyond peer-to-peer data grids
Galder Zamarreño
 
PDF
Infinispan from POC to Production
C2B2 Consulting
 
PDF
Apache Geode - The First Six Months
Anthony Baker
 
PDF
Hacking Infinispan: the new open source data grid meets NoSQL
Codemotion
 
PPTX
Apache geode
Yogesh BG
 
PDF
Redis adaptor for Apache Geode
Swapnil Bawaskar
 
PDF
Keeping Infinispan In Shape: Highly-Precise, Scalable Data Eviction
Galder Zamarreño
 
PPTX
Apache Geode Clubhouse - WAN-based Replication
PivotalOpenSourceHub
 
PDF
인메모리 클러스터링 아키텍처
Jaehong Cheon
 
ODP
Infinispan and Enterprise Data Grid
JBug Italy
 
PPTX
An Introduction to Apache Geode (incubating)
Anthony Baker
 
PDF
Data Grids and Data Caching
Galder Zamarreño
 
PPTX
Going asynchronous with netty - SOSCON 2015
Kris Jeong
 
PPTX
Apache ignite Datagrid
Surinder Mehra
 
NoSQL in Practice with TIBCO: Real World Use Cases and Customer Success Stori...
Kai Wähner
 
Apache conbigdata2015 christiantzolov-federated sql on hadoop and beyond- lev...
Christian Tzolov
 
Архитектура Apache Ignite .NET
Mikhail Shcherbakov
 
Building Wall St Risk Systems with Apache Geode
Andre Langevin
 
JBoss Community Introduction
jbugkorea
 
Infinispan, Data Grids, NoSQL, Cloud Storage and JSR 347
Manik Surtani
 
Infinispan Servers: Beyond peer-to-peer data grids
Galder Zamarreño
 
Infinispan from POC to Production
C2B2 Consulting
 
Apache Geode - The First Six Months
Anthony Baker
 
Hacking Infinispan: the new open source data grid meets NoSQL
Codemotion
 
Apache geode
Yogesh BG
 
Redis adaptor for Apache Geode
Swapnil Bawaskar
 
Keeping Infinispan In Shape: Highly-Precise, Scalable Data Eviction
Galder Zamarreño
 
Apache Geode Clubhouse - WAN-based Replication
PivotalOpenSourceHub
 
인메모리 클러스터링 아키텍처
Jaehong Cheon
 
Infinispan and Enterprise Data Grid
JBug Italy
 
An Introduction to Apache Geode (incubating)
Anthony Baker
 
Data Grids and Data Caching
Galder Zamarreño
 
Going asynchronous with netty - SOSCON 2015
Kris Jeong
 
Apache ignite Datagrid
Surinder Mehra
 
Ad

Similar to Infinspan: In-memory data grid meets NoSQL (20)

PPTX
Urbanesia - Development History
Batista Harahap
 
PPTX
Scaling with swagger
Tony Tam
 
PPTX
Single page applications the basics
Chris Love
 
PDF
Navigating SAP’s Integration Options (Mastering SAP Technologies 2013)
Sascha Wenninger
 
PPTX
Cycling for noobs
Steve Lee
 
KEY
SparxUp - Growth VS Scalability
Batista Harahap
 
PPTX
A microservices journey - Round 2
Christian Posta
 
PDF
[WSO2Con EU 2017] Keynote: Ballerina Plans and Futures
WSO2
 
PPTX
Be faster then rabbits
Vladislav Bauer
 
PDF
CIS 2015 To Infinity and Beyond: Web Scale Session Management - Lukasz Jaromin
CloudIDSummit
 
PDF
Introduction to Apache NiFi dws19 DWS - DC 2019
Timothy Spann
 
PPTX
Real world RESTful service development problems and solutions
Masoud Kalali
 
PDF
A Tale of 2 Systems
David Newman
 
PDF
Restful风格ž„web服务架构
Benjamin Tan
 
PDF
Scalable web architecture
Kaushik Paranjape
 
PPTX
Training on iOS app development - Samesh Swongamikha & Neetin Sharma
MobileNepal
 
PDF
WCM-7 Surfing with CMIS
Alfresco Software
 
PPTX
Mobile gotcha
phegaro
 
PPTX
Evolution of integration and microservices patterns with service mesh
Christian Posta
 
PDF
IBM Connect 2017: Your Data In the Major Leagues: A Practical Guide to REST S...
Serdar Basegmez
 
Urbanesia - Development History
Batista Harahap
 
Scaling with swagger
Tony Tam
 
Single page applications the basics
Chris Love
 
Navigating SAP’s Integration Options (Mastering SAP Technologies 2013)
Sascha Wenninger
 
Cycling for noobs
Steve Lee
 
SparxUp - Growth VS Scalability
Batista Harahap
 
A microservices journey - Round 2
Christian Posta
 
[WSO2Con EU 2017] Keynote: Ballerina Plans and Futures
WSO2
 
Be faster then rabbits
Vladislav Bauer
 
CIS 2015 To Infinity and Beyond: Web Scale Session Management - Lukasz Jaromin
CloudIDSummit
 
Introduction to Apache NiFi dws19 DWS - DC 2019
Timothy Spann
 
Real world RESTful service development problems and solutions
Masoud Kalali
 
A Tale of 2 Systems
David Newman
 
Restful风格ž„web服务架构
Benjamin Tan
 
Scalable web architecture
Kaushik Paranjape
 
Training on iOS app development - Samesh Swongamikha & Neetin Sharma
MobileNepal
 
WCM-7 Surfing with CMIS
Alfresco Software
 
Mobile gotcha
phegaro
 
Evolution of integration and microservices patterns with service mesh
Christian Posta
 
IBM Connect 2017: Your Data In the Major Leagues: A Practical Guide to REST S...
Serdar Basegmez
 
Ad

Recently uploaded (20)

PPTX
Building Search Using OpenSearch: Limitations and Workarounds
Sease
 
PPTX
Top iOS App Development Company in the USA for Innovative Apps
SynapseIndia
 
PPTX
"Autonomy of LLM Agents: Current State and Future Prospects", Oles` Petriv
Fwdays
 
PDF
SWEBOK Guide and Software Services Engineering Education
Hironori Washizaki
 
PDF
"AI Transformation: Directions and Challenges", Pavlo Shaternik
Fwdays
 
PPTX
Webinar: Introduction to LF Energy EVerest
DanBrown980551
 
PDF
Using FME to Develop Self-Service CAD Applications for a Major UK Police Force
Safe Software
 
PDF
July Patch Tuesday
Ivanti
 
PPT
Interview paper part 3, It is based on Interview Prep
SoumyadeepGhosh39
 
PDF
Jak MŚP w Europie Środkowo-Wschodniej odnajdują się w świecie AI
dominikamizerska1
 
PDF
HCIP-Data Center Facility Deployment V2.0 Training Material (Without Remarks ...
mcastillo49
 
PDF
Timothy Rottach - Ramp up on AI Use Cases, from Vector Search to AI Agents wi...
AWS Chicago
 
PDF
[Newgen] NewgenONE Marvin Brochure 1.pdf
darshakparmar
 
PDF
Presentation - Vibe Coding The Future of Tech
yanuarsinggih1
 
PDF
Empower Inclusion Through Accessible Java Applications
Ana-Maria Mihalceanu
 
PDF
Reverse Engineering of Security Products: Developing an Advanced Microsoft De...
nwbxhhcyjv
 
PDF
Python basic programing language for automation
DanialHabibi2
 
PDF
Chris Elwell Woburn, MA - Passionate About IT Innovation
Chris Elwell Woburn, MA
 
PDF
CIFDAQ Token Spotlight for 9th July 2025
CIFDAQ
 
PDF
HubSpot Main Hub: A Unified Growth Platform
Jaswinder Singh
 
Building Search Using OpenSearch: Limitations and Workarounds
Sease
 
Top iOS App Development Company in the USA for Innovative Apps
SynapseIndia
 
"Autonomy of LLM Agents: Current State and Future Prospects", Oles` Petriv
Fwdays
 
SWEBOK Guide and Software Services Engineering Education
Hironori Washizaki
 
"AI Transformation: Directions and Challenges", Pavlo Shaternik
Fwdays
 
Webinar: Introduction to LF Energy EVerest
DanBrown980551
 
Using FME to Develop Self-Service CAD Applications for a Major UK Police Force
Safe Software
 
July Patch Tuesday
Ivanti
 
Interview paper part 3, It is based on Interview Prep
SoumyadeepGhosh39
 
Jak MŚP w Europie Środkowo-Wschodniej odnajdują się w świecie AI
dominikamizerska1
 
HCIP-Data Center Facility Deployment V2.0 Training Material (Without Remarks ...
mcastillo49
 
Timothy Rottach - Ramp up on AI Use Cases, from Vector Search to AI Agents wi...
AWS Chicago
 
[Newgen] NewgenONE Marvin Brochure 1.pdf
darshakparmar
 
Presentation - Vibe Coding The Future of Tech
yanuarsinggih1
 
Empower Inclusion Through Accessible Java Applications
Ana-Maria Mihalceanu
 
Reverse Engineering of Security Products: Developing an Advanced Microsoft De...
nwbxhhcyjv
 
Python basic programing language for automation
DanialHabibi2
 
Chris Elwell Woburn, MA - Passionate About IT Innovation
Chris Elwell Woburn, MA
 
CIFDAQ Token Spotlight for 9th July 2025
CIFDAQ
 
HubSpot Main Hub: A Unified Growth Platform
Jaswinder Singh
 

Infinspan: In-memory data grid meets NoSQL

  • 1. [email protected] | http://twitter.com/maniksurtani | http://blog.infinispan.org
  • 2. Infinispan In-memory data grid meets NoSQL Manik Surtani Founder and project lead, Infinispan Senior Principal Engineer Red Hat, Inc. [email protected] | http://twitter.com/maniksurtani | http://blog.infinispan.org
  • 3. “Could data storage be the one thing that hampers true cloud scalability and elasticity?” [email protected] | http://twitter.com/maniksurtani | http://blog.infinispan.org
  • 4. Who is Manik? • R&D Engineer, Red Hat Inc. • Founder and project lead, Infinispan • Project lead, JBoss Cache • Frequent speaker on cloud computing and cloud data storage http://twitter.com/maniksurtani http://blog.infinispan.org [email protected] | http://twitter.com/maniksurtani | http://blog.infinispan.org
  • 5. Agenda • What is Data-as-a-Service? • Introducing Infinispan • Implementing Data-as-a-Service with data grids • Data grids vs. NoSQL [email protected] | http://twitter.com/maniksurtani | http://blog.infinispan.org
  • 6. Traditional 3-tier App [email protected] | http://twitter.com/maniksurtani | http://blog.infinispan.org
  • 7. Typical IaaS App [email protected] | http://twitter.com/maniksurtani | http://blog.infinispan.org
  • 8. Typical PaaS App [email protected] | http://twitter.com/maniksurtani | http://blog.infinispan.org
  • 9. Where’s your data stored?? [email protected] | http://twitter.com/maniksurtani | http://blog.infinispan.org
  • 10. Clouds are ephemeral! [email protected] | http://twitter.com/maniksurtani | http://blog.infinispan.org
  • 11. State [email protected] | http://twitter.com/maniksurtani | http://blog.infinispan.org
  • 12. Virtualizing Data • Some public services do exist • Amazon RDS and SimpleDB • FathomDB • Cloundant • MongoHQ • etc. [email protected] | http://twitter.com/maniksurtani | http://blog.infinispan.org
  • 13. What about private clouds? • Not all cloud deployments are public! • Private cloud is very important • How can you build DaaS yourself? [email protected] | http://twitter.com/maniksurtani | http://blog.infinispan.org
  • 14. Characteristics of DaaS • Elastic data • Needs to scale with other tiers • Response times should be linear • Needs to be highly available • Nodes will die! The service shouldn’t. [email protected] | http://twitter.com/maniksurtani | http://blog.infinispan.org
  • 15. “Traditional” RDBMSs • Lack of distribution hampers elasticity and HA • These limitations can be worked around • ... but this isn’t trivial • ... or cheap [email protected] | http://twitter.com/maniksurtani | http://blog.infinispan.org
  • 16. “Traditional” RDBMSs • Lack of distribution hampers elasticity and HA • These limitations can be worked around • ... but this isn’t trivial • ... or cheap [email protected] | http://twitter.com/maniksurtani | http://blog.infinispan.org
  • 17. Distributed Data Grid • Far better suited to elastic data • Distributed by nature • Highly available by nature • A good building block for your data service [email protected] | http://twitter.com/maniksurtani | http://blog.infinispan.org
  • 18. API is king • Apps should use their native data storage APIs • E.g., JPA (Java EE), ActiveRecord (Ruby), etc. • Key/value too low level • Akin to direct JDBC calls! [email protected] | http://twitter.com/maniksurtani | http://blog.infinispan.org
  • 20. What is Infinispan? • Open source (LGPL) in-memory Data Grid • Some concepts from Amazon Dynamo 2 usage modes • Embedded • Client-server • memcached • Hot Rod • REST [email protected] | http://twitter.com/maniksurtani | http://blog.infinispan.org
  • 21. Embedded Mode [email protected] | http://twitter.com/maniksurtani | http://blog.infinispan.org
  • 22. P2P Embedded Architecture [email protected] | http://twitter.com/maniksurtani | http://blog.infinispan.org
  • 23. API • Map-like key/value store • Upcoming JPA-like layer • Other high-level APIs being discussed in the community e.g., ActiveRecord [email protected] | http://twitter.com/maniksurtani | http://blog.infinispan.org
  • 24. Consistent hash based distribution • Self healing • No single point of failure Highly concurrent • MVCC locking [email protected] | http://twitter.com/maniksurtani | http://blog.infinispan.org
  • 25. Persistence • Not just in memory! • Write through and write behind • Pluggable “drivers” Eviction and expiry • Efficient, adaptive algorithms • Addresses shortcomings of LRU & FIFO [email protected] | http://twitter.com/maniksurtani | http://blog.infinispan.org
  • 26. XA Transactions • 2-phase commit based • Deadlock detection algorithms • Coming soon: Atomic Broadcast [email protected] | http://twitter.com/maniksurtani | http://blog.infinispan.org
  • 27. Map/Reduce • In a pre-release state right now • Please try out 5.0.0.ALPHA3 with these APIs! Querying • Using Lucene and Hibernate Search to index [email protected] | http://twitter.com/maniksurtani | http://blog.infinispan.org
  • 28. Client/Server Mode [email protected] | http://twitter.com/maniksurtani | http://blog.infinispan.org
  • 29. Client/Server Architecture Supported Protocols • REST • Memcached • Hot Rod [email protected] | http://twitter.com/maniksurtani | http://blog.infinispan.org
  • 30. WTF is Hot Rod? • Wire protocol for client server communications • Open • Language independent • Built-in failover and load balancing • Smart routing [email protected] | http://twitter.com/maniksurtani | http://blog.infinispan.org
  • 31. Server Endpoint Comparison Client Clustered Smart Load Balancing/ Protocol Libraries ? Routing Failover REST Text N/A Yes No Any HTTP load balancer Only with predefined Memcached Text Plenty Yes No server list Currently Hot Rod Binary Yes Yes Dynamic only Java [email protected] | http://twitter.com/maniksurtani | http://blog.infinispan.org
  • 32. So is Infinispan a data grid? • In-memory • P2P, distributed • Low-latency, fast key/ value store [email protected] | http://twitter.com/maniksurtani | http://blog.infinispan.org
  • 33. So is Infinispan a data grid? • In-memory • P2P, distributed ... or is it a NoSQL • Low-latency, fast key/ value store database? • Persistence • Map/Reduce • Client/Server mode [email protected] | http://twitter.com/maniksurtani | http://blog.infinispan.org
  • 34. So is Infinispan a data grid? • In-memory • P2P, distributed ... or is it a NoSQL • Low-latency, fast key/ value store database? • Persistence ... or something • Map/Reduce • Client/Server mode else? • Querying support • Transactional [email protected] | http://twitter.com/maniksurtani | http://blog.infinispan.org
  • 35. DaaS with Infinispan [email protected] | http://twitter.com/maniksurtani | http://blog.infinispan.org
  • 36. Architecture Manage and Monitor [email protected] | http://twitter.com/maniksurtani | http://blog.infinispan.org
  • 37. Data Grids vs. NoSQL [email protected] | http://twitter.com/maniksurtani | http://blog.infinispan.org
  • 38. Data Grids vs. NoSQL • Data grids/distributed caches as proto-NoSQL? • Been around since early 2000’s • Used as database offload • Bottleneck removal • Primary K/V stores for certain types of data • Low latency data access [email protected] | http://twitter.com/maniksurtani | http://blog.infinispan.org
  • 39. Their roots Data Grids in-memory, non-clustered -> add clustering -> add persistence -> add txns -> add M/R NoSQL persistence -> add clustering -> add M/R -> add memory cache [email protected] | http://twitter.com/maniksurtani | http://blog.infinispan.org
  • 40. Evolving: Enterprise NoSQL • Taking NoSQL mainstream • Adding enterprise features • Transactions • Querying • Adding common APIs • Easy access, portability [email protected] | http://twitter.com/maniksurtani | http://blog.infinispan.org
  • 41. NoSQL standards • APIs - basic interactions and Map/Reduce • JCP for Java + others • http://bit.ly/data_grid_jsr • Wire protocol • Remote communications. • Hot Rod? • Query language • Without relational presumptions [email protected] | http://twitter.com/maniksurtani | http://blog.infinispan.org
  • 42. Summing things up • Elastic data is hard • Public data services not always suitable • Data grids make elastic storage easy • Infinispan server endpoints help build elastic data tiers • Discussed data grids versus NoSQL [email protected] | http://twitter.com/maniksurtani | http://blog.infinispan.org
  • 43. Questions? http://www.infinispan.org http://blog.infinispan.org http://github.com/infinispan http://twitter.com/infinispan - #infinispan #infinispan on FreeNode (IRC) [email protected] | http://twitter.com/maniksurtani | http://blog.infinispan.org
  • 44. Starting an Infinispan Server • Hot Rod or memcached server endpoint $ bin/startServer.sh -r hotrod -c infinispan.xml $ bin/startServer.sh -r memcached -c infinispan.xml [email protected] | http://twitter.com/maniksurtani | http://blog.infinispan.org
  • 45. Starting an Infinispan Server • REST endpoint • Deploy infinispan-server-rest.war in your favorite servlet container. [email protected] | http://twitter.com/maniksurtani | http://blog.infinispan.org
  • 46. Roadmap 4.0.0 Starobrno • Map-like API • Async API • Consistent Hash based distribution • Write-through, write-behind • Eviction, expiration • Management tooling • REST API • Hibernate 2nd Level Cache • Released Feb 2010 [email protected] | http://twitter.com/maniksurtani | http://blog.infinispan.org
  • 47. Roadmap 4.1.0 Radegast • Deadlock detection • Client/Server protocols • Memcached • Hot Rod • Smart clients using Hot Rod • Lucene Directory implementation • LIRS: adaptive, recency-based eviction policies • Released August 2010 [email protected] | http://twitter.com/maniksurtani | http://blog.infinispan.org
  • 48. Roadmap 5.0.0 Pagoa • JPA-like API • Fine-grained replication • Distributed code execution • Map/reduce • Virtual nodes for more even distribution • In active development 5.1.0 and beyond • Dynamic provisioning based on SLAs • Complex event processing features [email protected] | http://twitter.com/maniksurtani | http://blog.infinispan.org