SlideShare a Scribd company logo
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

Event Sourcing & CQRS, Kafka, Rabbit MQ
Event Sourcing & CQRS, Kafka, Rabbit MQEvent Sourcing & CQRS, Kafka, Rabbit MQ
Event Sourcing & CQRS, Kafka, Rabbit MQ
Araf Karsh Hamid
 
Introduction to Kafka Streams
Introduction to Kafka StreamsIntroduction to Kafka Streams
Introduction to Kafka Streams
Guozhang Wang
 
Cloud Monitoring tool Grafana
Cloud Monitoring  tool Grafana Cloud Monitoring  tool Grafana
Cloud Monitoring tool Grafana
Dhrubaji Mandal ♛
 
Apache Flink and what it is used for
Apache Flink and what it is used forApache Flink and what it is used for
Apache Flink and what it is used for
Aljoscha Krettek
 
Schema Registry 101 with Bill Bejeck | Kafka Summit London 2022
Schema Registry 101 with Bill Bejeck | Kafka Summit London 2022Schema Registry 101 with Bill Bejeck | Kafka Summit London 2022
Schema Registry 101 with Bill Bejeck | Kafka Summit London 2022
HostedbyConfluent
 
Apache Arrow Flight Overview
Apache Arrow Flight OverviewApache Arrow Flight Overview
Apache Arrow Flight Overview
Jacques Nadeau
 
Datadog- Monitoring In Motion
Datadog- Monitoring In Motion Datadog- Monitoring In Motion
Datadog- Monitoring In Motion
Cloud Native Apps SF
 
Kafka Streams: What it is, and how to use it?
Kafka Streams: What it is, and how to use it?Kafka Streams: What it is, and how to use it?
Kafka Streams: What it is, and how to use it?
confluent
 
Service Mesh - Observability
Service Mesh - ObservabilityService Mesh - Observability
Service Mesh - Observability
Araf Karsh Hamid
 
Processing Semantically-Ordered Streams in Financial Services
Processing Semantically-Ordered Streams in Financial ServicesProcessing Semantically-Ordered Streams in Financial Services
Processing Semantically-Ordered Streams in Financial Services
Flink Forward
 
Kafka Streams State Stores Being Persistent
Kafka Streams State Stores Being PersistentKafka Streams State Stores Being Persistent
Kafka Streams State Stores Being Persistent
confluent
 
Squirreling Away $640 Billion: How Stripe Leverages Flink for Change Data Cap...
Squirreling Away $640 Billion: How Stripe Leverages Flink for Change Data Cap...Squirreling Away $640 Billion: How Stripe Leverages Flink for Change Data Cap...
Squirreling Away $640 Billion: How Stripe Leverages Flink for Change Data Cap...
Flink Forward
 
Data integration with Apache Kafka
Data integration with Apache KafkaData integration with Apache Kafka
Data integration with Apache Kafka
confluent
 
Unique ID generation in distributed systems
Unique ID generation in distributed systemsUnique ID generation in distributed systems
Unique ID generation in distributed systems
Dave Gardner
 
Apache Spark Architecture
Apache Spark ArchitectureApache Spark Architecture
Apache Spark Architecture
Alexey Grishchenko
 
gRPC Design and Implementation
gRPC Design and ImplementationgRPC Design and Implementation
gRPC Design and Implementation
Varun Talwar
 
A Thorough Comparison of Delta Lake, Iceberg and Hudi
A Thorough Comparison of Delta Lake, Iceberg and HudiA Thorough Comparison of Delta Lake, Iceberg and Hudi
A Thorough Comparison of Delta Lake, Iceberg and Hudi
Databricks
 
Big data real time architectures
Big data real time architecturesBig data real time architectures
Big data real time architectures
Daniel Marcous
 
