systems & research project

Similar documents
class 8 b-trees prof. Stratos Idreos

class 11 b-trees prof. Stratos Idreos

class 10 b-trees 2.0 prof. Stratos Idreos

class 12 b-trees 2.0 prof. Stratos Idreos

column-stores basics

Indexing. Jan Chomicki University at Buffalo. Jan Chomicki () Indexing 1 / 25

HOW INDEX TO STORE DATA DATA

Data Modeling and Databases Ch 10: Query Processing - Algorithms. Gustavo Alonso Systems Group Department of Computer Science ETH Zürich

Data Modeling and Databases Ch 9: Query Processing - Algorithms. Gustavo Alonso Systems Group Department of Computer Science ETH Zürich

Storage hierarchy. Textbook: chapters 11, 12, and 13

Database Technology. Topic 7: Data Structures for Databases. Olaf Hartig.

CSE-E5430 Scalable Cloud Computing Lecture 9

column-stores basics

basic db architectures & layouts

data systems 101 prof. Stratos Idreos class 2

RAID in Practice, Overview of Indexing

Information Systems (Informationssysteme)

Database Architecture 2 & Storage. Instructor: Matei Zaharia cs245.stanford.edu

IMPORTANT: Circle the last two letters of your class account:

CSE 544 Principles of Database Management Systems

Data Systems that are Easy to Design, Tune and Use. Stratos Idreos

Chapter 12: Indexing and Hashing. Basic Concepts

CSE 444: Database Internals. Lectures 5-6 Indexing

Chapter 12: Indexing and Hashing

User Perspective. Module III: System Perspective. Module III: Topics Covered. Module III Overview of Storage Structures, QP, and TM

Physical Data Organization. Introduction to Databases CompSci 316 Fall 2018

Main-Memory Databases 1 / 25

Segmentation with Paging. Review. Segmentation with Page (MULTICS) Segmentation with Page (MULTICS) Segmentation with Page (MULTICS)

Huge market -- essentially all high performance databases work this way

Intro to DB CHAPTER 12 INDEXING & HASHING

CSE 530A. B+ Trees. Washington University Fall 2013

Announcements. Reading Material. Recap. Today 9/17/17. Storage (contd. from Lecture 6)

CS 405G: Introduction to Database Systems. Storage

The Right Read Optimization is Actually Write Optimization. Leif Walsh

Overview of Data Exploration Techniques. Stratos Idreos, Olga Papaemmanouil, Surajit Chaudhuri

class 17 updates prof. Stratos Idreos

Database Systems CSE 414

CS54100: Database Systems

Extending DPDK Flow Classification Libraries for Determinism & Cloud Usages SAMEH GOBRIEL INTEL LABS

CS 222/122C Fall 2016, Midterm Exam

Chapter 11: Indexing and Hashing

Kathleen Durant PhD Northeastern University CS Indexes

CS370 Operating Systems

File Structures and Indexing

Database Systems CSE 414

Distributed File Systems II

data parallelism Chris Olston Yahoo! Research

CS 186/286 Spring 2018 Midterm 1

Systems Infrastructure for Data Science. Web Science Group Uni Freiburg WS 2014/15

LSM-trie: An LSM-tree-based Ultra-Large Key-Value Store for Small Data

PebblesDB: Building Key-Value Stores using Fragmented Log Structured Merge Trees

CS3600 SYSTEMS AND NETWORKS

Chapter 12: Indexing and Hashing

class 9 fast scans 1.0 prof. Stratos Idreos

Physical Disk Structure. Physical Data Organization and Indexing. Pages and Blocks. Access Path. I/O Time to Access a Page. Disks.

Introduction to Database Systems CSE 344

University of Waterloo Midterm Examination Sample Solution

B-Tree. CS127 TAs. ** the best data structure ever

Query Processing. Introduction to Databases CompSci 316 Fall 2017

STORING DATA: DISK AND FILES

The Role of Database Aware Flash Technologies in Accelerating Mission- Critical Databases

CSIT5300: Advanced Database Systems

Bigtable: A Distributed Storage System for Structured Data By Fay Chang, et al. OSDI Presented by Xiang Gao

Lecture S3: File system data layout, naming

Find the block in which the tuple should be! If there is free space, insert it! Otherwise, must create overflow pages!

Spring 2013 CS 122C & CS 222 Midterm Exam (and Comprehensive Exam, Part I) (Max. Points: 100)

