Se ha denunciado esta presentación.
Utilizamos tu perfil de LinkedIn y tus datos de actividad para personalizar los anuncios y mostrarte publicidad más relevante. Puedes cambiar tus preferencias de publicidad en cualquier momento.
1 de 24

#GeodeSummit - Redis to Geode Adaptor

1

Compartir

Descargar para leer sin conexión

In this session we review the design of the current capabilities of a partially completed feature in Apache Geode - the ability to act as a backend for Redis client applications. We’ll explore potential use cases and future direction that this capability might evolve.

Libros relacionados

Gratis con una prueba de 30 días de Scribd

Ver todo

Audiolibros relacionados

Gratis con una prueba de 30 días de Scribd

Ver todo

#GeodeSummit - Redis to Geode Adaptor

  1. 1. Redis Adaptor Swapnil Bawaskar @sbawaskar (incubating)
  2. 2. • Redis Primer • Need • Implementation • Advantages • Roadmap Agenda 2
  3. 3. Redis Primer 3
  4. 4. Data Structures Supported • Strings • List • Hashes • Sets • SortedSets • HyperLogLog Redis Primer 4
  5. 5. Redis Commands Redis Primer 5 redis> SET key1 "value" OK redis> LPUSH key2 "value" (integer) 1 redis> SADD key3 "value" (integer) 1 redis> TYPE key1 string redis> TYPE key2 list redis> TYPE key3 set redis> In Redis commands • key refers to a data structure name • Command determine the data structure type
  6. 6. Redis Cluster 6
  7. 7. Back in 2014 7
  8. 8. Y U No 8
  9. 9. Geode Implementation 9
  10. 10. Redis Adaptor 10 Redis Client Redis Client Redis Client Redis Client Redis Server
  11. 11. Redis Adaptor 11 Redis Client Redis Client Redis Client Redis Client Geode Server Drop-in Replacement
  12. 12. Start Using GFSH Redis Adaptor - Usage 12 gfsh>start server --name=server1 --redis-port=11211 --redis-bind-address=localhost Creates a region type PARTITION by default • Change Using system property gemfireredis.regiontype gfsh>start server --name=server1 --redis-port=11211 --J=-Dgemfireredis.regiontype=PARTITION_PERSISTENT
  13. 13. • Supports all Redis data structures • Each data structure (except Strings) is backed by a Geode Partitioned Region • which is a horizontally scalable distributed ConcurrentHashMap • We create just one Partitioned Region for storing all Strings • Uses Geode’s OQL and indexes Redis Adaptor - Implementation 13
  14. 14. • One Partitioned Region for Each List • Track “head” and “tail” position in the Partitioned Region itself as special entries Future Exploration • Embed the position in “Value” • Place an index on the position, should help with List Scan Redis Adaptor - List 14 user dataposition Key Value
  15. 15. • One Partitioned Region for Each Sorted Set • key is user data, value is user provided score • Index on score Redis Adaptor - Sorted Set 15 scoreuser data Key Value
  16. 16. Advantages 16
  17. 17. • Scalability • Server side stored procedures • Network Partitioning • WAN replication Advantages 17
  18. 18. • Scale Vertically • Redis server is single threaded • Geode server supports high concurrency • Utilize CPUs on big boxes without having to manage more instances • Scale data structures - Horizontally Scalability 18
  19. 19. • Redis lost 56% writes during Network Partition* • Geode servers fence themselves Network Partition 19 * Aphyr - https://aphyr.com/posts/283-jepsen-redis
  20. 20. • Data can be replicated to other clusters over WAN WAN Replication 20 WAN
  21. 21. Roadmap 21
  22. 22. • Implement “All” Commands • String: SETRANGE (overwrites part of string) • List: BLPOP, BRPOPLPUSH (Block/insert into another) • Sorted Set: ZINTERSTORE (intersect multiple Sorted Sets and store result in another) • etc. • Performance benchmark • Optimize • Geode API for these data structures? Roadmap 22
  23. 23. Questions? 23
  24. 24. 24 Join the Apache Geode Community! • Check out http://geode.incubator.apache.org • Subscribe: user-subscribe@geode.incubator.apache.org • Download: http://geode.incubator.apache.org/releases/

×