Adaptivity. Luca Schroeder & Thomas Lively

Size: px
Start display at page:

Download "Adaptivity. Luca Schroeder & Thomas Lively"

Transcription

1 Adaptivity Luca Schroeder & Thomas Lively H2O: A Hands-free Adaptive Store. Ioannis Alagiannis, Stratos Idreos and Anastassia Ailamaki ACM SIGMOD International Conference on Data Management, 2014

2 Three things are important in the database world: performance, performance, and performance. Bruce Lindsay

3 It all starts with how we how we store data. Stratos

4 physical data layout defines access patterns, & therefore performance

5 The Fixed Storage Layout Problem

6 Row-store (NSM) A B C D insert (1,2,3,4) select A select A,B,C,D

7 Column-store (DSM) A B C D insert (1,2,3,4) select A select A,B,C,D

8

9 one size does not fit all as you change the query, optimal layout changes as well

10 but what if you knew workload perfectly beforehand?

11 A B C D select A select B,C select D

12 Column-groups A B C D select A select B,C select D

13 Column-groups A B C D select A select B,C select D

14 Column-groups A B C D select A select B,C select D

15 Column-groups A B C D select A select B,C select D

16 Column-groups A B C D select A,B select C,D... select B,C select A

17 Column-groups A B C D select A,B select C,D... select B,C select A

18 Column-groups A B C D select A,B select C,D... select B,C select A

19 Column-groups A B C D select A,B select C,D... select B,C select A

20 Column-groups A B C D select A,B select C,D... select B,C select A

21 Column-groups A B C D select A,B select C,D... select B,C select A

22 Column-groups A B C D select A,B select C,D... select B,C select A

23 Column-groups A B C D select A,B select C,D... select B,C select A

24 Column-groups A B C D select A,B select C,D... select B,C select A

25 Column-groups A B C D select A,B select C,D... select B,C select A

26 Column-groups A B C D select A,B select C,D... select B,C select A

27 Column-groups A B C D select A,B select C,D... select B,C select A

28 Column-groups A B C D select A,B select C,D... select B,C select A

29 Column-groups A B C D select A,B select C,D... select B,C select A

30 Column-groups A B C D select A,B select C,D... select B,C select A

31 Column-groups A B C D select A,B select C,D... select B,C select A

32 Column-groups A B C D select A,B select C,D... select B,C select A

33 Column-groups A B C D select A,B select C,D... select B,C select A

34 Column-groups A B C D select A,B select C,D... select B,C select A

35 even with perfect knowledge of workload finding optimal layout is hard (NP-hard!) and one layout will not be optimal for everything

36 different partitions for table with 10 attributes!

37 Fractured mirrors optimizer A B C D A B C D

38 PAX partition attributes across : all data in a row in a single page, but pages are organized column-by-column

39 can we be adaptive?

40

41 Query Processor Layout 1 Layout 2 A B C D A B C D

42 Query Processor Layout 1 Layout 2 A B C D A B C D

43 Query Processor select(a, B) where C<50 Layout 1 Layout 2 A B C D A B C D

44 Query Processor select(a, B) where C<50 Layout 1 Layout 2 A B C D A B C D

45 Query Processor select(a, B) where C<50 Layout 1 Layout 2 A B C D A B C D

46 Query Processor select(a, B) where C<50 Layout 1 Layout 2 A B C D A B C D

47 Query Processor select(a, B) where C<50 Layout 1 Layout 2 A B C D A B C D q(l1)

48 Query Processor select(a, B) where C<50 Layout 1 Layout 2 A B C D A B C D q(l1)

49 Query Processor select(a, B) where C<50 Layout 1 Layout 2 A B C D A B C D q(l1) q(l2)

50 Query Processor select(a, B) where C<50 Layout 1 Layout 2 A B C D A B C D q(l1) < q(l2)

51 Query Processor select(a, B) where C<50 Layout 1 Layout 2 A B C D A B C D q(l1) < q(l2)

52 Operator Generator select(a, B) where C<50 Using Layout 1

53 Operator Generator select(a, B) where C<50 Using Layout 1

54 Operator Generator select(a, B) where C<50 Using Layout 1

55 Operator Generator select(a, B) where C<50 Using Layout 1 int q_sel_vector(const int n, const T* sel, T* colc, T* val1) { int i, j = 0; const T* ptr = colc; for (i = 0; i < n; i++) { if (*ptr < *val1) sel[j++] = i; ptr++; } }...

56 Adaptation Mechanism

57 Adaptation Mechanism

58 select(a, B) where C<50 Adaptation Mechanism

59 select(a, B) where C<50 Adaptation Mechanism

60 select(a, B) where C<50 select(a, B) where C<50 Adaptation Mechanism

61 select(a, B) where C<50 select(a, B) where C<50 Adaptation Mechanism

62 select(a, B) where C<50 select(a, B) where C<50 Adaptation Mechanism L3

63 select(a, B) where C<50 select(a, B) where C<50 L3 A B C D Adaptation Mechanism

64 select(a, B) where C<50 select(a, B) where C<50 Adaptation Mechanism L3 A B C D cost(w, L2) > cost(w, L1) > cost(w, L3)

65 select(a, B) where C<50 select(a, B) where C<50 Adaptation Mechanism L3 A B C D cost(w, L2) > cost(w, L1) > cost(w, L3)

66 select(a, B) where C<50 select(a, B) where C<50 Adaptation Mechanism L3 A B C D cost(w, L2) > cost(w, L1) > cost(w, L3) Propose L3 to Layout Manager

