SlideShare une entreprise Scribd logo
1  sur  38
Télécharger pour lire hors ligne
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

Contenu connexe

Tendances

Uber: Kafka Consumer Proxy
Uber: Kafka Consumer ProxyUber: Kafka Consumer Proxy
Uber: Kafka Consumer Proxyconfluent
 
Why My Streaming Job is Slow - Profiling and Optimizing Kafka Streams Apps (L...
Why My Streaming Job is Slow - Profiling and Optimizing Kafka Streams Apps (L...Why My Streaming Job is Slow - Profiling and Optimizing Kafka Streams Apps (L...
Why My Streaming Job is Slow - Profiling and Optimizing Kafka Streams Apps (L...confluent
 
Introduction to Apache Kafka
Introduction to Apache KafkaIntroduction to Apache Kafka
Introduction to Apache KafkaShiao-An Yuan
 
Apache Kafka - Martin Podval
Apache Kafka - Martin PodvalApache Kafka - Martin Podval
Apache Kafka - Martin PodvalMartin Podval
 
RedisConf17- Using Redis at scale @ Twitter
RedisConf17- Using Redis at scale @ TwitterRedisConf17- Using Redis at scale @ Twitter
RedisConf17- Using Redis at scale @ TwitterRedis Labs
 
Apache Kafka Architecture & Fundamentals Explained
Apache Kafka Architecture & Fundamentals ExplainedApache Kafka Architecture & Fundamentals Explained
Apache Kafka Architecture & Fundamentals Explainedconfluent
 
HBase and HDFS: Understanding FileSystem Usage in HBase
HBase and HDFS: Understanding FileSystem Usage in HBaseHBase and HDFS: Understanding FileSystem Usage in HBase
HBase and HDFS: Understanding FileSystem Usage in HBaseenissoz
 
APACHE KAFKA / Kafka Connect / Kafka Streams
APACHE KAFKA / Kafka Connect / Kafka StreamsAPACHE KAFKA / Kafka Connect / Kafka Streams
APACHE KAFKA / Kafka Connect / Kafka StreamsKetan Gote
 
Deep Dive into Building Streaming Applications with Apache Pulsar
Deep Dive into Building Streaming Applications with Apache Pulsar Deep Dive into Building Streaming Applications with Apache Pulsar
Deep Dive into Building Streaming Applications with Apache Pulsar Timothy Spann
 
Under the Hood of a Shard-per-Core Database Architecture
Under the Hood of a Shard-per-Core Database ArchitectureUnder the Hood of a Shard-per-Core Database Architecture
Under the Hood of a Shard-per-Core Database ArchitectureScyllaDB
 
Best Practices for Streaming IoT Data with MQTT and Apache Kafka®
Best Practices for Streaming IoT Data with MQTT and Apache Kafka®Best Practices for Streaming IoT Data with MQTT and Apache Kafka®
Best Practices for Streaming IoT Data with MQTT and Apache Kafka®confluent
 
Managing multiple event types in a single topic with Schema Registry | Bill B...
Managing multiple event types in a single topic with Schema Registry | Bill B...Managing multiple event types in a single topic with Schema Registry | Bill B...
Managing multiple event types in a single topic with Schema Registry | Bill B...HostedbyConfluent
 
Apache Flink Adoption at Shopify
Apache Flink Adoption at ShopifyApache Flink Adoption at Shopify
Apache Flink Adoption at ShopifyYaroslav Tkachenko
 
Kafka Cluster Federation at Uber (Yupeng Fui & Xiaoman Dong, Uber) Kafka Summ...
Kafka Cluster Federation at Uber (Yupeng Fui & Xiaoman Dong, Uber) Kafka Summ...Kafka Cluster Federation at Uber (Yupeng Fui & Xiaoman Dong, Uber) Kafka Summ...
Kafka Cluster Federation at Uber (Yupeng Fui & Xiaoman Dong, Uber) Kafka Summ...confluent
 
Building an open data platform with apache iceberg
Building an open data platform with apache icebergBuilding an open data platform with apache iceberg
Building an open data platform with apache icebergAlluxio, Inc.
 
Kafka 101 and Developer Best Practices
Kafka 101 and Developer Best PracticesKafka 101 and Developer Best Practices
Kafka 101 and Developer Best Practicesconfluent
 

Tendances (20)

Uber: Kafka Consumer Proxy
Uber: Kafka Consumer ProxyUber: Kafka Consumer Proxy
Uber: Kafka Consumer Proxy
 
kafka
kafkakafka
kafka
 
Why My Streaming Job is Slow - Profiling and Optimizing Kafka Streams Apps (L...
Why My Streaming Job is Slow - Profiling and Optimizing Kafka Streams Apps (L...Why My Streaming Job is Slow - Profiling and Optimizing Kafka Streams Apps (L...
Why My Streaming Job is Slow - Profiling and Optimizing Kafka Streams Apps (L...
 
Apache ZooKeeper
Apache ZooKeeperApache ZooKeeper
Apache ZooKeeper
 
Introduction to Apache Kafka
Introduction to Apache KafkaIntroduction to Apache Kafka
Introduction to Apache Kafka
 
Apache Kafka - Martin Podval
Apache Kafka - Martin PodvalApache Kafka - Martin Podval
Apache Kafka - Martin Podval
 
RedisConf17- Using Redis at scale @ Twitter
RedisConf17- Using Redis at scale @ TwitterRedisConf17- Using Redis at scale @ Twitter
RedisConf17- Using Redis at scale @ Twitter
 
Apache Kafka Architecture & Fundamentals Explained
Apache Kafka Architecture & Fundamentals ExplainedApache Kafka Architecture & Fundamentals Explained
Apache Kafka Architecture & Fundamentals Explained
 
HBase and HDFS: Understanding FileSystem Usage in HBase
HBase and HDFS: Understanding FileSystem Usage in HBaseHBase and HDFS: Understanding FileSystem Usage in HBase
HBase and HDFS: Understanding FileSystem Usage in HBase
 
APACHE KAFKA / Kafka Connect / Kafka Streams
APACHE KAFKA / Kafka Connect / Kafka StreamsAPACHE KAFKA / Kafka Connect / Kafka Streams
APACHE KAFKA / Kafka Connect / Kafka Streams
 
Deep Dive into Building Streaming Applications with Apache Pulsar
Deep Dive into Building Streaming Applications with Apache Pulsar Deep Dive into Building Streaming Applications with Apache Pulsar
Deep Dive into Building Streaming Applications with Apache Pulsar
 
Under the Hood of a Shard-per-Core Database Architecture
Under the Hood of a Shard-per-Core Database ArchitectureUnder the Hood of a Shard-per-Core Database Architecture
Under the Hood of a Shard-per-Core Database Architecture
 
Best Practices for Streaming IoT Data with MQTT and Apache Kafka®
Best Practices for Streaming IoT Data with MQTT and Apache Kafka®Best Practices for Streaming IoT Data with MQTT and Apache Kafka®
Best Practices for Streaming IoT Data with MQTT and Apache Kafka®
 
Managing multiple event types in a single topic with Schema Registry | Bill B...
Managing multiple event types in a single topic with Schema Registry | Bill B...Managing multiple event types in a single topic with Schema Registry | Bill B...
Managing multiple event types in a single topic with Schema Registry | Bill B...
 
Apache Flink Adoption at Shopify
Apache Flink Adoption at ShopifyApache Flink Adoption at Shopify
Apache Flink Adoption at Shopify
 
Apache kafka
Apache kafkaApache kafka
Apache kafka
 
Kafka Cluster Federation at Uber (Yupeng Fui & Xiaoman Dong, Uber) Kafka Summ...
Kafka Cluster Federation at Uber (Yupeng Fui & Xiaoman Dong, Uber) Kafka Summ...Kafka Cluster Federation at Uber (Yupeng Fui & Xiaoman Dong, Uber) Kafka Summ...
Kafka Cluster Federation at Uber (Yupeng Fui & Xiaoman Dong, Uber) Kafka Summ...
 
Apache kafka
Apache kafkaApache kafka
Apache kafka
 
Building an open data platform with apache iceberg
Building an open data platform with apache icebergBuilding an open data platform with apache iceberg
Building an open data platform with apache iceberg
 
Kafka 101 and Developer Best Practices
Kafka 101 and Developer Best PracticesKafka 101 and Developer Best Practices
Kafka 101 and Developer Best Practices
 

En vedette

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
 

En vedette (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
 

Plus 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
 

Plus 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
 

Dernier

Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxKatpro Technologies
 
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
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
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
 
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
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
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
 
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
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...Neo4j
 
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
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure servicePooja Nehwal
 
[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
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 

Dernier (20)

Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
 
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
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
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...
 
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
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
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 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
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
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
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
 
[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
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 

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