SlideShare uma empresa Scribd logo
1 de 76
Baixar para ler offline
Redis to the Rescue?

O’Reilly MySQL Conference
2011-04-13
Who?
• Tim Lossen / @tlossen
• Berlin, Germany
• backend developer at wooga
Redis Intro
Case 1: Monster World
Case 2: Happy Hospital
Discussion
Redis Intro
Case 1: Monster World
Case 2: Happy Hospital
Discussion
What?
• key-value-store
• in-memory database
• “data structure server”
Data Types
• strings (integers)
Data Types
• strings (integers)
• lists
• hashes
Data Types
• strings (integers)
• lists
• hashes
• sets
• sorted sets
flickr.com/photos/atzu/2645776918
Performance
• same for reads / writes
Performance
• same for reads / writes
• 50 K ops/second
 - regular notebook, EC2 instance
Performance
• same for reads / writes
• 50 K ops/second
 - regular notebook, EC2 instance
• 200 K ops/second
 - intel core i7 X980 (3.33 GHz)
Durability
• snapshots
• append-only log
Other Features
• master-slave replication
• virtual memory
• ...
Redis Intro
Case 1: Monster World
Case 2: Happy Hospital
Discussion
Daily Active Users

April   May   June   July   Aug   Sept     Oct      2010
Daily Active Users

April   May   June   July   Aug   Sept     Oct      2010
Challenge
• traffic growing rapidly
Challenge
• traffic growing rapidly
• bottleneck: write throughput
 - EBS volumes pretty slow
Challenge
• traffic growing rapidly
• bottleneck: write throughput
 - EBS volumes pretty slow
• MySQL already sharded
 - 4 x 2 = 8 shards
Idea
• move write-itensive data to Redis
Idea
• move write-itensive data to Redis
• first candidate: inventory
 - integer fields
 - frequently changing
Solution
• inventory = Redis hash
 - atomic increment / decrement !
Solution
• inventory = Redis hash
 - atomic increment / decrement !
• on-demand migration of users
 - with batch roll-up
Results
• quick win
 - implemented in 2 weeks
 - 10% less load on MySQL servers
Results
• quick win
 - implemented in 2 weeks
 - 10% less load on MySQL servers
• decision: move over more data
But ...
• “honeymoon soon over”
But ...
• “honeymoon soon over”
• growing memory usage
  (fragmentation)
 -   servers need periodic “refresh”
 -   replication dance
Current Status
• hybrid setup
 - 4 MySQL master-slave pairs
 - 4 Redis master-slave pairs
Current Status
• hybrid setup
 - 4 MySQL master-slave pairs
 - 4 Redis master-slave pairs
• evaluating other alternatives
 - Riak, Membase
Redis Intro
Case 1: Monster World
Case 2: Happy Hospital
Discussion
Challenge
• expected peak load:
 - 16000 concurrent users
 - 4000 requests/second
 - mostly writes
“Memory is the new Disk,
  Disk is the new Tape.”
             ⎯ Jim Gray
Idea
• use Redis as main database
 - excellent (write) performance
 - virtual memory for capacity
Idea
• use Redis as main database
 - excellent (write) performance
 - virtual memory for capacity
• no sharding = simple operations
Data Model
• user = single Redis hash
 - each entity stored in hash field
   (serialized to JSON)
Data Model
• user = single Redis hash
 - each entity stored in hash field
   (serialized to JSON)