67 select(a, B) where C<50 A B C D

68 select(a, B) where C<50 A B C D

69 select(a, B) where C<50 A B C D

70 select(a, B) where C<50

71 select(a, B) where C<50

72 window size - 1??

73 Large window A A A A B B B B B B Layout A

74 Large window A A A A B B B B B B Layout A

75 Large window A A A A B B B B B B Layout A

76 Large window A A A A B B B B B B cost(w, A) > cost(w, B) Layout B

77 slow adaptation leads to suboptimal performance

78 Small window A B A B A B A B A B Layout A

79 Small window A B A B A B A B A B Layout B

80 Small window A B A B A B A B A B Layout A

81 tradeoff between adapting quickly and overreacting

82

83 online vs. offline reorganization

84

85 generic vs. generated operator

86

87 Generating Code compiler process icc

88 Generating Code query plan compiler process icc

89 Generating Code query plan compiler process icc

90 Generating Code query plan code template compiler process icc

91 Generating Code query plan code template compiler process icc

92 Generating Code query plan code template compiler process icc

93 Generating Code query plan code template compiler process icc

94 Generating Code query plan code template compiler process dynamically linked lib icc

95 Generating Code query plan code template compiler process dynamically linked lib icc

96 Generating Code query plan code template compiler process dynamically linked lib icc

97 Generating Code query plan code template compiler process dynamically linked lib icc query functions

98 Generating Code query plan code template compiler process dynamically linked lib icc query functions

99 Generating Code query plan code template compiler process dynamically linked lib icc query functions RUN

100

101 experiments

102 reorganization

103

104 next steps

105 column store optimizations, indexing: compatible with adaptive storage?

106 can we use machine learning (e.g. neural nets) to forecast future workloads? how far in the future do we want?

107 The End

H2O: A Hands-free Adaptive Store

H2O: A Hands-free Adaptive Store H2O: A Hands-free Adaptive Store Ioannis Alagiannis Stratos Idreos Anastasia Ailamaki Ecole Polytechnique Fédérale de Lausanne {ioannis.alagiannis, anastasia.ailamaki}@epfl.ch Harvard University stratos@seas.harvard.edu

More information

complex plans and hybrid layouts

complex plans and hybrid layouts class 7 complex plans and hybrid layouts prof. Stratos Idreos HTTP://DASLAB.SEAS.HARVARD.EDU/CLASSES/CS165/ essential column-stores features virtual ids late tuple reconstruction (if ever) vectorized execution

More information

class 6 more about column-store plans and compression prof. Stratos Idreos

class 6 more about column-store plans and compression prof. Stratos Idreos class 6 more about column-store plans and compression prof. Stratos Idreos HTTP://DASLAB.SEAS.HARVARD.EDU/CLASSES/CS165/ query compilation an ancient yet new topic/research challenge query->sql->interpet

More information

class 17 updates prof. Stratos Idreos

class 17 updates prof. Stratos Idreos class 17 updates prof. Stratos Idreos HTTP://DASLAB.SEAS.HARVARD.EDU/CLASSES/CS165/ early/late tuple reconstruction, tuple-at-a-time, vectorized or bulk processing, intermediates format, pushing selects

More information

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

Overview of Data Exploration Techniques. Stratos Idreos, Olga Papaemmanouil, Surajit Chaudhuri Overview of Data Exploration Techniques Stratos Idreos, Olga Papaemmanouil, Surajit Chaudhuri data exploration not always sure what we are looking for (until we find it) data has always been big volume

More information

NoDB: Querying Raw Data. --Mrutyunjay

NoDB: Querying Raw Data. --Mrutyunjay NoDB: Querying Raw Data --Mrutyunjay Overview Introduction Motivation NoDB Philosophy: PostgreSQL Results Opportunities NoDB in Action: Adaptive Query Processing on Raw Data Ioannis Alagiannis, Renata

More information

Weaving Relations for Cache Performance

Weaving Relations for Cache Performance VLDB 2001, Rome, Italy Best Paper Award Weaving Relations for Cache Performance Anastassia Ailamaki David J. DeWitt Mark D. Hill Marios Skounakis Presented by: Ippokratis Pandis Bottleneck in DBMSs Processor

More information

class 20 updates 2.0 prof. Stratos Idreos

class 20 updates 2.0 prof. Stratos Idreos class 20 updates 2.0 prof. Stratos Idreos HTTP://DASLAB.SEAS.HARVARD.EDU/CLASSES/CS165/ UPDATE table_name SET column1=value1,column2=value2,... WHERE some_column=some_value INSERT INTO table_name VALUES

More information

Architecture-Conscious Database Systems

Architecture-Conscious Database Systems Architecture-Conscious Database Systems 2009 VLDB Summer School Shanghai Peter Boncz (CWI) Sources Thank You! l l l l Database Architectures for New Hardware VLDB 2004 tutorial, Anastassia Ailamaki Query

More information

Architecture-Conscious Database Systems

Architecture-Conscious Database Systems Architecture-Conscious Database Systems Anastassia Ailamaki Ph.D. Examination November 30, 2000 A DBMS on a 1980 Computer DBMS Execution PROCESSOR 10 cycles/instruction DBMS Data and Instructions 6 cycles

More information

Bridging the Processor/Memory Performance Gap in Database Applications

Bridging the Processor/Memory Performance Gap in Database Applications Bridging the Processor/Memory Performance Gap in Database Applications Anastassia Ailamaki Carnegie Mellon http://www.cs.cmu.edu/~natassa Memory Hierarchies PROCESSOR EXECUTION PIPELINE L1 I-CACHE L1 D-CACHE

