SlideShare a Scribd company logo
1 of 38
Download to read offline
JBoss Users & Developers Conference

                         Boston:2010

Tuesday, June 22, 2010
Infinispan’s Hot Rod Protocol
                                      Galder Zamarreño
                              Senior Software Engineer, Red Hat
                                        21st June 2010




Tuesday, June 22, 2010
Who is Galder?


                         • Core R&D engineer on Infinispan and JBoss Cache
                         • Contributor and committer on JBoss AS, Hibernate,
                           JGroups, JBoss Portal,...etc




                                                             Galder Zamarreño | galder@jboss.org   3
Tuesday, June 22, 2010
Agenda

                         • Infinispan peer-to-peer vs Infinispan client-server mode
                         • What is Hot Rod
                         • The motivations behind Hot Rod
                         • Hot Rod implementations and sample code
                         • Infinispan server comparison
                         • The path ahead for Hot Rod
                         • Demo



                                                                Galder Zamarreño | galder@jboss.org   4
Tuesday, June 22, 2010
Infinispan Peer-To-Peer


                         •   Infinispan is an in-memory
                             distributed data grid
                         •   Traditionally, deployed in
                             peer-to-peer (p2p) mode




                                                          Galder Zamarreño | galder@jboss.org   5
Tuesday, June 22, 2010
Infinispan Client-Server


                         •   Sometimes client-server
                             makes more sense
                         •   E.g., access from non-JVM
                             environment
                         •   No Infinispan running on
                             client




                                                         Galder Zamarreño | galder@jboss.org   6
Tuesday, June 22, 2010
Infinispan Client-Server



                         •   P2P data grids do not get
                             along with elastic application
                             tiers




                                                              Galder Zamarreño | galder@jboss.org   7
Tuesday, June 22, 2010
Infinispan Client-Server



                         •   Elastic application tiers work
                             better with client-server




                                                              Galder Zamarreño | galder@jboss.org   8
Tuesday, June 22, 2010
Infinispan Client-Server


                         •   Multiple applications with data
                             storage needs
                             •   Starting a data grid per app
                                 is wasteful




                                                                Galder Zamarreño | galder@jboss.org   9
Tuesday, June 22, 2010
Infinispan Client-Server


                         •   Data service tier
                             •   Keep a pool of data grid
                                 nodes as shared storage tier




                                                                Galder Zamarreño | galder@jboss.org   10
Tuesday, June 22, 2010
Infinispan Client-Server

                         •   More examples:
                             •   Independent tier
                                 management
                                 •   E.g., upgrading AS without
                                     bringing down DB
                             •   Contrasting JVM tuning
                                 needs - CPU vs Memory
                             •   Security



                                                                  Galder Zamarreño | galder@jboss.org   11
Tuesday, June 22, 2010
Client-Server with Memcached




                                          Galder Zamarreño | galder@jboss.org   12
Tuesday, June 22, 2010
Client-Server with Infinispan
                                 Memcached




                                           Galder Zamarreño | galder@jboss.org   13
Tuesday, June 22, 2010
Client-Server with Infinispan
                                 Memcached




                                           Galder Zamarreño | galder@jboss.org   14
Tuesday, June 22, 2010
What is Hot Rod?


                         • Hot Rod is Infinispan’s binary client-server protocol
                         • Protocol designed for smart clients, which have the ability to:
                           • Load balance and failover dynamically
                           • Smartly route requests




                                                                 Galder Zamarreño | galder@jboss.org   15
Tuesday, June 22, 2010
Client Server with Hot Rod




                                         Galder Zamarreño | galder@jboss.org   16
Tuesday, June 22, 2010
Client Server with Hot Rod




                                         Galder Zamarreño | galder@jboss.org   17
Tuesday, June 22, 2010
The Hot Rod Protocol


                         • Transmitted keys and values treated as byte[]
                           • To ensure platform neutral behaviour
                         • Each operation prepended with cache name
                         • Basic operations:
                          • put, get, remove, containsKey, putIfAbsent, replace, clear
                          • stats, ping




                                                               Galder Zamarreño | galder@jboss.org   18
Tuesday, June 22, 2010
Data Consistency


                         • Concurrently accessed structures can suffer data
                           consistency issue
                         • Normally solved with JTA
                         • No JTA in Hot Rod (yet)
                         • Versioned API as solution




                                                              Galder Zamarreño | galder@jboss.org   19
Tuesday, June 22, 2010
Data Consistency Problem




                                        Galder Zamarreño | galder@jboss.org   20
Tuesday, June 22, 2010
Data Consistency Problem




                                        Galder Zamarreño | galder@jboss.org   21
Tuesday, June 22, 2010
Data Consistency in P2P




                                        Galder Zamarreño | galder@jboss.org   22
Tuesday, June 22, 2010
Hot Rod Versioned API




                                       Galder Zamarreño | galder@jboss.org   23
Tuesday, June 22, 2010
Hot Rod Versioned API




                                       Galder Zamarreño | galder@jboss.org   24
Tuesday, June 22, 2010
Hot Rod Client Intelligence


                         • Different client intelligence levels supported:
                           • Basic clients
                           • Topology-aware clients
                           • Hash-distribution-aware clients




                                                                  Galder Zamarreño | galder@jboss.org   25
