Introduction to Infinispan

Introduction to Infinispan

Introduction to Infinispan Tomáš Sýkora JBoss Data Grid Quality Engineering Red Hat Contact: [email protected] IRC: #infinispan on freenode November 21st 2014 1 JBoss 2014 @ CVUT | Tomáš Sýkora Don't work so hard... Beer? Parties? Nah, c'mon... Source: http://bf4central.com/battlefield-4-wallpapers/ 3 JBoss 2014 @ CVUT | Tomáš Sýkora Agenda ● NoSQL world ● What's Infinispan ● Why / When to use it ● How to plug it into your architecture ● Clustering modes ● Client / server access modes ● High level features ● Features in version 5.2, 6.0 ● Brand new features in version 7.0 4 JBoss 2014 @ CVUT | Tomáš Sýkora Why NoSQL? (viral applications / services) From www.couchbase.com/sites/default/files/uploads/all/whitepapers/NoSQL-Whitepaper.pdf 5 JBoss 2014 @ CVUT | Tomáš Sýkora Why NoSQL? (new types of data) From www.couchbase.com/sites/default/files/uploads/all/whitepapers/NoSQL-Whitepaper.pdf 6 JBoss 2014 @ CVUT | Tomáš Sýkora Why NoSQL? (dealing with traffic peaks) From www.couchbase.com/sites/default/files/uploads/all/whitepapers/NoSQL-Whitepaper.pdf 7 JBoss 2014 @ CVUT | Tomáš Sýkora Why NoSQL? (More flexibility?) From www.couchbase.com/sites/default/files/uploads/all/whitepapers/NoSQL-Whitepaper.pdf 8 JBoss 2014 @ CVUT | Tomáš Sýkora Why NoSQL? (Yes, more flexibility please) Developers: OOP vs RDBMS From www.couchbase.com/sites/default/files/uploads/all/whitepapers/NoSQL-Whitepaper.pdf 9 JBoss 2014 @ CVUT | Tomáš Sýkora Why developers are considering NoSQL databases? ● Better application development productivity through a more flexible data model ● Greater ability to scale dynamically to support more users and data ● Improved performance to satisfy expectations of users wanting highly responsive applications From www.couchbase.com/sites/default/files/uploads/all/whitepapers/NoSQL-Whitepaper.pdf 10 JBoss 2014 @ CVUT | Tomáš Sýkora Find your path... ● NoSQL world ● What's Infinispan ● Why / When to use it ● Plug it into your architecture ● Infinispan clustering modes ● Client / server access modes ● High level features ● Features in version 5.2, 6.0 ● Brand new features in version 7.0 11 JBoss 2014 @ CVUT | Tomáš Sýkora What's Infinispan? 12 JBoss 2014 @ CVUT | Tomáš Sýkora 13 JBoss 2014 @ CVUT | Tomáš Sýkora What's Infinispan? ● Open-source datagrid patform ● In-Memory, Schema-less, NoSQL key-value data store ● Distributed cache (offers massive heap) ● Scalable (goal: hundreds of nodes) + Elastic ● Higly available, resilient to node failures ● Concurrent (reads and writes at the same time) ● Transactional ● Queryable (also document store) Red Hat productized version: JBoss Data Grid 14 JBoss 2014 @ CVUT | Tomáš Sýkora What's Infinispan? ● Open-source datagrid patform ● In-Memory, Schema-less, NoSQL key-value data store ● Distributed cache (offers massive heap) ● Scalable (goal: hundreds of nodes) + Elastic ● Higly available, resilient to node failures ● Concurrent (reads and writes at the same time) ● Transactional ● Queryable (also document store) Red Hat productized version: JBoss Data Grid 15 JBoss 2014 @ CVUT | Tomáš Sýkora What's Infinispan? ● Open-source datagrid patform ● In-Memory, Schema-less, NoSQL key-value data store ● Distributed cache (offers massive heap) ● Scalable (goal: hundreds of nodes) + Elastic ● Higly available, resilient to node failures ● Concurrent (reads and writes at the same time) ● Transactional ● Queryable (also document store) Red Hat productized version: JBoss Data Grid 16 JBoss 2014 @ CVUT | Tomáš Sýkora What's Infinispan? ● Open-source datagrid patform ● In-Memory, Schema-less, NoSQL key-value data store ● Distributed cache (offers massive heap) ● Scalable (goal: hundreds of nodes) + Elastic ● Higly available, resilient to node failures ● Concurrent (reads and writes at the same time) ● Transactional ● Queryable (also document store) Red Hat productized version: JBoss Data Grid 17 JBoss 2014 @ CVUT | Tomáš Sýkora What's Infinispan? ● Open-source datagrid patform ● In-Memory, Schema-less, NoSQL key-value data store ● Distributed cache (offers massive heap) ● Scalable (goal: hundreds of nodes) + Elastic ● Higly available, resilient to node failures ● Concurrent (reads and writes at the same time) ● Transactional ● Queryable (also document store) Red Hat productized version: JBoss Data Grid 18 JBoss 2014 @ CVUT | Tomáš Sýkora What's Infinispan? ● Open-source datagrid patform ● In-Memory, Schema-less, NoSQL key-value data store ● Distributed cache (offers massive heap) ● Scalable (goal: hundreds of nodes) + Elastic ● Higly available, resilient to node failures ● Concurrent (reads and writes at the same time) ● Transactional ● Queryable (also document store) Red Hat productized version: JBoss Data Grid 19 JBoss 2014 @ CVUT | Tomáš Sýkora What's Infinispan? ● Open-source datagrid patform ● In-Memory, Schema-less, NoSQL key-value data store ● Distributed cache (offers massive heap) ● Scalable (goal: hundreds of nodes) + Elastic ● Higly available, resilient to node failures ● Concurrent (reads and writes at the same time) ● Transactional ● Queryable (also document store) Red Hat productized version: JBoss Data Grid 20 JBoss 2014 @ CVUT | Tomáš Sýkora For Java users: it's a Map Yes, just a Map – everything else is for free! DefaultCacheManager cacheManager = new DefaultCacheManager("infinispan.xml"); Cache<String, Object> cache = cacheManager.getCache("namedCache"); cache.put("key", "value"); Object value = cache.get("key"); 21 JBoss 2014 @ CVUT | Tomáš Sýkora Configuration in XML <?xml version="1.0" encoding="UTF-8"?> <infinispan/> Read more: http://infinispan.org/docs/7.0.x/user_guide/user_guide.html#_configuring_cache_declaratively 22 JBoss 2014 @ CVUT | Tomáš Sýkora Programmatic Configuration Configuration c = new ConfigurationBuilder() .clustering().cacheMode(CacheMode.REPL_SYNC) .build(); GlobalConfiguration globalConfig = new GlobalConfigurationBuilder() .transport() .clusterName("qa-cluster") .addProperty("configurationFile", "jgroups-tcp.xml") .machineId("qa-machine").rackId("qa-rack") .build(); Read more: http://infinispan.org/docs/7.0.x/user_guide/user_guide.html#_configuring_cache_programmatically 23 JBoss 2014 @ CVUT | Tomáš Sýkora Find your path... ● NoSQL world ● What's Infinispan ● Why / When to use it ● Plug it into your architecture ● Infinispan clustering modes ● Client / server access modes ● High level features ● Features in version 5.2, 6.0 ● Brand new features in version 7.0 24 JBoss 2014 @ CVUT | Tomáš Sýkora Why Datagrid? From http://fhornain.wordpress.com/2012/04/21/jboss-data-grid-when-database-is-very-expensive/ 25 JBoss 2014 @ CVUT | Tomáš Sýkora Why Datagrid? From http://fhornain.wordpress.com/2012/04/21/jboss-data-grid-when-database-is-very-expensive/ 26 JBoss 2014 @ CVUT | Tomáš Sýkora Why Datagrid? (Your business is successful) From http://fhornain.wordpress.com/2012/04/21/jboss-data-grid-when-database-is-very-expensive/ 27 JBoss 2014 @ CVUT | Tomáš Sýkora Why Datagrid? (You are even more successful) From http://fhornain.wordpress.com/2012/04/21/jboss-data-grid-when-database-is-very-expensive/ 28 JBoss 2014 @ CVUT | Tomáš Sýkora Why Datagrid? From http://fhornain.wordpress.com/2012/04/21/jboss-data-grid-when-database-is-very-expensive/ 29 JBoss 2014 @ CVUT | Tomáš Sýkora Find your path... ● NoSQL world ● What's Infinispan ● Why / When to use it ● Plug it into your architecture ● Infinispan clustering modes ● Client / server access modes ● High level features ● Features in version 5.2, 6.0 ● Brand new features in version 7.0 30 JBoss 2014 @ CVUT | Tomáš Sýkora How to plug it into your architecture ? 31 JBoss 2014 @ CVUT | Tomáš Sýkora Modes of access / usage ● Embedded (Library, In-VM mode) ● Remote (Client/Server mode) ● REST (HTTP) ● Hot Rod ● Memcached ● Websocket ● OData 32 JBoss 2014 @ CVUT | Tomáš Sýkora Embedded (In-VM) mode - clustered 34 JBoss 2014 @ CVUT | Tomáš Sýkora Embedded (In-VM) mode - clustered From http://fhornain.wordpress.com/2012/04/21/jboss-data-grid-when-database-is-very-expensive/ 35 JBoss 2014 @ CVUT | Tomáš Sýkora Client / Server mode Protocols ● REST ● Hot Rod ● Memcached ● Websocket ● OData 36 JBoss 2014 @ CVUT | Tomáš Sýkora Client / Server mode - clustered 37 JBoss 2014 @ CVUT | Tomáš Sýkora Client / Server mode - clustered From http://fhornain.wordpress.com/2012/04/21/jboss-data-grid-when-database-is-very-expensive/ 38 JBoss 2014 @ CVUT | Tomáš Sýkora Client / Server mode - clustered ● Independent tier management ● Independently deploy new app version 39 JBoss 2014 @ CVUT | Tomáš Sýkora Client / Server mode - clustered Big deal! JGroups Toolkit for reliable messaging 40 JBoss 2014 @ CVUT | Tomáš Sýkora What clustering / resilience / elasticity means 41 JBoss 2014 @ CVUT | Tomáš Sýkora Find your path... ● NoSQL world ● What's Infinispan ● Why / When to use it ● Plug it into your architecture ● Infinispan clustering modes ● Client / server access modes ● High level features ● Features in version 5.2, 6.0 ● Brand new features in version 7.0 42 JBoss 2014 @ CVUT | Tomáš Sýkora Clustering modes ● Local - no clustering ● unaware of other instances on network ● Replication – each node contains all the entries ● Distribution – each entry is on x nodes ● 1 <= x <= Number of nodes ● Invalidation – for use with shared cache store 43 JBoss 2014 @ CVUT | Tomáš Sýkora Replication mode 44 JBoss 2014 @ CVUT | Tomáš Sýkora Replication mode ● Advantages ● N node cluster tolerates N-1 failures ● Read friendly – no need to fetch data from owner node ● Instant scale-in, no state transfer on leave ● Disadvantages ● Write unfriendly, put broadcast to every

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    88 Page
  • File Size
    -

Download

Channel Download Status
Express Download Enable

Copyright

We respect the copyrights and intellectual property rights of all users. All uploaded documents are either original works of the uploader or authorized works of the rightful owners.

  • Not to be reproduced or distributed without explicit permission.
  • Not used for commercial purposes outside of approved use cases.
  • Not used to infringe on the rights of the original creators.
  • If you believe any content infringes your copyright, please contact us immediately.

Support

For help with questions, suggestions, or problems, please contact us