• custom Ruby mapping layer
  (“Remodel”)
{“level”: 4,
1220032045     u1
                       “xp”: 241}

             u1_pets   [“p7”, “p8”]

                       {“pet_type”:
               p7
                          “Cat”}
                       {“pet_type”:
               p8
                          “Dog”}
                       {“level”: 1,
1234599660     u1
                        “xp”: 22}

             u1_pets     [“p3”]

               ...          ...
{“level”: 4,
1220032045     u1
                       “xp”: 241}

             u1_pets   [“p7”, “p8”]

                       {“pet_type”:
               p7
                          “Cat”}
                       {“pet_type”:
               p8
                          “Dog”}
                       {“level”: 1,
1234599660     u1
                        “xp”: 22}

             u1_pets     [“p3”]

               ...          ...
{“level”: 4,
1220032045     u1
                       “xp”: 241}

             u1_pets   [“p7”, “p8”]

                       {“pet_type”:
               p7
                          “Cat”}
                       {“pet_type”:
               p8
                          “Dog”}
                       {“level”: 1,
1234599660     u1
                        “xp”: 22}

             u1_pets     [“p3”]

               ...          ...
{“level”: 4,
1220032045     u1
                       “xp”: 241}

             u1_pets   [“p7”, “p8”]

                       {“pet_type”:
               p7
                          “Cat”}
                       {“pet_type”:
               p8
                          “Dog”}
                       {“level”: 1,
1234599660     u1
                        “xp”: 22}

             u1_pets     [“p3”]

               ...          ...
{“level”: 4,
1220032045     u1
                       “xp”: 241}

             u1_pets   [“p7”, “p8”]

                       {“pet_type”:
               p7
                          “Cat”}
                       {“pet_type”:
               p8
                          “Dog”}
                       {“level”: 1,
1234599660     u1
                        “xp”: 22}

             u1_pets     [“p3”]

               ...          ...
{“level”: 4,
1220032045     u1
                       “xp”: 241}

             u1_pets   [“p7”, “p8”]

                       {“pet_type”:
               p7
                          “Cat”}
                       {“pet_type”:
               p8
                          “Dog”}
                       {“level”: 1,
1234599660     u1
                        “xp”: 22}

             u1_pets     [“p3”]

               ...          ...
Virtual Memory
• server: 24 GB RAM, 500 GB disk
 - can only keep “hot data” in RAM
Virtual Memory
• server: 24 GB RAM, 500 GB disk
 - can only keep “hot data” in RAM
• 380 GB swap file
 - 50 mio. pages, 8 KB each
Dec 2010: Crisis
• memory usage growing fast
Dec 2010: Crisis
• memory usage growing fast
• cannot take snapshots any more
 - cannot start new slaves
Dec 2010: Crisis
• memory usage growing fast
• cannot take snapshots any more
 - cannot start new slaves
• random crashes
Analysis
• Redis virtual memory not
  compatible with:
 -   persistence
 -   replication
Analysis
• Redis virtual memory not
  compatible with:
 -   persistence
 -   replication
• need to implement our own!
Workaround
• “dumper” process
 - tracks active users
 - every 10 minutes, writes them
   into YAML file
ruby   redis   disk
ruby   redis   disk
ruby   redis   disk
ruby   redis   disk
ruby   redis   disk
Workaround
• in case of Redis crash
 - start with empty database
 - restore users on demand from
   YAML files
Real Solution
• Redis “diskstore”
 - keeps all data on disk
 - swaps data into memory as
   needed
Real Solution
• Redis “diskstore”
 - keeps all data on disk
 - swaps data into memory as
   needed
• under development (expected Q2)
Results
• average response time: 10 ms
Results
• average response time: 10 ms
• peak traffic:
 - 1500 requests/second
 - 15000 Redis ops/second
Current Status
• very happy with setup
 - simple, robust, fast
 - easy to operate
• still lots of spare capacity
Redis Intro
Case 1: Monster World
Case 2: Happy Hospital
Discussion
Advantages
• order-of-magnitude performance
 improvement
 -   removes main bottleneck
 -   enables simple architecture
Disadvantages
• main challenge: durability
 - diskstore very promising
Disadvantages
• main challenge: durability
 - diskstore very promising
• no ad-hoc queries
 - think hard about data model
 - hybrid approach?
Conclusion
• Ruby + Redis = killer combo
Q&A
redis.io
github.com/tlossen/remodel
wooga.com/jobs

Mais conteúdo relacionado

Mais procurados

Building Apps with MongoDB
Building Apps with MongoDBBuilding Apps with MongoDB
Building Apps with MongoDBNate Abele
 
Building a Scalable Inbox System with MongoDB and Java
Building a Scalable Inbox System with MongoDB and JavaBuilding a Scalable Inbox System with MongoDB and Java
Building a Scalable Inbox System with MongoDB and Javaantoinegirbal
 
Pinterest的数据库分片架构
Pinterest的数据库分片架构Pinterest的数据库分片架构
Pinterest的数据库分片架构Tommy Chiu
 
Operational Intelligence with MongoDB Webinar
Operational Intelligence with MongoDB WebinarOperational Intelligence with MongoDB Webinar
Operational Intelligence with MongoDB WebinarMongoDB
 
MongoDB @ Frankfurt NoSql User Group
MongoDB @  Frankfurt NoSql User GroupMongoDB @  Frankfurt NoSql User Group
MongoDB @ Frankfurt NoSql User GroupChris Harris
 