Tuesday, June 22, 2010
Infinispan Hash Functions


                         • Infinispan uses language independent hash functions
                           • Used for smart routing
                         • Enables smart client implementations in any language
                         • So far, MurmurHash 2.0 implemented




                                                              Galder Zamarreño | galder@jboss.org   26
Tuesday, June 22, 2010
Topology Information Delivery




                                           Galder Zamarreño | galder@jboss.org   27
Tuesday, June 22, 2010
Topology Information Delivery




                                           Galder Zamarreño | galder@jboss.org   28
Tuesday, June 22, 2010
Hot Rod Implementations

                         • Server implementation included in 4.1.0.Beta2
                           • Uses high performance Netty socket framework
                           • Start via script: startServer.sh -r hotrod
                         • Java client reference implementation also available
                           • Supports all client intelligence levels
                         • Volunteers for writing clients in other languages welcomed :)
                           • If interested, join us at the Cloud Hackfest!



                                                                Galder Zamarreño | galder@jboss.org   29
Tuesday, June 22, 2010
Hot Rod Client Basic API

                         //API entry point, by default it connects to localhost:11311
                         CacheContainer cacheContainer = new RemoteCacheManager();

                         //obtain a handle to the remote default cache
                         Cache<String, String> cache = cacheContainer.getCache();

                         //now add something to the cache and make sure it is there
                         cache.put("car", "ferrari");
                         assert cache.get("car").equals("ferrari");

                         //remove the data
                         cache.remove("car");
                         assert !cache.containsKey("car") : "Value must have been removed!";




                                                                   Galder Zamarreño | galder@jboss.org   30
Tuesday, June 22, 2010
Hot Rod Client Versioned API
                         //API entry point, by default it connects to localhost:11311
                         CacheContainer cacheContainer = new RemoteCacheManager();

                         //obtain a handle to the remote default cache
                         RemoteCache<String, String> remoteCache = cacheContainer.getCache();

                         //put something in the cache
                         remoteCache.put("car", "ferrari");

                         //retrieve the value and the version
                         RemoteCache.VersionedValue value = remoteCache.getVersioned("car");

                         //replace it with a new value passing the version read
                         assert remoteCache.replace("car", "mclaren", value.getVersion());




                                                                   Galder Zamarreño | galder@jboss.org   31
Tuesday, June 22, 2010
Infinispan Servers Comparison

                                                   Client                Smart Load Balancing /
                                        Protocol              Clustered
                                                 Availability           Routing   Failover


                                                  Right now,                       Yes, dynamic via
                           Hot Rod       Binary                Yes       Yes
                                                  only Java                         Hot Rod client

                                                                                      Only with
                           Infinispan
                                          Text      Tons       Yes       No        predefined list of
                          Memcached
                                                                                       servers

                          Infinispan                                                 Any Http Load
                                          Text      Tons       Yes       No
                            REST                                                       Balancer


                                                                      Galder Zamarreño | galder@jboss.org   32
Tuesday, June 22, 2010
The path ahead for Hot Rod


                         • Within Hot Rod:
                           • Clients in other languages
                           • Querying
                           • Event handling...
                         • Submit protocol to a standards body (maybe)




                                                              Galder Zamarreño | galder@jboss.org   33
Tuesday, June 22, 2010
Hot Rod as base for new
                               functionality




                                        Galder Zamarreño | galder@jboss.org   34
Tuesday, June 22, 2010
Demo




                                Galder Zamarreño | galder@jboss.org   35
Tuesday, June 22, 2010
Summary

                         • Infinispan client-server architectures are needed
                         • Hot Rod is Infinispan’s binary client-server protocol
                         • Designed for load balancing, failover and smart routing
                         • Server and java client available now
                         • We need your help to build more clients!
                         • Hot Rod as foundation for interesting new functionality




                                                               Galder Zamarreño | galder@jboss.org   36
Tuesday, June 22, 2010
Questions?

                         • Project: www.infinispan.org
                         • Blog: blog.infinispan.org
                         • Twitter:
                           • @infinispan, @galderz
                           • #infinispan #judcon
                         • Join us at the Cloud Hackfest!!!
                         • JBoss Asylum Podcast recording - panel discussion
                           • Tonight, 8.30pm community room


                                                             Galder Zamarreño | galder@jboss.org   37
Tuesday, June 22, 2010
Learn more about Infinispan!

              •Storing Data on Cloud Infrastructure in a Scalable,
              Durable Manner - Wed 23rd

              •Using Infinispan for High Availability, Load Balancing, &
              Extreme Performance - Thu, 24th

              •How to Stop Worrying & Start Caching in Java - Thu 24th
              •Why RESTful Design for Cloud is Best - Fri 25th


Tuesday, June 22, 2010

More Related Content

What's hot

Overcoming the old ways of working with DevSecOps - Culture, Data, Graph, and...
Overcoming the old ways of working with DevSecOps - Culture, Data, Graph, and...Overcoming the old ways of working with DevSecOps - Culture, Data, Graph, and...
Overcoming the old ways of working with DevSecOps - Culture, Data, Graph, and...Erkang Zheng
 