Performance Tuning RocksDB for Kafka Streams' State Stores (Dhruba Borthakur,...
Performance Tuning RocksDB for Kafka Streams' State Stores (Dhruba Borthakur,...Performance Tuning RocksDB for Kafka Streams' State Stores (Dhruba Borthakur,...
Performance Tuning RocksDB for Kafka Streams' State Stores (Dhruba Borthakur,...
confluent
 
Streaming all over the world Real life use cases with Kafka Streams
Streaming all over the world  Real life use cases with Kafka StreamsStreaming all over the world  Real life use cases with Kafka Streams
Streaming all over the world Real life use cases with Kafka Streams
confluent
 

What's hot (20)

Event Sourcing & CQRS, Kafka, Rabbit MQ
Event Sourcing & CQRS, Kafka, Rabbit MQEvent Sourcing & CQRS, Kafka, Rabbit MQ
Event Sourcing & CQRS, Kafka, Rabbit MQ
 
Introduction to Kafka Streams
Introduction to Kafka StreamsIntroduction to Kafka Streams
Introduction to Kafka Streams
 
Cloud Monitoring tool Grafana
Cloud Monitoring  tool Grafana Cloud Monitoring  tool Grafana
Cloud Monitoring tool Grafana
 
Apache Flink and what it is used for
Apache Flink and what it is used forApache Flink and what it is used for
Apache Flink and what it is used for
 
Schema Registry 101 with Bill Bejeck | Kafka Summit London 2022
Schema Registry 101 with Bill Bejeck | Kafka Summit London 2022Schema Registry 101 with Bill Bejeck | Kafka Summit London 2022
Schema Registry 101 with Bill Bejeck | Kafka Summit London 2022
 
Apache Arrow Flight Overview
Apache Arrow Flight OverviewApache Arrow Flight Overview
Apache Arrow Flight Overview
 
Datadog- Monitoring In Motion
Datadog- Monitoring In Motion Datadog- Monitoring In Motion
Datadog- Monitoring In Motion
 
Kafka Streams: What it is, and how to use it?
Kafka Streams: What it is, and how to use it?Kafka Streams: What it is, and how to use it?
Kafka Streams: What it is, and how to use it?
 
Service Mesh - Observability
Service Mesh - ObservabilityService Mesh - Observability
Service Mesh - Observability
 
Processing Semantically-Ordered Streams in Financial Services
Processing Semantically-Ordered Streams in Financial ServicesProcessing Semantically-Ordered Streams in Financial Services
Processing Semantically-Ordered Streams in Financial Services
 
Kafka Streams State Stores Being Persistent
Kafka Streams State Stores Being PersistentKafka Streams State Stores Being Persistent
Kafka Streams State Stores Being Persistent
 
Squirreling Away $640 Billion: How Stripe Leverages Flink for Change Data Cap...
Squirreling Away $640 Billion: How Stripe Leverages Flink for Change Data Cap...Squirreling Away $640 Billion: How Stripe Leverages Flink for Change Data Cap...
Squirreling Away $640 Billion: How Stripe Leverages Flink for Change Data Cap...
 
Data integration with Apache Kafka
Data integration with Apache KafkaData integration with Apache Kafka
Data integration with Apache Kafka
 
Unique ID generation in distributed systems
Unique ID generation in distributed systemsUnique ID generation in distributed systems
Unique ID generation in distributed systems
 
Apache Spark Architecture
Apache Spark ArchitectureApache Spark Architecture
Apache Spark Architecture
 
gRPC Design and Implementation
gRPC Design and ImplementationgRPC Design and Implementation
gRPC Design and Implementation
 
A Thorough Comparison of Delta Lake, Iceberg and Hudi
A Thorough Comparison of Delta Lake, Iceberg and HudiA Thorough Comparison of Delta Lake, Iceberg and Hudi
A Thorough Comparison of Delta Lake, Iceberg and Hudi
 
Big data real time architectures
Big data real time architecturesBig data real time architectures
Big data real time architectures
 
Performance Tuning RocksDB for Kafka Streams' State Stores (Dhruba Borthakur,...
Performance Tuning RocksDB for Kafka Streams' State Stores (Dhruba Borthakur,...Performance Tuning RocksDB for Kafka Streams' State Stores (Dhruba Borthakur,...
Performance Tuning RocksDB for Kafka Streams' State Stores (Dhruba Borthakur,...
 
Streaming all over the world Real life use cases with Kafka Streams
Streaming all over the world  Real life use cases with Kafka StreamsStreaming all over the world  Real life use cases with Kafka Streams
Streaming all over the world Real life use cases with Kafka Streams
 

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 RAC
Thomas 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-camp5
Haoyuan Li
 
Linux Filesystems, RAID, and more
Linux Filesystems, RAID, and moreLinux Filesystems, RAID, and more
Linux Filesystems, RAID, and more
Mark 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 SSDS
Ceph 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 Swift
Daniel Krook
 
Scaling up genomic analysis with ADAM
Scaling up genomic analysis with ADAMScaling up genomic analysis with ADAM
Scaling up genomic analysis with ADAM
fnothaft
 
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
andrewmurraympc
 
Velox: Models in Action
Velox: Models in ActionVelox: Models in Action
Velox: Models in Action
Dan Crankshaw
 
Naïveté vs. Experience
Naïveté vs. ExperienceNaïveté vs. Experience
Naïveté vs. Experience
Mike 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 Scale
jeykottalam
 
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
jeykottalam
 
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
David 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 Mininet
Zubair 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 Hadoop
Hortonworks
 

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

Ruby-on-Infinispan
Ruby-on-InfinispanRuby-on-Infinispan
Ruby-on-Infinispan
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 Best
Galder 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 Eviction
Galder 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 grids
Galder 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

The Future of Platform Engineering
The Future of Platform EngineeringThe Future of Platform Engineering
The Future of Platform Engineering
Jemma Hussein Allen
 
GraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge GraphGraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge Graph
Guy Korland
 
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
James Anderson
 
PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)
Ralf Eggert
 
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
Sri Ambati
 
Assuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyesAssuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyes
ThousandEyes
 
Leading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdfLeading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdf
OnBoard
 
Knowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and backKnowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and back
Elena Simperl
 
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdfFIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance
 
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdfFIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance
 
Connector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a buttonConnector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a button
DianaGray10
 
UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4
DianaGray10
 
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 previewState of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
Prayukth K V
 
UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3
DianaGray10
 
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdfFIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance
 
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMsTo Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
Paul Groth
 
Accelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish CachingAccelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish Caching
Thijs Feryn
 
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
UiPathCommunity
 
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
Product School
 
How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...
Product School
 

Recently uploaded (20)

The Future of Platform Engineering
The Future of Platform EngineeringThe Future of Platform Engineering
The Future of Platform Engineering
 
GraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge GraphGraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge Graph
 
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
 
PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)
 
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
 
Assuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyesAssuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyes
 
Leading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdfLeading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdf
 
Knowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and backKnowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and back
 
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdfFIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
 
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdfFIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
 
Connector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a buttonConnector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a button
 
UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4
 
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 previewState of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
 
UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3
 
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdfFIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
 
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMsTo Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
 
Accelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish CachingAccelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish Caching
 
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
 
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
 
How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...
 

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