More information

class 9 fast scans 1.0 prof. Stratos Idreos

class 9 fast scans 1.0 prof. Stratos Idreos class 9 fast scans 1.0 prof. Stratos Idreos HTTP://DASLAB.SEAS.HARVARD.EDU/CLASSES/CS165/ 1 pass to merge into 8 sorted pages (2N pages) 1 pass to merge into 4 sorted pages (2N pages) 1 pass to merge into

More information

class 12 b-trees 2.0 prof. Stratos Idreos

class 12 b-trees 2.0 prof. Stratos Idreos class 12 b-trees 2.0 prof. Stratos Idreos HTTP://DASLAB.SEAS.HARVARD.EDU/CLASSES/CS165/ A B C A B C clustered/primary index on A Stratos Idreos /26 2 A B C A B C clustered/primary index on A pos C pos

More information

basic db architectures & layouts

basic db architectures & layouts class 4 basic db architectures & layouts prof. Stratos Idreos HTTP://DASLAB.SEAS.HARVARD.EDU/CLASSES/CS165/ videos for sections 3 & 4 are online check back every week (1-2 sections weekly) there is a schedule

More information

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

Data Systems that are Easy to Design, Tune and Use. Stratos Idreos Data Systems that are Easy to Design, Tune and Use data systems that are easy to: (years) (months) design & build set-up & tune (hours/days) use e.g., adapt to new applications, new hardware, spin off

More information

Weaving Relations for Cache Performance

Weaving Relations for Cache Performance Weaving Relations for Cache Performance Anastassia Ailamaki Carnegie Mellon Computer Platforms in 198 Execution PROCESSOR 1 cycles/instruction Data and Instructions cycles

More information

Spanner A distributed database system

Spanner A distributed database system Presented by Yue Xia Spanner A distributed database system Background - Developed by Google initially as a key-value storage system - Developers want traditional database features like query language -

More information

class 13 scans vs indexes prof. Stratos Idreos

class 13 scans vs indexes prof. Stratos Idreos class 13 scans vs indexes prof. Stratos Idreos HTTP://DASLAB.SEAS.HARVARD.EDU/CLASSES/CS165/ b-tree - dynamic tree - always balanced 35,50 35, 12,20 50, 1,2,3 12,15,17 20, Stratos Idreos 2 /24 select from

More information

Query processing on raw files. Vítor Uwe Reus

Query processing on raw files. Vítor Uwe Reus Query processing on raw files Vítor Uwe Reus Outline 1. Introduction 2. Adaptive Indexing 3. Hybrid MapReduce 4. NoDB 5. Summary Outline 1. Introduction 2. Adaptive Indexing 3. Hybrid MapReduce 4. NoDB

More information

class 10 b-trees 2.0 prof. Stratos Idreos

class 10 b-trees 2.0 prof. Stratos Idreos class 10 b-trees 2.0 prof. Stratos Idreos HTTP://DASLAB.SEAS.HARVARD.EDU/CLASSES/CS165/ CS Colloquium HV Jagadish Prof University of Michigan 10/6 Stratos Idreos /29 2 CS Colloquium Magdalena Balazinska

More information

class 5 column stores 2.0 prof. Stratos Idreos

class 5 column stores 2.0 prof. Stratos Idreos class 5 column stores 2.0 prof. Stratos Idreos HTTP://DASLAB.SEAS.HARVARD.EDU/CLASSES/CS165/ worth thinking about what just happened? where is my data? email, cloud, social media, can we design systems

More information

class 17 updates prof. Stratos Idreos

class 17 updates prof. Stratos Idreos class 17 updates prof. Stratos Idreos HTTP://DASLAB.SEAS.HARVARD.EDU/CLASSES/CS165/ UPDATE table_name SET column1=value1,column2=value2,... WHERE some_column=some_value INSERT INTO table_name VALUES (value1,value2,value3,...)

More information

Column Stores - The solution to TB disk drives? David J. DeWitt Computer Sciences Dept. University of Wisconsin

Column Stores - The solution to TB disk drives? David J. DeWitt Computer Sciences Dept. University of Wisconsin Column Stores - The solution to TB disk drives? David J. DeWitt Computer Sciences Dept. University of Wisconsin Problem Statement TB disks are coming! Superwide, frequently sparse tables are common DB

More information

Physical Data Organization. Introduction to Databases CompSci 316 Fall 2018

Physical Data Organization. Introduction to Databases CompSci 316 Fall 2018 Physical Data Organization Introduction to Databases CompSci 316 Fall 2018 2 Announcements (Tue., Nov. 6) Homework #3 due today Project milestone #2 due Thursday No separate progress update this week Use

More information

Plan (next 4 weeks) 1. Fast forward. 2. Rewind. 3. Slow motion. Rapid introduction to what s in OCaml. Go over the pieces individually

Plan (next 4 weeks) 1. Fast forward. 2. Rewind. 3. Slow motion. Rapid introduction to what s in OCaml. Go over the pieces individually Plan (next 4 weeks) 1. Fast forward Rapid introduction to what s in OCaml 2. Rewind 3. Slow motion Go over the pieces individually History, Variants Meta Language Designed by Robin Milner @ Edinburgh Language

More information

I am: Rana Faisal Munir

I am: Rana Faisal Munir Self-tuning BI Systems Home University (UPC): Alberto Abelló and Oscar Romero Host University (TUD): Maik Thiele and Wolfgang Lehner I am: Rana Faisal Munir Research Progress Report (RPR) [1 / 44] Introduction