Database Systems CSE 414

Review. Support for data retrieval at the physical level:

CSE 344 Final Review. August 16 th

CSE 544 Principles of Database Management Systems. Magdalena Balazinska Winter 2009 Lecture 6 - Storage and Indexing

Performance Monitoring

CS 525: Advanced Database Organization 04: Indexing

HashKV: Enabling Efficient Updates in KV Storage via Hashing

Advanced Databases: Parallel Databases A.Poulovassilis

Indexing. Week 14, Spring Edited by M. Naci Akkøk, , Contains slides from 8-9. April 2002 by Hector Garcia-Molina, Vera Goebel

data systems 101 prof. Stratos Idreos class 2

MASSACHUSETTS INSTITUTE OF TECHNOLOGY Database Systems: Fall 2008 Quiz II

Memory Management. Today. Next Time. Basic memory management Swapping Kernel memory allocation. Virtual memory

Exadata Implementation Strategy

Query Processing with Indexes. Announcements (February 24) Review. CPS 216 Advanced Database Systems

Managing the Database

Physical Level of Databases: B+-Trees

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

Chapter 12: Query Processing. Chapter 12: Query Processing

Ghislain Fourny. Big Data 5. Wide column stores

Query Processing & Optimization

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

Database System Concepts, 6 th Ed. Silberschatz, Korth and Sudarshan See for conditions on re-use

FILE SYSTEMS, PART 2. CS124 Operating Systems Fall , Lecture 24

Bigtable. A Distributed Storage System for Structured Data. Presenter: Yunming Zhang Conglong Li. Saturday, September 21, 13

Datenbanksysteme II: Caching and File Structures. Ulf Leser

CS317 File and Database Systems

Administrivia Carnegie Mellon Univ. Dept. of Computer Science /615 - DB Applications

CS 4604: Introduction to Database Management Systems. B. Aditya Prakash Lecture #10: Query Processing

Cascade Mapping: Optimizing Memory Efficiency for Flash-based Key-value Caching

Administrivia Carnegie Mellon Univ. Dept. of Computer Science /615 - DB Applications

CSC 261/461 Database Systems Lecture 17. Fall 2017

Some Practice Problems on Hardware, File Organization and Indexing

Introduction to Data Management. Lecture 14 (Storage and Indexing)

Databasesystemer, forår 2005 IT Universitetet i København. Forelæsning 8: Database effektivitet. 31. marts Forelæser: Rasmus Pagh

Transcription:

class 4 systems & research project prof. HTTP://DASLAB.SEAS.HARVARD.EDU/CLASSES/CS265/

index index knows order about the data data filtering data: point/range queries

index data

A B C sorted A B C initial state columns in insertion order

A B C sorted A B C initial state columns in insertion order sorted A B C propagate order of A

select max(d),min(e) from R where (A>10 and A<40) and (B>20 and B<60) A B D avoid scan of A avoid TR on B work on a restricted area across all columns good for memory hierarchy sorted pos1 pos2 1 0 1 0 maxd binary search for 10 & 40 for all B values between pos1 & 2: if B>20 and B<60 mark bit vector at pos i for each marked position max(d)

select max(d),min(e) from R where (A>10 and A<40) or (B>20 and B<60) A B D sorted 0 0 0 1 1 1 1 1 0 0 0 0 0 1 0 1 1 1 1 1 0 1 1 0 maxd binary search for 10 & 40 for all B values outside pos1 & 2: if B>20 and B<60 mark bit vector at pos i for each marked position max(d)

A B C A sorted B C queries that filter on A benefit base data B A C sorted queries that filter on B benefit

(with range partitioning) ok and how do we build, search, update a tree index efficiently? node size, data organization fanout DATA DATA DATA DATA DATA DATA structure=complexity=if statements, random access, instruction misses, etc. = no free lunch

searching internal node (v1,p1) (v2,p2) (v3,p3) (v4,p4) (v5,p5) (v6,p6)

(v1,p1) (v2,p2) (v3,p3) (v10,p10) (v11,p11) (v12,p12) what does a leaf contain searching leaf nodes

1,2,3 12,15,17 20, sorted array page size: 64K - holds 16K 4 byte ints N elements, P pages

info to navigate lower level value-pointer 12,20 35, 50, <12 >=12 1,2,3 12,15,17 20, sorted array page size: 64K - holds 16K 4 byte ints N elements, P pages

