SlideShare una empresa de Scribd logo
1 de 11
Mixing low latency with analytical
workloads for Customer Experience
Management
June 13, 2013
Neil Ferguson
www.causata.com
Causata Overview
• Real-time Offer Management
– Involves predicting something about a
customer based on their profile
– For example, predicting if somebody is
a high-value customer when deciding
whether to offer them a discount
– Typically involves low latency
(< 50 ms) access to an individual
profile
– Both on-premise and hosted
• Analytics
– Involves getting a large set of
profiles matching certain criteria
– For example, finding all of the
people who have spent more than
$100 in the last month
– Involves streaming access to large
amounts of data (typically millions
of rows / sec per node)
– Often ad-hoc
www.causata.com
Some History
• Started building our platform 4 ½ years ago
• Started on MySQL
– Latency too high when reading large profiles
– Write throughput too low with large data sets
• Built our own custom-built data store
–Performed well (it was built for our specific needs)
–Non-standard; maintenance costs
• Moved to HBase last year
– Industry standard; lowered maintenance costs
– Can perform well!
www.causata.com
Our Data
• All data is stored as Events, each of which has the
following:
– A type (for example, “Product Purchase”)
– A timestamp
– An identifier (who the event belongs to)
– A set of attributes, each of which has a type and value(s), for
example:
• “Product Price -> 99.99
• “Product Category” -> “Shoes”, “Footwear”
www.causata.com
Our Storage
• Only raw data is stored (not
pre-aggregated)
• Event table (row-oriented):
– Stores data clustered by user profile
– Used for low latency retrieval of
individual profiles for offer
management, and for bulk queries for
analytics
• Index table (“column-
oriented”):
– Stores data clustered by attribute type
– Used for bulk queries (scanning) for
analytics
• Identity Graph:
– Stores a graph of cross-channel
identifiers for a user profile
– Stored as an in-memory
column family in the Events
table
www.causata.com
Maintaining Locality
• Data locality (with HBase client) gives around a
60% throughput increase
– Single node can scan around 1.6 million rows / second with Region
Server on separate machine
– Same node can scan around 2.5 million rows / second with Region
Server on the local machine
• Custom region splitter: ensures that (where
possible), event tables and index tables are split at
the same point
– Tables divided into buckets, and split at bucket boundaries
• Custom load balancer: ensures that index table data
is balanced to the same RS as event table data
• All upstream services are locality-aware
www.causata.com
Querying Causata
For each customer who has spent more than $100, get product
views in the last week from now:
SELECT S.product_views_in_last_week
FROM Scenarios S
WHERE S.timestamp = now()
AND total_spend > 100;
For each customer who has spent more than $100, get product
views in the last week from when they purchased something:
SELECT S.product_views_in_last_week
FROM Scenarios S, Product_Purchase P
WHERE S.timestamp = P.timestamp
AND S.profile_id = P.profile_id
AND S.total_spend > 100;
www.causata.com
Query Engine
• Raw data stored in HBase, queries typically
performed against aggregated data
– Need to scan billions of rows, and aggregate on the fly
- Many parallel scans performed:
- Across machines (obviously)
- Across regions (and therefore disks)
- Across cores
• Queries can optionally skip non-compacted data
(based on HFile timestamps)
– Allows result recency to be traded for performance
• Some other performance tuning:
- Shortcircuit reads turned on (available from 0.94)
- Multiple columns combined into one
www.causata.com
Parallelism
Single Region Server, local client, all rows returned to client, disk-bound workload
(disk cache cleared before test), ~1 billion rows scanned in total, ~15 bytes per row (on
disk, compressed), 2 x 6 core Intel(R) X5650 @ 2.67GHz, 4 x 10k RPM SAS disks,
48GB RAM
www.causata.com
Request Prioritization
• All requests to HBase go through a single thread pool
• This allows requests to be prioritized according to
sensitivity to latency
• “Real-time” (latency-sensitive) requests are treated
specially
• Real-time request latency is monitored continuously,
and more resources allocated if deadlines are not met
www.causata.com
Questions…
Email: neilf at causata dot com
Web: http://www.causata.com
Twitter: @causata

Más contenido relacionado

Último

+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
?#DUbAI#??##{{(☎️+971_581248768%)**%*]'#abortion pills for sale in dubai@
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Victor Rentea
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
panagenda
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Victor Rentea
 

Último (20)

+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
 
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
 
Ransomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdfRansomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdf
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor Presentation
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024
 
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 

Destacado

Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie Insights
Kurio // The Social Media Age(ncy)
 

Destacado (20)

AI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfAI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
 
Skeleton Culture Code
Skeleton Culture CodeSkeleton Culture Code
Skeleton Culture Code
 
PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024
 
Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)
 
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie Insights
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search Intent
 