Become a Java GC Hero - All Day Devops
Become a Java GC Hero - All Day DevopsBecome a Java GC Hero - All Day Devops
Become a Java GC Hero - All Day DevopsTier1app
 
MongoDB San Francisco 2013: Hash-based Sharding in MongoDB 2.4 presented by B...
MongoDB San Francisco 2013: Hash-based Sharding in MongoDB 2.4 presented by B...MongoDB San Francisco 2013: Hash-based Sharding in MongoDB 2.4 presented by B...
MongoDB San Francisco 2013: Hash-based Sharding in MongoDB 2.4 presented by B...MongoDB
 
Nested and Parent/Child Docs in ElasticSearch
Nested and Parent/Child Docs in ElasticSearchNested and Parent/Child Docs in ElasticSearch
Nested and Parent/Child Docs in ElasticSearchBeyondTrees
 
Introduction to Scala for Java Programmers
Introduction to Scala for Java ProgrammersIntroduction to Scala for Java Programmers
Introduction to Scala for Java Programmerssbjug
 
Scala for the doubters
Scala for the doubtersScala for the doubters
Scala for the doubtersMax Klyga
 
Introduction to MongoDB
Introduction to MongoDBIntroduction to MongoDB
Introduction to MongoDBantoinegirbal
 

Mais procurados (12)

MongoDB at GUL
MongoDB at GULMongoDB at GUL
MongoDB at GUL
 
Building Apps with MongoDB
Building Apps with MongoDBBuilding Apps with MongoDB
Building Apps with MongoDB
 
Building a Scalable Inbox System with MongoDB and Java
Building a Scalable Inbox System with MongoDB and JavaBuilding a Scalable Inbox System with MongoDB and Java
Building a Scalable Inbox System with MongoDB and Java
 
Pinterest的数据库分片架构
Pinterest的数据库分片架构Pinterest的数据库分片架构
Pinterest的数据库分片架构
 
Operational Intelligence with MongoDB Webinar
Operational Intelligence with MongoDB WebinarOperational Intelligence with MongoDB Webinar
Operational Intelligence with MongoDB Webinar
 
MongoDB @ Frankfurt NoSql User Group
MongoDB @  Frankfurt NoSql User GroupMongoDB @  Frankfurt NoSql User Group
MongoDB @ Frankfurt NoSql User Group
 
Become a Java GC Hero - All Day Devops
Become a Java GC Hero - All Day DevopsBecome a Java GC Hero - All Day Devops
Become a Java GC Hero - All Day Devops
 
MongoDB San Francisco 2013: Hash-based Sharding in MongoDB 2.4 presented by B...
MongoDB San Francisco 2013: Hash-based Sharding in MongoDB 2.4 presented by B...MongoDB San Francisco 2013: Hash-based Sharding in MongoDB 2.4 presented by B...
MongoDB San Francisco 2013: Hash-based Sharding in MongoDB 2.4 presented by B...
 
Nested and Parent/Child Docs in ElasticSearch
Nested and Parent/Child Docs in ElasticSearchNested and Parent/Child Docs in ElasticSearch
Nested and Parent/Child Docs in ElasticSearch
 
Introduction to Scala for Java Programmers
Introduction to Scala for Java ProgrammersIntroduction to Scala for Java Programmers
Introduction to Scala for Java Programmers
 
Scala for the doubters
Scala for the doubtersScala for the doubters
Scala for the doubters
 
Introduction to MongoDB
Introduction to MongoDBIntroduction to MongoDB
Introduction to MongoDB
 

Mais de Tim Lossen

Apocalypse Later
Apocalypse LaterApocalypse Later
Apocalypse LaterTim Lossen
 
Embracing Failure
Embracing FailureEmbracing Failure
Embracing FailureTim Lossen
 
Embracing Failure
Embracing FailureEmbracing Failure
Embracing FailureTim Lossen
 
Enemy of the State?
Enemy of the State?Enemy of the State?
Enemy of the State?Tim Lossen
 
All Your Core Are Belong To Us
All Your Core Are Belong To UsAll Your Core Are Belong To Us
All Your Core Are Belong To UsTim Lossen
 
Podularity FTW!
Podularity FTW!Podularity FTW!
Podularity FTW!Tim Lossen
 
Cubic Foot Gardening
Cubic Foot GardeningCubic Foot Gardening
Cubic Foot GardeningTim Lossen
 