info to navigate lower level value-pointer 12,20 35, 50, 4+4 bytes for each page (value+pointer) 64K/8= index 8K pages <12 >=12 1,2,3 12,15,17 20, sorted array page size: 64K - holds 16K 4 byte ints N elements, P pages

info to navigate lower level value-pointer 30,50 12,20 35, 50, can index 8K pages of the next level 4+4 bytes for each page (value+pointer) 64K/8= index 8K pages <12 >=12 1,2,3 12,15,17 20, sorted array page size: 64K - holds 16K 4 byte ints N elements, P pages

root 30,50 fαnout 35, 12,20 50, internal nodes 1,2,3 12,15,17 20, leaves

height logfanoutn random accesses root 30,50 fαnout 35, 12,20 50, internal nodes 1,2,3 12,15,17 20, leaves

30,50 get 15 get 15-25 12,20 35, 50, <12 >=12 1,2,3 12,15,17 20, leaves

30,50 updates 12,20 35, 50, 1,2,3 12,15,17 20, 2,5,6,3,2 22,25,24 7,8,3,5,4 good

L1 L2

buffer L1 L2 any problems

L1 L2

c1 c2 c3 L1 L2 c4 c5 c6

buffer updates buffer updates buffer updates memory memory memory disk SSD non volatile memory disk SSD disk

systems project LSM-tree based key-value store Modern B-Tree Techniques by Goetz Graefe, Foundations and Trends in Databases, 2011 The Log-Structured Merge-Tree (LSM-Tree) by Patrick E. O'Neil, Edward Cheng, Dieter Gawlick, Elizabeth J. O'Neil Acta Inf. 33(4): 351-385,1996

MEMORY DISK

sorted on key MEMORY (key-value,key-value,key-value, ) DISK

buffer/mem table sorted on key MEMORY (key-value,key-value,key-value, ) DISK

buffer/mem table sorted on key MEMORY DISK (key-value,key-value,key-value, ) Level 0, Level 1,

buffer/mem table sorted on key MEMORY (key-value,key-value,key-value, ) DISK bloom filters Level 0, Level 1,

buffer/mem table sorted on key MEMORY (key-value,key-value,key-value, ) DISK bloom filters Level 0, Level 1, leveled tiered

new data & updates are always applied at the buffer and duplicates are OK buffer/mem table sorted on key MEMORY (key-value,key-value,key-value, ) DISK bloom filters Level 0, Level 1, leveled tiered

new data & updates are always applied at the buffer and duplicates are OK API: put, get, range, design options: size ratio, memory allocation, structure of levels, # of runs, key-value layout, buffer/mem table sorted on key MEMORY (key-value,key-value,key-value, ) DISK bloom filters Level 0, Level 1, leveled tiered

new data & updates are always applied at the buffer and duplicates are OK API: put, get, range, design options: size ratio, memory allocation, structure of levels, # of runs, key-value layout, MEMORY DISK bloom filters buffer/mem table TWO MILESTONES a) One query at a time and b) concurrent queries sorted on key (key-value,key-value,key-value, ) support specific performance goals provide design analysis and optimizations final paper/presentation/demo check project description, API, tests, goals leveled tiered Level 0, Level 1,

systems project is the default for everyone numerous open research projects on top of that research project open to cs165 students and to students that finish the systems project quickly

be able to query the data immediately & with good performance schema X X X storage load indexing query

be able to query the data immediately & with good performance schema X X X storage load indexing query raw data explore data and gain knowledge immediately

idle time workload knowledge external tools human driven

initialization querying data layout idle time workload knowledge external tools human driven

initialization querying data layout idle time workload knowledge external tools human driven

initialization querying data layout every query workload is treated external as an advice human idle time knowledge tools driven on how data should be stored

initialization querying data layout continuous, lightweight actions to co-locate relevant data every query workload is treated external as an advice human idle time knowledge tools driven on how data should be stored

NORMALIZED DATA DENORMALIZED DATA only fast scans but expensive to create, storage & updates good for updates, storage but we need joins

normalized data

normalized data possible denormalized space

continuously physically reorganize data based on incoming query patterns (joins) normalized data possible denormalized space

continuously physically reorganize data based on incoming query patterns (joins) denormalized fragments queries only need to fast scan normalized data possible denormalized space

continuously physically reorganize data based on incoming query patterns (joins) denormalized fragments queries only need to fast scan normalized data possible denormalized space

