Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Boosting your applications with distributed caches/datagrids

Boosting your applications with distributed caches/datagrids

Greach Conf 2019, presenting and showcasing Infinispan.
Infinispan is an open-source, Apache 2 license, which current version - in development - is 10, distributed caches and NoSQL in-memory (and persisted) key-value store.

Katia Aresti

March 29, 2019
Tweet

More Decks by Katia Aresti

Other Decks in Programming

Transcript

  1. D A T A G R I D 2019 -

    Infinispan 10 Open-Source, Apache License 2.0
  2. D A T A G R I D 2019 -

    Infinispan 10 Open-Source, Apache License 2.0
  3. 1, Lumos 2, Inflatus 3, Reducto 1, Lumos 2, Inflatus

    3, Reducto 1, Lumos 2, Inflatus 3, Reducto Infinispan - Embedded Potter-1 Spells Potter-2 Spells Potter-3 Spells Replicated
  4. 1, Lumos 2, Inflatus 3, Reducto Distributed Infinispan - Embedded

    Potter-1 Spells Potter-2 Spells Potter-3 Spells
  5. 1, Lumos 2, Inflatus 2, Inflatus 3, Reducto 1, Lumos

    3, Reducto Distributed Infinispan - Embedded Potter-1 Spells Potter-2 Spells Potter-3 Spells
  6. 1, Lumos 2, Inflatus 4, Protego 2, Inflatus 3, Reducto

    4, Protego 1, Lumos 3, Reducto Distributed Infinispan - Embedded Potter-4 Spells Potter-1 Spells Potter-2 Spells Potter-3 Spells
  7. Potter-1 Spells 1, Lumos 2, Inflatus 4, Protego 2, Inflatus

    3, Reducto 4, Protego 1, Lumos 3, Reducto Infinispan - Embedded Potter-3 Spells Potter-2 Spells Potter-4 Spells CH
  8. Potter-1 Spells 1, Lumos 4, Protego 2, Inflatus 3, Reducto

    1, Lumos 3, Reducto Infinispan - Embedded 2, Inflatus 4, Protego Potter-3 Spells Potter-2 Spells Potter-4 Spells CH
  9. Potter-1 Spells 1, Lumos 4, Protego 2, Inflatus 3, Reducto

    1, Lumos 3, Reducto Infinispan - Embedded 2, Inflatus 4, Protego Potter-3 Spells Potter-2 Spells Potter-4 Spells CH
  10. Wizard Death Eater DarkLord Event Bus 2. Consume from address

    NAMED 4. Consume from address ADAVA_KEDAVRA 3. Send to address ADAVA_KEDAVRA 1. Send to address NAMED Voldemort Taboo Curse
  11. Infinispan Client/Server Microservice 1 Microservice 2 hotrod Rest memcache ...

    Microservice 3 MagicData Infinispan Server Cluster
  12. Benefits Data Center 1 Data Center 2 Load Balancer APP

    APP Microservice APP APP Microservice Shared State Shared State Shared State Shared State Young Wizards Old Wizards MagicData MagicData
  13. Hogwarts Magic Creator Hogwarts Magic Web Socket Hogwarts Magic Monitoring

    Potter Web Put Every 3‘ Magic Store Infinispan Server Cluster Continuous Query Magic Store Characters performing magic in Hogwarts WebSocket
  14. Infinispan 10 - New API InfinispanClient infinispan = InfinispanClient.newInfinispan(); KeyValueStore<String,

    Wizard> wizards = infinispan.getKeyValueStore(WIZARDS); CompletionStage<String, Wizard > futureWizard = wizards.get(“xfjd5d”);
  15. Infinispan 10 - New API InfinispanClient infinispan = InfinispanClient.newInfinispan(); KeyValueStore<String,

    Wizard> wizards = infinispan.getKeyValueStore(WIZARDS); CompletionStage<String, Wizard > futureWizard = wizards.get(“xfjd5d”);
  16. Infinispan 10 - Reactive API ContinuousQueryPublisher<String, Person> continuousQueryPublisher = store.findContinuously();

    continuousQueryPublisher.query("FROM org.infinispan.Wizard p where p.address.number = :number") .withQueryParameter("number", "12"); continuousQueryPublisher.subscribe(wizardsSubscriber); List<String> potters = wizardsSubscriber.values().stream() .filter(name -> name.contains(harryPotter.lastName)) .collect(Collectors.toList());
  17. Infinispan 10 - Reactive API ContinuousQueryPublisher<String, Person> continuousQueryPublisher = store.findContinuously();

    continuousQueryPublisher.query("FROM org.infinispan.Wizard p where p.address.number = :number") .withQueryParameter("number", "12"); continuousQueryPublisher.subscribe(wizardsSubscriber); List<String> potters = wizardsSubscriber.values().stream() .filter(name -> name.contains(harryPotter.lastName)) .collect(Collectors.toList());
  18. Latency chain Microservice 1 Microservice 2 Microservice 3 Microservice 2

    Dist cache with 1 owner only should be enough Spells