SlideShare uma empresa Scribd logo
1 de 38
V I J A Y V A N G A P A N D U
@ v i j a y v a n g a p a n d u
v i j a y k u m a r v a n g a p a n d u
W H O A R E W E ?
E H A R M O N Y C R E A T E S
T H E H A P P I E S T ,
M O S T P A S S I O N A T E
A N D M O S T F U L F I L L I N G
R E L A T I O N S H I P S *
* A C C O R D I N G T O A R E C E N T S T U D Y
M A R R I A G E S P E R D A Y
150
questions
Personality
Values
Attributes
Beliefs
M A T C H I N G S Y S T E M
Compatibility Matching System®
C O M P A T I B I L I T Y
M A T C H I N G
A F F I N I T Y M A T C H I N G
M A T C H
D I S T R I B U T I O N
Intellect
Energy
Sociability
Ambition
Kindness
Curiosity
Humor
Spirituality
U S E R U P D A T E S
M A T C H D E L I V E R Y ( V 1 )
M A P - S I D E J O I N S
( T B ) S C O R I N G
V O L D E M O R T
M A T C H D A T A S E R V I C E
M A T C H I N G S Y S T E M
3 0 + M I L L I O N E V E N T S
6 5 + M I L L I O N U S E R S
3 0 + B I L L I O N R E C O R D S
V O L D E M O R T ?
T H A T N A M E
T H A T N A M E
S O U N D S F A M I L I A R
V O L D E M O R T
A U T O
P A R T I T I O N I N G
P L U G G A B L E
S E R I A L I Z A T I O N
A U T O
R E P L I C A T I O N
K E Y - V A L U E D Y N A M O
G O S S I P
U S E R U P D A T E S O ( N ^ 2 )
* U S E R U P D A T E D T H E A D D R E S S
N E E D F O R S C A L A B I L I T Y
V O L D E M O R T
30+ Million Match Events / Day
30+ Billion Match Records
Millions of user generated Events / Day
Low latency user requests
1 . 4 G B / M I N ( 1 4 )
N E E D F O R S C A L A B I L I T Y
G E T M A T C H E S R E S P O N S E
T I M E S
DATA STORE NEEDS
Q U E R I E S
L O W
L A T E N C Y
C R U D
O P E R A T I O N S
F I L T E R I N G
T H R O U G H P U T
4 0 + M I L L I O N
W R I T E S
3 0 + B I L L I O N
R E C O R D S
DATA STORE NEEDS
E A S Y T O
M A I N T A I N
C O N S I S T E N C Y
A V A I L A B L E
P A R T I T I O N
T O L E R A N C E
BREAKING CAP ?
Consistency
Availability
Partition
Tolerance
CA CP
AP
MongoDB
HBase
Redis
Cassandra
DynamoDB
Riak
RDBMS
KAFKA
L A M B D
• Robust and fault-tolerant system
• Serves a wide range of workloads and use cases
• linearly scalable
• Layered Architecture
Batch Layer
Query Layer
Speed Layer
- Nathan Marz
L A M B D
B A T C H L A Y E R
QUERYLAYER
S P E E D / S A V E L A Y E R
M A P - S I D E J O I N S
( T B ) S C O R I N G
M A T C H I N G
S Y S T E M
M E S S A G E
B R O K E R
B A T C H
S T O R A G E
S P E E D
S T O R A G E
MERGE
DATA STORE EVALUATION
C R U D
O P E R A T I O N S
T H R O U G H P U T
4 0 + M I L L I O N
W R I T E S
3 0 + B I L L I O N
R E C O R D S
E A S Y T O
M A I N T A I N
C O N S I S T E N C
Y
P A R T I T I O N
T O L E R A N C E
A V A I L A B I L I T Y
HBASE AS BATCH
STORE
T H R O U G H P U T
4 0 + M I L L I O N
W R I T E S
C O N S I S T E N C Y
A V A I L A B L E
P A R T I T I O N
T O L E R A N C E
KAFKA AS BROKER
C O N S I S T E N C Y
P A R T I T I O N
T O L E R A N C E
A V A I L A B L E
REDIS AS SPEED STORAGE
L O W L A T E N C Y
C R U D
O P E R A T I O N S
E A S Y T O
M A I N T A I N
AS SQL LAYER
Q U E R I E S
I N D E X I N G
T R A N S A C T I O N
S
M U L T I T E N A N C Y
C R U D
O P E R A T I O N SE A S Y T O
M A I N T A I N
PHO LIBRARY
Q U E R I E S
F I L T E R I N G
PHO LIBRARY
CONFIGURATION
ANNOTATE THE ENTITY BEAN
@Entity(value="user_matches")
public class MatchDataFeedItemDto implements Serializable {
@Embedded private MatchCommunicationElement communication;
@Embedded private MatchElement match;
@Property(value = "UID") private long storeUserIdKey;
@Property(value = "MID") private long matchId;
}
REGISTER THE BEAN
<util:list id="entityPropertiesMappings">
<value>com.eharmony.datastore.model.MatchDataFeedItemDto</value>
</util:list>
<bean id="entityPropertiesMappingContext" class="com.eharmony.datastore.mapper.EntityPropertiesMappingContext">
<constructor-arg ref="entityPropertiesMappings"/>
</bean>
<bean id="entityPropertiesResolver" class="com.eharmony.datastore.mapper.EntityPropertiesResolver">
<constructor-arg ref="entityPropertiesMappingContext"/>
</bean>
<bean id="phoenixHBaseQueryTranslator" class="com.eharmony.datastore.hbase.translator.PhoenixHBaseQueryTranslator">
<constructor-arg name="propertyResolver" ref="entityPropertiesResolver" />
</bean>
<bean id="phoenixHBaseQueryExecutor" class="com.eharmony.datastore.hbase.query.executor.PhoenixHBaseQueryExecutor">
<constructor-arg name="queryTranslator" ref="phoenixHBaseQueryTranslator"/>
<constructor-arg name="resultMapper" ref="phoenixProjectedResultMapper" />
</bean>
PHO LIBRARY
QUERY BUILDING
Disjunction disjunction = new Disjunction();
for (int statusFilter : statusFilters) {
disjunction.add(Restrictions.eq("status", statusFilter));
}
QueryBuilder.builderFor(FeedItemDto.class).select()
.add(Restrictions.eq("userId", userId))
.add(Restrictions.gte("spotlightEnd", spotlightEndDate))
.add(disjunction)
.setReturnFields(projection)
.addOrder(orderings)
.setMaxResults(maxResults)
.build();
http://eharmony.github.io/
L A M B D
K A F K A
M A P - S I D E J O I N S
( T B ) S C O R I N G
B A T C H L A Y E R
Q U E R Y L A Y E R
S P E E D / S A V E L A Y E R
M A T C H I N G S Y S T E M
P E R F O R M A N C E
H B A S E C U T O V E R
S A V E M A T C H R E S P O N S E
T I M E S
5 0 % 1 0 0 %
G E T M A T C H E S R E S P O N S E
T I M E S
H B A S E C U T O V E R 1 0 0 %
S O M E I N S I G H T
C H A L L E N G E S
H O T
R E G I O N M I G R A T I O N
metrics.codahale.com
M O N I T O R I N G
http://www.eharmony.com/about/careers/
T H A N K Y O U
Q U E S T I O N S ?
@ v i j a y v a n g a p a n d u

