SlideShare una empresa de Scribd logo
1 de 38
Descargar para leer sin conexión
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

Más contenido relacionado

La actualidad más candente

Building robust CDC pipeline with Apache Hudi and Debezium
Building robust CDC pipeline with Apache Hudi and DebeziumBuilding robust CDC pipeline with Apache Hudi and Debezium
Building robust CDC pipeline with Apache Hudi and DebeziumTathastu.ai
 
Distributed Locking in Kubernetes
Distributed Locking in KubernetesDistributed Locking in Kubernetes
Distributed Locking in KubernetesRafał Leszko
 
DoK Talks #91- Leveraging Druid Operator to manage Apache Druid on Kubernetes
DoK Talks #91- Leveraging Druid Operator to manage Apache Druid on KubernetesDoK Talks #91- Leveraging Druid Operator to manage Apache Druid on Kubernetes
DoK Talks #91- Leveraging Druid Operator to manage Apache Druid on KubernetesDoKC
 
Kubernetes day 2 Operations
Kubernetes day 2 OperationsKubernetes day 2 Operations
Kubernetes day 2 OperationsPaul Czarkowski
 
Couchdb + Membase = Couchbase
Couchdb + Membase = CouchbaseCouchdb + Membase = Couchbase
Couchdb + Membase = Couchbaseiammutex
 
Dreaming Infrastructure
Dreaming InfrastructureDreaming Infrastructure
Dreaming Infrastructurekyhpudding
 
AWS와 함께 한 쿠키런 서버 Re-architecting 사례 (Gaming on AWS)
AWS와 함께 한 쿠키런 서버 Re-architecting 사례 (Gaming on AWS)AWS와 함께 한 쿠키런 서버 Re-architecting 사례 (Gaming on AWS)
AWS와 함께 한 쿠키런 서버 Re-architecting 사례 (Gaming on AWS)Brian Hong
 
서버리스 앱 배포 자동화 (김필중, AWS 솔루션즈 아키텍트) :: AWS DevDay2018
서버리스 앱 배포 자동화 (김필중, AWS 솔루션즈 아키텍트) :: AWS DevDay2018서버리스 앱 배포 자동화 (김필중, AWS 솔루션즈 아키텍트) :: AWS DevDay2018
서버리스 앱 배포 자동화 (김필중, AWS 솔루션즈 아키텍트) :: AWS DevDay2018Amazon Web Services Korea
 
Introduction to Kubernetes
Introduction to KubernetesIntroduction to Kubernetes
Introduction to Kubernetesrajdeep
 
User authentication and authorizarion in Kubernetes
User authentication and authorizarion in KubernetesUser authentication and authorizarion in Kubernetes
User authentication and authorizarion in KubernetesNeependra Khare
 
ElastiCache Deep Dive: Best Practices and Usage Patterns - March 2017 AWS Onl...
ElastiCache Deep Dive: Best Practices and Usage Patterns - March 2017 AWS Onl...ElastiCache Deep Dive: Best Practices and Usage Patterns - March 2017 AWS Onl...
ElastiCache Deep Dive: Best Practices and Usage Patterns - March 2017 AWS Onl...Amazon Web Services
 
Secret Management with Hashicorp’s Vault
Secret Management with Hashicorp’s VaultSecret Management with Hashicorp’s Vault
Secret Management with Hashicorp’s VaultAWS Germany
 
Introduction to Kubernetes RBAC
Introduction to Kubernetes RBACIntroduction to Kubernetes RBAC
Introduction to Kubernetes RBACKublr
 
Developing Active-Active Geo-Distributed Apps with Redis
Developing Active-Active Geo-Distributed Apps with RedisDeveloping Active-Active Geo-Distributed Apps with Redis
Developing Active-Active Geo-Distributed Apps with RedisCihan Biyikoglu
 
Spring Caches with Protocol Buffers
Spring Caches with Protocol BuffersSpring Caches with Protocol Buffers
Spring Caches with Protocol BuffersVMware Tanzu
 
Introduction to Grafana Loki
Introduction to Grafana LokiIntroduction to Grafana Loki
Introduction to Grafana LokiJulien Pivotto
 
From cache to in-memory data grid. Introduction to Hazelcast.
From cache to in-memory data grid. Introduction to Hazelcast.From cache to in-memory data grid. Introduction to Hazelcast.
From cache to in-memory data grid. Introduction to Hazelcast.Taras Matyashovsky
 
Spark tunning in Apache Kylin
Spark tunning in Apache KylinSpark tunning in Apache Kylin
Spark tunning in Apache KylinShi Shao Feng
 

La actualidad más candente (20)

Why Kubernetes on Azure
Why Kubernetes on AzureWhy Kubernetes on Azure
Why Kubernetes on Azure
 
