SlideShare a Scribd company logo
1 of 26
Endeca Performance and Scalability
Hard-won lessons from the field – Peter Curran, Founder Cirrus10
art by Liam Brazier, buy it here! liambrazier.com/Shop
Seattle HQ, distributed team
~50 resources (25 EE + subs)
All onshore labor
Endeca or Oracle partner since 2010
End-to-end implementations
Relevance tuning
Architecture & process analysis
Program roadmaps
Upgrades & migrations
Time & materials
Fixed fee with risk premium
Cost + bonus
Easy contracts
ROI guarantees
~70 Endeca customers
B2C and B2B
CMS Gurus
Marquee Presenter at OOW 2014
100% Referenceable
MDEX Performance
Update Performance
Case study: Auto Parts
ITL
Index ingestion
• Forge
• CAS
MDEX
The index itself
• Dgraphs
Assembler
Application interface
• Service / Process
Diagram here:
bit.ly/1PvJYFX
The primary consideration
What do I need tools for?
• Why did it break?
• Will it break this year?
Tools
1. MDEX Request Logs
2. Request Log Analyzer (Cheetah)
3. MDEX Perf – Load Testing (Eneperf)
Art by Liam Brazier+
What is the request log?
• MDEX’s main log file – dumps every query to a log
• Includes query latency and time of day
Why is it useful?
• Parse it to see what the heck happened
• Replay or spoof it up to answer “what if”
Where do you find it?
• <working-dir>/logs/dgraphs/Dgraph1/
Cheetah is an MDEX Log analysis tool
Reports performance stats
Helps identify trends
Downloadable from Oracle
MDEXperf is a load-testing utility
• Ships with Endeca
What is MDEX load testing?
• Send simulated user traffic against MDEX and site
• Learn how site performs under specific traffic conditions
Keys to a successful load test…
• Stress system in way that represents expected production usage
• Monitor performance during and after each test iteration
• Test all scenarios, functionality, and technology
Avoid default setNavAllRefinements /
allgroups=1 if possible
Exact, Phrase, and Proximity
relevance ranking modules are
expensive
Response sizes > 500kb
Use record filters before text
searches
Avoid large flat dimensions
Art by Liam Brazier+
Wildcarding
Interactions of large thesaurus +
spelling + stemming on large
datasets
Frequent Partial Updates
Not enough physical RAM on
server
Art by Liam Brazier+
The primary consideration 2 years after you implement
Is a hot dog a sandwich?
Is a pizza an open-faced sandwich?
Can an American city be truly great
w/o a signature sandwich?
• If so: Los Angeles? Is a taco a sandwich?
• New Orleans: Po’ Boy or Muffaletta?
• Which city should claim the hot dog?
• Correct answer: Chicago
Forge Dgidx
Index
Distribution
Join data sources and
manipulate the data
(Step 1)
Generate index file
(Step 2)
Distribute the files
across Dgraph
(Step 3)
Total Index Time
Size of the index
• 1,000,000+ records
Type of records in index
• Catalog, Web Content, Social
Content, Analytical Content
Features and functionality
• Store inventory, Store level pricing
• Compatibility (Fitment)
• Endeca Recommendations
Data Model
• Wide record vs. RRN
• Internationalization
• Type of joins
Data Manipulations
• Data cleanups - Java/Perl/XML
manipulators
Components Usage
• Traditional Forge
• CAS (Multi-threaded)
• De-normalized model
• Adds store inventory to
the product record
• Joins happen at indexing
• Normalized model
• Inventory stored in separate
record from products
• Joins happen at query time
• PRO: Fast queries
• CON: Slow updates
• CON: More back-end code
• PRO: Fast updates
• CON: Slower-ish queries
• CON: More front-end code
Use a real ETL tool if you can
Use record cache when joining
the data sources in the pipeline.
CAS is multi threaded, but it’s not
as flexible as traditional Forge
Beware Forge left joins
Dgidx is multi-threaded.
Configure optimal threads to
hasten this step.
Art by Liam Brazier+
Use Dgidx flags carefully,
specifying many pre-computed
sorts can affect the performance.
If index distribution time is slow,
consider rolling your own
approach to compress the index
before distributing it
Art by Liam Brazier+
Major Auto Parts Company
3 major sites live since 2003
Originally a bridged multi-MDEX
Large index due to fitment
Re-engineered for wide records
• <100ms MDEX response time
• 3 updates/wk at many hours each
• Tried partial updates but failed
Art by Liam Brazier
• 110,000,000 very wide records
• 4,500,000 narrow records
Endeca Performance Considerations
Endeca Performance Considerations
Endeca Performance Considerations
Endeca Performance Considerations

More Related Content

What's hot

Spsbe 18-04-15 - should i move my network folders to office 365
Spsbe   18-04-15 - should i move my network folders to office 365Spsbe   18-04-15 - should i move my network folders to office 365
Spsbe 18-04-15 - should i move my network folders to office 365BIWUG
 
ADF Mythbusters UKOUG'14
ADF Mythbusters UKOUG'14ADF Mythbusters UKOUG'14
ADF Mythbusters UKOUG'14andrejusb
 
ECS 19 Bert Jansen - Taking your SharePoint to the next level – Transforming ...
ECS 19 Bert Jansen - Taking your SharePoint to the next level – Transforming ...ECS 19 Bert Jansen - Taking your SharePoint to the next level – Transforming ...
ECS 19 Bert Jansen - Taking your SharePoint to the next level – Transforming ...European Collaboration Summit
 
Custom Development for SharePoint
Custom Development for SharePointCustom Development for SharePoint
Custom Development for SharePointTalbott Crowell
 
ADF Development Survival Kit
ADF Development Survival KitADF Development Survival Kit
ADF Development Survival Kitandrejusb
 
Migrating Fast to Solr
Migrating Fast to SolrMigrating Fast to Solr
Migrating Fast to SolrCominvent AS
 
