Batch Indexing & Near Real Time,
keeping things fast
Marc Sturlese
Software engineer @ Trovit
Thursday, 2 May 2013
About me...
• Marc Sturlese – @sturlese
• Software engineer @Trovit. R&D focused
• Responsible for search and scalability
Thursday, 2 May 2013
Agenda
• Who we are
• Batch architecture. Hadoop & Hive
• Near real time architecture. Storm & stuff
• Putting it all together
• Alternatives and Future directions
• Questions
Thursday, 2 May 2013
Who we are
Trovit, a search engine for classifieds
Thursday, 2 May 2013
Who we are
Thursday, 2 May 2013
Batch Layer
• Hadoop based
• Documents are crunched by a pipeline of MR
jobs
• Hive to save stats of each phase
Thursday, 2 May 2013
Batch Layer
Pipeline overview
Incoming data
Deployment
Lucene Indexes
Ad Processor Diff Matching Expiration Deduplication Indexing
t – 1
External Data
Hive Stats
Hadoop Cluster
Thursday, 2 May 2013
Batch Layer
The good things!
• Index always built from scratch. Small number of
big segments
• Multicast deployment allows to send indexes to
all slaves at the same time.
• Backups convenient on HDFS
Thursday, 2 May 2013
Batch Layer
That was cool but...
• Not even close to real time
• Crunch documents in batch means to wait until
all is processed. This can take a few hours
• We want to show the user fresher results!
Thursday, 2 May 2013
Near real time Layer
Storm and stuff to the rescue
Thursday, 2 May 2013
Near real time Layer
Storm properties
• Distributed real time computation system
• Fault tolerance
• Horizontal scalability
• Low latency
• Reliability
Thursday, 2 May 2013
Near real time Layer
Storm in action
Slave
Slave
Solr prod replicas
Slave
XML feed
XML feed
Kafka partition
Kafka partition
Storm topologySources
Kafka spout
Kafka spout
XML spout Doc Manager bolt Indexer bolt
SHUFFLE
GROUPING GROUPING
FIELD
Thursday, 2 May 2013
Near real time Layer
Storm in action
• Spouts just read and send
• Doc Manager Bolt processes and classifies
• Indexer Bolt adds documents to Solr
• Replicated logic with different implementation
• Careful not to overload Solr slaves...
Thursday, 2 May 2013
Near real time Layer
Storm in action
Thursday, 2 May 2013
Near real time Layer
Storm in action. But...
Thursday, 2 May 2013
Near real time Layer
Storm in action. But...
• Now Solr has to handle user queries and storm
inserts
• Field grouping on Indexer Bolt for politeness
• Small bulks to reduce insert requests
• Committing on many cores, same host, same
time can be painful
Thursday, 2 May 2013
Near real time Layer
Storm in action - Committing
Indexer Bolt Cars US
Real state UK R1 Cars US R1 Cars US R2 Jobs BR R1 Jobs BR R2 Real state ES R1
Indexer Bolt Jobs BR
ZooKeeper Locker
Slave 1 Slave 2 Slave N
. . .
Thursday, 2 May 2013
Near real time Layer
Storm in action
• Adding documents now is fast
• Keep number of segments small
• Avoid merges on big segments
• Just add new docs (no deletes or updates)
Thursday, 2 May 2013
Mixed Architecture
Putting it all together
15
Slave
Slave
Solr prod replicas
Slave
XML feed
XML feed
Kafka partition
Kafka partition
Storm topologySources
Hbase doc info
Bulk add
Exists?
MR Pipeline
zk
Thursday, 2 May 2013
Mixed Architecture
Swapping indexes
• NRT docs might not be contained in the new
batch index (even fresher than the “being built”
batch index)
• This can lead to inconsistencies...
Thursday, 2 May 2013
Mixed Architecture
Swapping indexes. Time jumps!
Thursday, 2 May 2013
Mixed Architecture
Swapping indexes
HBase
XML feed t
Slave t+1
Slave t
Pipeline t
Pipeline t+1
XML feed t+1
XML feed t+2
NRT indexer
Batch indexer
Thursday, 2 May 2013
Mixed Architecture
Swapping indexes
HBase
XML feed t
Slave t+1
Slave t
Pipeline t
Pipeline t+1
XML feed t+1
XML feed t+2
NRT indexer
Batch indexer
Thursday, 2 May 2013
Mixed Architecture
Swapping indexes
HBase
XML feed t
Slave t+1
Slave t
Pipeline t
Pipeline t+1
XML feed t+1
XML feed t+2
NRT indexer
Batch indexer
NRT t+1
NRT t+2
Thursday, 2 May 2013
Mixed Architecture
Swapping indexes
HBase
XML feed t
Slave t+1
Slave t
Pipeline t
Pipeline t+1
XML feed t+1
XML feed t+2
NRT indexer
Batch indexer
NRT t+1
NRT t+2
Thursday, 2 May 2013
Mixed Architecture
Swapping indexes
• NRT indexed docs must be stored in a
temporary storage
• Fetch missing docs from the storage and add
them before the next deploy
• This avoids time jumps
Thursday, 2 May 2013
Mixed Architecture
Storm and Hadoop
• Near real time inserts, low latency
• Hadoop handles deletes and updates. No rush
on those
• No merges on big segments so optimal query
response times
• Tolerant to human errors
• Temporary lost of accuracy on the NRT layer
Thursday, 2 May 2013
Alternatives
SolrCloud - Why not?
• Good for the vast majority of use cases
• Incremental inserts/updates/deletes oriented.
Pay segment merges per real time
• Need to deploy full indexes fast (faster that rsync
or http replication)
• Now full deploy easier with aliases
Thursday, 2 May 2013
Future lines
Lucene real time feature
• Allows to see docs in the index before they are
committed
• Good but not a must right now for the use case
• Very easy to integrate on the current
architecture
Thursday, 2 May 2013
??Thursday, 2 May 2013
Thanks for your attention!
Marc Sturlese
marc@trovit.com
Lucene/Solr Revolution 2013, San Diego, May 1 2013
Thursday, 2 May 2013
CONFERENCE PARTY
The Tipsy Crow: 770 5th Ave
Starts after Stump The Chump
Your conference badge gets
you in the door
TOMORROW
Breakfast starts at 7:30
Keynotes start at 8:30
Thursday, 2 May 2013