How to have difficult conversations
How to have difficult conversations How to have difficult conversations
How to have difficult conversations
 
Introduction to Data Science
Introduction to Data ScienceIntroduction to Data Science
Introduction to Data Science
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best Practices
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project management
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
 
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
 
12 Ways to Increase Your Influence at Work
12 Ways to Increase Your Influence at Work12 Ways to Increase Your Influence at Work
12 Ways to Increase Your Influence at Work
 
ChatGPT webinar slides
ChatGPT webinar slidesChatGPT webinar slides
ChatGPT webinar slides
 
More than Just Lines on a Map: Best Practices for U.S Bike Routes
More than Just Lines on a Map: Best Practices for U.S Bike RoutesMore than Just Lines on a Map: Best Practices for U.S Bike Routes
More than Just Lines on a Map: Best Practices for U.S Bike Routes
 

Causata HBase Deployment Presentation

  • 1. Mixing low latency with analytical workloads for Customer Experience Management June 13, 2013 Neil Ferguson
  • 2. www.causata.com Causata Overview • Real-time Offer Management – Involves predicting something about a customer based on their profile – For example, predicting if somebody is a high-value customer when deciding whether to offer them a discount – Typically involves low latency (< 50 ms) access to an individual profile – Both on-premise and hosted • Analytics – Involves getting a large set of profiles matching certain criteria – For example, finding all of the people who have spent more than $100 in the last month – Involves streaming access to large amounts of data (typically millions of rows / sec per node) – Often ad-hoc
  • 3. www.causata.com Some History • Started building our platform 4 ½ years ago • Started on MySQL – Latency too high when reading large profiles – Write throughput too low with large data sets • Built our own custom-built data store –Performed well (it was built for our specific needs) –Non-standard; maintenance costs • Moved to HBase last year – Industry standard; lowered maintenance costs – Can perform well!
  • 4. www.causata.com Our Data • All data is stored as Events, each of which has the following: – A type (for example, “Product Purchase”) – A timestamp – An identifier (who the event belongs to) – A set of attributes, each of which has a type and value(s), for example: • “Product Price -> 99.99 • “Product Category” -> “Shoes”, “Footwear”
  • 5. www.causata.com Our Storage • Only raw data is stored (not pre-aggregated) • Event table (row-oriented): – Stores data clustered by user profile – Used for low latency retrieval of individual profiles for offer management, and for bulk queries for analytics • Index table (“column- oriented”): – Stores data clustered by attribute type – Used for bulk queries (scanning) for analytics • Identity Graph: – Stores a graph of cross-channel identifiers for a user profile – Stored as an in-memory column family in the Events table
  • 6. www.causata.com Maintaining Locality • Data locality (with HBase client) gives around a 60% throughput increase – Single node can scan around 1.6 million rows / second with Region Server on separate machine – Same node can scan around 2.5 million rows / second with Region Server on the local machine • Custom region splitter: ensures that (where possible), event tables and index tables are split at the same point – Tables divided into buckets, and split at bucket boundaries • Custom load balancer: ensures that index table data is balanced to the same RS as event table data • All upstream services are locality-aware
  • 7. www.causata.com Querying Causata For each customer who has spent more than $100, get product views in the last week from now: SELECT S.product_views_in_last_week FROM Scenarios S WHERE S.timestamp = now() AND total_spend > 100; For each customer who has spent more than $100, get product views in the last week from when they purchased something: SELECT S.product_views_in_last_week FROM Scenarios S, Product_Purchase P WHERE S.timestamp = P.timestamp AND S.profile_id = P.profile_id AND S.total_spend > 100;
  • 8. www.causata.com Query Engine • Raw data stored in HBase, queries typically performed against aggregated data – Need to scan billions of rows, and aggregate on the fly - Many parallel scans performed: - Across machines (obviously) - Across regions (and therefore disks) - Across cores • Queries can optionally skip non-compacted data (based on HFile timestamps) – Allows result recency to be traded for performance • Some other performance tuning: - Shortcircuit reads turned on (available from 0.94) - Multiple columns combined into one
  • 9. www.causata.com Parallelism Single Region Server, local client, all rows returned to client, disk-bound workload (disk cache cleared before test), ~1 billion rows scanned in total, ~15 bytes per row (on disk, compressed), 2 x 6 core Intel(R) X5650 @ 2.67GHz, 4 x 10k RPM SAS disks, 48GB RAM
  • 10. www.causata.com Request Prioritization • All requests to HBase go through a single thread pool • This allows requests to be prioritized according to sensitivity to latency • “Real-time” (latency-sensitive) requests are treated specially • Real-time request latency is monitored continuously, and more resources allocated if deadlines are not met
  • 11. www.causata.com Questions… Email: neilf at causata dot com Web: http://www.causata.com Twitter: @causata