Mais conteúdo relacionado

Mais procurados

10 d bs in 30 minutes
10 d bs in 30 minutes10 d bs in 30 minutes
10 d bs in 30 minutes
David Simons
 

Mais procurados (20)

10 d bs in 30 minutes
10 d bs in 30 minutes10 d bs in 30 minutes
10 d bs in 30 minutes
 
Will 3D printing change everything?
Will 3D printing change everything?Will 3D printing change everything?
Will 3D printing change everything?
 
April Wensel - Crafting Compassionate Code
April Wensel - Crafting Compassionate CodeApril Wensel - Crafting Compassionate Code
April Wensel - Crafting Compassionate Code
 
Quid - The Threat of AI
Quid - The Threat of AIQuid - The Threat of AI
Quid - The Threat of AI
 
DATA FLOWS & NATIONAL SECURITY
DATA FLOWS & NATIONAL SECURITYDATA FLOWS & NATIONAL SECURITY
DATA FLOWS & NATIONAL SECURITY
 
Developers in the New Age of the Web
Developers in the New Age of the WebDevelopers in the New Age of the Web
Developers in the New Age of the Web
 
The App Revolution: Helping or Hurting Productivity in a Corporate Setting
The App Revolution: Helping or Hurting Productivity in a Corporate SettingThe App Revolution: Helping or Hurting Productivity in a Corporate Setting
The App Revolution: Helping or Hurting Productivity in a Corporate Setting
 