More Related Content

PDF
OpenStack monitoring - Unidata S.p.A. Case Report
PPTX
Puppet Camp Melbourne 2014: Node Collaboration with PuppetDB
PDF
Open Source Operations
PDF
Strata lightening-talk
PDF
Data management and pipelines Measure Camp - San Francisco
PPTX
Storm: a distributed ,fault tolerant ,real time computation
PDF
Microservices are ‘easy’ dependencies are hard
PDF
A real-time architecture using Hadoop and Storm @ JAX London
OpenStack monitoring - Unidata S.p.A. Case Report
Puppet Camp Melbourne 2014: Node Collaboration with PuppetDB
Open Source Operations
Strata lightening-talk
Data management and pipelines Measure Camp - San Francisco
Storm: a distributed ,fault tolerant ,real time computation
Microservices are ‘easy’ dependencies are hard
A real-time architecture using Hadoop and Storm @ JAX London

What's hot (12)

PPTX
Spark Streaming and Expert Systems
PDF
DSD-INT 2015 - Data management with open earth datalabs - Gerben de Boer, van...
PDF
Puppet Camp Melbourne 2014: Node Collaboration with PuppetDB
PDF
Presto in my_use_case2
PPTX
a real-time architecture using Hadoop and Storm at Devoxx
PDF
Working with OpenStreetMap using Apache Spark and Geotrellis
PPTX
20190620 accelerating containers v3
PDF
OpenStack Boston Meetup - April 20th 2017
PPSX
OpenStack 7th Birthday Deck
PDF
Order from chaos: automating monitoring configuration
PDF
Python User Group November 2013, SQL(alchemy) and transient detection
PDF
How a Particle Accelerator Monitors Scientific Experiments Using InfluxDB
Spark Streaming and Expert Systems
DSD-INT 2015 - Data management with open earth datalabs - Gerben de Boer, van...
Puppet Camp Melbourne 2014: Node Collaboration with PuppetDB
Presto in my_use_case2
a real-time architecture using Hadoop and Storm at Devoxx
Working with OpenStreetMap using Apache Spark and Geotrellis
20190620 accelerating containers v3
OpenStack Boston Meetup - April 20th 2017
OpenStack 7th Birthday Deck
Order from chaos: automating monitoring configuration
Python User Group November 2013, SQL(alchemy) and transient detection
How a Particle Accelerator Monitors Scientific Experiments Using InfluxDB
Ad