Dashboard Mania
Dashboard ManiaDashboard Mania
Dashboard ManiaTim Lossen
 
Event-Stream Processing with Kafka
Event-Stream Processing with KafkaEvent-Stream Processing with Kafka
Event-Stream Processing with KafkaTim Lossen
 
Treasure Island -- Concurrency in JRuby
Treasure Island -- Concurrency in JRubyTreasure Island -- Concurrency in JRuby
Treasure Island -- Concurrency in JRubyTim Lossen
 
Dashboard Mania
Dashboard ManiaDashboard Mania
Dashboard ManiaTim Lossen
 
JRuby vs. Rubinius
JRuby vs. RubiniusJRuby vs. Rubinius
JRuby vs. RubiniusTim Lossen
 
The Smallest Cluster in the World
The Smallest Cluster in the WorldThe Smallest Cluster in the World
The Smallest Cluster in the WorldTim Lossen
 
Announcing Euruko 2011
Announcing Euruko 2011Announcing Euruko 2011
Announcing Euruko 2011Tim Lossen
 
Memory: The New Disk
Memory: The New DiskMemory: The New Disk
Memory: The New DiskTim Lossen
 
Key-Value-Stores -- The Key to Scaling?
Key-Value-Stores -- The Key to Scaling?Key-Value-Stores -- The Key to Scaling?
Key-Value-Stores -- The Key to Scaling?Tim Lossen
 
Cassandra vs. Redis
Cassandra vs. RedisCassandra vs. Redis
Cassandra vs. RedisTim Lossen
 
An Introduction to Membase
An Introduction to MembaseAn Introduction to Membase
An Introduction to MembaseTim Lossen
 

Mais de Tim Lossen (20)

Apocalypse Later
Apocalypse LaterApocalypse Later
Apocalypse Later
 
Embracing Failure
Embracing FailureEmbracing Failure
Embracing Failure
 
Embracing Failure
Embracing FailureEmbracing Failure
Embracing Failure
 
Enemy of the State?
Enemy of the State?Enemy of the State?
Enemy of the State?
 
Beyond Devops
Beyond DevopsBeyond Devops
Beyond Devops
 
All Your Core Are Belong To Us
All Your Core Are Belong To UsAll Your Core Are Belong To Us
All Your Core Are Belong To Us
 
Podularity FTW!
Podularity FTW!Podularity FTW!
Podularity FTW!
 
Cubic Foot Gardening
Cubic Foot GardeningCubic Foot Gardening
Cubic Foot Gardening
 
Dashboard Mania
Dashboard ManiaDashboard Mania
Dashboard Mania
 
Event-Stream Processing with Kafka
Event-Stream Processing with KafkaEvent-Stream Processing with Kafka
Event-Stream Processing with Kafka
 
Into the Void
Into the VoidInto the Void
Into the Void
 
Treasure Island -- Concurrency in JRuby
Treasure Island -- Concurrency in JRubyTreasure Island -- Concurrency in JRuby
Treasure Island -- Concurrency in JRuby
 
Dashboard Mania
Dashboard ManiaDashboard Mania
Dashboard Mania
 
JRuby vs. Rubinius
JRuby vs. RubiniusJRuby vs. Rubinius
JRuby vs. Rubinius
 
The Smallest Cluster in the World
The Smallest Cluster in the WorldThe Smallest Cluster in the World
The Smallest Cluster in the World
 
Announcing Euruko 2011
Announcing Euruko 2011Announcing Euruko 2011
Announcing Euruko 2011
 
Memory: The New Disk
Memory: The New DiskMemory: The New Disk
Memory: The New Disk
 
Key-Value-Stores -- The Key to Scaling?
Key-Value-Stores -- The Key to Scaling?Key-Value-Stores -- The Key to Scaling?
Key-Value-Stores -- The Key to Scaling?
 
Cassandra vs. Redis
Cassandra vs. RedisCassandra vs. Redis
Cassandra vs. Redis
 
An Introduction to Membase
An Introduction to MembaseAn Introduction to Membase
An Introduction to Membase
 

Último

A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?Igalia
 
[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
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessPixlogix Infotech
 
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
 
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 Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
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
 
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
 
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
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024Results
 
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
 
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
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
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
 
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
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 

Último (20)

A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
[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
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your Business
 
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
 
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 Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
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
 
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
 
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
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
 
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...
 
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
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
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...
 
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
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 

Redis to the Rescue?