More information

Weaving Relations for Cache Performance

Weaving Relations for Cache Performance Weaving Relations for Cache Performance Anastassia Ailamaki Carnegie Mellon David DeWitt, Mark Hill, and Marios Skounakis University of Wisconsin-Madison Memory Hierarchies PROCESSOR EXECUTION PIPELINE

More information

The Case for Heterogeneous HTAP

The Case for Heterogeneous HTAP The Case for Heterogeneous HTAP Raja Appuswamy, Manos Karpathiotakis, Danica Porobic, and Anastasia Ailamaki Data-Intensive Applications and Systems Lab EPFL 1 HTAP the contract with the hardware Hybrid

More information

class 10 fast scans 2.0 prof. Stratos Idreos

class 10 fast scans 2.0 prof. Stratos Idreos class 10 fast scans 2.0 prof. Stratos Idreos HTTP://DASLAB.SEAS.HARVARD.EDU/CLASSES/CS165/ always want to minimize data movement - computation & utilize all resources! registers on chip cache on board

More information

HOW INDEX TO STORE DATA DATA

HOW INDEX TO STORE DATA DATA Stratos Idreos HOW INDEX DATA TO STORE DATA ALGORITHMS data structure decisions define the algorithms that access data INDEX DATA ALGORITHMS unordered [7,4,2,6,1,3,9,10,5,8] INDEX DATA ALGORITHMS unordered

More information

OCaml. ML Flow. Complex types: Lists. Complex types: Lists. The PL for the discerning hacker. All elements must have same type.

OCaml. ML Flow. Complex types: Lists. Complex types: Lists. The PL for the discerning hacker. All elements must have same type. OCaml The PL for the discerning hacker. ML Flow Expressions (Syntax) Compile-time Static 1. Enter expression 2. ML infers a type Exec-time Dynamic Types 3. ML crunches expression down to a value 4. Value

More information

Team SimpleMind. Ismail Oukid (TU Dresden), Ingo Müller (KIT), Iraklis Psaroudakis (EPFL) ACM SIGMOD 2015 Programming SIGMOD 2015 (June 2)

Team SimpleMind. Ismail Oukid (TU Dresden), Ingo Müller (KIT), Iraklis Psaroudakis (EPFL) ACM SIGMOD 2015 Programming SIGMOD 2015 (June 2) Team SimpleMind Ismail Oukid (TU Dresden), Ingo Müller (KIT), Iraklis Psaroudakis (EPFL) ACM SIGMOD 2015 Programming Contest @ SIGMOD 2015 (June 2) Public Agenda Programming Contest Overview Transaction

More information

A Self-Designing Key-Value Store

A Self-Designing Key-Value Store A Self-Designing Key-Value Store Niv Dayan, Wilson Qin, Manos Athanassoulis, Stratos Idreos http://daslab.seas.harvard.edu/crimsondb/ storage is cheaper inserts & updates price per GB workload time storage

More information

Advanced optimizations of cache performance ( 2.2)

Advanced optimizations of cache performance ( 2.2) Advanced optimizations of cache performance ( 2.2) 30 1. Small and Simple Caches to reduce hit time Critical timing path: address tag memory, then compare tags, then select set Lower associativity Direct-mapped

More information

systems & research project

systems & research project 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

More information

Smooth Scan: Statistics-Oblivious Access Paths. Renata Borovica-Gajic Stratos Idreos Anastasia Ailamaki Marcin Zukowski Campbell Fraser

Smooth Scan: Statistics-Oblivious Access Paths. Renata Borovica-Gajic Stratos Idreos Anastasia Ailamaki Marcin Zukowski Campbell Fraser Smooth Scan: Statistics-Oblivious Access Paths Renata Borovica-Gajic Stratos Idreos Anastasia Ailamaki Marcin Zukowski Campbell Fraser Q1 Q2 Q3 Q4 Q5 Q6 Q7 Q8 Q9 Q10 Q11 Q12 Q13 Q14 Q16 Q18 Q19 Q21 Q22

More information

SQL Server 2014 Performance Tuning and Optimization

SQL Server 2014 Performance Tuning and Optimization SQL Server 2014 Performance Tuning and Optimization 55144B; 5 Days, Instructor-led Course Description This course is designed to give the right amount of Internals knowledge, and wealth of practical tuning

More information

CS31 Discussion 1E Spring 17 : week 08

CS31 Discussion 1E Spring 17 : week 08 CS31 Discussion 1E Spring 17 : week 08 TA: Bo-Jhang Ho bojhang@cs.ucla.edu Credit to former TA Chelsea Ju Project 5 - Map cipher to crib Approach 1: For each pair of positions, check two letters in cipher

More information

So what does studying PL buy me?

So what does studying PL buy me? So what does studying PL buy me? Enables you to better choose the right language but isn t that decided by libraries, standards, and my boss? Yes. Chicken-and-egg. My goal: educate tomorrow s tech leaders

More information

55144-SQL Server 2014 Performance Tuning and Optimization

55144-SQL Server 2014 Performance Tuning and Optimization 55144-SQL Server 2014 Performance Tuning and Optimization Course Number: M55144 Category: Technical - Microsoft Duration: 5 day Overview This course is designed to give the right amount of Internals knowledge,

More information

Efficient Bulk Deletes for Multi Dimensional Clustered Tables in DB2