Building robust CDC pipeline with Apache Hudi and Debezium
Building robust CDC pipeline with Apache Hudi and DebeziumBuilding robust CDC pipeline with Apache Hudi and Debezium
Building robust CDC pipeline with Apache Hudi and Debezium
 
Distributed Locking in Kubernetes
Distributed Locking in KubernetesDistributed Locking in Kubernetes
Distributed Locking in Kubernetes
 
DoK Talks #91- Leveraging Druid Operator to manage Apache Druid on Kubernetes
DoK Talks #91- Leveraging Druid Operator to manage Apache Druid on KubernetesDoK Talks #91- Leveraging Druid Operator to manage Apache Druid on Kubernetes
DoK Talks #91- Leveraging Druid Operator to manage Apache Druid on Kubernetes
 
Kubernetes day 2 Operations
Kubernetes day 2 OperationsKubernetes day 2 Operations
Kubernetes day 2 Operations
 
Couchdb + Membase = Couchbase
Couchdb + Membase = CouchbaseCouchdb + Membase = Couchbase
Couchdb + Membase = Couchbase
 
Dreaming Infrastructure
Dreaming InfrastructureDreaming Infrastructure
Dreaming Infrastructure
 
AWS와 함께 한 쿠키런 서버 Re-architecting 사례 (Gaming on AWS)
AWS와 함께 한 쿠키런 서버 Re-architecting 사례 (Gaming on AWS)AWS와 함께 한 쿠키런 서버 Re-architecting 사례 (Gaming on AWS)
AWS와 함께 한 쿠키런 서버 Re-architecting 사례 (Gaming on AWS)
 
서버리스 앱 배포 자동화 (김필중, AWS 솔루션즈 아키텍트) :: AWS DevDay2018
서버리스 앱 배포 자동화 (김필중, AWS 솔루션즈 아키텍트) :: AWS DevDay2018서버리스 앱 배포 자동화 (김필중, AWS 솔루션즈 아키텍트) :: AWS DevDay2018
서버리스 앱 배포 자동화 (김필중, AWS 솔루션즈 아키텍트) :: AWS DevDay2018
 
Introduction to Kubernetes
Introduction to KubernetesIntroduction to Kubernetes
Introduction to Kubernetes
 
Fluent Bit: Log Forwarding at Scale
Fluent Bit: Log Forwarding at ScaleFluent Bit: Log Forwarding at Scale
Fluent Bit: Log Forwarding at Scale
 
User authentication and authorizarion in Kubernetes
User authentication and authorizarion in KubernetesUser authentication and authorizarion in Kubernetes
User authentication and authorizarion in Kubernetes
 
ElastiCache Deep Dive: Best Practices and Usage Patterns - March 2017 AWS Onl...
ElastiCache Deep Dive: Best Practices and Usage Patterns - March 2017 AWS Onl...ElastiCache Deep Dive: Best Practices and Usage Patterns - March 2017 AWS Onl...
ElastiCache Deep Dive: Best Practices and Usage Patterns - March 2017 AWS Onl...
 
Secret Management with Hashicorp’s Vault
Secret Management with Hashicorp’s VaultSecret Management with Hashicorp’s Vault
Secret Management with Hashicorp’s Vault
 
Introduction to Kubernetes RBAC
Introduction to Kubernetes RBACIntroduction to Kubernetes RBAC
Introduction to Kubernetes RBAC
 
Developing Active-Active Geo-Distributed Apps with Redis
Developing Active-Active Geo-Distributed Apps with RedisDeveloping Active-Active Geo-Distributed Apps with Redis
Developing Active-Active Geo-Distributed Apps with Redis
 
Spring Caches with Protocol Buffers
Spring Caches with Protocol BuffersSpring Caches with Protocol Buffers
Spring Caches with Protocol Buffers
 
Introduction to Grafana Loki
Introduction to Grafana LokiIntroduction to Grafana Loki
Introduction to Grafana Loki
 
From cache to in-memory data grid. Introduction to Hazelcast.
From cache to in-memory data grid. Introduction to Hazelcast.From cache to in-memory data grid. Introduction to Hazelcast.
From cache to in-memory data grid. Introduction to Hazelcast.
 
Spark tunning in Apache Kylin
Spark tunning in Apache KylinSpark tunning in Apache Kylin
Spark tunning in Apache Kylin
 

Destacado

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
 

Destacado (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
 

Más de 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
 

Más de 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
 

Último

[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Allon Mureinik
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersThousandEyes
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhisoniya singh
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
Google AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAGGoogle AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAGSujit Pal
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 

Último (20)

[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
Google AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAGGoogle AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAG
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 

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