Tuning kafka pipelines
Tuning kafka pipelinesTuning kafka pipelines
Tuning kafka pipelinesSumant Tambe
 
Practical CephFS with nfs today using OpenStack Manila - Ceph Day Berlin - 12...
Practical CephFS with nfs today using OpenStack Manila - Ceph Day Berlin - 12...Practical CephFS with nfs today using OpenStack Manila - Ceph Day Berlin - 12...
Practical CephFS with nfs today using OpenStack Manila - Ceph Day Berlin - 12...TomBarron
 
A Technical Introduction to WiredTiger
A Technical Introduction to WiredTigerA Technical Introduction to WiredTiger
A Technical Introduction to WiredTigerMongoDB
 
Introduction to OpenStack Trove & Database as a Service
Introduction to OpenStack Trove & Database as a ServiceIntroduction to OpenStack Trove & Database as a Service
Introduction to OpenStack Trove & Database as a ServiceTesora
 
No Easy Breach DerbyCon 2016
No Easy Breach DerbyCon 2016No Easy Breach DerbyCon 2016
No Easy Breach DerbyCon 2016Matthew Dunwoody
 
Platform Engineering for the Modern Oracle World
Platform Engineering for the Modern Oracle WorldPlatform Engineering for the Modern Oracle World
Platform Engineering for the Modern Oracle WorldSimon Haslam
 
Optimizing Kubernetes Resource Requests/Limits for Cost-Efficiency and Latenc...
Optimizing Kubernetes Resource Requests/Limits for Cost-Efficiency and Latenc...Optimizing Kubernetes Resource Requests/Limits for Cost-Efficiency and Latenc...
Optimizing Kubernetes Resource Requests/Limits for Cost-Efficiency and Latenc...Henning Jacobs
 
Introducing KRaft: Kafka Without Zookeeper With Colin McCabe | Current 2022
Introducing KRaft: Kafka Without Zookeeper With Colin McCabe | Current 2022Introducing KRaft: Kafka Without Zookeeper With Colin McCabe | Current 2022
Introducing KRaft: Kafka Without Zookeeper With Colin McCabe | Current 2022HostedbyConfluent
 
Kubernetes Architecture and Introduction
Kubernetes Architecture and IntroductionKubernetes Architecture and Introduction
Kubernetes Architecture and IntroductionStefan Schimanski
 
Microservices Part 3 Service Mesh and Kafka
Microservices Part 3 Service Mesh and KafkaMicroservices Part 3 Service Mesh and Kafka
Microservices Part 3 Service Mesh and KafkaAraf Karsh Hamid
 
PostgreSQL on AWS: Tips & Tricks (and horror stories)
PostgreSQL on AWS: Tips & Tricks (and horror stories)PostgreSQL on AWS: Tips & Tricks (and horror stories)
PostgreSQL on AWS: Tips & Tricks (and horror stories)Alexander Kukushkin
 
Disaster Recovery Plans for Apache Kafka
Disaster Recovery Plans for Apache KafkaDisaster Recovery Plans for Apache Kafka
Disaster Recovery Plans for Apache Kafkaconfluent
 
클라우드 네이티브 IT를 위한 4가지 요소와 상관관계 - DevOps, CI/CD, Container, 그리고 MSA
클라우드 네이티브 IT를 위한 4가지 요소와 상관관계 - DevOps, CI/CD, Container, 그리고 MSA클라우드 네이티브 IT를 위한 4가지 요소와 상관관계 - DevOps, CI/CD, Container, 그리고 MSA
클라우드 네이티브 IT를 위한 4가지 요소와 상관관계 - DevOps, CI/CD, Container, 그리고 MSAVMware Tanzu Korea
 
Kata Container - The Security of VM and The Speed of Container | Yuntong Jin
Kata Container - The Security of VM and The Speed of Container | Yuntong Jin	Kata Container - The Security of VM and The Speed of Container | Yuntong Jin
Kata Container - The Security of VM and The Speed of Container | Yuntong Jin Vietnam Open Infrastructure User Group
 
From Message to Cluster: A Realworld Introduction to Kafka Capacity Planning
From Message to Cluster: A Realworld Introduction to Kafka Capacity PlanningFrom Message to Cluster: A Realworld Introduction to Kafka Capacity Planning
From Message to Cluster: A Realworld Introduction to Kafka Capacity Planningconfluent
 
Service Mesh - Observability
Service Mesh - ObservabilityService Mesh - Observability
Service Mesh - ObservabilityAraf Karsh Hamid
 

What's hot (20)

Overcoming the old ways of working with DevSecOps - Culture, Data, Graph, and...
Overcoming the old ways of working with DevSecOps - Culture, Data, Graph, and...Overcoming the old ways of working with DevSecOps - Culture, Data, Graph, and...
Overcoming the old ways of working with DevSecOps - Culture, Data, Graph, and...
 
Tuning kafka pipelines
Tuning kafka pipelinesTuning kafka pipelines
Tuning kafka pipelines
 
