Amusing algorithms and data-structures that power Lucene and Elasticsearch. Adrien Grand

Size: px
Start display at page:

Download "Amusing algorithms and data-structures that power Lucene and Elasticsearch. Adrien Grand"

Transcription

1 Amusing algorithms and data-structures that power Lucene and Elasticsearch Adrien Grand

2 Agenda conjunctions regexp queries numeric doc values compression cardinality aggregation

3 How are conjunctions implemented?

4 Inverted index elastic 0 49 index 5 lucene shard 9 0 Terms dictionary Doc freq Postings lists 4

5 Inverted index next next elastic index lucene shard 9 0 Terms dictionary Doc freq Postings lists 5

6 Inverted index advance(0) Uses skip lists elastic 0 49 advance( search ) Uses a tiny in-memory terms index. index lucene shard Terms dictionary Doc freq Postings lists 6

7 Conjunctions. Sort by cost

8 Conjunctions Sort by cost. Leap frog!

9 Conjunctions next

10 Conjunctions next advance() TOO FAR

11 Conjunctions next advance() advance() TOO FAR

12 Conjunctions next advance() advance() TOO FAR 5 already on

13 Conjunctions next advance() advance() TOO FAR already on advance() MATCH 7

14 Conjunctions next advance() advance() TOO FAR already on advance() next 7 MATCH 7 4

15 Conjunctions next advance() advance() TOO FAR already on advance() next 7 MATCH 7 advance(7) TOO FAR 5

16 Conjunctions next advance() advance() TOO FAR already on advance() next 7 MATCH 7 advance(7) TOO FAR 6

17 Conjunctions next advance() advance() TOO FAR already on advance() next 7 MATCH 7 advance(7) advance() TOO FAR 7

18 Conjunctions next advance() advance() TOO FAR already on advance() next 7 MATCH 7 advance(7) advance() advance() TOO FAR 8

19 Conjunctions next advance() advance() TOO FAR already on advance() next 7 MATCH 7 advance(7) advance() advance() advance() TOO FAR MATCH 9

20 Conjunctions next advance() advance() TOO FAR already on advance() next 7 MATCH 7 advance(7) advance() advance() advance() TOO FAR MATCH next END 0

21 How do regexp queries work?

22 Regexp queries elastic 0 49 Challenge: find matching terms and merge postings lists index 5 Naive way: lucene search iterate over terms - evaluate regexp against every term shard 9 0 SLOWWWWWW

23 Regexp queries Ela[Ss]tic.* E l a S t i c s *

24 Regexp queries Not limited to regexps Fuzzy queries too! example: es~ 4

25 How are numeric doc values compressed? 5

26 Aggregation Execution What is average price of green docs? color blue green red Doc IDs 0, 4, 5 (inverted index) 6

27 Aggregation Execution What is average price of green docs? color Doc IDs Doc ID price blue green red 0, 4, ( ) = (field data) 7

28 Field Data and Doc Values Field Data In-memory, lives on JVM Heap All-or-nothing Lazily constructed at query-time Doc Values Disk-based, leverages OS FS cache Pages in/out of FS cache Precomputed at index-time Allows better compression 8

29 Allows better compression Lots of cool tricks, let s dive in! 9

30 Default strategy Delta Encoding + bit packing Doc ID price Encoding Compute min and max values: min= max=9 max - min = 7 so deltas require bits per value Encode the min value Encode deltas on bits per value: [,0,0,,7,] requires 8 bits 0

31 Default strategy Delta Encoding + bit packing Doc ID price Decoding For doc ID d Read bits at offset d* bits Add the min value

32 Less than 56 unique values Table encoding Doc ID price Encoding Dedup and sort values: [, 4, 5, 9] Encode the table index for every doc: [, 0, 0,,, ] bits per value

33 Less than 56 unique values Table encoding Doc ID price Decoding For doc ID d: Read bits at offset d* bits Gives table index t Read value in table at index t

34 Timestamps without full precision GCD compression Doc ID price 7 5 Encoding Compute minimum value: Compute deltas: [0, 0, 0, 0, 70, 50] Compute GCD of the deltas: 0 Encode min value and GCD Then encode quotients using bit packing [,,,0,7,5]: bits per value 4

35 Timestamps without full precision GCD compression Doc ID price 7 5 Decoding For doc ID d: Read bits at offset d* bits Multiply by the GCD Add the min value 5

36 How does the Cardinality agg work? bit-pattern observable magic 6

37 Distinct Counts: Naive Solution Cardinality agg == SELECT Count(Distinct foo) 7

38 Distinct Counts: Naive Solution Maintain a set of all values blue green red Cardinality == set.size() set.size() == n Memory usage == n * size of each term (Ignoring set overhead) 8

39 Distinct Counts: Naive Solution Gets worse in distributed environment blue green red Node abc xyz abc green xyz Node Node 9

40 Distinct Counts: Naive Solution Gets worse in distributed environment blue green red Node abc xyz abc green xyz Node Merge blue abc green green abc red xyz xyz Node 4 Node 40

41 Distinct Counts: HyperLogLog++ Cardinality agg uses HyperLogLog++ instead Approximates cardinality Uses only a few Kb of memory for billions of distinct values Fast! Lossless unions 4

42 Bit-Observable Patterns Let s flip some coins Probability of a run n 4

43 Bit-Observable Patterns Let s flip some coins Probability of a run n 5 heads in a row 4