Improving web site performance and scalability while saving
Improving web site performance and scalability while savingImproving web site performance and scalability while saving
Improving web site performance and scalability while savingmdc11
 
ADF Anti-Patterns: Dangerous Tutorials
ADF Anti-Patterns: Dangerous TutorialsADF Anti-Patterns: Dangerous Tutorials
ADF Anti-Patterns: Dangerous Tutorialsandrejusb
 
Search-Driven Applications with SharePoint 2013 (#SBSBE16)
Search-Driven Applications with SharePoint 2013 (#SBSBE16)Search-Driven Applications with SharePoint 2013 (#SBSBE16)
Search-Driven Applications with SharePoint 2013 (#SBSBE16)Maximilian Melcher
 
Oracle JET and WebSocket
Oracle JET and WebSocketOracle JET and WebSocket
Oracle JET and WebSocketandrejusb
 
[Vochten/Harbar] SharePoint Server On Premises & Hybrid PowerClass
[Vochten/Harbar] SharePoint Server On Premises & Hybrid PowerClass[Vochten/Harbar] SharePoint Server On Premises & Hybrid PowerClass
[Vochten/Harbar] SharePoint Server On Premises & Hybrid PowerClassEuropean Collaboration Summit
 
SharePoint Saturday DFW 2015 - Build a SharePoint 2013 Search Driven Application
SharePoint Saturday DFW 2015 - Build a SharePoint 2013 Search Driven ApplicationSharePoint Saturday DFW 2015 - Build a SharePoint 2013 Search Driven Application
SharePoint Saturday DFW 2015 - Build a SharePoint 2013 Search Driven ApplicationBrian Culver
 
Gabriel Gayhart - XML Pointer File Example
Gabriel Gayhart - XML Pointer File ExampleGabriel Gayhart - XML Pointer File Example
Gabriel Gayhart - XML Pointer File Examplelinkedinsys
 
SharePoint Development (Lesson 3)
SharePoint Development (Lesson 3)SharePoint Development (Lesson 3)
SharePoint Development (Lesson 3)MJ Ferdous
 
SharePoint 2016 Platform Adoption Lessons Learned and Advanced Troubleshooting
SharePoint 2016 Platform Adoption   Lessons Learned and Advanced TroubleshootingSharePoint 2016 Platform Adoption   Lessons Learned and Advanced Troubleshooting
SharePoint 2016 Platform Adoption Lessons Learned and Advanced TroubleshootingJohn Calvert
 
Sage 300 ERP: Environment setup and configuration
Sage 300 ERP: Environment setup and configurationSage 300 ERP: Environment setup and configuration
Sage 300 ERP: Environment setup and configurationSage 300 ERP CS
 
SAP hybris Caching and Monitoring
SAP hybris Caching and MonitoringSAP hybris Caching and Monitoring
SAP hybris Caching and MonitoringZhuo Huang
 
XML Publisher (www.aboutoracleapps.com)
XML Publisher (www.aboutoracleapps.com)XML Publisher (www.aboutoracleapps.com)
XML Publisher (www.aboutoracleapps.com)Chris Martin
 

What's hot (20)

Spsbe 18-04-15 - should i move my network folders to office 365
Spsbe   18-04-15 - should i move my network folders to office 365Spsbe   18-04-15 - should i move my network folders to office 365
Spsbe 18-04-15 - should i move my network folders to office 365
 
ADF Mythbusters UKOUG'14
ADF Mythbusters UKOUG'14ADF Mythbusters UKOUG'14
ADF Mythbusters UKOUG'14
 
ECS 19 Bert Jansen - Taking your SharePoint to the next level – Transforming ...
ECS 19 Bert Jansen - Taking your SharePoint to the next level – Transforming ...ECS 19 Bert Jansen - Taking your SharePoint to the next level – Transforming ...
ECS 19 Bert Jansen - Taking your SharePoint to the next level – Transforming ...
 
Custom Development for SharePoint
Custom Development for SharePointCustom Development for SharePoint
Custom Development for SharePoint
 
ADF Development Survival Kit
ADF Development Survival KitADF Development Survival Kit
ADF Development Survival Kit
 
Migrating Fast to Solr
Migrating Fast to SolrMigrating Fast to Solr
Migrating Fast to Solr
 
Improving web site performance and scalability while saving
Improving web site performance and scalability while savingImproving web site performance and scalability while saving
Improving web site performance and scalability while saving
 
ADF Anti-Patterns: Dangerous Tutorials
ADF Anti-Patterns: Dangerous TutorialsADF Anti-Patterns: Dangerous Tutorials
ADF Anti-Patterns: Dangerous Tutorials
 
Search-Driven Applications with SharePoint 2013 (#SBSBE16)
Search-Driven Applications with SharePoint 2013 (#SBSBE16)Search-Driven Applications with SharePoint 2013 (#SBSBE16)
Search-Driven Applications with SharePoint 2013 (#SBSBE16)
 
Oracle JET and WebSocket
Oracle JET and WebSocketOracle JET and WebSocket
Oracle JET and WebSocket
 
[Vochten/Harbar] SharePoint Server On Premises & Hybrid PowerClass
[Vochten/Harbar] SharePoint Server On Premises & Hybrid PowerClass[Vochten/Harbar] SharePoint Server On Premises & Hybrid PowerClass
[Vochten/Harbar] SharePoint Server On Premises & Hybrid PowerClass
 
SharePoint Saturday DFW 2015 - Build a SharePoint 2013 Search Driven Application
SharePoint Saturday DFW 2015 - Build a SharePoint 2013 Search Driven ApplicationSharePoint Saturday DFW 2015 - Build a SharePoint 2013 Search Driven Application
SharePoint Saturday DFW 2015 - Build a SharePoint 2013 Search Driven Application
 
SharePoint Performance
SharePoint PerformanceSharePoint Performance
SharePoint Performance
 
Gabriel Gayhart - XML Pointer File Example
Gabriel Gayhart - XML Pointer File ExampleGabriel Gayhart - XML Pointer File Example
Gabriel Gayhart - XML Pointer File Example
 
Asp.net Project
Asp.net Project Asp.net Project
Asp.net Project
 
SharePoint Development (Lesson 3)
SharePoint Development (Lesson 3)SharePoint Development (Lesson 3)
SharePoint Development (Lesson 3)
 
SharePoint 2016 Platform Adoption Lessons Learned and Advanced Troubleshooting
SharePoint 2016 Platform Adoption   Lessons Learned and Advanced TroubleshootingSharePoint 2016 Platform Adoption   Lessons Learned and Advanced Troubleshooting
SharePoint 2016 Platform Adoption Lessons Learned and Advanced Troubleshooting
 
Sage 300 ERP: Environment setup and configuration
Sage 300 ERP: Environment setup and configurationSage 300 ERP: Environment setup and configuration
Sage 300 ERP: Environment setup and configuration
 
SAP hybris Caching and Monitoring
SAP hybris Caching and MonitoringSAP hybris Caching and Monitoring
SAP hybris Caching and Monitoring
 
XML Publisher (www.aboutoracleapps.com)
XML Publisher (www.aboutoracleapps.com)XML Publisher (www.aboutoracleapps.com)
XML Publisher (www.aboutoracleapps.com)
 

Viewers also liked

10 Search Best Practices
10 Search Best Practices10 Search Best Practices
10 Search Best PracticesCirrus10
 
EBS-endeca-technical-considerations
EBS-endeca-technical-considerationsEBS-endeca-technical-considerations
EBS-endeca-technical-considerationsBerry Clemens
 
Oracle Endeca 101 Developer Introduction High Level Overview
Oracle Endeca 101 Developer Introduction High Level OverviewOracle Endeca 101 Developer Introduction High Level Overview
Oracle Endeca 101 Developer Introduction High Level OverviewGordon Kiser
 
Oracle Endeca Developer's Guide
Oracle Endeca Developer's GuideOracle Endeca Developer's Guide
Oracle Endeca Developer's GuideKeyur Shah
 
Oracle endeca information discovery architecture
Oracle endeca information discovery architectureOracle endeca information discovery architecture
Oracle endeca information discovery architectureAorta business intelligence
 
Oracle Application Extensions for Oracle Endeca - for Application DBA's
Oracle Application Extensions for Oracle Endeca - for Application DBA'sOracle Application Extensions for Oracle Endeca - for Application DBA's
Oracle Application Extensions for Oracle Endeca - for Application DBA'sRavi Madabhushanam
 
2 Big Reasons Identity and Access Management Projects Fail
2 Big Reasons Identity and Access Management Projects Fail2 Big Reasons Identity and Access Management Projects Fail
2 Big Reasons Identity and Access Management Projects FailGordon Kiser
 
OOW16 - Oracle E-Business Suite Information Discovery: Your Journey to the Cl...
OOW16 - Oracle E-Business Suite Information Discovery: Your Journey to the Cl...OOW16 - Oracle E-Business Suite Information Discovery: Your Journey to the Cl...
OOW16 - Oracle E-Business Suite Information Discovery: Your Journey to the Cl...vasuballa
 
Oracle Endeca Commerce - Installation Guide
Oracle Endeca Commerce - Installation GuideOracle Endeca Commerce - Installation Guide
Oracle Endeca Commerce - Installation GuideKeyur Shah
 
ATG - Web Commerce @ Your Figertips
ATG - Web Commerce @ Your FigertipsATG - Web Commerce @ Your Figertips
ATG - Web Commerce @ Your FigertipsKeyur Shah
 
Oracle Commerce Using ATG & Endeca - Do It Yourself Series
Oracle Commerce Using ATG & Endeca - Do It Yourself SeriesOracle Commerce Using ATG & Endeca - Do It Yourself Series
Oracle Commerce Using ATG & Endeca - Do It Yourself SeriesKeyur Shah
 
Installing Endeca Server, Studio, Integrator ETL , Commerce and Platform Serv...
Installing Endeca Server, Studio, Integrator ETL , Commerce and Platform Serv...Installing Endeca Server, Studio, Integrator ETL , Commerce and Platform Serv...
Installing Endeca Server, Studio, Integrator ETL , Commerce and Platform Serv...Ravi Kumar Lanke
 

Viewers also liked (12)

10 Search Best Practices
10 Search Best Practices10 Search Best Practices
10 Search Best Practices
 
EBS-endeca-technical-considerations
EBS-endeca-technical-considerationsEBS-endeca-technical-considerations
EBS-endeca-technical-considerations
 
Oracle Endeca 101 Developer Introduction High Level Overview
Oracle Endeca 101 Developer Introduction High Level OverviewOracle Endeca 101 Developer Introduction High Level Overview
Oracle Endeca 101 Developer Introduction High Level Overview
 
Oracle Endeca Developer's Guide
Oracle Endeca Developer's GuideOracle Endeca Developer's Guide
Oracle Endeca Developer's Guide
 
Oracle endeca information discovery architecture
Oracle endeca information discovery architectureOracle endeca information discovery architecture
Oracle endeca information discovery architecture
 
Oracle Application Extensions for Oracle Endeca - for Application DBA's
Oracle Application Extensions for Oracle Endeca - for Application DBA'sOracle Application Extensions for Oracle Endeca - for Application DBA's
Oracle Application Extensions for Oracle Endeca - for Application DBA's
 
2 Big Reasons Identity and Access Management Projects Fail
2 Big Reasons Identity and Access Management Projects Fail2 Big Reasons Identity and Access Management Projects Fail
2 Big Reasons Identity and Access Management Projects Fail
 
OOW16 - Oracle E-Business Suite Information Discovery: Your Journey to the Cl...
OOW16 - Oracle E-Business Suite Information Discovery: Your Journey to the Cl...OOW16 - Oracle E-Business Suite Information Discovery: Your Journey to the Cl...
OOW16 - Oracle E-Business Suite Information Discovery: Your Journey to the Cl...
 
Oracle Endeca Commerce - Installation Guide
Oracle Endeca Commerce - Installation GuideOracle Endeca Commerce - Installation Guide
Oracle Endeca Commerce - Installation Guide
 
ATG - Web Commerce @ Your Figertips
ATG - Web Commerce @ Your FigertipsATG - Web Commerce @ Your Figertips
ATG - Web Commerce @ Your Figertips
 
Oracle Commerce Using ATG & Endeca - Do It Yourself Series
Oracle Commerce Using ATG & Endeca - Do It Yourself SeriesOracle Commerce Using ATG & Endeca - Do It Yourself Series
Oracle Commerce Using ATG & Endeca - Do It Yourself Series
 
Installing Endeca Server, Studio, Integrator ETL , Commerce and Platform Serv...
Installing Endeca Server, Studio, Integrator ETL , Commerce and Platform Serv...Installing Endeca Server, Studio, Integrator ETL , Commerce and Platform Serv...
Installing Endeca Server, Studio, Integrator ETL , Commerce and Platform Serv...
 

Similar to Endeca Performance Considerations

Unified Framework for Real Time, Near Real Time and Offline Analysis of Video...
Unified Framework for Real Time, Near Real Time and Offline Analysis of Video...Unified Framework for Real Time, Near Real Time and Offline Analysis of Video...
Unified Framework for Real Time, Near Real Time and Offline Analysis of Video...Spark Summit
 
Building FoundationDB
Building FoundationDBBuilding FoundationDB
Building FoundationDBFoundationDB
 
Hpc lunch and learn
Hpc lunch and learnHpc lunch and learn
Hpc lunch and learnJohn D Almon
 
PostgreSQL as a Strategic Tool
PostgreSQL as a Strategic ToolPostgreSQL as a Strategic Tool
PostgreSQL as a Strategic ToolEDB
 
PostgreSQL as a Big Data Platform
PostgreSQL as a Big Data Platform PostgreSQL as a Big Data Platform
PostgreSQL as a Big Data Platform Chris Travers
 
How to create custom dashboards in Elastic Search / Kibana with Performance V...
How to create custom dashboards in Elastic Search / Kibana with Performance V...How to create custom dashboards in Elastic Search / Kibana with Performance V...
How to create custom dashboards in Elastic Search / Kibana with Performance V...PerformanceVision (previously SecurActive)
 
Engineering Machine Learning Data Pipelines Series: Streaming New Data as It ...
Engineering Machine Learning Data Pipelines Series: Streaming New Data as It ...Engineering Machine Learning Data Pipelines Series: Streaming New Data as It ...
Engineering Machine Learning Data Pipelines Series: Streaming New Data as It ...Precisely
 
Getting started with postgresql
Getting started with postgresqlGetting started with postgresql
Getting started with postgresqlbotsplash.com
 
Building a highly scalable and available cloud application
Building a highly scalable and available cloud applicationBuilding a highly scalable and available cloud application
Building a highly scalable and available cloud applicationNoam Sheffer
 
Introducing NoSQL and MongoDB to complement Relational Databases (AMIS SIG 14...
Introducing NoSQL and MongoDB to complement Relational Databases (AMIS SIG 14...Introducing NoSQL and MongoDB to complement Relational Databases (AMIS SIG 14...
Introducing NoSQL and MongoDB to complement Relational Databases (AMIS SIG 14...Lucas Jellema
 
A Journey from Oracle to PostgreSQL
A Journey from Oracle to PostgreSQLA Journey from Oracle to PostgreSQL
A Journey from Oracle to PostgreSQLEDB
 
Optimizing Open Source for Greater Database Savings & Control
Optimizing Open Source for Greater Database Savings & ControlOptimizing Open Source for Greater Database Savings & Control
Optimizing Open Source for Greater Database Savings & ControlEDB
 
Monitoring and Scaling Redis at DataDog - Ilan Rabinovitch, DataDog
 Monitoring and Scaling Redis at DataDog - Ilan Rabinovitch, DataDog Monitoring and Scaling Redis at DataDog - Ilan Rabinovitch, DataDog
Monitoring and Scaling Redis at DataDog - Ilan Rabinovitch, DataDogRedis Labs
 
Lessons Learned Replatforming A Large Machine Learning Application To Apache ...
Lessons Learned Replatforming A Large Machine Learning Application To Apache ...Lessons Learned Replatforming A Large Machine Learning Application To Apache ...
Lessons Learned Replatforming A Large Machine Learning Application To Apache ...Databricks
 
PostgreSQL as a Strategic Tool
PostgreSQL as a Strategic ToolPostgreSQL as a Strategic Tool
PostgreSQL as a Strategic ToolEDB
 
Building Big Data Streaming Architectures
Building Big Data Streaming ArchitecturesBuilding Big Data Streaming Architectures
Building Big Data Streaming ArchitecturesDavid Martínez Rego
 
SpringPeople - Introduction to Cloud Computing
SpringPeople - Introduction to Cloud ComputingSpringPeople - Introduction to Cloud Computing
SpringPeople - Introduction to Cloud ComputingSpringPeople
 
DataEngConf: Parquet at Datadog: Fast, Efficient, Portable Storage for Big Data
DataEngConf: Parquet at Datadog: Fast, Efficient, Portable Storage for Big DataDataEngConf: Parquet at Datadog: Fast, Efficient, Portable Storage for Big Data
DataEngConf: Parquet at Datadog: Fast, Efficient, Portable Storage for Big DataHakka Labs
 

Similar to Endeca Performance Considerations (20)

Unified Framework for Real Time, Near Real Time and Offline Analysis of Video...
Unified Framework for Real Time, Near Real Time and Offline Analysis of Video...Unified Framework for Real Time, Near Real Time and Offline Analysis of Video...
Unified Framework for Real Time, Near Real Time and Offline Analysis of Video...
 
Building FoundationDB
Building FoundationDBBuilding FoundationDB
Building FoundationDB
 
Hpc lunch and learn
Hpc lunch and learnHpc lunch and learn
Hpc lunch and learn
 
PostgreSQL as a Strategic Tool
PostgreSQL as a Strategic ToolPostgreSQL as a Strategic Tool
PostgreSQL as a Strategic Tool
 
PostgreSQL as a Big Data Platform
PostgreSQL as a Big Data Platform PostgreSQL as a Big Data Platform
PostgreSQL as a Big Data Platform
 
How to create custom dashboards in Elastic Search / Kibana with Performance V...
How to create custom dashboards in Elastic Search / Kibana with Performance V...How to create custom dashboards in Elastic Search / Kibana with Performance V...
How to create custom dashboards in Elastic Search / Kibana with Performance V...
 
Engineering Machine Learning Data Pipelines Series: Streaming New Data as It ...
Engineering Machine Learning Data Pipelines Series: Streaming New Data as It ...Engineering Machine Learning Data Pipelines Series: Streaming New Data as It ...
Engineering Machine Learning Data Pipelines Series: Streaming New Data as It ...
 
Getting started with postgresql
Getting started with postgresqlGetting started with postgresql
Getting started with postgresql
 
Building a highly scalable and available cloud application
Building a highly scalable and available cloud applicationBuilding a highly scalable and available cloud application
Building a highly scalable and available cloud application
 
Introducing NoSQL and MongoDB to complement Relational Databases (AMIS SIG 14...
Introducing NoSQL and MongoDB to complement Relational Databases (AMIS SIG 14...Introducing NoSQL and MongoDB to complement Relational Databases (AMIS SIG 14...
Introducing NoSQL and MongoDB to complement Relational Databases (AMIS SIG 14...
 
A Journey from Oracle to PostgreSQL
A Journey from Oracle to PostgreSQLA Journey from Oracle to PostgreSQL
A Journey from Oracle to PostgreSQL
 
Optimizing Open Source for Greater Database Savings & Control
Optimizing Open Source for Greater Database Savings & ControlOptimizing Open Source for Greater Database Savings & Control
Optimizing Open Source for Greater Database Savings & Control
 
COBOL to Apache Spark
COBOL to Apache SparkCOBOL to Apache Spark
COBOL to Apache Spark
 
Monitoring and Scaling Redis at DataDog - Ilan Rabinovitch, DataDog
 Monitoring and Scaling Redis at DataDog - Ilan Rabinovitch, DataDog Monitoring and Scaling Redis at DataDog - Ilan Rabinovitch, DataDog
Monitoring and Scaling Redis at DataDog - Ilan Rabinovitch, DataDog
 
Lessons Learned Replatforming A Large Machine Learning Application To Apache ...
Lessons Learned Replatforming A Large Machine Learning Application To Apache ...Lessons Learned Replatforming A Large Machine Learning Application To Apache ...
Lessons Learned Replatforming A Large Machine Learning Application To Apache ...
 
Scaling tappsi
Scaling tappsiScaling tappsi
Scaling tappsi
 
PostgreSQL as a Strategic Tool
PostgreSQL as a Strategic ToolPostgreSQL as a Strategic Tool
PostgreSQL as a Strategic Tool
 
Building Big Data Streaming Architectures
Building Big Data Streaming ArchitecturesBuilding Big Data Streaming Architectures
Building Big Data Streaming Architectures
 
SpringPeople - Introduction to Cloud Computing
SpringPeople - Introduction to Cloud ComputingSpringPeople - Introduction to Cloud Computing
SpringPeople - Introduction to Cloud Computing
 
DataEngConf: Parquet at Datadog: Fast, Efficient, Portable Storage for Big Data
DataEngConf: Parquet at Datadog: Fast, Efficient, Portable Storage for Big DataDataEngConf: Parquet at Datadog: Fast, Efficient, Portable Storage for Big Data
DataEngConf: Parquet at Datadog: Fast, Efficient, Portable Storage for Big Data
 

Recently uploaded

A Good Girl's Guide to Murder (A Good Girl's Guide to Murder, #1)
A Good Girl's Guide to Murder (A Good Girl's Guide to Murder, #1)A Good Girl's Guide to Murder (A Good Girl's Guide to Murder, #1)
A Good Girl's Guide to Murder (A Good Girl's Guide to Murder, #1)Christopher H Felton
 
Font Performance - NYC WebPerf Meetup April '24
Font Performance - NYC WebPerf Meetup April '24Font Performance - NYC WebPerf Meetup April '24
Font Performance - NYC WebPerf Meetup April '24Paul Calvano
 
VIP Call Girls Kolkata Ananya 🤌 8250192130 🚀 Vip Call Girls Kolkata
VIP Call Girls Kolkata Ananya 🤌  8250192130 🚀 Vip Call Girls KolkataVIP Call Girls Kolkata Ananya 🤌  8250192130 🚀 Vip Call Girls Kolkata
VIP Call Girls Kolkata Ananya 🤌 8250192130 🚀 Vip Call Girls Kolkataanamikaraghav4
 
定制(CC毕业证书)美国美国社区大学毕业证成绩单原版一比一
定制(CC毕业证书)美国美国社区大学毕业证成绩单原版一比一定制(CC毕业证书)美国美国社区大学毕业证成绩单原版一比一
定制(CC毕业证书)美国美国社区大学毕业证成绩单原版一比一3sw2qly1
 
Call Girls Service Adil Nagar 7001305949 Need escorts Service Pooja Vip
Call Girls Service Adil Nagar 7001305949 Need escorts Service Pooja VipCall Girls Service Adil Nagar 7001305949 Need escorts Service Pooja Vip
Call Girls Service Adil Nagar 7001305949 Need escorts Service Pooja VipCall Girls Lucknow
 
Call Girls Near The Suryaa Hotel New Delhi 9873777170
Call Girls Near The Suryaa Hotel New Delhi 9873777170Call Girls Near The Suryaa Hotel New Delhi 9873777170
Call Girls Near The Suryaa Hotel New Delhi 9873777170Sonam Pathan
 
定制(UAL学位证)英国伦敦艺术大学毕业证成绩单原版一比一
定制(UAL学位证)英国伦敦艺术大学毕业证成绩单原版一比一定制(UAL学位证)英国伦敦艺术大学毕业证成绩单原版一比一
定制(UAL学位证)英国伦敦艺术大学毕业证成绩单原版一比一Fs
 
定制(Management毕业证书)新加坡管理大学毕业证成绩单原版一比一
定制(Management毕业证书)新加坡管理大学毕业证成绩单原版一比一定制(Management毕业证书)新加坡管理大学毕业证成绩单原版一比一
定制(Management毕业证书)新加坡管理大学毕业证成绩单原版一比一Fs
 
办理(UofR毕业证书)罗切斯特大学毕业证成绩单原版一比一
办理(UofR毕业证书)罗切斯特大学毕业证成绩单原版一比一办理(UofR毕业证书)罗切斯特大学毕业证成绩单原版一比一
办理(UofR毕业证书)罗切斯特大学毕业证成绩单原版一比一z xss
 
Chennai Call Girls Alwarpet Phone 🍆 8250192130 👅 celebrity escorts service
Chennai Call Girls Alwarpet Phone 🍆 8250192130 👅 celebrity escorts serviceChennai Call Girls Alwarpet Phone 🍆 8250192130 👅 celebrity escorts service
Chennai Call Girls Alwarpet Phone 🍆 8250192130 👅 celebrity escorts servicevipmodelshub1
 
定制(AUT毕业证书)新西兰奥克兰理工大学毕业证成绩单原版一比一
定制(AUT毕业证书)新西兰奥克兰理工大学毕业证成绩单原版一比一定制(AUT毕业证书)新西兰奥克兰理工大学毕业证成绩单原版一比一
定制(AUT毕业证书)新西兰奥克兰理工大学毕业证成绩单原版一比一Fs
 
办理多伦多大学毕业证成绩单|购买加拿大UTSG文凭证书
办理多伦多大学毕业证成绩单|购买加拿大UTSG文凭证书办理多伦多大学毕业证成绩单|购买加拿大UTSG文凭证书
办理多伦多大学毕业证成绩单|购买加拿大UTSG文凭证书zdzoqco
 
Call Girls In The Ocean Pearl Retreat Hotel New Delhi 9873777170
Call Girls In The Ocean Pearl Retreat Hotel New Delhi 9873777170Call Girls In The Ocean Pearl Retreat Hotel New Delhi 9873777170
Call Girls In The Ocean Pearl Retreat Hotel New Delhi 9873777170Sonam Pathan
 
PHP-based rendering of TYPO3 Documentation
PHP-based rendering of TYPO3 DocumentationPHP-based rendering of TYPO3 Documentation
PHP-based rendering of TYPO3 DocumentationLinaWolf1
 
Contact Rya Baby for Call Girls New Delhi
Contact Rya Baby for Call Girls New DelhiContact Rya Baby for Call Girls New Delhi
Contact Rya Baby for Call Girls New Delhimiss dipika
 
Git and Github workshop GDSC MLRITM
Git and Github  workshop GDSC MLRITMGit and Github  workshop GDSC MLRITM
Git and Github workshop GDSC MLRITMgdsc13
 
Complet Documnetation for Smart Assistant Application for Disabled Person
Complet Documnetation   for Smart Assistant Application for Disabled PersonComplet Documnetation   for Smart Assistant Application for Disabled Person
Complet Documnetation for Smart Assistant Application for Disabled Personfurqan222004
 
Blepharitis inflammation of eyelid symptoms cause everything included along w...
Blepharitis inflammation of eyelid symptoms cause everything included along w...Blepharitis inflammation of eyelid symptoms cause everything included along w...
Blepharitis inflammation of eyelid symptoms cause everything included along w...Excelmac1
 

Recently uploaded (20)

young call girls in Uttam Nagar🔝 9953056974 🔝 Delhi escort Service
young call girls in Uttam Nagar🔝 9953056974 🔝 Delhi escort Serviceyoung call girls in Uttam Nagar🔝 9953056974 🔝 Delhi escort Service
young call girls in Uttam Nagar🔝 9953056974 🔝 Delhi escort Service
 
A Good Girl's Guide to Murder (A Good Girl's Guide to Murder, #1)
A Good Girl's Guide to Murder (A Good Girl's Guide to Murder, #1)A Good Girl's Guide to Murder (A Good Girl's Guide to Murder, #1)
A Good Girl's Guide to Murder (A Good Girl's Guide to Murder, #1)
 
Font Performance - NYC WebPerf Meetup April '24
Font Performance - NYC WebPerf Meetup April '24Font Performance - NYC WebPerf Meetup April '24
Font Performance - NYC WebPerf Meetup April '24
 
VIP Call Girls Kolkata Ananya 🤌 8250192130 🚀 Vip Call Girls Kolkata
VIP Call Girls Kolkata Ananya 🤌  8250192130 🚀 Vip Call Girls KolkataVIP Call Girls Kolkata Ananya 🤌  8250192130 🚀 Vip Call Girls Kolkata
VIP Call Girls Kolkata Ananya 🤌 8250192130 🚀 Vip Call Girls Kolkata
 
定制(CC毕业证书)美国美国社区大学毕业证成绩单原版一比一
定制(CC毕业证书)美国美国社区大学毕业证成绩单原版一比一定制(CC毕业证书)美国美国社区大学毕业证成绩单原版一比一
定制(CC毕业证书)美国美国社区大学毕业证成绩单原版一比一
 
Call Girls Service Adil Nagar 7001305949 Need escorts Service Pooja Vip
Call Girls Service Adil Nagar 7001305949 Need escorts Service Pooja VipCall Girls Service Adil Nagar 7001305949 Need escorts Service Pooja Vip
Call Girls Service Adil Nagar 7001305949 Need escorts Service Pooja Vip
 
Call Girls Near The Suryaa Hotel New Delhi 9873777170
Call Girls Near The Suryaa Hotel New Delhi 9873777170Call Girls Near The Suryaa Hotel New Delhi 9873777170
Call Girls Near The Suryaa Hotel New Delhi 9873777170
 
定制(UAL学位证)英国伦敦艺术大学毕业证成绩单原版一比一
定制(UAL学位证)英国伦敦艺术大学毕业证成绩单原版一比一定制(UAL学位证)英国伦敦艺术大学毕业证成绩单原版一比一
定制(UAL学位证)英国伦敦艺术大学毕业证成绩单原版一比一
 
定制(Management毕业证书)新加坡管理大学毕业证成绩单原版一比一
定制(Management毕业证书)新加坡管理大学毕业证成绩单原版一比一定制(Management毕业证书)新加坡管理大学毕业证成绩单原版一比一
定制(Management毕业证书)新加坡管理大学毕业证成绩单原版一比一
 
Hot Sexy call girls in Rk Puram 🔝 9953056974 🔝 Delhi escort Service
Hot Sexy call girls in  Rk Puram 🔝 9953056974 🔝 Delhi escort ServiceHot Sexy call girls in  Rk Puram 🔝 9953056974 🔝 Delhi escort Service
Hot Sexy call girls in Rk Puram 🔝 9953056974 🔝 Delhi escort Service
 
办理(UofR毕业证书)罗切斯特大学毕业证成绩单原版一比一
办理(UofR毕业证书)罗切斯特大学毕业证成绩单原版一比一办理(UofR毕业证书)罗切斯特大学毕业证成绩单原版一比一
办理(UofR毕业证书)罗切斯特大学毕业证成绩单原版一比一
 
Chennai Call Girls Alwarpet Phone 🍆 8250192130 👅 celebrity escorts service
Chennai Call Girls Alwarpet Phone 🍆 8250192130 👅 celebrity escorts serviceChennai Call Girls Alwarpet Phone 🍆 8250192130 👅 celebrity escorts service
Chennai Call Girls Alwarpet Phone 🍆 8250192130 👅 celebrity escorts service
 
定制(AUT毕业证书)新西兰奥克兰理工大学毕业证成绩单原版一比一
定制(AUT毕业证书)新西兰奥克兰理工大学毕业证成绩单原版一比一定制(AUT毕业证书)新西兰奥克兰理工大学毕业证成绩单原版一比一
定制(AUT毕业证书)新西兰奥克兰理工大学毕业证成绩单原版一比一
 
办理多伦多大学毕业证成绩单|购买加拿大UTSG文凭证书
办理多伦多大学毕业证成绩单|购买加拿大UTSG文凭证书办理多伦多大学毕业证成绩单|购买加拿大UTSG文凭证书
办理多伦多大学毕业证成绩单|购买加拿大UTSG文凭证书
 
Call Girls In The Ocean Pearl Retreat Hotel New Delhi 9873777170
Call Girls In The Ocean Pearl Retreat Hotel New Delhi 9873777170Call Girls In The Ocean Pearl Retreat Hotel New Delhi 9873777170
Call Girls In The Ocean Pearl Retreat Hotel New Delhi 9873777170
 
PHP-based rendering of TYPO3 Documentation
PHP-based rendering of TYPO3 DocumentationPHP-based rendering of TYPO3 Documentation
PHP-based rendering of TYPO3 Documentation
 
Contact Rya Baby for Call Girls New Delhi
Contact Rya Baby for Call Girls New DelhiContact Rya Baby for Call Girls New Delhi
Contact Rya Baby for Call Girls New Delhi
 
Git and Github workshop GDSC MLRITM
Git and Github  workshop GDSC MLRITMGit and Github  workshop GDSC MLRITM
Git and Github workshop GDSC MLRITM
 
Complet Documnetation for Smart Assistant Application for Disabled Person
Complet Documnetation   for Smart Assistant Application for Disabled PersonComplet Documnetation   for Smart Assistant Application for Disabled Person
Complet Documnetation for Smart Assistant Application for Disabled Person
 
Blepharitis inflammation of eyelid symptoms cause everything included along w...
Blepharitis inflammation of eyelid symptoms cause everything included along w...Blepharitis inflammation of eyelid symptoms cause everything included along w...
Blepharitis inflammation of eyelid symptoms cause everything included along w...
 

Endeca Performance Considerations

  • 1. Endeca Performance and Scalability Hard-won lessons from the field – Peter Curran, Founder Cirrus10 art by Liam Brazier, buy it here! liambrazier.com/Shop
  • 2. Seattle HQ, distributed team ~50 resources (25 EE + subs) All onshore labor Endeca or Oracle partner since 2010 End-to-end implementations Relevance tuning Architecture & process analysis Program roadmaps Upgrades & migrations Time & materials Fixed fee with risk premium Cost + bonus Easy contracts ROI guarantees ~70 Endeca customers B2C and B2B CMS Gurus Marquee Presenter at OOW 2014 100% Referenceable
  • 4. ITL Index ingestion • Forge • CAS MDEX The index itself • Dgraphs Assembler Application interface • Service / Process Diagram here: bit.ly/1PvJYFX
  • 6. What do I need tools for? • Why did it break? • Will it break this year? Tools 1. MDEX Request Logs 2. Request Log Analyzer (Cheetah) 3. MDEX Perf – Load Testing (Eneperf) Art by Liam Brazier+
  • 7. What is the request log? • MDEX’s main log file – dumps every query to a log • Includes query latency and time of day Why is it useful? • Parse it to see what the heck happened • Replay or spoof it up to answer “what if” Where do you find it? • <working-dir>/logs/dgraphs/Dgraph1/
  • 8. Cheetah is an MDEX Log analysis tool Reports performance stats Helps identify trends Downloadable from Oracle
  • 9. MDEXperf is a load-testing utility • Ships with Endeca What is MDEX load testing? • Send simulated user traffic against MDEX and site • Learn how site performs under specific traffic conditions Keys to a successful load test… • Stress system in way that represents expected production usage • Monitor performance during and after each test iteration • Test all scenarios, functionality, and technology
  • 10. Avoid default setNavAllRefinements / allgroups=1 if possible Exact, Phrase, and Proximity relevance ranking modules are expensive Response sizes > 500kb Use record filters before text searches Avoid large flat dimensions Art by Liam Brazier+
  • 11. Wildcarding Interactions of large thesaurus + spelling + stemming on large datasets Frequent Partial Updates Not enough physical RAM on server Art by Liam Brazier+
  • 12. The primary consideration 2 years after you implement
  • 13. Is a hot dog a sandwich? Is a pizza an open-faced sandwich? Can an American city be truly great w/o a signature sandwich? • If so: Los Angeles? Is a taco a sandwich? • New Orleans: Po’ Boy or Muffaletta? • Which city should claim the hot dog? • Correct answer: Chicago
  • 14. Forge Dgidx Index Distribution Join data sources and manipulate the data (Step 1) Generate index file (Step 2) Distribute the files across Dgraph (Step 3) Total Index Time
  • 15. Size of the index • 1,000,000+ records Type of records in index • Catalog, Web Content, Social Content, Analytical Content Features and functionality • Store inventory, Store level pricing • Compatibility (Fitment) • Endeca Recommendations Data Model • Wide record vs. RRN • Internationalization • Type of joins Data Manipulations • Data cleanups - Java/Perl/XML manipulators Components Usage • Traditional Forge • CAS (Multi-threaded)
  • 16. • De-normalized model • Adds store inventory to the product record • Joins happen at indexing • Normalized model • Inventory stored in separate record from products • Joins happen at query time • PRO: Fast queries • CON: Slow updates • CON: More back-end code • PRO: Fast updates • CON: Slower-ish queries • CON: More front-end code
  • 17. Use a real ETL tool if you can Use record cache when joining the data sources in the pipeline. CAS is multi threaded, but it’s not as flexible as traditional Forge Beware Forge left joins Dgidx is multi-threaded. Configure optimal threads to hasten this step. Art by Liam Brazier+
  • 18. Use Dgidx flags carefully, specifying many pre-computed sorts can affect the performance. If index distribution time is slow, consider rolling your own approach to compress the index before distributing it Art by Liam Brazier+
  • 19. Major Auto Parts Company
  • 20. 3 major sites live since 2003 Originally a bridged multi-MDEX Large index due to fitment Re-engineered for wide records • <100ms MDEX response time • 3 updates/wk at many hours each • Tried partial updates but failed Art by Liam Brazier
  • 21. • 110,000,000 very wide records

Editor's Notes

  1. So let's start talking about some of the tools you'll need, to implement your performance testing plan. As I mentioned earlier, the focus of this presentation will be on monitoring and testing MDEX performance. What Tools? You'll want to know how to take a snapshot of your current and past performance. You'll also need a way to test how changes and traffic growth will affect your future MDEX performance. Tools The tools we'll discuss are the MDEX request log, a reporting tool called Cheetah, and Eneperf, Endeca's load testing utility. We'll dive into these tools in a moment, but let's first talk about some important terminology we'll use throughout this presentation.
  2. So how can we measure throughput and latency in the MDEX engine? How can we determine the amount of concurrent traffic the MDEX is capable of handling, and how can we tell if that throughput capacity has been exceeded, resulting in slowness for the end user? Well, the MDEX engine logs every query it processes in its request log, including the time the query came in, and how long it took to process. Use? The request log has two very important uses. First, it's a record of what happened in the past. If your MDEX ever experiences a problem processing queries, the request log will allow for a post mortem of what happened, or simply tell you how much traffic was received during a certain time period. By analyzing this request log, we can determine how much traffic the engine was able to handle each hour, as well as identify queries that resulted in long latency for the end user. Second, the request log is essential for running load tests, which are a fundamental component of your performance testing strategy. Using various load testing tools, including Endeca's own eneperf and mdexperf utilities, you can replay the request log against a live MDEX, effectively simulating real user traffic. You might choose to do this in a test environment after you make changes, to see if your changes have had an impact on MDEX performance. We'll get into how to set up this kind of test shortly. Where can you locate? You can locate these logs by checking your project's app config definition if you're using the deployment template, or you can check your control script if you're on an older Endeca version. If you can't locate these logs, feel free to ask Endeca support for assistance, or ask you're Endeca administrator.
  3. Our third tool is ENEperf, a load-testing utility that ships with Endeca. As I mentioned earlier, Eneperf can be used to load-test an MDEX engine, by "replaying" queries from a request log back against the MDEX. The purpose of load testing is to stress your MDEX in a way that replicates real user activity, but doing so in an isolated environment, where production traffic won't be impacted by the test. Using a load testing tool like Eneperf, you can learn how your system will perform under specific conditions. The keys to a successful load test include: Developing a test plan that will stress your system in a way that reflects real-world traffic and user behavior, ensuring you have proper monitoring in place during each test iteration, and making sure your tests cover all functionality and technology used by your site. Let's talk a bit about how to use eneperf to run your load tests.