continuously physically reorganize data based on incoming query patterns (joins) denormalized fragments queries only need to fast scan normalized data possible denormalized space

continuously physically reorganize data based on incoming query patterns (joins) denormalized fragments queries only need to fast scan normalized data possible denormalized space

response time standard optimal but requires time, workload knowledge & stability # of queries

response time standard adaptive optimal but requires time, workload knowledge & stability # of queries

response time standard adaptive optimal but requires time, workload knowledge & stability # of queries

WHY DO WE NEED TO GO BEYOND ADAPTIVE STORAGE

WHY DO WE NEED TO GO BEYOND ADAPTIVE STORAGE data system X

WHY DO WE NEED TO GO BEYOND ADAPTIVE STORAGE data system X adaptive data system Y

HOW CAN WE EASILY NAVIGATE THE WHOLE DESIGN SPACE?

Design & Development Roles: Architects & Developers Set-up and Tuning Roles: Database Administrators workloads, h/w expected properties (performance, throughput, energy, budget, ) 1 System Design 2 3 Prototype Implementation Full Implemention 4 Set-up & Tune 5 application specific workload, h/w & expected properties Auto-tuning during query processing

1) get N smart people into a room 2) give them T time 3) hope for the best phd phd phd phd phd phd phd phd

1) get N smart people into a room 2) give them T time phd phd phd 3) hope for the best MAGICAL BUT phd slow prone to errors usually no guarantees hard to change phd phd phd phd

say we need a system for workload X (data/access patterns): should we strip down a relational system? should we build up a key-value store or main-memory system? should we build something from scratch?

say we need a system for workload X (data/access patterns): should we strip down a relational system? should we build up a key-value store or main-memory system? should we build something from scratch? say the workload (read/write ratio) shifts (e.g., due to app features): should we use a different data layout for base data - diff updates? should we use different indexing or no indexing?

say we need a system for workload X (data/access patterns): should we strip down a relational system? should we build up a key-value store or main-memory system? should we build something from scratch? say the workload (read/write ratio) shifts (e.g., due to app features): should we use a different data layout for base data - diff updates? should we use different indexing or no indexing? say we buy new hardware X (flash/memory): should we change the size of b-tree nodes? should we change the merging strategy in our LSM-tree?

say we need a system for workload X (data/access patterns): should we strip down a relational system? should we build up a key-value store or main-memory system? should we build something from scratch? say the workload (read/write ratio) shifts (e.g., due to app features): should we use a different data layout for base data - diff updates? should we use different indexing or no indexing? say we buy new hardware X (flash/memory): should we change the size of b-tree nodes? should we change the merging strategy in our LSM-tree? say we want to improve response time: would it be beneficial if we would buy faster flash disks? would it be beneficial if we buy more memory? or just spend the same budget on improving software?

conflicting goals moving target (hardware and requirements change continuously and rapidly) application requirements performance budget hardware energy profile even if we now have better: languages, compilers, libraries, & the cloud

test design tune

disk memory A B C D

disk memory A B C D option1 A BC row-store engine

disk A B C D memory X X X option1 A BC row-store engine A option2 columnstore engine

disk A B C D memory X X X option1 A BC row-store engine A option2 columnstore engine e.g., modern main-memory optimized systems: first ideas in 80s (who remembers khoshafian?), first advanced architectures in 90s, first rather complete designs in early 2000s, mainstream industry adoption 2010+ still limited indexing, limited cost based optimizations,

how many options in designing a relational system or key-value store? system design: all decisions/ideas that go into a db architecture (e.g., link leaves of b-tree, add N holes in vector, use bloom Stratos filter Idreosfor runs of LSM tree, # of bits in Bloom filter, etc.)

how many options in designing a relational system or key-value store? that s 10^18 > 1 QUINTILLION (and counting ) system design: all decisions/ideas that go into a db architecture (e.g., link leaves of b-tree, add N holes in vector, use bloom Stratos filter Idreosfor runs of LSM tree, # of bits in Bloom filter, etc.)

(semi-)automating the more mundane steps the creative process is about: 1) tuning past ideas 2) combining past ideas 3) coming up with completely new ideas

disk memory flash 1 easily utilize past concepts/designs

35 28 # of citations 21 14 7 0 1996 1999 2002 2005 2008 2011 2014 P. O Neil, E. Cheng, D. Gawlick, E, O'Neil The log-structured merge-tree (LSM-tree) Acta Informatica 33 (4): 351 385, 1996 2 do not miss out on cool ideas and concepts