Efficient Bulk Deletes for Multi Dimensional Clustered Tables in DB2 Efficient Bulk Deletes for Multi Dimensional Clustered Tables in DB2 Bishwaranjan Bhattacharjee, Timothy Malkemus IBM T.J. Watson Research Center Sherman Lau, Sean McKeough, Jo-anne Kirton Robin Von Boeschoten,

More information

The University Of Michigan. EECS402 Lecture 05. Andrew M. Morgan. Savitch Ch. 5 Arrays Multi-Dimensional Arrays. Consider This Program

The University Of Michigan. EECS402 Lecture 05. Andrew M. Morgan. Savitch Ch. 5 Arrays Multi-Dimensional Arrays. Consider This Program The University Of Michigan Lecture 05 Andrew M. Morgan Savitch Ch. 5 Arrays Multi-Dimensional Arrays Consider This Program Write a program to input 3 ints and output each value and their sum, formatted

More information

News. Programming Languages. Complex types: Lists. Recap: ML s Holy Trinity. CSE 130: Spring 2012

News. Programming Languages. Complex types: Lists. Recap: ML s Holy Trinity. CSE 130: Spring 2012 News CSE 130: Spring 2012 Programming Languages On webpage: Suggested HW #1 PA #1 (due next Fri 4/13) Lecture 2: A Crash Course in ML Please post questions to Piazza Ranjit Jhala UC San Diego Today: A

More information

Object-Based Storage Model for Object-Oriented Database*

Object-Based Storage Model for Object-Oriented Database* Object-Based Storage Model for Object-Oriented Database* Zhongmin Li 1 and Zhanwu Yu 2, ** 1 State Key Laboratory of Information Engineering in Surveying, Mapping and Remote Sensing, Wuhan University,

More information

OCaml. History, Variants. ML s holy trinity. Interacting with ML. Base type: Integers. Base type: Strings. *Notes from Sorin Lerner at UCSD*

OCaml. History, Variants. ML s holy trinity. Interacting with ML. Base type: Integers. Base type: Strings. *Notes from Sorin Lerner at UCSD* OCaml 1. Introduction Rapid introduction to what s in OCaml 2. Focus on Features Individually as Needed as Semester Progresses *Notes from Sorin Lerner at UCSD* History, Variants Meta Language Designed

More information

DBMS Data Loading: An Analysis on Modern Hardware. Adam Dziedzic, Manos Karpathiotakis*, Ioannis Alagiannis, Raja Appuswamy, Anastasia Ailamaki

DBMS Data Loading: An Analysis on Modern Hardware. Adam Dziedzic, Manos Karpathiotakis*, Ioannis Alagiannis, Raja Appuswamy, Anastasia Ailamaki DBMS Data Loading: An Analysis on Modern Hardware Adam Dziedzic, Manos Karpathiotakis*, Ioannis Alagiannis, Raja Appuswamy, Anastasia Ailamaki Data loading: A necessary evil Volume => Expensive 4 zettabytes

More information

Modern RAID Technology. RAID Primer A Configuration Guide

Modern RAID Technology. RAID Primer A Configuration Guide Modern RAID Technology RAID Primer A Configuration Guide E x c e l l e n c e i n C o n t r o l l e r s Modern RAID Technology RAID Primer A Configuration Guide 6th Edition Copyright 1997-2003 ICP vortex

More information

Any questions. Say hello to OCaml. Say hello to OCaml. Why readability matters. History, Variants. Plan (next 4 weeks)