Practical CephFS with nfs today using OpenStack Manila - Ceph Day Berlin - 12...
Practical CephFS with nfs today using OpenStack Manila - Ceph Day Berlin - 12...Practical CephFS with nfs today using OpenStack Manila - Ceph Day Berlin - 12...
Practical CephFS with nfs today using OpenStack Manila - Ceph Day Berlin - 12...
 
Prometheus 101
Prometheus 101Prometheus 101
Prometheus 101
 
A Technical Introduction to WiredTiger
A Technical Introduction to WiredTigerA Technical Introduction to WiredTiger
A Technical Introduction to WiredTiger
 
Introduction to OpenStack Trove & Database as a Service
Introduction to OpenStack Trove & Database as a ServiceIntroduction to OpenStack Trove & Database as a Service
Introduction to OpenStack Trove & Database as a Service
 
No Easy Breach DerbyCon 2016
No Easy Breach DerbyCon 2016No Easy Breach DerbyCon 2016
No Easy Breach DerbyCon 2016
 
Platform Engineering for the Modern Oracle World
Platform Engineering for the Modern Oracle WorldPlatform Engineering for the Modern Oracle World
Platform Engineering for the Modern Oracle World
 
Helm.pptx
Helm.pptxHelm.pptx
Helm.pptx
 
Optimizing Kubernetes Resource Requests/Limits for Cost-Efficiency and Latenc...
Optimizing Kubernetes Resource Requests/Limits for Cost-Efficiency and Latenc...Optimizing Kubernetes Resource Requests/Limits for Cost-Efficiency and Latenc...
Optimizing Kubernetes Resource Requests/Limits for Cost-Efficiency and Latenc...
 
Introducing KRaft: Kafka Without Zookeeper With Colin McCabe | Current 2022
Introducing KRaft: Kafka Without Zookeeper With Colin McCabe | Current 2022Introducing KRaft: Kafka Without Zookeeper With Colin McCabe | Current 2022
Introducing KRaft: Kafka Without Zookeeper With Colin McCabe | Current 2022
 
Kubernetes Architecture and Introduction
Kubernetes Architecture and IntroductionKubernetes Architecture and Introduction
Kubernetes Architecture and Introduction
 
Microservices Part 3 Service Mesh and Kafka
Microservices Part 3 Service Mesh and KafkaMicroservices Part 3 Service Mesh and Kafka
Microservices Part 3 Service Mesh and Kafka
 
PostgreSQL on AWS: Tips & Tricks (and horror stories)
PostgreSQL on AWS: Tips & Tricks (and horror stories)PostgreSQL on AWS: Tips & Tricks (and horror stories)
PostgreSQL on AWS: Tips & Tricks (and horror stories)
 
Disaster Recovery Plans for Apache Kafka
Disaster Recovery Plans for Apache KafkaDisaster Recovery Plans for Apache Kafka
Disaster Recovery Plans for Apache Kafka
 
클라우드 네이티브 IT를 위한 4가지 요소와 상관관계 - DevOps, CI/CD, Container, 그리고 MSA
클라우드 네이티브 IT를 위한 4가지 요소와 상관관계 - DevOps, CI/CD, Container, 그리고 MSA클라우드 네이티브 IT를 위한 4가지 요소와 상관관계 - DevOps, CI/CD, Container, 그리고 MSA
클라우드 네이티브 IT를 위한 4가지 요소와 상관관계 - DevOps, CI/CD, Container, 그리고 MSA
 
Kata Container - The Security of VM and The Speed of Container | Yuntong Jin
Kata Container - The Security of VM and The Speed of Container | Yuntong Jin	Kata Container - The Security of VM and The Speed of Container | Yuntong Jin
Kata Container - The Security of VM and The Speed of Container | Yuntong Jin
 
What Is Helm
 What Is Helm What Is Helm
What Is Helm
 
From Message to Cluster: A Realworld Introduction to Kafka Capacity Planning
From Message to Cluster: A Realworld Introduction to Kafka Capacity PlanningFrom Message to Cluster: A Realworld Introduction to Kafka Capacity Planning
From Message to Cluster: A Realworld Introduction to Kafka Capacity Planning
 
Service Mesh - Observability
Service Mesh - ObservabilityService Mesh - Observability
Service Mesh - Observability
 

Viewers also liked

Comparing the TCO of HP NonStop with Oracle RAC
Comparing the TCO of HP NonStop with Oracle RACComparing the TCO of HP NonStop with Oracle RAC
Comparing the TCO of HP NonStop with Oracle RACThomas Burg
 
Zero-Copy Event-Driven Servers with Netty
Zero-Copy Event-Driven Servers with NettyZero-Copy Event-Driven Servers with Netty
Zero-Copy Event-Driven Servers with NettyDaniel Bimschas
 
The Little Warehouse That Couldn't Or: How We Learned to Stop Worrying and Mo...
The Little Warehouse That Couldn't Or: How We Learned to Stop Worrying and Mo...The Little Warehouse That Couldn't Or: How We Learned to Stop Worrying and Mo...
The Little Warehouse That Couldn't Or: How We Learned to Stop Worrying and Mo...Spark Summit
 
