SlideShare une entreprise Scribd logo
1  sur  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

Contenu connexe

Tendances

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
 

Tendances (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
 

En vedette (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
 

Similaire à 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
 

Similaire à 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
 

Dernier

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
 
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
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
WSO2
 
+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@
 

Dernier (20)

DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamDEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot ModelMcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
 
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
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
 
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
 
Platformless Horizons for Digital Adaptability
Platformless Horizons for Digital AdaptabilityPlatformless Horizons for Digital Adaptability
Platformless Horizons for Digital Adaptability
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
Vector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptxVector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptx
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 
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
 
Understanding the FAA Part 107 License ..
Understanding the FAA Part 107 License ..Understanding the FAA Part 107 License ..
Understanding the FAA Part 107 License ..
 
CNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In PakistanCNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In Pakistan
 
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
 
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
 
+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...
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
 
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
 
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...
 
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, ...
 

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

Notes de l'éditeur

  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