Any questions. Say hello to OCaml. Say hello to OCaml. Why readability matters. History, Variants. Plan (next 4 weeks) Any questions Say hello to OCaml? void sort(int arr[], int beg, int end){ if (end > beg + 1){ int piv = arr[beg]; int l = beg + 1; int r = end; while (l!= r-1){ if(arr[l]

More information

Column Store Internals

Column Store Internals Column Store Internals Sebastian Meine SQL Stylist with sqlity.net sebastian@sqlity.net Outline Outline Column Store Storage Aggregates Batch Processing History 1 History First mention of idea to cluster

More information

Polymorphism. Zimmer CSCI 330

Polymorphism. Zimmer CSCI 330 Polymorphism Polymorphism - is the property of OOP that allows the run-time binding of a function's name to the code that implements the function. (Run-time binding to the starting address of the code.)

More information

Efficient Computation of Data Cubes. Network Database Lab

Efficient Computation of Data Cubes. Network Database Lab Efficient Computation of Data Cubes Network Database Lab Outlines Introduction Some CUBE Algorithms ArrayCube PartitionedCube and MemoryCube Bottom-Up Cube (BUC) Conclusions References Network Database

More information

from bits to systems

from bits to systems class 2 from bits to systems prof. Stratos Idreos HTTP://DASLAB.SEAS.HARVARD.EDU/CLASSES/CS165/ today logistics, goals, etc big data & systems (cont d) designing a data system algorithm: what can go wrong

More information

column-stores basics

column-stores basics class 3 column-stores basics prof. HTTP://DASLAB.SEAS.HARVARD.EDU/CLASSES/CS265/ Goetz Graefe Google Research guest lecture Justin Levandoski Microsoft Research projects option 1: systems project (now

More information

Programming Languages

Programming Languages CSE 130 : Fall 2008 Programming Languages Lecture 2: A Crash Course in ML Ranjit Jhala UC San Diego News On webpage: Suggested HW #1, sample for Quiz #1 on Thu PA #1 (due next Fri 10/10) No make-up quizzes

More information

Programming Languages

Programming Languages CSE 130: Spring 2010 Programming Languages Lecture 2: A Crash Course in ML Ranjit Jhala UC San Diego News On webpage: Suggested HW #1 PA #1 (due next Wed 4/9) Please post questions to WebCT Today: A crash

More information

Towards Model-based Management of Database Fragmentation

Towards Model-based Management of Database Fragmentation Towards Model-based Management of Database Fragmentation Asim Ali, Abdelkarim Erradi, Rashid Hadjidj Qatar University Rui Jia, Sherif Abdelwahed Mississippi State University Outline p Introduction p Model-based

More information

Operator overloading. Conversions. friend. inline

Operator overloading. Conversions. friend. inline Operator overloading Conversions friend inline. Operator Overloading Operators like +, -, *, are actually methods, and can be overloaded. Syntactic sugar. What is it good for - 1 Natural usage. compare:

More information

Memory Hierarchies && The New Bottleneck == Cache Conscious Data Access. Martin Grund

Memory Hierarchies && The New Bottleneck == Cache Conscious Data Access. Martin Grund Memory Hierarchies && The New Bottleneck == Cache Conscious Data Access Martin Grund Agenda Key Question: What is the memory hierarchy and how to exploit it? What to take home How is computer memory organized.

More information

class 11 b-trees prof. Stratos Idreos

class 11 b-trees prof. Stratos Idreos class 11 b-trees prof. Stratos Idreos HTTP://DASLAB.SEAS.HARVARD.EDU/CLASSES/CS165/ Midway check-in: Two design docs tmr (Canvas) & tests on Sunday Next weekend: Lab marathon for midway check-in & tests

More information

Benchmarking Adaptive Indexing

Benchmarking Adaptive Indexing Benchmarking Adaptive Indexing Goetz Graefe 2, Stratos Idreos 1, Harumi Kuno 2, and Stefan Manegold 1 1 CWI Amsterdam The Netherlands first.last@cwi.nl 2 Hewlett-Packard Laboratories Palo Alto, CA first.last@hp.com

More information

Title: How Do I Use Keypads in EZware- 500?

Title: How Do I Use Keypads in EZware- 500? Title: How Do I Use Keypads in EZware- 500? Article Number: TN1071 Date: 07/18/05 Information in this article applies to: EZware-500 HMI Product(s) Silver/HMI500 Series Controller (PLC) Product(s) All

More information

Programming Languages

Programming Languages CSE 130: Fall 2009 Programming Languages Lecture 2: A Crash Course in ML News On webpage: Suggested HW #1 PA #1 (due next Fri 10/9) Technical issues installing Ocaml - should be resolved soon! Ranjit Jhala

More information

CSCI-UA /002, Fall 2012 RK Lab: Approximiate document matching Due: Sep 26 11:59PM

CSCI-UA /002, Fall 2012 RK Lab: Approximiate document matching Due: Sep 26 11:59PM CSCI-UA.0201-001/002, Fall 2012 RK Lab: Approximiate document matching Due: Sep 26 11:59PM 1 Introduction In many scenarios, we would like to know how similar two documents are are to each other. For example,

More information

DRepl. Optimizing Access to Application Data for Analysis and Visualization. Latchesar Ionkov Michael Lang LANL. Carlos Maltzahn UCSC

DRepl. Optimizing Access to Application Data for Analysis and Visualization. Latchesar Ionkov Michael Lang LANL. Carlos Maltzahn UCSC DRepl Optimizing Access to Application Data for Analysis and Visualization Latchesar Ionkov Michael Lang LANL Carlos Maltzahn UCSC HPC Cluster Desktop Desktop Desktop Desktop Head Node FS CN1 CN2 CNk IO1

More information

class 8 b-trees prof. Stratos Idreos

class 8 b-trees prof. Stratos Idreos class 8 b-trees prof. Stratos Idreos HTTP://DASLAB.SEAS.HARVARD.EDU/CLASSES/CS165/ I spend a lot of time debugging am I doing something wrong? maybe but probably not 1. learn to use gdb 2. after spending

More information

Advanced C++ Topics. Alexander Warg, 2017

Advanced C++ Topics. Alexander Warg, 2017 www.kernkonzept.com Advanced C++ Topics Alexander Warg, 2017 M I C R O K E R N E L M A D E I N G E R M A N Y Overview WHAT IS BEHIND C++ Language Magics Object Life Time Object Memory Layout INTRODUCTION

More information

Simple Low Concentrating Module Design Increases Solar Cell Output 25%

Simple Low Concentrating Module Design Increases Solar Cell Output 25% Simple Low Concentrating Module Design Increases Solar Cell Output 25% 3D Solar: The Next Dimension In Solar Power May 16, 2012 to WREF 2012 Denver, CO by Daniel Simon Overview of WREF 2012 Paper 3D Solar

More information

DKT 122/3 DIGITAL SYSTEM 1

DKT 122/3 DIGITAL SYSTEM 1 Company LOGO DKT 122/3 DIGITAL SYSTEM 1 BOOLEAN ALGEBRA (PART 2) Boolean Algebra Contents Boolean Operations & Expression Laws & Rules of Boolean algebra DeMorgan s Theorems Boolean analysis of logic circuits

More information

CSE 344 Final Review. August 16 th

CSE 344 Final Review. August 16 th CSE 344 Final Review August 16 th Final In class on Friday One sheet of notes, front and back cost formulas also provided Practice exam on web site Good luck! Primary Topics Parallel DBs parallel join

More information

data systems 101 prof. Stratos Idreos class 2

data systems 101 prof. Stratos Idreos class 2 class 2 data systems 101 prof. Stratos Idreos HTTP://DASLAB.SEAS.HARVARD.EDU/CLASSES/CS265/ 2 classes per week - OH/Labs every day 1 presentation/discussion lead - 2 reviews each week research (or systems)

More information

Accelerating Analytical Workloads

Accelerating Analytical Workloads Accelerating Analytical Workloads Thomas Neumann Technische Universität München April 15, 2014 Scale Out in Big Data Analytics Big Data usually means data is distributed Scale out to process very large

More information

Data Page Layouts for Relational Databases on Deep Memory Hierarchies

Data Page Layouts for Relational Databases on Deep Memory Hierarchies Data Page Layouts for Relational Databases on Deep Memory Hierarchies Anastassia Ailamaki David J. DeWitt Mark D. Hill Carnegie Mellon University natassa@cmu.edu University of Wisconsin - Madison {dewitt,

More information

Shopping Cart: Queries, Personalizations, Filters, and Settings

Shopping Cart: Queries, Personalizations, Filters, and Settings Shopping Cart: Queries, Personalizations, Filters, and Settings on the Shopping Cart Home Page Use this Job Aid to: Learn how to organize the Shopping Cart home page so that it is easier to use. BEFORE

More information

MDF4 Lib. Product Information

MDF4 Lib. Product Information Product Information Table of Contents 1 Overview...3 1.1 Introduction...3 1.2 Application Areas...3 1.3 Overview of Advantages...3 2 Features and Advantages...4 2.1 Supported MDF Versions...4 3 Functional

More information

CS 265. Computer Architecture. Wei Lu, Ph.D., P.Eng.

CS 265. Computer Architecture. Wei Lu, Ph.D., P.Eng. CS 265 Computer Architecture Wei Lu, Ph.D., P.Eng. 1 Part 1: Data Representation Our goal: revisit and re-establish fundamental of mathematics for the computer architecture course Overview: what are bits

More information

Sung-Eun Choi and Steve Deitz Cray Inc.

Sung-Eun Choi and Steve Deitz Cray Inc. Sung-Eun Choi and Steve Deitz Cray Inc. Domains and Arrays Overview Arithmetic Other Domain Types Data Parallel Operations Examples Chapel: Data Parallelism 2 A first-class index set Specifies size and

More information

55144 SQL Server 2014 Performance Tuning and Optimization Microsoft Official Curriculum (MOC 55144)

55144 SQL Server 2014 Performance Tuning and Optimization Microsoft Official Curriculum (MOC 55144) 55144 SQL Server 2014 Performance Tuning and Optimization Microsoft Official Curriculum (MOC 55144) Course Length: 5 days Course Delivery: Traditional Classroom Online Live Course Overview This five day

More information

Meta-Programming and JIT Compilation

Meta-Programming and JIT Compilation Meta-Programming and JIT Compilation Sean Treichler 1 Portability vs. Performance Many scientific codes sp ~100% of their cycles in a tiny fraction of the code base We want these kernels to be as fast

More information

Evolution of Implementation Technologies. ECE 4211/5211 Rapid Prototyping with FPGAs. Gate Array Technology (IBM s) Programmable Logic

Evolution of Implementation Technologies. ECE 4211/5211 Rapid Prototyping with FPGAs. Gate Array Technology (IBM s) Programmable Logic ECE 42/52 Rapid Prototyping with FPGAs Dr. Charlie Wang Department of Electrical and Computer Engineering University of Colorado at Colorado Springs Evolution of Implementation Technologies Discrete devices:

More information

L2 cache provides additional on-chip caching space. L2 cache captures misses from L1 cache. Summary

L2 cache provides additional on-chip caching space. L2 cache captures misses from L1 cache. Summary HY425 Lecture 13: Improving Cache Performance Dimitrios S. Nikolopoulos University of Crete and FORTH-ICS November 25, 2011 Dimitrios S. Nikolopoulos HY425 Lecture 13: Improving Cache Performance 1 / 40

More information

An application: foreign function bindings

An application: foreign function bindings 1/ 19 An application: foreign function bindings C int puts ( const char *s); 2/ 19 C in two minutes object types numeric types int, char, float,... pointers int *, char *, int **,... structures and unions

More information

Blanket Execution: Dynamic Similarity Testing for Program Binaries and Components

Blanket Execution: Dynamic Similarity Testing for Program Binaries and Components Blanket Execution: Dynamic Similarity Testing for Program Binaries and Components Manuel Egele, Maverick Woo, Peter Chapman, and David Brumley Carnegie Mellon University 1 Picture Yourself as an Analyst

More information

Implementing Higher-Level Languages. Quick tour of programming language implementation techniques. From the Java level to the C level.

Implementing Higher-Level Languages. Quick tour of programming language implementation techniques. From the Java level to the C level. Implementing Higher-Level Languages Quick tour of programming language implementation techniques. From the Java level to the C level. Ahead-of-time compiler compile time C source code C compiler x86 assembly

More information

DASlab: The Data Systems Laboratory

DASlab: The Data Systems Laboratory DASlab: The Data Systems Laboratory at Harvard SEAS Stratos Idreos Harvard University http://daslab.seas.harvard.edu ABSTRACT DASlab is a new laboratory at the Harvard School of Engineering and Applied

More information

int x = 15; int &reftox = x; reftox = 3; // reftox is a synonym for x cout

More information

1.4 Euler Diagram Layout Techniques

1.4 Euler Diagram Layout Techniques 1.4 Euler Diagram Layout Techniques Euler Diagram Layout Techniques: Overview Dual graph based methods Inductive methods Drawing with circles Including software demos. How is the drawing problem stated?

More information

Chapter 6 Caches. Computer System. Alpha Chip Photo. Topics. Memory Hierarchy Locality of Reference SRAM Caches Direct Mapped Associative

Chapter 6 Caches. Computer System. Alpha Chip Photo. Topics. Memory Hierarchy Locality of Reference SRAM Caches Direct Mapped Associative Chapter 6 s Topics Memory Hierarchy Locality of Reference SRAM s Direct Mapped Associative Computer System Processor interrupt On-chip cache s s Memory-I/O bus bus Net cache Row cache Disk cache Memory

More information

C++ (Non for C Programmer) (BT307) 40 Hours

C++ (Non for C Programmer) (BT307) 40 Hours C++ (Non for C Programmer) (BT307) 40 Hours Overview C++ is undoubtedly one of the most widely used programming language for implementing object-oriented systems. The C++ language is based on the popular

More information

CISC-124. Casting. // this would fail because we can t assign a double value to an int // variable

CISC-124. Casting. // this would fail because we can t assign a double value to an int // variable CISC-124 20180122 Today we looked at casting, conditionals and loops. Casting Casting is a simple method for converting one type of number to another, when the original type cannot be simply assigned to

More information

Databricks, an Introduction

Databricks, an Introduction Databricks, an Introduction Chuck Connell, Insight Digital Innovation Insight Presentation Speaker Bio Senior Data Architect at Insight Digital Innovation Focus on Azure big data services HDInsight/Hadoop,

More information

PREPROCESSING FOR ADVANCED DATA ANALYSIS

PREPROCESSING FOR ADVANCED DATA ANALYSIS PREPROCESSING FOR ADVANCED DATA ANALYSIS PSYC696B CHAP 7 JL SANGUINETTI Preprocessing Reorganization Transformation Data analysis Collecting EEG Organize Extracting epochs Adjusting event codes Removing

More information

Andrew Pavlo, Erik Paulson, Alexander Rasin, Daniel Abadi, David DeWitt, Samuel Madden, and Michael Stonebraker SIGMOD'09. Presented by: Daniel Isaacs

Andrew Pavlo, Erik Paulson, Alexander Rasin, Daniel Abadi, David DeWitt, Samuel Madden, and Michael Stonebraker SIGMOD'09. Presented by: Daniel Isaacs Andrew Pavlo, Erik Paulson, Alexander Rasin, Daniel Abadi, David DeWitt, Samuel Madden, and Michael Stonebraker SIGMOD'09 Presented by: Daniel Isaacs It all starts with cluster computing. MapReduce Why

More information

names names identifiers variables subroutines constants

names names identifiers variables subroutines constants names (source: Louden, "Programming Languages, Principles and Practices", 2nd Edition, Ch. 5, pp. 125-134)!p. 126: "A fundamental abstraction mechanism in a programming language is the use of names, or

More information

Data Warehousing and Data Mining

Data Warehousing and Data Mining Data Warehousing and Data Mining Lecture 3 Efficient Cube Computation CITS3401 CITS5504 Wei Liu School of Computer Science and Software Engineering Faculty of Engineering, Computing and Mathematics Acknowledgement:

More information

Semantic Analysis. Compiler Architecture

Semantic Analysis. Compiler Architecture Processing Systems Prof. Mohamed Hamada Software Engineering Lab. The University of Aizu Japan Source Compiler Architecture Front End Scanner (lexical tokens Parser (syntax Parse tree Semantic Analysis

More information

DATABASE Management Systems (DBMSs) have been

DATABASE Management Systems (DBMSs) have been EDIC RESEARCH PROPOSAL 1 Towards Adaptive, Flexible, and Self-tuned Database Systems Ioannis Alagiannis DIAS, I&C, EPFL Abstract Modern database management systems (DBMSs) are used to answer complex queries

More information

Efficient in-network evaluation of multiple queries

Efficient in-network evaluation of multiple queries Efficient in-network evaluation of multiple queries Vinayaka Pandit 1 and Hui-bo Ji 2 1 IBM India Research Laboratory, email:pvinayak@in.ibm.com 2 Australian National University, email: hui-bo.ji@anu.edu.au

More information

BITG 1113: POINTER LECTURE 12

BITG 1113: POINTER LECTURE 12 BITG 1113: POINTER LECTURE 12 1 LEARNING OUTCOMES At the end of this lecture, you should be able to: 1. Describe the concept of pointer. 2. Write declaration and initialization of a pointer. 3. Do arithmetic

More information

University of Waterloo Department of Electrical and Computer Engineering ECE 250 Data Structures and Algorithms. Final Examination

University of Waterloo Department of Electrical and Computer Engineering ECE 250 Data Structures and Algorithms. Final Examination University of Waterloo Department of Electrical and Computer Engineering ECE 250 Data Structures and Algorithms Instructor: Douglas Wilhelm Harder Time: 2.5 hours Aides: none 14 pages Final Examination

More information

NAMESPACES IN C++ You can refer the Programming with ANSI C++ by Bhushan Trivedi for Understanding Namespaces Better(Chapter 14)

NAMESPACES IN C++ You can refer the Programming with ANSI C++ by Bhushan Trivedi for Understanding Namespaces Better(Chapter 14) NAMESPACES IN C++ You can refer the Programming with ANSI C++ by Bhushan Trivedi for Understanding Namespaces Better(Chapter 14) Some Material for your reference: Consider following C++ program. // A program

More information