35 28 # of citations 21 14 Google publishes BigTable 7 0 1996 1999 2002 2005 2008 2011 2014 P. O Neil, E. Cheng, D. Gawlick, E, O'Neil The log-structured merge-tree (LSM-tree) Acta Informatica 33 (4): 351 385, 1996 2 do not miss out on cool ideas and concepts

How to model/abstract design decisions? How much can happen automatically (auto-design)?

How to model/abstract design decisions? How much can happen automatically (auto-design)? move from design based on intuition & experience only to a more formal and systematic way to design systems

design properties + impact elements existing designs predicted behavior B-trees & Variants Tries & Variants LSM-Trees & Variants Differential Files Membership Tests Partitioning Logarithmic Design Fractional Cascading Log- Structured Buffering Differential Updates Sparse Indexing R U M R U M R U M R U M R U M R U M R U M Adaptivity DONE DONE DONE DONE DONE DONE DONE DONE DONE DONE OPEN OPEN OPEN OPEN OPEN OPEN DONE DONE DONE DONE OPEN OPEN OPEN OPEN OPEN OPEN DONE DONE DONE OPEN OPEN OPEN OPEN OPEN OPEN OPEN OPEN OPEN DONE OPEN Zone maps & Variants Bitmaps & Variants OPEN OPEN OPEN OPEN OPEN OPEN DONE OPEN OPEN OPEN OPEN OPEN DONE OPEN OPEN OPEN Hashing DONE OPEN OPEN OPEN OPEN OPEN OPEN OPEN Base Data & Columns DONE OPEN OPEN OPEN OPEN OPEN OPEN DONE

design properties + impact elements existing designs predicted behavior B-trees & Variants Tries & Variants LSM-Trees & Variants Differential Files Membership Tests Partitioning Logarithmic Design Fractional Cascading Log- Structured Buffering Differential Updates Sparse Indexing R U M R U M R U M R U M R U M R U M R U M Adaptivity DONE DONE DONE DONE DONE DONE DONE DONE DONE DONE OPEN OPEN OPEN OPEN OPEN OPEN DONE DONE DONE DONE OPEN OPEN OPEN OPEN OPEN OPEN DONE DONE DONE OPEN OPEN OPEN OPEN OPEN OPEN OPEN OPEN OPEN DONE OPEN Zone maps & Variants Bitmaps & Variants OPEN OPEN OPEN OPEN OPEN OPEN DONE OPEN OPEN OPEN OPEN OPEN DONE OPEN OPEN OPEN Hashing DONE OPEN OPEN OPEN OPEN OPEN OPEN OPEN Base Data & Columns DONE OPEN OPEN OPEN OPEN OPEN OPEN DONE studied/ published studied? unpublished studied and failed? no application?

design properties + impact elements existing designs predicted behavior B-trees & Variants Tries & Variants LSM-Trees & Variants Differential Files Membership Tests Partitioning Logarithmic Design Fractional Cascading Log- Structured Buffering Differential Updates Sparse Indexing R U M R U M R U M R U M R U M R U M R U M Adaptivity DONE DONE DONE DONE DONE DONE DONE DONE DONE DONE OPEN OPEN OPEN OPEN OPEN OPEN DONE DONE DONE DONE OPEN OPEN OPEN OPEN OPEN OPEN DONE DONE DONE OPEN OPEN OPEN OPEN OPEN OPEN OPEN OPEN OPEN DONE OPEN Zone maps & Variants Bitmaps & Variants OPEN OPEN OPEN OPEN OPEN OPEN DONE OPEN OPEN OPEN OPEN OPEN DONE OPEN OPEN OPEN Hashing DONE OPEN OPEN OPEN OPEN OPEN OPEN OPEN Base Data & Columns DONE OPEN OPEN OPEN OPEN OPEN OPEN DONE >90% sigmod/vldb/icde papers fit the table their existence and properties can be predicted