Similar to Batch Indexing & Near Real Time, keeping things fast (20)

PPTX
Presentation meetup ElasticSearch Paris #10
PDF
Cloud east shutl_talk
PDF
Hotspot Garbage Collection - Tuning Guide
PDF
OSSCON: Big Search 4 Big Data
PDF
Solr At Scale For Time-Oriented Data: Presented by Brett Hoerner, Rocana
PPTX
NISO/NFAIS Joint Virtual Conference: Connecting the Library to the Wider Worl...
PDF
Logmatic at ElasticSearch November Paris meetup
PPTX
Real-Time Inverted Search NYC ASLUG Oct 2014
PDF
There's no magic... until you talk about databases
PDF
Icinga Web 2 is more
PDF
Дмитрий Попович "How to build a data warehouse?"
PDF
Infrastructure Migration
PDF
Search at Twitter
PDF
Strata Conference + Hadoop World NY 2016: Lessons learned building a scalable...
PDF
Answer 'What's for Dinner?' with Vector Search and Natural Language using Hay...
PDF
Building highly reliable data pipeline @datadog par Quentin François
PPTX
Conceptos básicos. Seminario web 1: Introducción a NoSQL
PDF
2013 11-07 lsr-dublin_m_hausenblas_when solr is best
PDF
Testing the Data Warehouse—Big Data, Big Problems
PPTX
Public Seminar_Final 18112014
Presentation meetup ElasticSearch Paris #10
Cloud east shutl_talk
Hotspot Garbage Collection - Tuning Guide
OSSCON: Big Search 4 Big Data
Solr At Scale For Time-Oriented Data: Presented by Brett Hoerner, Rocana
NISO/NFAIS Joint Virtual Conference: Connecting the Library to the Wider Worl...
Logmatic at ElasticSearch November Paris meetup
Real-Time Inverted Search NYC ASLUG Oct 2014
There's no magic... until you talk about databases
Icinga Web 2 is more
Дмитрий Попович "How to build a data warehouse?"
Infrastructure Migration
Search at Twitter
Strata Conference + Hadoop World NY 2016: Lessons learned building a scalable...
Answer 'What's for Dinner?' with Vector Search and Natural Language using Hay...
Building highly reliable data pipeline @datadog par Quentin François
Conceptos básicos. Seminario web 1: Introducción a NoSQL
2013 11-07 lsr-dublin_m_hausenblas_when solr is best
Testing the Data Warehouse—Big Data, Big Problems
Public Seminar_Final 18112014
Ad

Recently uploaded (20)