44 Bit-Observable Patterns Let s flip some coins Probability of a run n 5 heads in a row 0 heads in a row

45 Bit-Observable Patterns Let s flip some coins Probability of a run n 5 heads in a row 0 heads in a row Could do this in one sitting Might take several days 45

46 Key Insight: ^(Length of the run) ~= duration of coin flipping 46

47 Bit-Observable Patterns Let s hash values, instead of flipping coins v = 45 h(v) = Run of zero 47

48 Bit-Observable Patterns Let s hash values, instead of flipping coins v = 45 Set register to h(v) =

49 Bit-Observable Patterns Let s hash values, instead of flipping coins v = 456 h(v) = Run of zeros 49

50 Bit-Observable Patterns Let s hash values, instead of flipping coins v = 456 Set register to h(v) =

51 Bit-Observable Patterns Let s hash values, instead of flipping coins v = 948 h(v) = Don t update register Run of zeros 5

52 Key Insight: ^(Length of the run) ~= cardinality duration of coin flipping Probability of a run n 5 zeros in a row 0 zeros in a row ~ distinct values ~ distinct values 5

53 What if you get unlucky on first value? v = 98 h(v) = Run of 0 zeros oops :( 5

54 Stochastic Averaging Solution: keep multiple counters v = 98 h(v) =

55 Stochastic Averaging Solution: keep multiple counters v = 98 h(v) = Use first bits as register index Run of 0 zeros 55

56 Stochastic Averaging Solution: keep multiple counters 0 v = 98 h(v) = Set register[0] to 0 56

57 Stochastic Averaging Solution: keep multiple counters 0 v = 748 h(v) = Use first bits as register index Run of zero 57

58 Stochastic Averaging Solution: keep multiple counters v = 748 h(v) = Set register[] to 58

59 Stochastic Averaging 0 ^0=04 ^=4 ^=8 ^= Naive approach: sum = 08 In practice harmonic mean times number of registers works better: 4 * 4 / (/04 + /4 + /8 + /) =8. Gives less weight to outliers 59

60 Other neat attributes Registers are small! bits 60

61 Other neat attributes Unions are lossless! U = Take max of each register 5 6

62 Other neat attributes Which is perfect for distributed environments Merge Node Node Node 4 Node 6

63 In closing Stop worrying and learn to love approximate algorithms 6

64 Thank

Is Elasticsearch the Answer?

Is Elasticsearch the Answer? High-Performance Big-Data Computation Solution Is Elasticsearch the Answer? Yoav Melamed Navigation The need Optional solutions What is Elasticsearch Not out of the box Shard limitations and capabilities

More information

Indexing. UCSB 290N. Mainly based on slides from the text books of Croft/Metzler/Strohman and Manning/Raghavan/Schutze

Indexing. UCSB 290N. Mainly based on slides from the text books of Croft/Metzler/Strohman and Manning/Raghavan/Schutze Indexing UCSB 290N. Mainly based on slides from the text books of Croft/Metzler/Strohman and Manning/Raghavan/Schutze All slides Addison Wesley, 2008 Table of Content Inverted index with positional information

More information

230 Million Tweets per day

230 Million Tweets per day Tweets per day Queries per day Indexing latency Avg. query response time Earlybird - Realtime Search @twitter Michael Busch @michibusch michael@twitter.com buschmi@apache.org Earlybird - Realtime Search

More information

1 o Semestre 2007/2008

1 o Semestre 2007/2008 Efficient Departamento de Engenharia Informática Instituto Superior Técnico 1 o Semestre 2007/2008 Outline 1 2 3 4 5 6 7 Outline 1 2 3 4 5 6 7 Text es An index is a mechanism to locate a given term in

More information

Inside the InfluxDB Storage Engine

Inside the InfluxDB Storage Engine Inside the InfluxDB Storage Engine Gianluca Arbezzano gianluca@influxdb.com @gianarb 1 2 What is time series data? 3 Stock trades and quotes 4 Metrics 5 Analytics 6 Events 7 Sensor data 8 Traces Two kinds

More information

Query Answering Using Inverted Indexes

Query Answering Using Inverted Indexes Query Answering Using Inverted Indexes Inverted Indexes Query Brutus AND Calpurnia J. Pei: Information Retrieval and Web Search -- Query Answering Using Inverted Indexes 2 Document-at-a-time Evaluation

More information

CS6200 Information Retrieval. David Smith College of Computer and Information Science Northeastern University

CS6200 Information Retrieval. David Smith College of Computer and Information Science Northeastern University CS6200 Information Retrieval David Smith College of Computer and Information Science Northeastern University Indexing Process!2 Indexes Storing document information for faster queries Indexes Index Compression

More information

Elementary IR: Scalable Boolean Text Search. (Compare with R & G )

Elementary IR: Scalable Boolean Text Search. (Compare with R & G ) Elementary IR: Scalable Boolean Text Search (Compare with R & G 27.1-3) Information Retrieval: History A research field traditionally separate from Databases Hans P. Luhn, IBM, 1959: Keyword in Context

More information

Lecture 15. Lecture 15: Bitmap Indexes

Lecture 15. Lecture 15: Bitmap Indexes Lecture 5 Lecture 5: Bitmap Indexes Lecture 5 What you will learn about in this section. Bitmap Indexes 2. Storing a bitmap index 3. Bitslice Indexes 2 Lecture 5. Bitmap indexes 3 Motivation Consider the

More information

In-Memory Data Management

In-Memory Data Management In-Memory Data Management Martin Faust Research Assistant Research Group of Prof. Hasso Plattner Hasso Plattner Institute for Software Engineering University of Potsdam Agenda 2 1. Changed Hardware 2.

More information

HICAMP Bitmap. A Space-Efficient Updatable Bitmap Index for In-Memory Databases! Bo Wang, Heiner Litz, David R. Cheriton Stanford University DAMON 14

HICAMP Bitmap. A Space-Efficient Updatable Bitmap Index for In-Memory Databases! Bo Wang, Heiner Litz, David R. Cheriton Stanford University DAMON 14 HICAMP Bitmap A Space-Efficient Updatable Bitmap Index for In-Memory Databases! Bo Wang, Heiner Litz, David R. Cheriton Stanford University DAMON 14 Database Indexing Databases use precomputed indexes

More information

Turbocharge your MySQL analytics with ElasticSearch. Guillaume Lefranc Data & Infrastructure Architect, Productsup GmbH Percona Live Europe 2017

Turbocharge your MySQL analytics with ElasticSearch. Guillaume Lefranc Data & Infrastructure Architect, Productsup GmbH Percona Live Europe 2017 Turbocharge your MySQL analytics with ElasticSearch Guillaume Lefranc Data & Infrastructure Architect, Productsup GmbH Percona Live Europe 2017 About the Speaker Guillaume Lefranc Data Architect at Productsup

More information

whitepaper RediSearch: A High Performance Search Engine as a Redis Module

whitepaper RediSearch: A High Performance Search Engine as a Redis Module whitepaper RediSearch: A High Performance Search Engine as a Redis Module Author: Dvir Volk, Senior Architect, Redis Labs Table of Contents RediSearch At-a-Glance 2 A Little Taste: RediSearch in Action

More information

RELATIONAL OPERATORS #1

RELATIONAL OPERATORS #1 RELATIONAL OPERATORS #1 CS 564- Spring 2018 ACKs: Jeff Naughton, Jignesh Patel, AnHai Doan WHAT IS THIS LECTURE ABOUT? Algorithms for relational operators: select project 2 ARCHITECTURE OF A DBMS query

More information

Information Retrieval

Information Retrieval Information Retrieval Suan Lee - Information Retrieval - 05 Index Compression 1 05 Index Compression - Information Retrieval - 05 Index Compression 2 Last lecture index construction Sort-based indexing

More information

Recap: lecture 2 CS276A Information Retrieval

Recap: lecture 2 CS276A Information Retrieval Recap: lecture 2 CS276A Information Retrieval Stemming, tokenization etc. Faster postings merges Phrase queries Lecture 3 This lecture Index compression Space estimation Corpus size for estimates Consider

More information

Text Analytics. Index-Structures for Information Retrieval. Ulf Leser

Text Analytics. Index-Structures for Information Retrieval. Ulf Leser Text Analytics Index-Structures for Information Retrieval Ulf Leser Content of this Lecture Inverted files Storage structures Phrase and proximity search Building and updating the index Using a RDBMS Ulf

More information

Unique Data Organization

Unique Data Organization Unique Data Organization INTRODUCTION Apache CarbonData stores data in the columnar format, with each data block sorted independently with respect to each other to allow faster filtering and better compression.

More information

Advanced Database Systems

Advanced Database Systems Lecture IV Query Processing Kyumars Sheykh Esmaili Basic Steps in Query Processing 2 Query Optimization Many equivalent execution plans Choosing the best one Based on Heuristics, Cost Will be discussed

More information

Using ElasticSearch to Enable Stronger Query Support in Cassandra

Using ElasticSearch to Enable Stronger Query Support in Cassandra Using ElasticSearch to Enable Stronger Query Support in Cassandra www.impetus.com Introduction Relational Databases have been in use for decades, but with the advent of big data, there is a need to use

More information

Lecture 4. Distributed sketching. Graph problems

Lecture 4. Distributed sketching. Graph problems 1 / 21 Lecture 4. Distributed sketching. Graph problems Ricard Gavaldà MIRI Seminar on Data Streams, Spring 2015 Contents 2 / 21 1 Distributed sketching 2 An application: distance distributions in large

More information

Query Processing and Alternative Search Structures. Indexing common words

Query Processing and Alternative Search Structures. Indexing common words Query Processing and Alternative Search Structures CS 510 Winter 2007 1 Indexing common words What is the indexing overhead for a common term? I.e., does leaving out stopwords help? Consider a word such

More information

Challenges in maintaing a high-performance Search-Engine written in Java

Challenges in maintaing a high-performance Search-Engine written in Java Challenges in maintaing a high-performance Search-Engine written in Java Simon Willnauer Apache Lucene Core Committer & PMC Chair simonw@apache.org / simon.willnauer@searchworkings.com 1 Who am I? Lucene

More information

Realtime Search with Lucene. Michael

Realtime Search with Lucene. Michael Realtime Search with Lucene Michael Busch @michibusch michael@twitter.com buschmi@apache.org 1 Realtime Search with Lucene Agenda Introduction - Near-realtime Search (NRT) - Searching DocumentsWriter s

More information

Figure 1: Organisation for 128KB Direct Mapped Cache with 16-word Block Size and Word Addressable

Figure 1: Organisation for 128KB Direct Mapped Cache with 16-word Block Size and Word Addressable Tutorial 12: Cache Problem 1: Direct Mapped Cache Consider a 128KB of data in a direct-mapped cache with 16 word blocks. Determine the size of the tag, index and offset fields if a 32-bit architecture

More information

Information Retrieval

Information Retrieval Introduction to Information Retrieval Lecture 4: Index Construction 1 Plan Last lecture: Dictionary data structures Tolerant retrieval Wildcards Spell correction Soundex a-hu hy-m n-z $m mace madden mo

More information

Indexing Web pages. Web Search: Indexing Web Pages. Indexing the link structure. checkpoint URL s. Connectivity Server: Node table

Indexing Web pages. Web Search: Indexing Web Pages. Indexing the link structure. checkpoint URL s. Connectivity Server: Node table Indexing Web pages Web Search: Indexing Web Pages CPS 296.1 Topics in Database Systems Indexing the link structure AltaVista Connectivity Server case study Bharat et al., The Fast Access to Linkage Information

More information

Making Session Stores More Intelligent KYLE J. DAVIS TECHNICAL MARKETING MANAGER REDIS LABS

Making Session Stores More Intelligent KYLE J. DAVIS TECHNICAL MARKETING MANAGER REDIS LABS Making Session Stores More Intelligent KYLE J. DAVIS TECHNICAL MARKETING MANAGER REDIS LABS What is a session store? A session store is An chunk of data that is connected to one user of a service user

More information

Goal of this document: A simple yet effective

Goal of this document: A simple yet effective INTRODUCTION TO ELK STACK Goal of this document: A simple yet effective document for folks who want to learn basics of ELK (Elasticsearch, Logstash and Kibana) without any prior knowledge. Introduction:

More information

Lucene 4 - Next generation open source search

Lucene 4 - Next generation open source search Lucene 4 - Next generation open source search Simon Willnauer Apache Lucene Core Committer & PMC Chair simonw@apache.org / simon.willnauer@searchworkings.org Who am I? Lucene Core Committer Project Management

More information

Index Construction. Dictionary, postings, scalable indexing, dynamic indexing. Web Search

Index Construction. Dictionary, postings, scalable indexing, dynamic indexing. Web Search Index Construction Dictionary, postings, scalable indexing, dynamic indexing Web Search 1 Overview Indexes Query Indexing Ranking Results Application Documents User Information analysis Query processing

More information

Text Analytics. Index-Structures for Information Retrieval. Ulf Leser

Text Analytics. Index-Structures for Information Retrieval. Ulf Leser Text Analytics Index-Structures for Information Retrieval Ulf Leser Content of this Lecture Inverted files Storage structures Phrase and proximity search Building and updating the index Using a RDBMS Ulf

More information

Information Retrieval. Chap 8. Inverted Files

Information Retrieval. Chap 8. Inverted Files Information Retrieval Chap 8. Inverted Files Issues of Term-Document Matrix 500K x 1M matrix has half-a-trillion 0 s and 1 s Usually, no more than one billion 1 s Matrix is extremely sparse 2 Inverted

More information

Druid Power Interactive Applications at Scale. Jonathan Wei Software Engineer

Druid Power Interactive Applications at Scale. Jonathan Wei Software Engineer Druid Power Interactive Applications at Scale Jonathan Wei Software Engineer History & Motivation Demo Overview Storage Internals Druid Architecture Motivation Motivation Visibility and analysis for complex

More information

Understanding the Optimizer

Understanding the Optimizer Understanding the Optimizer 1 Global topics Introduction At which point does the optimizer his work Optimizer steps Index Questions? 2 Introduction Arno Brinkman BISIT engineering b.v. ABVisie firebird@abvisie.nl

More information

Boolean Retrieval. Manning, Raghavan and Schütze, Chapter 1. Daniël de Kok

Boolean Retrieval. Manning, Raghavan and Schütze, Chapter 1. Daniël de Kok Boolean Retrieval Manning, Raghavan and Schütze, Chapter 1 Daniël de Kok Boolean query model Pose a query as a boolean query: Terms Operations: AND, OR, NOT Example: Brutus AND Caesar AND NOT Calpuria

More information

Query Evaluation Strategies

Query Evaluation Strategies Introduction to Search Engine Technology Term-at-a-Time and Document-at-a-Time Evaluation Ronny Lempel Yahoo! Labs (Many of the following slides are courtesy of Aya Soffer and David Carmel, IBM Haifa Research

More information

Introduction to Database Services

Introduction to Database Services Introduction to Database Services Shaun Pearce AWS Solutions Architect 2015, Amazon Web Services, Inc. or its affiliates. All rights reserved Today s agenda Why managed database services? A non-relational

More information

ORC Files. Owen O June Page 1. Hortonworks Inc. 2012

ORC Files. Owen O June Page 1. Hortonworks Inc. 2012 ORC Files Owen O Malley owen@hortonworks.com @owen_omalley owen@hortonworks.com June 2013 Page 1 Who Am I? First committer added to Hadoop in 2006 First VP of Hadoop at Apache Was architect of MapReduce

More information

PERISCOPE DATA PRESENTS. Speed up Your SQL

PERISCOPE DATA PRESENTS. Speed up Your SQL PERISCOPE DATA PRESENTS Speed up Your SQL Your SQL Queries Are Holding You Back As an analyst, your work is important! Slow queries can keep you from efficiently surfacing and acting on insights. This

More information

Query Execution [15]

Query Execution [15] CSC 661, Principles of Database Systems Query Execution [15] Dr. Kalpakis http://www.csee.umbc.edu/~kalpakis/courses/661 Query processing involves Query processing compilation parsing to construct parse

More information

Research Students Lecture Series 2015

Research Students Lecture Series 2015 Research Students Lecture Series 215 Analyse your big data with this one weird probabilistic approach! Or: applied probabilistic algorithms in 5 easy pieces Advait Sarkar advait.sarkar@cl.cam.ac.uk Research

More information

Analyzing the performance of top-k retrieval algorithms. Marcus Fontoura Google, Inc

Analyzing the performance of top-k retrieval algorithms. Marcus Fontoura Google, Inc Analyzing the performance of top-k retrieval algorithms Marcus Fontoura Google, Inc This talk Largely based on the paper Evaluation Strategies for Top-k Queries over Memory-Resident Inverted Indices, VLDB

More information

Data Blocks: Hybrid OLTP and OLAP on compressed storage

Data Blocks: Hybrid OLTP and OLAP on compressed storage Data Blocks: Hybrid OLTP and OLAP on compressed storage Ben Brümmer Technische Universität München Fürstenfeldbruck, 26. November 208 Ben Brümmer 26..8 Lehrstuhl für Datenbanksysteme Problem HDD/Archive/Tape-Storage

More information

Data-Intensive Distributed Computing

Data-Intensive Distributed Computing Data-Intensive Distributed Computing CS 45/65 43/63 (Winter 08) Part 3: Analyzing Text (/) January 30, 08 Jimmy Lin David R. Cheriton School of Computer Science University of Waterloo These slides are

More information

Understanding Your Audience: Using Probabilistic Data Aggregation Jason Carey Software Engineer, Data

Understanding Your Audience: Using Probabilistic Data Aggregation Jason Carey Software Engineer, Data Understanding Your Audience: Using Probabilistic Data Aggregation Jason Carey Software Engineer, Data Products @jmcarey The Vision Insights Audience API Fast, ad hoc aggregate queries 10+ proprietary demographic

More information

Big Data Analytics CSCI 4030

Big Data Analytics CSCI 4030 High dim. data Graph data Infinite data Machine learning Apps Locality sensitive hashing PageRank, SimRank Filtering data streams SVM Recommen der systems Clustering Community Detection Queries on streams

More information

GIN in 9.4 and further

GIN in 9.4 and further GIN in 9.4 and further Heikki Linnakangas, Alexander Korotkov, Oleg Bartunov May 23, 2014 Two major improvements 1. Compressed posting lists Makes GIN indexes smaller. Smaller is better. 2. When combining

More information

In-Memory Data Structures and Databases Jens Krueger

In-Memory Data Structures and Databases Jens Krueger In-Memory Data Structures and Databases Jens Krueger Enterprise Platform and Integration Concepts Hasso Plattner Intitute What to take home from this talk? 2 Answer to the following questions: What makes

More information

FIBONACCI CODING AND A CARD TRICK

FIBONACCI CODING AND A CARD TRICK FIBONACCI CODING AND A CARD TRICK By Kiran Ananthpur Bacche [Author of Mathematical Approach to Puzzle Solving ] Fibonacci Series is a series of numbers such that each number in the series is a sum of

More information

CMSC424: Database Design. Instructor: Amol Deshpande

CMSC424: Database Design. Instructor: Amol Deshpande CMSC424: Database Design Instructor: Amol Deshpande amol@cs.umd.edu Databases Data Models Conceptual representa1on of the data Data Retrieval How to ask ques1ons of the database How to answer those ques1ons

More information

MySQL Indexing. Best Practices for MySQL 5.6. Peter Zaitsev CEO, Percona MySQL Connect Sep 22, 2013 San Francisco,CA

MySQL Indexing. Best Practices for MySQL 5.6. Peter Zaitsev CEO, Percona MySQL Connect Sep 22, 2013 San Francisco,CA MySQL Indexing Best Practices for MySQL 5.6 Peter Zaitsev CEO, Percona MySQL Connect Sep 22, 2013 San Francisco,CA For those who Does not Know Us Percona Helping Businesses to be Successful with MySQL

More information

Memory management units

Memory management units Memory management units Memory management unit (MMU) translates addresses: CPU logical address memory management unit physical address main memory Computers as Components 1 Access time comparison Media

More information

Main-Memory Databases 1 / 25

Main-Memory Databases 1 / 25 1 / 25 Motivation Hardware trends Huge main memory capacity with complex access characteristics (Caches, NUMA) Many-core CPUs SIMD support in CPUs New CPU features (HTM) Also: Graphic cards, FPGAs, low

More information

MEMORY: SWAPPING. Shivaram Venkataraman CS 537, Spring 2019

MEMORY: SWAPPING. Shivaram Venkataraman CS 537, Spring 2019 MEMORY: SWAPPING Shivaram Venkataraman CS 537, Spring 2019 ADMINISTRIVIA - Project 2b is out. Due Feb 27 th, 11:59 - Project 1b grades are out Lessons from p2a? 1. Start early! 2. Sketch out a design?

More information

Predictive Analysis: Evaluation and Experimentation. Heejun Kim

Predictive Analysis: Evaluation and Experimentation. Heejun Kim Predictive Analysis: Evaluation and Experimentation Heejun Kim June 19, 2018 Evaluation and Experimentation Evaluation Metrics Cross-Validation Significance Tests Evaluation Predictive analysis: training

More information

Introduction to Information Retrieval

Introduction to Information Retrieval Introduction to Information Retrieval http://informationretrieval.org IIR 5: Index Compression Hinrich Schütze Center for Information and Language Processing, University of Munich 2014-04-17 1/59 Overview

More information

CAS CS 460/660 Introduction to Database Systems. Query Evaluation II 1.1

CAS CS 460/660 Introduction to Database Systems. Query Evaluation II 1.1 CAS CS 460/660 Introduction to Database Systems Query Evaluation II 1.1 Cost-based Query Sub-System Queries Select * From Blah B Where B.blah = blah Query Parser Query Optimizer Plan Generator Plan Cost

More information

High Performance Solr. Shalin Shekhar Mangar

High Performance Solr. Shalin Shekhar Mangar High Performance Solr Shalin Shekhar Mangar Performance constraints CPU Memory Disk Network 2 Tuning (CPU) Queries Phrase query Boolean query (AND) Boolean query (OR) Wildcard Fuzzy Soundex roughly in

More information

Announcement. Reading Material. Overview of Query Evaluation. Overview of Query Evaluation. Overview of Query Evaluation 9/26/17

Announcement. Reading Material. Overview of Query Evaluation. Overview of Query Evaluation. Overview of Query Evaluation 9/26/17 Announcement CompSci 516 Database Systems Lecture 10 Query Evaluation and Join Algorithms Project proposal pdf due on sakai by 5 pm, tomorrow, Thursday 09/27 One per group by any member Instructor: Sudeepa

More information

Efficiency. Efficiency: Indexing. Indexing. Efficiency Techniques. Inverted Index. Inverted Index (COSC 488)

Efficiency. Efficiency: Indexing. Indexing. Efficiency Techniques. Inverted Index. Inverted Index (COSC 488) Efficiency Efficiency: Indexing (COSC 488) Nazli Goharian nazli@cs.georgetown.edu Difficult to analyze sequential IR algorithms: data and query dependency (query selectivity). O(q(cf max )) -- high estimate-

More information

Query Evaluation Strategies

Query Evaluation Strategies Introduction to Search Engine Technology Term-at-a-Time and Document-at-a-Time Evaluation Ronny Lempel Yahoo! Research (Many of the following slides are courtesy of Aya Soffer and David Carmel, IBM Haifa

More information

7. Query Processing and Optimization

7. Query Processing and Optimization 7. Query Processing and Optimization Processing a Query 103 Indexing for Performance Simple (individual) index B + -tree index Matching index scan vs nonmatching index scan Unique index one entry and one

More information

ADVANCED HBASE. Architecture and Schema Design GeeCON, May Lars George Director EMEA Services

ADVANCED HBASE. Architecture and Schema Design GeeCON, May Lars George Director EMEA Services ADVANCED HBASE Architecture and Schema Design GeeCON, May 2013 Lars George Director EMEA Services About Me Director EMEA Services @ Cloudera Consulting on Hadoop projects (everywhere) Apache Committer

More information

Web Information Retrieval Exercises Boolean query answering. Prof. Luca Becchetti

Web Information Retrieval Exercises Boolean query answering. Prof. Luca Becchetti Web Information Retrieval Exercises Boolean query answering Prof. Luca Becchetti Material rif 3. Christopher D. Manning, Prabhakar Raghavan and Hinrich Schueze, Introduction to Information Retrieval, Cambridge

More information

MySQL Indexing. Best Practices. Peter Zaitsev, CEO Percona Inc August 15, 2012

MySQL Indexing. Best Practices. Peter Zaitsev, CEO Percona Inc August 15, 2012 MySQL Indexing Best Practices Peter Zaitsev, CEO Percona Inc August 15, 2012 You ve Made a Great Choice! Understanding indexing is crucial both for Developers and DBAs Poor index choices are responsible

More information

MASSACHUSETTS INSTITUTE OF TECHNOLOGY Database Systems: Fall 2008 Quiz II

MASSACHUSETTS INSTITUTE OF TECHNOLOGY Database Systems: Fall 2008 Quiz II Department of Electrical Engineering and Computer Science MASSACHUSETTS INSTITUTE OF TECHNOLOGY 6.830 Database Systems: Fall 2008 Quiz II There are 14 questions and 11 pages in this quiz booklet. To receive

More information

Database Architectures

Database Architectures Database Architectures CPS352: Database Systems Simon Miner Gordon College Last Revised: 4/15/15 Agenda Check-in Parallelism and Distributed Databases Technology Research Project Introduction to NoSQL

More information

How to tackle performance issues when implementing high traffic multi-language search engine with Solr/Lucene

How to tackle performance issues when implementing high traffic multi-language search engine with Solr/Lucene How to tackle performance issues when implementing high traffic multi-language search engine with Solr/Lucene André Bois-Crettez Anca Kopetz Software Architect Software Engineer Berlin Buzzwords 2014 Outline

More information

An In-Depth Analysis of Data Aggregation Cost Factors in a Columnar In-Memory Database

An In-Depth Analysis of Data Aggregation Cost Factors in a Columnar In-Memory Database An In-Depth Analysis of Data Aggregation Cost Factors in a Columnar In-Memory Database Stephan Müller, Hasso Plattner Enterprise Platform and Integration Concepts Hasso Plattner Institute, Potsdam (Germany)

More information

Tag a Tiny Aggregation Service for Ad-Hoc Sensor Networks. Samuel Madden, Michael Franklin, Joseph Hellerstein,Wei Hong UC Berkeley Usinex OSDI 02

Tag a Tiny Aggregation Service for Ad-Hoc Sensor Networks. Samuel Madden, Michael Franklin, Joseph Hellerstein,Wei Hong UC Berkeley Usinex OSDI 02 Tag a Tiny Aggregation Service for Ad-Hoc Sensor Networks Samuel Madden, Michael Franklin, Joseph Hellerstein,Wei Hong UC Berkeley Usinex OSDI 02 Outline Introduction The Tiny AGgregation Approach Aggregate

More information

In-Memory Data Management Jens Krueger

In-Memory Data Management Jens Krueger In-Memory Data Management Jens Krueger Enterprise Platform and Integration Concepts Hasso Plattner Intitute OLTP vs. OLAP 2 Online Transaction Processing (OLTP) Organized in rows Online Analytical Processing

More information

Track Join. Distributed Joins with Minimal Network Traffic. Orestis Polychroniou! Rajkumar Sen! Kenneth A. Ross

Track Join. Distributed Joins with Minimal Network Traffic. Orestis Polychroniou! Rajkumar Sen! Kenneth A. Ross Track Join Distributed Joins with Minimal Network Traffic Orestis Polychroniou Rajkumar Sen Kenneth A. Ross Local Joins Algorithms Hash Join Sort Merge Join Index Join Nested Loop Join Spilling to disk

More information

Parallel DBs. April 25, 2017

Parallel DBs. April 25, 2017 Parallel DBs April 25, 2017 1 Why Scale Up? Scan of 1 PB at 300MB/s (SATA r2 Limit) (x1000) ~1 Hour ~3.5 Seconds 2 Data Parallelism Replication Partitioning A A A A B C 3 Operator Parallelism Pipeline

More information

Database Applications (15-415)

Database Applications (15-415) Database Applications (15-415) DBMS Internals- Part VII Lecture 15, March 17, 2014 Mohammad Hammoud Today Last Session: DBMS Internals- Part VI Algorithms for Relational Operations Today s Session: DBMS

More information

Advanced Indexing Techniques with Lucene

Advanced Indexing Techniques with Lucene Advanced Indexing Techniques with Lucene Michael Busch buschmi@{apache.org, us.ibm.com} 1 1 Advanced Indexing Techniques with Lucene Agenda Introduction - Lucene s data structures 101 - Payloads - Numeric

More information

Outline. Database Management and Tuning. Outline. Join Strategies Running Example. Index Tuning. Johann Gamper. Unit 6 April 12, 2012

Outline. Database Management and Tuning. Outline. Join Strategies Running Example. Index Tuning. Johann Gamper. Unit 6 April 12, 2012 Outline Database Management and Tuning Johann Gamper Free University of Bozen-Bolzano Faculty of Computer Science IDSE Unit 6 April 12, 2012 1 Acknowledgements: The slides are provided by Nikolaus Augsten

More information

1. With respect to space, linked lists are and arrays are.

1. With respect to space, linked lists are and arrays are. 1. With respect to space, linked lists are and arrays are. 1. With respect to space, linked lists are good and arrays are bad. 2. With respect to time, linked lists are and arrays are. 2. With respect

More information

Guest Lecture. Daniel Dao & Nick Buroojy

Guest Lecture. Daniel Dao & Nick Buroojy Guest Lecture Daniel Dao & Nick Buroojy OVERVIEW What is Civitas Learning What We Do Mission Statement Demo What I Do How I Use Databases Nick Buroojy WHAT IS CIVITAS LEARNING Civitas Learning Mid-sized

More information

Database Applications (15-415)

Database Applications (15-415) Database Applications (15-415) DBMS Internals- Part VI Lecture 14, March 12, 2014 Mohammad Hammoud Today Last Session: DBMS Internals- Part V Hash-based indexes (Cont d) and External Sorting Today s Session:

More information

Overview of DB & IR. ICS 624 Spring Asst. Prof. Lipyeow Lim Information & Computer Science Department University of Hawaii at Manoa

Overview of DB & IR. ICS 624 Spring Asst. Prof. Lipyeow Lim Information & Computer Science Department University of Hawaii at Manoa ICS 624 Spring 2011 Overview of DB & IR Asst. Prof. Lipyeow Lim Information & Computer Science Department University of Hawaii at Manoa 1/12/2011 Lipyeow Lim -- University of Hawaii at Manoa 1 Example

More information

Data Warehouse Tuning. Without SQL Modification

Data Warehouse Tuning. Without SQL Modification Data Warehouse Tuning Without SQL Modification Agenda About Me Tuning Objectives Data Access Profile Data Access Analysis Performance Baseline Potential Model Changes Model Change Testing Testing Results

More information

V.2 Index Compression

V.2 Index Compression V.2 Index Compression Heap s law (empirically observed and postulated): Size of the vocabulary (distinct terms) in a corpus E[ distinct terms in corpus] n with total number of term occurrences n, and constants,

More information

MG4J: Managing Gigabytes for Java. MG4J - intro 1

MG4J: Managing Gigabytes for Java. MG4J - intro 1 MG4J: Managing Gigabytes for Java MG4J - intro 1 Managing Gigabytes for Java Schedule: 1. Introduction to MG4J framework. 2. Exercitation: try to set up a search engine on a particular collection of documents.

More information

MASSACHUSETTS INSTITUTE OF TECHNOLOGY Database Systems: Fall 2015 Quiz I

MASSACHUSETTS INSTITUTE OF TECHNOLOGY Database Systems: Fall 2015 Quiz I Department of Electrical Engineering and Computer Science MASSACHUSETTS INSTITUTE OF TECHNOLOGY 6.830 Database Systems: Fall 2015 Quiz I There are 12 questions and 13 pages in this quiz booklet. To receive

More information

Updateable fields in Lucene and other Codec applications. Andrzej Białecki

Updateable fields in Lucene and other Codec applications. Andrzej Białecki Updateable fields in Lucene and other Codec applications Andrzej Białecki Codec API primer Agenda Some interesting Codec applications TeeCodec and TeeDirectory FilteringCodec Single-pass IndexSplitter

More information

Information Retrieval. Lecture 3 - Index compression. Introduction. Overview. Characterization of an index. Wintersemester 2007

Information Retrieval. Lecture 3 - Index compression. Introduction. Overview. Characterization of an index. Wintersemester 2007 Information Retrieval Lecture 3 - Index compression Seminar für Sprachwissenschaft International Studies in Computational Linguistics Wintersemester 2007 1/ 30 Introduction Dictionary and inverted index:

More information

Information Retrieval

Information Retrieval Introduction to Information Retrieval CS3245 Information Retrieval Lecture 6: Index Compression 6 Last Time: index construction Sort- based indexing Blocked Sort- Based Indexing Merge sort is effective

More information

Building an Inverted Index

Building an Inverted Index Building an Inverted Index Algorithms Memory-based Disk-based (Sort-Inversion) Sorting Merging (2-way; multi-way) 2 Memory-based Inverted Index Phase I (parse and read) For each document Identify distinct

More information

Boolean retrieval & basics of indexing CE-324: Modern Information Retrieval Sharif University of Technology

Boolean retrieval & basics of indexing CE-324: Modern Information Retrieval Sharif University of Technology Boolean retrieval & basics of indexing CE-324: Modern Information Retrieval Sharif University of Technology M. Soleymani Fall 2016 Most slides have been adapted from: Profs. Manning, Nayak & Raghavan lectures

More information

Sepand Gojgini. ColumnStore Index Primer

Sepand Gojgini. ColumnStore Index Primer Sepand Gojgini ColumnStore Index Primer SQLSaturday Sponsors! Titanium & Global Partner Gold Silver Bronze Without the generosity of these sponsors, this event would not be possible! Please, stop by the

More information

Database Systems. Announcement. December 13/14, 2006 Lecture #10. Assignment #4 is due next week.

Database Systems. Announcement. December 13/14, 2006 Lecture #10. Assignment #4 is due next week. Database Systems ( 料 ) December 13/14, 2006 Lecture #10 1 Announcement Assignment #4 is due next week. 2 1 Overview of Query Evaluation Chapter 12 3 Outline Query evaluation (Overview) Relational Operator

More information

Using Apache Spark for generating ElasticSearch indices offline

Using Apache Spark for generating ElasticSearch indices offline Using Apache Spark for generating ElasticSearch indices offline Andrej Babolčai ESET Database systems engineer Apache: Big Data Europe 2016 Who am I Software engineer in database systems team Responsible

More information

Self Test Solutions. Introduction. New Requirements for Enterprise Computing. 1. Rely on Disks Does an in-memory database still rely on disks?

Self Test Solutions. Introduction. New Requirements for Enterprise Computing. 1. Rely on Disks Does an in-memory database still rely on disks? Self Test Solutions Introduction 1. Rely on Disks Does an in-memory database still rely on disks? (a) Yes, because disk is faster than main memory when doing complex calculations (b) No, data is kept in

More information

Main Memory: Address Translation

Main Memory: Address Translation Main Memory: Address Translation (Chapter 8) CS 4410 Operating Systems Can t We All Just Get Along? Physical Reality: different processes/threads share the same hardware à need to multiplex CPU (temporal)

More information

CSE 373: Data Structures and Algorithms

CSE 373: Data Structures and Algorithms CSE 373: Data Structures and Algorithms Lecture 19: Comparison Sorting Algorithms Instructor: Lilian de Greef Quarter: Summer 2017 Today Intro to sorting Comparison sorting Insertion Sort Selection Sort

More information

6.830 Lecture Spark 11/15/2017

6.830 Lecture Spark 11/15/2017 6.830 Lecture 19 -- Spark 11/15/2017 Recap / finish dynamo Sloppy Quorum (healthy N) Dynamo authors don't think quorums are sufficient, for 2 reasons: - Decreased durability (want to write all data at

More information

Elasticsearch Scalability and Performance

Elasticsearch Scalability and Performance The Do's and Don ts of Elasticsearch Scalability and Performance Patrick Peschlow Think hard about your mapping Think hard about your mapping Which fields to analyze? How to analyze them? Need term frequencies,

More information

From SQL-query to result Have a look under the hood

From SQL-query to result Have a look under the hood From SQL-query to result Have a look under the hood Classical view on RA: sets Theory of relational databases: table is a set Practice (SQL): a relation is a bag of tuples R π B (R) π B (R) A B 1 1 2

More information

Big Data Infrastructure CS 489/698 Big Data Infrastructure (Winter 2017)

Big Data Infrastructure CS 489/698 Big Data Infrastructure (Winter 2017) Big Data Infrastructure CS 489/698 Big Data Infrastructure (Winter 07) Week 4: Analyzing Text (/) January 6, 07 Jimmy Lin David R. Cheriton School of Computer Science University of Waterloo These slides

More information