design properties + impact elements existing designs predicted behavior B-trees & Variants Tries & Variants LSM-Trees & Variants Differential Files Membership Tests Partitioning Logarithmic Design Fractional Cascading Log- Structured Buffering Differential Updates Sparse Indexing R U M R U M R U M R U M R U M R U M R U M Adaptivity DONE DONE DONE DONE DONE DONE DONE DONE DONE DONE OPEN OPEN OPEN OPEN OPEN OPEN DONE DONE DONE DONE OPEN OPEN OPEN OPEN OPEN OPEN DONE DONE DONE OPEN OPEN OPEN OPEN OPEN OPEN OPEN OPEN OPEN DONE OPEN Zone maps & Variants Bitmaps & Variants OPEN OPEN OPEN OPEN OPEN OPEN DONE OPEN OPEN OPEN OPEN OPEN DONE OPEN OPEN OPEN Hashing DONE OPEN OPEN OPEN OPEN OPEN OPEN OPEN Base Data & Columns DONE OPEN OPEN OPEN OPEN OPEN OPEN DONE >90% sigmod/vldb/icde papers fit the table their existence and properties can be predicted after 50+ years of research on access methods we have CS265, Spring barely 2017 scratched the surface!

mapping the DNA of data systems model impact & side-effects map possible combinations DSL/algebra/search over design space it is a huge graph what-if design hardware/software/ performance) find optimal solution for X given design so far or find errors in an existing design ht=hashtable( ) ht.bucket.options: plain array sorted array tree trie clustered

data system designer INTERACTIVE DATA SYSTEM DESIGN/TUNING/TESTING analogy: your IDE and GDB for system design

data system designer self-designing systems (deep adaptive systems) harder: transitioning cost + limited search time INTERACTIVE DATA SYSTEM DESIGN/TUNING/TESTING analogy: your IDE and GDB for system design

fine-grained decomposition of design components a system is a set of design decisions

fine-grained decomposition of design components a system is a set of design decisions e.g., should we add ghost values in an in-memory contiguous array and how often?

Fractional Cascading Partitioning Fractional Cascading Log-structured Updates Differential Updates Sparse Indexing Logarithmic Design models & testing Read min best wins min Update max min Memory metrics: latency throughput energy

Fractional Cascading Partitioning Fractional Cascading Log-structured Updates Differential Updates Sparse Indexing Logarithmic Design models & testing Read min best wins min Update max min Memory when do models stop metrics: latency throughput energy

1. write/extend modules in a high level language (optimizations) 2. modules= storage/execution/data flow 3. try out >>1 designs (sets of modules)

hybrid store row-store column-store key-value store hash table( hashfuntion, bucketsize, bucket structure, bucket indexing, ) array layout (partitioning, ghost values, ) understanding and navigating focused design spaces building DSLs for DS subspaces, Read/Update/Memory/Concurrency tree layout (read vs write optimized) LSM tree (run size, bloom filter size and properties, )

hybrid store row-store column-store key-value store hash table( hashfuntion, bucketsize, bucket structure, bucket indexing, ) array layout (partitioning, ghost values, ) understanding and navigating focused design spaces building DSLs for DS subspaces, Read/Update/Memory/Concurrency tree layout (read vs write optimized) LSM tree (run size, bloom filter size and properties, ) always optimal key-value store: a log, a sorted vector and an LSM Tree are extremes of the same design continuum (b-tree is also not far away)

research project: navigate the design space of key-value stores study side-effects, transition costs, and procedures on top of Facebook s RocksDB themes: 1) drop cache, 2) size ratio, 3) level structure, 4) memory allocation across mem table/cache/bloom filters, 5) handle r/w spikes 6) optimize range queries

research project: navigate the design space of key-value stores study side-effects, transition costs, and procedures on top of Facebook s RocksDB themes: 1) drop cache, 2) size ratio, 3) level structure, 4) memory allocation across mem table/cache/bloom filters, 5) handle r/w spikes 6) optimize range queries FIRST STEPS: form groups of three understand the design space of LSM-trees pick 2-3 of the goals above and start brainstorming define extreme designs and behavior sketch transition procedure and triggers metric of success, goal get familiar with RocksDB internals

research project: navigate the design space of key-value stores study side-effects, transition costs, and procedures on top of Facebook s RocksDB themes: 1) drop cache, 2) size ratio, 3) level structure, 4) memory allocation across mem table/cache/bloom filters, 5) handle r/w spikes 6) optimize range queries FIRST STEPS: form groups of three understand the design space of LSM-trees pick 2-3 of the goals above and start brainstorming define extreme COME designs TO OH and behavior FINALIZE sketch transition PROPOSAL procedure IN NEXT and triggers 3 WEEKS metric of success, goal get familiar with RocksDB internals

class 4 systems & research project BIG DATA SYSTEMS prof.