PDF
The influence of sentiment analysis in enhancing early warning system model f...
PDF
Improvisation in detection of pomegranate leaf disease using transfer learni...
PDF
Produktkatalog für HOBO Datenlogger, Wetterstationen, Sensoren, Software und ...
PDF
sbt 2.0: go big (Scala Days 2025 edition)
PPTX
AI IN MARKETING- PRESENTED BY ANWAR KABIR 1st June 2025.pptx
PDF
A proposed approach for plagiarism detection in Myanmar Unicode text
PDF
Flame analysis and combustion estimation using large language and vision assi...
PDF
How ambidextrous entrepreneurial leaders react to the artificial intelligence...
PPTX
MicrosoftCybserSecurityReferenceArchitecture-April-2025.pptx
PDF
Hybrid horned lizard optimization algorithm-aquila optimizer for DC motor
PPTX
Training Program for knowledge in solar cell and solar industry
PDF
OpenACC and Open Hackathons Monthly Highlights July 2025
DOCX
Basics of Cloud Computing - Cloud Ecosystem
PPTX
Build Your First AI Agent with UiPath.pptx
PDF
sustainability-14-14877-v2.pddhzftheheeeee
PDF
A review of recent deep learning applications in wood surface defect identifi...
PDF
Convolutional neural network based encoder-decoder for efficient real-time ob...
PDF
A contest of sentiment analysis: k-nearest neighbor versus neural network
PPTX
Microsoft Excel 365/2024 Beginner's training
PPTX
TEXTILE technology diploma scope and career opportunities
The influence of sentiment analysis in enhancing early warning system model f...
Improvisation in detection of pomegranate leaf disease using transfer learni...
Produktkatalog für HOBO Datenlogger, Wetterstationen, Sensoren, Software und ...
sbt 2.0: go big (Scala Days 2025 edition)
AI IN MARKETING- PRESENTED BY ANWAR KABIR 1st June 2025.pptx
A proposed approach for plagiarism detection in Myanmar Unicode text
Flame analysis and combustion estimation using large language and vision assi...
How ambidextrous entrepreneurial leaders react to the artificial intelligence...
MicrosoftCybserSecurityReferenceArchitecture-April-2025.pptx
Hybrid horned lizard optimization algorithm-aquila optimizer for DC motor
Training Program for knowledge in solar cell and solar industry
OpenACC and Open Hackathons Monthly Highlights July 2025
Basics of Cloud Computing - Cloud Ecosystem
Build Your First AI Agent with UiPath.pptx
sustainability-14-14877-v2.pddhzftheheeeee
A review of recent deep learning applications in wood surface defect identifi...
Convolutional neural network based encoder-decoder for efficient real-time ob...
A contest of sentiment analysis: k-nearest neighbor versus neural network
Microsoft Excel 365/2024 Beginner's training
TEXTILE technology diploma scope and career opportunities