VR/AR/XR User Preferences for Privacy
VR/AR/XR User Preferences for PrivacyVR/AR/XR User Preferences for Privacy
VR/AR/XR User Preferences for Privacy
 
Alvis ownership-knowledge
Alvis ownership-knowledgeAlvis ownership-knowledge
Alvis ownership-knowledge
 
Master’s voice: the rise of voice assistants
Master’s voice: the rise of voice assistantsMaster’s voice: the rise of voice assistants
Master’s voice: the rise of voice assistants
 
Toby Scott Startup City
Toby Scott Startup CityToby Scott Startup City
Toby Scott Startup City
 
Pintrace: Distributed tracing @Pinterest
Pintrace: Distributed tracing @PinterestPintrace: Distributed tracing @Pinterest
Pintrace: Distributed tracing @Pinterest
 
Interactive media : information and libraries (#bobcatsss2017)
Interactive media : information and libraries (#bobcatsss2017)Interactive media : information and libraries (#bobcatsss2017)
Interactive media : information and libraries (#bobcatsss2017)
 
How important is my online reputation
How important is my online reputation How important is my online reputation
How important is my online reputation
 
Fashion Guidelines
Fashion Guidelines Fashion Guidelines
Fashion Guidelines
 
A Comparative Study of Data Management Maturity Models
A Comparative Study of Data Management Maturity ModelsA Comparative Study of Data Management Maturity Models
A Comparative Study of Data Management Maturity Models
 
Flipbook
FlipbookFlipbook
Flipbook
 
Agile Marketing For The Real World event - Signal - 6th Nov 2019
Agile Marketing For The Real World event - Signal - 6th Nov 2019Agile Marketing For The Real World event - Signal - 6th Nov 2019
Agile Marketing For The Real World event - Signal - 6th Nov 2019
 
Trends, organisatie impact en social media presentatie
Trends, organisatie impact en social media presentatieTrends, organisatie impact en social media presentatie
Trends, organisatie impact en social media presentatie
 
A Comparative Study of Data Management Maturity Models
A Comparative Study of Data Management Maturity ModelsA Comparative Study of Data Management Maturity Models
A Comparative Study of Data Management Maturity Models
 

Destaque (6)

Five major tips to maximize performance on a 200+ SQL HBase/Phoenix cluster
Five major tips to maximize performance on a 200+ SQL HBase/Phoenix clusterFive major tips to maximize performance on a 200+ SQL HBase/Phoenix cluster
Five major tips to maximize performance on a 200+ SQL HBase/Phoenix cluster
 
Stores behind the Doors @eHarmony
Stores behind the Doors @eHarmonyStores behind the Doors @eHarmony
Stores behind the Doors @eHarmony
 
Swift meetup22june2015
Swift meetup22june2015Swift meetup22june2015
Swift meetup22june2015
 
Letters from the Trenches: Lessons Learned Taking MongoDB to Production
Letters from the Trenches: Lessons Learned Taking MongoDB to ProductionLetters from the Trenches: Lessons Learned Taking MongoDB to Production
Letters from the Trenches: Lessons Learned Taking MongoDB to Production
 
EHarmony dating service business case
EHarmony dating service business caseEHarmony dating service business case
EHarmony dating service business case
 
Anna gray eHarmony sept28
Anna gray eHarmony sept28Anna gray eHarmony sept28
Anna gray eHarmony sept28
 

Semelhante a eHarmony @ Phoenix Con 2016

Newest copy _rockstar solutions
Newest copy _rockstar solutionsNewest copy _rockstar solutions
Newest copy _rockstar solutions
joyousone1104
 
How can documentation become inherently Agile?
How can documentation become inherently Agile?How can documentation become inherently Agile?
How can documentation become inherently Agile?
eBranding Ninja
 

Semelhante a eHarmony @ Phoenix Con 2016 (20)

Newest copy _rockstar solutions
Newest copy _rockstar solutionsNewest copy _rockstar solutions
Newest copy _rockstar solutions
 
Web Development for Managers
Web Development for ManagersWeb Development for Managers
Web Development for Managers
 
Pintrace: Distributed tracing@Pinterest
Pintrace: Distributed tracing@PinterestPintrace: Distributed tracing@Pinterest
Pintrace: Distributed tracing@Pinterest
 
Semantic BDD with ShouldIT?
Semantic BDD with ShouldIT?Semantic BDD with ShouldIT?
Semantic BDD with ShouldIT?
 
Why the org_matters_shorter.jzt.2018sept25
Why the org_matters_shorter.jzt.2018sept25Why the org_matters_shorter.jzt.2018sept25
Why the org_matters_shorter.jzt.2018sept25
 
Competency-Based Learning and Learning Relationship Management #LRM
Competency-Based Learning and Learning Relationship Management #LRMCompetency-Based Learning and Learning Relationship Management #LRM
Competency-Based Learning and Learning Relationship Management #LRM
 
Choosing the right database
Choosing the right databaseChoosing the right database
Choosing the right database
 
FSLSO QTR
FSLSO QTRFSLSO QTR
FSLSO QTR
 
Competency-Based LMS
Competency-Based LMSCompetency-Based LMS
Competency-Based LMS
 
XD Immersive: Jessica Outlaw, Augmented Reality and the Future of Immersive E...
XD Immersive: Jessica Outlaw, Augmented Reality and the Future of Immersive E...XD Immersive: Jessica Outlaw, Augmented Reality and the Future of Immersive E...
XD Immersive: Jessica Outlaw, Augmented Reality and the Future of Immersive E...
 
Chris Wróbel (vRational): Using VR and Imitation Machine Learning Algorithms ...
Chris Wróbel (vRational): Using VR and Imitation Machine Learning Algorithms ...Chris Wróbel (vRational): Using VR and Imitation Machine Learning Algorithms ...
Chris Wróbel (vRational): Using VR and Imitation Machine Learning Algorithms ...
 
SEO orientado a Ventas - DSMVALENCIA 2017
SEO orientado a Ventas - DSMVALENCIA 2017SEO orientado a Ventas - DSMVALENCIA 2017
SEO orientado a Ventas - DSMVALENCIA 2017
 
How can documentation become inherently Agile?
How can documentation become inherently Agile?How can documentation become inherently Agile?
How can documentation become inherently Agile?
 
Gain Maximum Visibility - DEM06 - Anaheim AWS Summit
Gain Maximum Visibility - DEM06 - Anaheim AWS SummitGain Maximum Visibility - DEM06 - Anaheim AWS Summit
Gain Maximum Visibility - DEM06 - Anaheim AWS Summit
 
Domínio: Dividir e conquistar
Domínio: Dividir e conquistarDomínio: Dividir e conquistar
Domínio: Dividir e conquistar
 
PHP Experience 2016 - ROA – Resource Oriented Architecture
PHP Experience 2016 - ROA – Resource Oriented ArchitecturePHP Experience 2016 - ROA – Resource Oriented Architecture
PHP Experience 2016 - ROA – Resource Oriented Architecture
 
A ChatGPT Content Creation Master Class - Leah Faul, 15000 Cubits
A ChatGPT Content Creation Master Class - Leah Faul, 15000 CubitsA ChatGPT Content Creation Master Class - Leah Faul, 15000 Cubits
A ChatGPT Content Creation Master Class - Leah Faul, 15000 Cubits
 
The Evolution and Future of Content Publishing
The Evolution and Future of Content PublishingThe Evolution and Future of Content Publishing
The Evolution and Future of Content Publishing
 
Arte Online Madrid 2017: "Tecnología web para el mundo del arte" por Joe Elliot
Arte Online Madrid 2017: "Tecnología web para el mundo del arte" por Joe ElliotArte Online Madrid 2017: "Tecnología web para el mundo del arte" por Joe Elliot
Arte Online Madrid 2017: "Tecnología web para el mundo del arte" por Joe Elliot
 
HRM KVK en social media
HRM KVK en social mediaHRM KVK en social media
HRM KVK en social media
 

Último

Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
Joaquim Jorge
 
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
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 

Último (20)

🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
HTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesHTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation Strategies
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
Manulife - Insurer Innovation Award 2024
Manulife - Insurer Innovation Award 2024Manulife - Insurer Innovation Award 2024
Manulife - Insurer Innovation Award 2024
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
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
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
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
 
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
 
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
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
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
 
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?
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 

eHarmony @ Phoenix Con 2016

  • 1.
  • 2. V I J A Y V A N G A P A N D U @ v i j a y v a n g a p a n d u v i j a y k u m a r v a n g a p a n d u
  • 3. W H O A R E W E ?
  • 4. E H A R M O N Y C R E A T E S T H E H A P P I E S T , M O S T P A S S I O N A T E A N D M O S T F U L F I L L I N G R E L A T I O N S H I P S * * A C C O R D I N G T O A R E C E N T S T U D Y
  • 5. M A R R I A G E S P E R D A Y
  • 6.
  • 8. M A T C H I N G S Y S T E M Compatibility Matching System® C O M P A T I B I L I T Y M A T C H I N G A F F I N I T Y M A T C H I N G M A T C H D I S T R I B U T I O N
  • 10.
  • 11. U S E R U P D A T E S
  • 12. M A T C H D E L I V E R Y ( V 1 ) M A P - S I D E J O I N S ( T B ) S C O R I N G V O L D E M O R T M A T C H D A T A S E R V I C E M A T C H I N G S Y S T E M 3 0 + M I L L I O N E V E N T S 6 5 + M I L L I O N U S E R S 3 0 + B I L L I O N R E C O R D S
  • 13. V O L D E M O R T ? T H A T N A M E T H A T N A M E S O U N D S F A M I L I A R
  • 14. V O L D E M O R T A U T O P A R T I T I O N I N G P L U G G A B L E S E R I A L I Z A T I O N A U T O R E P L I C A T I O N K E Y - V A L U E D Y N A M O G O S S I P
  • 15. U S E R U P D A T E S O ( N ^ 2 ) * U S E R U P D A T E D T H E A D D R E S S
  • 16. N E E D F O R S C A L A B I L I T Y V O L D E M O R T 30+ Million Match Events / Day 30+ Billion Match Records Millions of user generated Events / Day Low latency user requests 1 . 4 G B / M I N ( 1 4 )
  • 17. N E E D F O R S C A L A B I L I T Y G E T M A T C H E S R E S P O N S E T I M E S
  • 18. DATA STORE NEEDS Q U E R I E S L O W L A T E N C Y C R U D O P E R A T I O N S F I L T E R I N G T H R O U G H P U T 4 0 + M I L L I O N W R I T E S 3 0 + B I L L I O N R E C O R D S
  • 19. DATA STORE NEEDS E A S Y T O M A I N T A I N C O N S I S T E N C Y A V A I L A B L E P A R T I T I O N T O L E R A N C E
  • 20. BREAKING CAP ? Consistency Availability Partition Tolerance CA CP AP MongoDB HBase Redis Cassandra DynamoDB Riak RDBMS KAFKA
  • 21. L A M B D • Robust and fault-tolerant system • Serves a wide range of workloads and use cases • linearly scalable • Layered Architecture Batch Layer Query Layer Speed Layer - Nathan Marz
  • 22. L A M B D B A T C H L A Y E R QUERYLAYER S P E E D / S A V E L A Y E R M A P - S I D E J O I N S ( T B ) S C O R I N G M A T C H I N G S Y S T E M M E S S A G E B R O K E R B A T C H S T O R A G E S P E E D S T O R A G E MERGE
  • 24. C R U D O P E R A T I O N S T H R O U G H P U T 4 0 + M I L L I O N W R I T E S 3 0 + B I L L I O N R E C O R D S E A S Y T O M A I N T A I N C O N S I S T E N C Y P A R T I T I O N T O L E R A N C E A V A I L A B I L I T Y HBASE AS BATCH STORE
  • 25. T H R O U G H P U T 4 0 + M I L L I O N W R I T E S C O N S I S T E N C Y A V A I L A B L E P A R T I T I O N T O L E R A N C E KAFKA AS BROKER
  • 26. C O N S I S T E N C Y P A R T I T I O N T O L E R A N C E A V A I L A B L E REDIS AS SPEED STORAGE L O W L A T E N C Y
  • 27. C R U D O P E R A T I O N S E A S Y T O M A I N T A I N AS SQL LAYER Q U E R I E S I N D E X I N G T R A N S A C T I O N S M U L T I T E N A N C Y
  • 28. C R U D O P E R A T I O N SE A S Y T O M A I N T A I N PHO LIBRARY Q U E R I E S F I L T E R I N G
  • 29. PHO LIBRARY CONFIGURATION ANNOTATE THE ENTITY BEAN @Entity(value="user_matches") public class MatchDataFeedItemDto implements Serializable { @Embedded private MatchCommunicationElement communication; @Embedded private MatchElement match; @Property(value = "UID") private long storeUserIdKey; @Property(value = "MID") private long matchId; } REGISTER THE BEAN <util:list id="entityPropertiesMappings"> <value>com.eharmony.datastore.model.MatchDataFeedItemDto</value> </util:list> <bean id="entityPropertiesMappingContext" class="com.eharmony.datastore.mapper.EntityPropertiesMappingContext"> <constructor-arg ref="entityPropertiesMappings"/> </bean> <bean id="entityPropertiesResolver" class="com.eharmony.datastore.mapper.EntityPropertiesResolver"> <constructor-arg ref="entityPropertiesMappingContext"/> </bean> <bean id="phoenixHBaseQueryTranslator" class="com.eharmony.datastore.hbase.translator.PhoenixHBaseQueryTranslator"> <constructor-arg name="propertyResolver" ref="entityPropertiesResolver" /> </bean> <bean id="phoenixHBaseQueryExecutor" class="com.eharmony.datastore.hbase.query.executor.PhoenixHBaseQueryExecutor"> <constructor-arg name="queryTranslator" ref="phoenixHBaseQueryTranslator"/> <constructor-arg name="resultMapper" ref="phoenixProjectedResultMapper" /> </bean>
  • 30. PHO LIBRARY QUERY BUILDING Disjunction disjunction = new Disjunction(); for (int statusFilter : statusFilters) { disjunction.add(Restrictions.eq("status", statusFilter)); } QueryBuilder.builderFor(FeedItemDto.class).select() .add(Restrictions.eq("userId", userId)) .add(Restrictions.gte("spotlightEnd", spotlightEndDate)) .add(disjunction) .setReturnFields(projection) .addOrder(orderings) .setMaxResults(maxResults) .build();
  • 32. L A M B D K A F K A M A P - S I D E J O I N S ( T B ) S C O R I N G B A T C H L A Y E R Q U E R Y L A Y E R S P E E D / S A V E L A Y E R M A T C H I N G S Y S T E M
  • 33. P E R F O R M A N C E H B A S E C U T O V E R S A V E M A T C H R E S P O N S E T I M E S 5 0 % 1 0 0 % G E T M A T C H E S R E S P O N S E T I M E S H B A S E C U T O V E R 1 0 0 %
  • 34. S O M E I N S I G H T
  • 35. C H A L L E N G E S H O T R E G I O N M I G R A T I O N
  • 36. metrics.codahale.com M O N I T O R I N G
  • 38. T H A N K Y O U Q U E S T I O N S ? @ v i j a y v a n g a p a n d u

Notas do Editor

  1. 60M+ multi-attribute queries daily across 250+ attributes
  2. 60M+ multi-attribute queries daily across 250+ attributes
  3. 60M+ multi-attribute queries daily across 250+ attributes
  4. 60M+ multi-attribute queries daily across 250+ attributes
  5. 60M+ multi-attribute queries daily across 250+ attributes
  6. 60M+ multi-attribute queries daily across 250+ attributes
  7. 60M+ multi-attribute queries daily across 250+ attributes
  8. 60M+ multi-attribute queries daily across 250+ attributes
  9. 60M+ multi-attribute queries daily across 250+ attributes
  10. 60M+ multi-attribute queries daily across 250+ attributes
  11. 60M+ multi-attribute queries daily across 250+ attributes
  12. 60M+ multi-attribute queries daily across 250+ attributes