Tachyon-2014-11-21-amp-camp5
Tachyon-2014-11-21-amp-camp5Tachyon-2014-11-21-amp-camp5
Tachyon-2014-11-21-amp-camp5Haoyuan Li
 
Linux Filesystems, RAID, and more
Linux Filesystems, RAID, and moreLinux Filesystems, RAID, and more
Linux Filesystems, RAID, and moreMark Wong
 
Lessons Learned with Spark at the US Patent & Trademark Office-(Christopher B...
Lessons Learned with Spark at the US Patent & Trademark Office-(Christopher B...Lessons Learned with Spark at the US Patent & Trademark Office-(Christopher B...
Lessons Learned with Spark at the US Patent & Trademark Office-(Christopher B...Spark Summit
 
Accelerating Cassandra Workloads on Ceph with All-Flash PCIE SSDS
Accelerating Cassandra Workloads on Ceph with All-Flash PCIE SSDSAccelerating Cassandra Workloads on Ceph with All-Flash PCIE SSDS
Accelerating Cassandra Workloads on Ceph with All-Flash PCIE SSDSCeph Community
 
Advanced Data Retrieval and Analytics with Apache Spark and Openstack Swift
Advanced Data Retrieval and Analytics with Apache Spark and Openstack SwiftAdvanced Data Retrieval and Analytics with Apache Spark and Openstack Swift
Advanced Data Retrieval and Analytics with Apache Spark and Openstack SwiftDaniel Krook
 
Scaling up genomic analysis with ADAM
Scaling up genomic analysis with ADAMScaling up genomic analysis with ADAM
Scaling up genomic analysis with ADAMfnothaft
 
ELC-E 2010: The Right Approach to Minimal Boot Times
ELC-E 2010: The Right Approach to Minimal Boot TimesELC-E 2010: The Right Approach to Minimal Boot Times
ELC-E 2010: The Right Approach to Minimal Boot Timesandrewmurraympc
 
Velox: Models in Action
Velox: Models in ActionVelox: Models in Action
Velox: Models in ActionDan Crankshaw
 
Naïveté vs. Experience
Naïveté vs. ExperienceNaïveté vs. Experience
Naïveté vs. ExperienceMike Fogus
 
SparkR: Enabling Interactive Data Science at Scale
SparkR: Enabling Interactive Data Science at ScaleSparkR: Enabling Interactive Data Science at Scale
SparkR: Enabling Interactive Data Science at Scalejeykottalam
 
SampleClean: Bringing Data Cleaning into the BDAS Stack
SampleClean: Bringing Data Cleaning into the BDAS StackSampleClean: Bringing Data Cleaning into the BDAS Stack
SampleClean: Bringing Data Cleaning into the BDAS Stackjeykottalam
 
A Curious Course on Coroutines and Concurrency
A Curious Course on Coroutines and ConcurrencyA Curious Course on Coroutines and Concurrency
A Curious Course on Coroutines and ConcurrencyDavid Beazley (Dabeaz LLC)
 
Lab 5: Interconnecting a Datacenter using Mininet
Lab 5: Interconnecting a Datacenter using MininetLab 5: Interconnecting a Datacenter using Mininet
Lab 5: Interconnecting a Datacenter using MininetZubair Nabi
 
Spark on Mesos-A Deep Dive-(Dean Wampler and Tim Chen, Typesafe and Mesosphere)
Spark on Mesos-A Deep Dive-(Dean Wampler and Tim Chen, Typesafe and Mesosphere)Spark on Mesos-A Deep Dive-(Dean Wampler and Tim Chen, Typesafe and Mesosphere)
Spark on Mesos-A Deep Dive-(Dean Wampler and Tim Chen, Typesafe and Mesosphere)Spark Summit
 
Best Practices for Virtualizing Apache Hadoop
Best Practices for Virtualizing Apache HadoopBest Practices for Virtualizing Apache Hadoop
Best Practices for Virtualizing Apache HadoopHortonworks
 

Viewers also liked (20)

Comparing the TCO of HP NonStop with Oracle RAC
Comparing the TCO of HP NonStop with Oracle RACComparing the TCO of HP NonStop with Oracle RAC
Comparing the TCO of HP NonStop with Oracle RAC
 
Zero-Copy Event-Driven Servers with Netty
Zero-Copy Event-Driven Servers with NettyZero-Copy Event-Driven Servers with Netty
Zero-Copy Event-Driven Servers with Netty
 
Open Stack Cheat Sheet V1
Open Stack Cheat Sheet V1Open Stack Cheat Sheet V1
Open Stack Cheat Sheet V1
 
The Little Warehouse That Couldn't Or: How We Learned to Stop Worrying and Mo...
The Little Warehouse That Couldn't Or: How We Learned to Stop Worrying and Mo...The Little Warehouse That Couldn't Or: How We Learned to Stop Worrying and Mo...
The Little Warehouse That Couldn't Or: How We Learned to Stop Worrying and Mo...
 
Tachyon-2014-11-21-amp-camp5
Tachyon-2014-11-21-amp-camp5Tachyon-2014-11-21-amp-camp5
Tachyon-2014-11-21-amp-camp5
 
Linux Filesystems, RAID, and more
Linux Filesystems, RAID, and moreLinux Filesystems, RAID, and more
Linux Filesystems, RAID, and more
 
Lessons Learned with Spark at the US Patent & Trademark Office-(Christopher B...
Lessons Learned with Spark at the US Patent & Trademark Office-(Christopher B...Lessons Learned with Spark at the US Patent & Trademark Office-(Christopher B...
Lessons Learned with Spark at the US Patent & Trademark Office-(Christopher B...
 
Accelerating Cassandra Workloads on Ceph with All-Flash PCIE SSDS
Accelerating Cassandra Workloads on Ceph with All-Flash PCIE SSDSAccelerating Cassandra Workloads on Ceph with All-Flash PCIE SSDS
Accelerating Cassandra Workloads on Ceph with All-Flash PCIE SSDS
 
Advanced Data Retrieval and Analytics with Apache Spark and Openstack Swift
Advanced Data Retrieval and Analytics with Apache Spark and Openstack SwiftAdvanced Data Retrieval and Analytics with Apache Spark and Openstack Swift
Advanced Data Retrieval and Analytics with Apache Spark and Openstack Swift
 
Scaling up genomic analysis with ADAM
Scaling up genomic analysis with ADAMScaling up genomic analysis with ADAM
Scaling up genomic analysis with ADAM
 
ELC-E 2010: The Right Approach to Minimal Boot Times
ELC-E 2010: The Right Approach to Minimal Boot TimesELC-E 2010: The Right Approach to Minimal Boot Times
ELC-E 2010: The Right Approach to Minimal Boot Times
 
Velox: Models in Action
Velox: Models in ActionVelox: Models in Action
Velox: Models in Action
 
Naïveté vs. Experience
Naïveté vs. ExperienceNaïveté vs. Experience
Naïveté vs. Experience
 
SparkR: Enabling Interactive Data Science at Scale
SparkR: Enabling Interactive Data Science at ScaleSparkR: Enabling Interactive Data Science at Scale
SparkR: Enabling Interactive Data Science at Scale
 
SampleClean: Bringing Data Cleaning into the BDAS Stack
SampleClean: Bringing Data Cleaning into the BDAS StackSampleClean: Bringing Data Cleaning into the BDAS Stack
SampleClean: Bringing Data Cleaning into the BDAS Stack
 
A Curious Course on Coroutines and Concurrency
A Curious Course on Coroutines and ConcurrencyA Curious Course on Coroutines and Concurrency
A Curious Course on Coroutines and Concurrency
 
OpenStack Cheat Sheet V2
OpenStack Cheat Sheet V2OpenStack Cheat Sheet V2
OpenStack Cheat Sheet V2
 
Lab 5: Interconnecting a Datacenter using Mininet
Lab 5: Interconnecting a Datacenter using MininetLab 5: Interconnecting a Datacenter using Mininet
Lab 5: Interconnecting a Datacenter using Mininet
 
Spark on Mesos-A Deep Dive-(Dean Wampler and Tim Chen, Typesafe and Mesosphere)
Spark on Mesos-A Deep Dive-(Dean Wampler and Tim Chen, Typesafe and Mesosphere)Spark on Mesos-A Deep Dive-(Dean Wampler and Tim Chen, Typesafe and Mesosphere)
Spark on Mesos-A Deep Dive-(Dean Wampler and Tim Chen, Typesafe and Mesosphere)
 
Best Practices for Virtualizing Apache Hadoop
Best Practices for Virtualizing Apache HadoopBest Practices for Virtualizing Apache Hadoop
Best Practices for Virtualizing Apache Hadoop
 

More from Galder Zamarreño

Why RESTful Design for the Cloud is Best
Why RESTful Design for the Cloud is BestWhy RESTful Design for the Cloud is Best
Why RESTful Design for the Cloud is BestGalder Zamarreño
 
Keeping Infinispan In Shape: Highly-Precise, Scalable Data Eviction
Keeping Infinispan In Shape: Highly-Precise, Scalable Data EvictionKeeping Infinispan In Shape: Highly-Precise, Scalable Data Eviction
Keeping Infinispan In Shape: Highly-Precise, Scalable Data EvictionGalder Zamarreño
 
Infinispan Servers: Beyond peer-to-peer data grids
Infinispan Servers: Beyond peer-to-peer data gridsInfinispan Servers: Beyond peer-to-peer data grids
Infinispan Servers: Beyond peer-to-peer data gridsGalder Zamarreño
 

More from Galder Zamarreño (6)

Data Grids vs Databases
Data Grids vs DatabasesData Grids vs Databases
Data Grids vs Databases
 
Data Grids and Data Caching
Data Grids and Data CachingData Grids and Data Caching
Data Grids and Data Caching
 
Ruby-on-Infinispan
Ruby-on-InfinispanRuby-on-Infinispan
Ruby-on-Infinispan
 
Why RESTful Design for the Cloud is Best
Why RESTful Design for the Cloud is BestWhy RESTful Design for the Cloud is Best
Why RESTful Design for the Cloud is Best
 
Keeping Infinispan In Shape: Highly-Precise, Scalable Data Eviction
Keeping Infinispan In Shape: Highly-Precise, Scalable Data EvictionKeeping Infinispan In Shape: Highly-Precise, Scalable Data Eviction
Keeping Infinispan In Shape: Highly-Precise, Scalable Data Eviction
 
Infinispan Servers: Beyond peer-to-peer data grids
Infinispan Servers: Beyond peer-to-peer data gridsInfinispan Servers: Beyond peer-to-peer data grids
Infinispan Servers: Beyond peer-to-peer data grids
 

Recently uploaded

How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...Wes McKinney
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteDianaGray10
 
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsNathaniel Shimoni
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersNicole Novielli
 
Connecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfConnecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfNeo4j
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.Curtis Poe
 
Assure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyesAssure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyesThousandEyes
 
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better StrongerModern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better Strongerpanagenda
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsPixlogix Infotech
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024Lonnie McRorey
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfLoriGlavin3
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Alkin Tezuysal
 
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesHow to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesThousandEyes
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
Decarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityDecarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityIES VE
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxLoriGlavin3
 
Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rick Flair
 

Recently uploaded (20)

How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test Suite
 
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directions
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software Developers
 
Connecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfConnecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdf
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
 
Assure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyesAssure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyes
 
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better StrongerModern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and Cons
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdf
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
 
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesHow to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
Decarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityDecarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a reality
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptx
 
Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...
 

The Hot Rod Protocol in Infinispan

  • 1. JBoss Users & Developers Conference Boston:2010 Tuesday, June 22, 2010
  • 2. Infinispan’s Hot Rod Protocol Galder Zamarreño Senior Software Engineer, Red Hat 21st June 2010 Tuesday, June 22, 2010
  • 3. Who is Galder? • Core R&D engineer on Infinispan and JBoss Cache • Contributor and committer on JBoss AS, Hibernate, JGroups, JBoss Portal,...etc Galder Zamarreño | galder@jboss.org 3 Tuesday, June 22, 2010
  • 4. Agenda • Infinispan peer-to-peer vs Infinispan client-server mode • What is Hot Rod • The motivations behind Hot Rod • Hot Rod implementations and sample code • Infinispan server comparison • The path ahead for Hot Rod • Demo Galder Zamarreño | galder@jboss.org 4 Tuesday, June 22, 2010
  • 5. Infinispan Peer-To-Peer • Infinispan is an in-memory distributed data grid • Traditionally, deployed in peer-to-peer (p2p) mode Galder Zamarreño | galder@jboss.org 5 Tuesday, June 22, 2010
  • 6. Infinispan Client-Server • Sometimes client-server makes more sense • E.g., access from non-JVM environment • No Infinispan running on client Galder Zamarreño | galder@jboss.org 6 Tuesday, June 22, 2010
  • 7. Infinispan Client-Server • P2P data grids do not get along with elastic application tiers Galder Zamarreño | galder@jboss.org 7 Tuesday, June 22, 2010
  • 8. Infinispan Client-Server • Elastic application tiers work better with client-server Galder Zamarreño | galder@jboss.org 8 Tuesday, June 22, 2010
  • 9. Infinispan Client-Server • Multiple applications with data storage needs • Starting a data grid per app is wasteful Galder Zamarreño | galder@jboss.org 9 Tuesday, June 22, 2010
  • 10. Infinispan Client-Server • Data service tier • Keep a pool of data grid nodes as shared storage tier Galder Zamarreño | galder@jboss.org 10 Tuesday, June 22, 2010
  • 11. Infinispan Client-Server • More examples: • Independent tier management • E.g., upgrading AS without bringing down DB • Contrasting JVM tuning needs - CPU vs Memory • Security Galder Zamarreño | galder@jboss.org 11 Tuesday, June 22, 2010
  • 12. Client-Server with Memcached Galder Zamarreño | galder@jboss.org 12 Tuesday, June 22, 2010
  • 13. Client-Server with Infinispan Memcached Galder Zamarreño | galder@jboss.org 13 Tuesday, June 22, 2010
  • 14. Client-Server with Infinispan Memcached Galder Zamarreño | galder@jboss.org 14 Tuesday, June 22, 2010
  • 15. What is Hot Rod? • Hot Rod is Infinispan’s binary client-server protocol • Protocol designed for smart clients, which have the ability to: • Load balance and failover dynamically • Smartly route requests Galder Zamarreño | galder@jboss.org 15 Tuesday, June 22, 2010
  • 16. Client Server with Hot Rod Galder Zamarreño | galder@jboss.org 16 Tuesday, June 22, 2010
  • 17. Client Server with Hot Rod Galder Zamarreño | galder@jboss.org 17 Tuesday, June 22, 2010
  • 18. The Hot Rod Protocol • Transmitted keys and values treated as byte[] • To ensure platform neutral behaviour • Each operation prepended with cache name • Basic operations: • put, get, remove, containsKey, putIfAbsent, replace, clear • stats, ping Galder Zamarreño | galder@jboss.org 18 Tuesday, June 22, 2010
  • 19. Data Consistency • Concurrently accessed structures can suffer data consistency issue • Normally solved with JTA • No JTA in Hot Rod (yet) • Versioned API as solution Galder Zamarreño | galder@jboss.org 19 Tuesday, June 22, 2010
  • 20. Data Consistency Problem Galder Zamarreño | galder@jboss.org 20 Tuesday, June 22, 2010
  • 21. Data Consistency Problem Galder Zamarreño | galder@jboss.org 21 Tuesday, June 22, 2010
  • 22. Data Consistency in P2P Galder Zamarreño | galder@jboss.org 22 Tuesday, June 22, 2010
  • 23. Hot Rod Versioned API Galder Zamarreño | galder@jboss.org 23 Tuesday, June 22, 2010
  • 24. Hot Rod Versioned API Galder Zamarreño | galder@jboss.org 24 Tuesday, June 22, 2010
  • 25. Hot Rod Client Intelligence • Different client intelligence levels supported: • Basic clients • Topology-aware clients • Hash-distribution-aware clients Galder Zamarreño | galder@jboss.org 25 Tuesday, June 22, 2010
  • 26. Infinispan Hash Functions • Infinispan uses language independent hash functions • Used for smart routing • Enables smart client implementations in any language • So far, MurmurHash 2.0 implemented Galder Zamarreño | galder@jboss.org 26 Tuesday, June 22, 2010
  • 27. Topology Information Delivery Galder Zamarreño | galder@jboss.org 27 Tuesday, June 22, 2010
  • 28. Topology Information Delivery Galder Zamarreño | galder@jboss.org 28 Tuesday, June 22, 2010
  • 29. Hot Rod Implementations • Server implementation included in 4.1.0.Beta2 • Uses high performance Netty socket framework • Start via script: startServer.sh -r hotrod • Java client reference implementation also available • Supports all client intelligence levels • Volunteers for writing clients in other languages welcomed :) • If interested, join us at the Cloud Hackfest! Galder Zamarreño | galder@jboss.org 29 Tuesday, June 22, 2010
  • 30. Hot Rod Client Basic API //API entry point, by default it connects to localhost:11311 CacheContainer cacheContainer = new RemoteCacheManager(); //obtain a handle to the remote default cache Cache<String, String> cache = cacheContainer.getCache(); //now add something to the cache and make sure it is there cache.put("car", "ferrari"); assert cache.get("car").equals("ferrari"); //remove the data cache.remove("car"); assert !cache.containsKey("car") : "Value must have been removed!"; Galder Zamarreño | galder@jboss.org 30 Tuesday, June 22, 2010
  • 31. Hot Rod Client Versioned API //API entry point, by default it connects to localhost:11311 CacheContainer cacheContainer = new RemoteCacheManager(); //obtain a handle to the remote default cache RemoteCache<String, String> remoteCache = cacheContainer.getCache(); //put something in the cache remoteCache.put("car", "ferrari"); //retrieve the value and the version RemoteCache.VersionedValue value = remoteCache.getVersioned("car"); //replace it with a new value passing the version read assert remoteCache.replace("car", "mclaren", value.getVersion()); Galder Zamarreño | galder@jboss.org 31 Tuesday, June 22, 2010
  • 32. Infinispan Servers Comparison Client Smart Load Balancing / Protocol Clustered Availability Routing Failover Right now, Yes, dynamic via Hot Rod Binary Yes Yes only Java Hot Rod client Only with Infinispan Text Tons Yes No predefined list of Memcached servers Infinispan Any Http Load Text Tons Yes No REST Balancer Galder Zamarreño | galder@jboss.org 32 Tuesday, June 22, 2010
  • 33. The path ahead for Hot Rod • Within Hot Rod: • Clients in other languages • Querying • Event handling... • Submit protocol to a standards body (maybe) Galder Zamarreño | galder@jboss.org 33 Tuesday, June 22, 2010
  • 34. Hot Rod as base for new functionality Galder Zamarreño | galder@jboss.org 34 Tuesday, June 22, 2010
  • 35. Demo Galder Zamarreño | galder@jboss.org 35 Tuesday, June 22, 2010
  • 36. Summary • Infinispan client-server architectures are needed • Hot Rod is Infinispan’s binary client-server protocol • Designed for load balancing, failover and smart routing • Server and java client available now • We need your help to build more clients! • Hot Rod as foundation for interesting new functionality Galder Zamarreño | galder@jboss.org 36 Tuesday, June 22, 2010
  • 37. Questions? • Project: www.infinispan.org • Blog: blog.infinispan.org • Twitter: • @infinispan, @galderz • #infinispan #judcon • Join us at the Cloud Hackfest!!! • JBoss Asylum Podcast recording - panel discussion • Tonight, 8.30pm community room Galder Zamarreño | galder@jboss.org 37 Tuesday, June 22, 2010
  • 38. Learn more about Infinispan! •Storing Data on Cloud Infrastructure in a Scalable, Durable Manner - Wed 23rd •Using Infinispan for High Availability, Load Balancing, & Extreme Performance - Thu, 24th •How to Stop Worrying & Start Caching in Java - Thu 24th •Why RESTful Design for Cloud is Best - Fri 25th Tuesday, June 22, 2010