Batch Indexing & Near Real Time, keeping things fast

  • 1. Batch Indexing & Near Real Time, keeping things fast Marc Sturlese Software engineer @ Trovit Thursday, 2 May 2013
  • 2. About me... • Marc Sturlese – @sturlese • Software engineer @Trovit. R&D focused • Responsible for search and scalability Thursday, 2 May 2013
  • 3. Agenda • Who we are • Batch architecture. Hadoop & Hive • Near real time architecture. Storm & stuff • Putting it all together • Alternatives and Future directions • Questions Thursday, 2 May 2013
  • 4. Who we are Trovit, a search engine for classifieds Thursday, 2 May 2013
  • 5. Who we are Thursday, 2 May 2013
  • 6. Batch Layer • Hadoop based • Documents are crunched by a pipeline of MR jobs • Hive to save stats of each phase Thursday, 2 May 2013
  • 7. Batch Layer Pipeline overview Incoming data Deployment Lucene Indexes Ad Processor Diff Matching Expiration Deduplication Indexing t – 1 External Data Hive Stats Hadoop Cluster Thursday, 2 May 2013
  • 8. Batch Layer The good things! • Index always built from scratch. Small number of big segments • Multicast deployment allows to send indexes to all slaves at the same time. • Backups convenient on HDFS Thursday, 2 May 2013
  • 9. Batch Layer That was cool but... • Not even close to real time • Crunch documents in batch means to wait until all is processed. This can take a few hours • We want to show the user fresher results! Thursday, 2 May 2013
  • 10. Near real time Layer Storm and stuff to the rescue Thursday, 2 May 2013
  • 11. Near real time Layer Storm properties • Distributed real time computation system • Fault tolerance • Horizontal scalability • Low latency • Reliability Thursday, 2 May 2013
  • 12. Near real time Layer Storm in action Slave Slave Solr prod replicas Slave XML feed XML feed Kafka partition Kafka partition Storm topologySources Kafka spout Kafka spout XML spout Doc Manager bolt Indexer bolt SHUFFLE GROUPING GROUPING FIELD Thursday, 2 May 2013
  • 13. Near real time Layer Storm in action • Spouts just read and send • Doc Manager Bolt processes and classifies • Indexer Bolt adds documents to Solr • Replicated logic with different implementation • Careful not to overload Solr slaves... Thursday, 2 May 2013
  • 14. Near real time Layer Storm in action Thursday, 2 May 2013
  • 15. Near real time Layer Storm in action. But... Thursday, 2 May 2013
  • 16. Near real time Layer Storm in action. But... • Now Solr has to handle user queries and storm inserts • Field grouping on Indexer Bolt for politeness • Small bulks to reduce insert requests • Committing on many cores, same host, same time can be painful Thursday, 2 May 2013
  • 17. Near real time Layer Storm in action - Committing Indexer Bolt Cars US Real state UK R1 Cars US R1 Cars US R2 Jobs BR R1 Jobs BR R2 Real state ES R1 Indexer Bolt Jobs BR ZooKeeper Locker Slave 1 Slave 2 Slave N . . . Thursday, 2 May 2013
  • 18. Near real time Layer Storm in action • Adding documents now is fast • Keep number of segments small • Avoid merges on big segments • Just add new docs (no deletes or updates) Thursday, 2 May 2013
  • 19. Mixed Architecture Putting it all together 15 Slave Slave Solr prod replicas Slave XML feed XML feed Kafka partition Kafka partition Storm topologySources Hbase doc info Bulk add Exists? MR Pipeline zk Thursday, 2 May 2013
  • 20. Mixed Architecture Swapping indexes • NRT docs might not be contained in the new batch index (even fresher than the “being built” batch index) • This can lead to inconsistencies... Thursday, 2 May 2013
  • 21. Mixed Architecture Swapping indexes. Time jumps! Thursday, 2 May 2013
  • 22. Mixed Architecture Swapping indexes HBase XML feed t Slave t+1 Slave t Pipeline t Pipeline t+1 XML feed t+1 XML feed t+2 NRT indexer Batch indexer Thursday, 2 May 2013
  • 23. Mixed Architecture Swapping indexes HBase XML feed t Slave t+1 Slave t Pipeline t Pipeline t+1 XML feed t+1 XML feed t+2 NRT indexer Batch indexer Thursday, 2 May 2013
  • 24. Mixed Architecture Swapping indexes HBase XML feed t Slave t+1 Slave t Pipeline t Pipeline t+1 XML feed t+1 XML feed t+2 NRT indexer Batch indexer NRT t+1 NRT t+2 Thursday, 2 May 2013
  • 25. Mixed Architecture Swapping indexes HBase XML feed t Slave t+1 Slave t Pipeline t Pipeline t+1 XML feed t+1 XML feed t+2 NRT indexer Batch indexer NRT t+1 NRT t+2 Thursday, 2 May 2013
  • 26. Mixed Architecture Swapping indexes • NRT indexed docs must be stored in a temporary storage • Fetch missing docs from the storage and add them before the next deploy • This avoids time jumps Thursday, 2 May 2013
  • 27. Mixed Architecture Storm and Hadoop • Near real time inserts, low latency • Hadoop handles deletes and updates. No rush on those • No merges on big segments so optimal query response times • Tolerant to human errors • Temporary lost of accuracy on the NRT layer Thursday, 2 May 2013
  • 28. Alternatives SolrCloud - Why not? • Good for the vast majority of use cases • Incremental inserts/updates/deletes oriented. Pay segment merges per real time • Need to deploy full indexes fast (faster that rsync or http replication) • Now full deploy easier with aliases Thursday, 2 May 2013
  • 29. Future lines Lucene real time feature • Allows to see docs in the index before they are committed • Good but not a must right now for the use case • Very easy to integrate on the current architecture Thursday, 2 May 2013
  • 31. Thanks for your attention! Marc Sturlese [email protected] Lucene/Solr Revolution 2013, San Diego, May 1 2013 Thursday, 2 May 2013
  • 32. CONFERENCE PARTY The Tipsy Crow: 770 5th Ave Starts after Stump The Chump Your conference badge gets you in the door TOMORROW Breakfast starts at 7:30 Keynotes start at 8:30 Thursday, 2 May 2013