35
SciDB: an open-source, array-oriented database management system Philippe Cudré-Mauroux Massachusetts Institute of Technology / University of Fribourg, Switzerland & the SciDB Team October 29, 2010 CIS, Itaipava, Brazil Monday, November 29, 2010

SciDB: an open-source, array-oriented database management ... · SciDB: an open-source, array-oriented database management system Philippe Cudré-Mauroux Massachusetts Institute of

  • Upload
    others

  • View
    34

  • Download
    0

Embed Size (px)

Citation preview

Page 1: SciDB: an open-source, array-oriented database management ... · SciDB: an open-source, array-oriented database management system Philippe Cudré-Mauroux Massachusetts Institute of

SciDB: an open-source, array-orienteddatabase management system

Philippe Cudré-MaurouxMassachusetts Institute of Technology / University of Fribourg, Switzerland

& the SciDB Team

October 29, 2010CIS, Itaipava, Brazil

Monday, November 29, 2010

Page 2: SciDB: an open-source, array-oriented database management ... · SciDB: an open-source, array-oriented database management system Philippe Cudré-Mauroux Massachusetts Institute of

Outline

■ I. Context■ Exascale Data Deluge■ XLDB Workshops■ The SciDB Consortium

■ II. System Overview■ Data Model■ Storage Model■ Operators■ Optimal Chunking■ Array Versioning■ SS-DB: a Science DBMS benchmark

Monday, November 29, 2010

Page 3: SciDB: an open-source, array-oriented database management ... · SciDB: an open-source, array-oriented database management system Philippe Cudré-Mauroux Massachusetts Institute of

Exascale Data Deluge

• Science■ Biology■ Astronomy■ Remote Sensing

• Web companies■ Ebay■ Yahoo

• Financial services, retail companiesgovernments, etc.

© Wired 2009

➡New data formats➡Peta & exa-scale

data sets

Monday, November 29, 2010

Page 4: SciDB: an open-source, array-oriented database management ... · SciDB: an open-source, array-oriented database management system Philippe Cudré-Mauroux Massachusetts Institute of

Obsolete Infrastructures

• Data management infrastructures (DBMSs) were not prepared for this deluge

© IBM

One application

One data type

One user

One CPU

➡ Infrastructures collapse

Monday, November 29, 2010

Page 5: SciDB: an open-source, array-oriented database management ... · SciDB: an open-source, array-oriented database management system Philippe Cudré-Mauroux Massachusetts Institute of

Why is evolving DBMSs so hard?

• Two fundamental problems to tackle■ Obsolete physical model (impedance mismatch)

■ N-ary storage, relational tuples■ B/R-trees■ SPJ queries➡Catastrophic performance in new application domains

■ Impractical logical guarantees■ ACID properties■ Brewer’s conjecture (CAP theorem)➡Inherent difficulty to scale-out

Monday, November 29, 2010

Page 6: SciDB: an open-source, array-oriented database management ... · SciDB: an open-source, array-oriented database management system Philippe Cudré-Mauroux Massachusetts Institute of

New Era of Data Management

• Users have gone away of DBMSs...■ File-centric solutions■ Procedural processing chains

• ... and have come back■ Data abstractions (physical & logical)■ Strong consistency guarantees

Monday, November 29, 2010

Page 7: SciDB: an open-source, array-oriented database management ... · SciDB: an open-source, array-oriented database management system Philippe Cudré-Mauroux Massachusetts Institute of

XLDB Workshops

■ Extremely Large Databases Workshops■ practical issues related to extremely large

databases (1PB+)■ focus on eScience: radio-astronomy, geoscience,

genomics, particle physics■ invitation-only■ organized since 2007 by Becla & Lim (SLAC)

■ Invited database researchers from the start■ consensus on array data model■ SciDB was born

■ Open-source, array-oriented database system■ CIDR paper 2009 [S09]

Monday, November 29, 2010

Page 8: SciDB: an open-source, array-oriented database management ... · SciDB: an open-source, array-oriented database management system Philippe Cudré-Mauroux Massachusetts Institute of

■ Distributed R&D Team

■ Scientific Advisory Board

■ Start-up (Zetics)■ Marylin Matz (CEO) & Paul Brown (CTO)

■ Beta version demoed at VLDB 2009 [CM09]■ First public release (V0.5) available now

The SciDB Consortium

Monday, November 29, 2010

Page 9: SciDB: an open-source, array-oriented database management ... · SciDB: an open-source, array-oriented database management system Philippe Cudré-Mauroux Massachusetts Institute of

II. System Overview

Monday, November 29, 2010

Page 10: SciDB: an open-source, array-oriented database management ... · SciDB: an open-source, array-oriented database management system Philippe Cudré-Mauroux Massachusetts Institute of

SciDB Philosophy

■ Array-Oriented■ Declarative■ Extensible■ Shared-Nothing■ Open-Source

Monday, November 29, 2010

Page 11: SciDB: an open-source, array-oriented database management ... · SciDB: an open-source, array-oriented database management system Philippe Cudré-Mauroux Massachusetts Institute of

High-Level Architecture

!"#$%&'(()#"*+,-

.*-/0*/1&!(1"#2"&34

50167&4-8169*"1&&

*-:&;*6<16

=0-+>1&!0(16?#<,6

;)*-&@1-16*8,6

A,:1&BA,:1&C

.,"*)&DE1"08,6

!8,6*/1&F*-*/16

A,:1&G

'(()#"*+,-&.*716

!16?16&.*716

!8,6*/1&.*716

Monday, November 29, 2010

Page 12: SciDB: an open-source, array-oriented database management ... · SciDB: an open-source, array-oriented database management system Philippe Cudré-Mauroux Massachusetts Institute of

Data Model

a1 = 2

a2 = 3.2f

a3 =

Dim

ensio

n 2

Dimension 1(0,0)

(5,2)

➡ Nested, multidimensional arrays as first-class citizens• Basic data types• User-Defined Types

Monday, November 29, 2010

Page 13: SciDB: an open-source, array-oriented database management ... · SciDB: an open-source, array-oriented database management system Philippe Cudré-Mauroux Massachusetts Institute of

Storage Model (1/3)

■ Vertical PartitioningD

ime

nsio

n 2

Dimension 1(0,0)

a1 = 2

a2 = 3.2f

a3 = D

ime

nsio

n 2

Dimension 1(0,0)

(5,2)

(0,0)

(0,1)

(0,2)

(0,3)

...

Dim

en

sio

n 2

Dimension 1(0,0)

a1 a2 a3

Monday, November 29, 2010

Page 14: SciDB: an open-source, array-oriented database management ... · SciDB: an open-source, array-oriented database management system Philippe Cudré-Mauroux Massachusetts Institute of

Storage Model (2/3)

■ Co-location of values■ Adaptive chunking■ Dense-packing■ Chunks co-location■ Compression

■ Two on-disk representations■ Dense arrays

■ extremely compact, no position, offsetting

■ Sparse arrays■ compactly stores positions +

values in array order

Dim

en

sio

n 2

Dimension 1(0,0)

Monday, November 29, 2010

Page 15: SciDB: an open-source, array-oriented database management ... · SciDB: an open-source, array-oriented database management system Philippe Cudré-Mauroux Massachusetts Institute of

Storage Model (3/3)

■ Co-location of nested arrays■ Nested array of rank M

from parent array of rank N stored as array of rank (M+N)

■ Redundancy■ Array replication■ Chunking w/ overlap

➡ Parallelism

overlap 1

chunk 1

overlap 2

chunk 2

Dimension 1

Dim

en

sio

n 2

a3

(0,0)

Monday, November 29, 2010

Page 16: SciDB: an open-source, array-oriented database management ... · SciDB: an open-source, array-oriented database management system Philippe Cudré-Mauroux Massachusetts Institute of

Operators (1/2)

■ Declarative system supporting an array-oriented query language (AQL)

■ Three types of operators■ Structural (subsample, add dimension, concatenate etc.)■ Content-dependent (filter, select etc.)■ Both structural & content-dependent (joins)

Monday, November 29, 2010

Page 17: SciDB: an open-source, array-oriented database management ... · SciDB: an open-source, array-oriented database management system Philippe Cudré-Mauroux Massachusetts Institute of

Operators (2/2)

■ Scatter/gather■ Generic operator to

distribute & aggregatearray chunks & values in distributed settings

Monday, November 29, 2010

Page 18: SciDB: an open-source, array-oriented database management ... · SciDB: an open-source, array-oriented database management system Philippe Cudré-Mauroux Massachusetts Institute of

The Array Query Language (AQL)

CREATE ARRAY Test_Array ! < A: integer NULLS,! B: double, ! C: USER_DEFINED_TYPE > ! [I=0:99999,1000, 10, J=0:99999,1000, 10 ] ! PARTITION OVER ( Node1, Node2, Node3 ) ! USING block_cyclic();!

chunk size

1000

overlap

10

attribute names

A, B, C

index names

I, J

Monday, November 29, 2010

Page 19: SciDB: an open-source, array-oriented database management ... · SciDB: an open-source, array-oriented database management system Philippe Cudré-Mauroux Massachusetts Institute of

The Array Query Language (AQL)

SELECT Geo-Mean ( T.B )!FROM Test_Array T !WHERE ! T.I BETWEEN :C1 AND :C2 !AND T.J BETWEEN :C3 AND :C4!AND T.A = 10!GROUP BY T.I;!

User-defined aggregate on an attribute B in array T

Subsample

Filter Group-by

So far as SELECT / FROM / WHERE / GROUP BY queries are concerned, there is little logical difference between AQL and SQL

Monday, November 29, 2010

Page 20: SciDB: an open-source, array-oriented database management ... · SciDB: an open-source, array-oriented database management system Philippe Cudré-Mauroux Massachusetts Institute of

User-Defined Functions (UDFs)

■ Extensibility through Postgres-style UDFs■ Encodes all domain-specific operations■ Coded in C++■ Logical definition

■ 1-N arrays-in, 1-N arrays-out■ Physical implementation

■ chunk-granularity■ receives chunks from local query executor■ creates cell iterators, consumes values■ returns chunks to local executor

Monday, November 29, 2010

Page 21: SciDB: an open-source, array-oriented database management ... · SciDB: an open-source, array-oriented database management system Philippe Cudré-Mauroux Massachusetts Institute of

Parallel UDFs

Worker 2

(12,0) (6,0)

input pipeline

Regrid 2::1 UDF

Worker 1

(16,0)(2,0)

output pipeline

......

(8,0) (4,0)

(0,0)

Monday, November 29, 2010

Page 22: SciDB: an open-source, array-oriented database management ... · SciDB: an open-source, array-oriented database management system Philippe Cudré-Mauroux Massachusetts Institute of

Demo

■ preview of V0.75■ 4 node installation

Monday, November 29, 2010

Page 23: SciDB: an open-source, array-oriented database management ... · SciDB: an open-source, array-oriented database management system Philippe Cudré-Mauroux Massachusetts Institute of

Optimal Chunking

■ How to chunk and index very large arrays?■ Chunk sizes & index size directly impact all array

operations■ most operations highly IO-bound

■ Multifaceted problem■ Chunks must be relatively large to amortize disk

seeks, but not too large to fit in main memory an to avoid reading unnecessary data

■ Data can be highly skewed■ Queries can be highly skewed■ Index must be compact and easily updatable

Monday, November 29, 2010

Page 24: SciDB: an open-source, array-oriented database management ... · SciDB: an open-source, array-oriented database management system Philippe Cudré-Mauroux Massachusetts Institute of

• Cost-based, optimal spatial partitioning■Efficient, hierarchical partitioning

Spatial Partitioning (1/2)

24

Monday, November 29, 2010

Page 25: SciDB: an open-source, array-oriented database management ... · SciDB: an open-source, array-oriented database management system Philippe Cudré-Mauroux Massachusetts Institute of

• Basic idea■Cost-model for query execution times based on

#cells accessed■Optimal quadtree construction based on cost-model,

query workload, local density & page size■ [CM10a] (TrajStore)

• Optimal balance between■Oversized cells■potentially retrieves data that is not queried

■Undersized cells■seek not amortized if too little data read■unnecessary seeks if dense data and relatively large query

Spatial Partitioning (2/2)

cellSizeopt(Q,D, pageSize)

25

Monday, November 29, 2010

Page 26: SciDB: an open-source, array-oriented database management ... · SciDB: an open-source, array-oriented database management system Philippe Cudré-Mauroux Massachusetts Institute of

Versioning

■N-dimensional array objects

■Frequent insertions of new versions■ New observations■ New simulations

■Arbitrary queries over version history

T1 T2 T3

T1 T2 T3Q1 Q2

Monday, November 29, 2010

Page 27: SciDB: an open-source, array-oriented database management ... · SciDB: an open-source, array-oriented database management system Philippe Cudré-Mauroux Massachusetts Institute of

Problems w/ Versioning Systems

■Current Versioning Systems (e.g., SVN, GIT) are■ Slow for large / numerous binary files■ Catastrophic for spatial queries over series of

versions■ No spatial chunking■ No co-location of versions

T1 T2 T3?

?

Monday, November 29, 2010

Page 28: SciDB: an open-source, array-oriented database management ... · SciDB: an open-source, array-oriented database management system Philippe Cudré-Mauroux Massachusetts Institute of

AVS Algorithms

■Given a workload of frequent / typical queries:

■ Optimal co-location of (N+1) dimensional chunks on disk

■ Optimal materialization / Δ-compression of versions to minimize■ Storage space■ Query execution time

M MΔ

➡ Orders of magnitude faster than svn / git on scientific workloads

Monday, November 29, 2010

Page 29: SciDB: an open-source, array-oriented database management ... · SciDB: an open-source, array-oriented database management system Philippe Cudré-Mauroux Massachusetts Institute of

The SS-DB Benchmark

• Three main ways of building a scientific DBMS■ array simulation layer on top of relational DBMS

■ MonetDB■ array executor on top of blobs

■ Rasdaman■ native array system

■ SciDB

• SS-DB [CM10b]■ Suggest realistic workload for eScience

■ Queries on raw data, derived data and ensemble data■ Understand the performance differences bw models

29

Monday, November 29, 2010

Page 30: SciDB: an open-source, array-oriented database management ... · SciDB: an open-source, array-oriented database management system Philippe Cudré-Mauroux Massachusetts Institute of

Contents

• Receive raw imagery data + metadata■ 2D images

• Load dataset• Cook the data to find observations■ stars

• Group observations■ follow stars over space & time

• Execute a few queries ■ on raw data as well as derived data

30

Monday, November 29, 2010

Page 31: SciDB: an open-source, array-oriented database management ... · SciDB: an open-source, array-oriented database management system Philippe Cudré-Mauroux Massachusetts Institute of

Query Workload

• Q1: Aggregation• Q2: Recooking• Q3: Regridding

• Q4: Aggregation• Q5: Polygons• Q6: Density

• Q7: Group Centroids• Q8 & Q9: Trajectories

31

Extractuser-specifiedpart of image

Detect observationsthat match user-specifed criteria

Imagery

Monday, November 29, 2010

Page 32: SciDB: an open-source, array-oriented database management ... · SciDB: an open-source, array-oriented database management system Philippe Cudré-Mauroux Massachusetts Institute of

Current Results

32

Monday, November 29, 2010

Page 33: SciDB: an open-source, array-oriented database management ... · SciDB: an open-source, array-oriented database management system Philippe Cudré-Mauroux Massachusetts Institute of

SciDB Roadmap• R0.5 available: very early stage “work-in-progress”

■ Basic functionality■ iquery interpreter■ Internal query language - AIL■ Small set of operators - create, aggregate, join, filter, subsample■ Minimal ‘wiki-style’ documentation■ Breathes, crawls, hiccups

• R0.75 targeted for end-of-year■ AQL - the SQL-like array query language■ Error handling

■ Scalable math operations■ Better documentation & stability

• R1.0 beta in April 2011■ More functionally complete (UDFs, uncertainty, provenance et al)■ Robust, high performance

33

Monday, November 29, 2010

Page 34: SciDB: an open-source, array-oriented database management ... · SciDB: an open-source, array-oriented database management system Philippe Cudré-Mauroux Massachusetts Institute of

Research Agenda for XI

• Array Versioning■ Tests on very large data sets■ Forks■ Distributed versioning

• Data Lineage (Semantic Information)■ Arbitrary information stored in a triple-store■ Integration / performance?■ Automatic creation of workflow metadata■ Arbitrary AQL queries using metadata

34

Monday, November 29, 2010

Page 35: SciDB: an open-source, array-oriented database management ... · SciDB: an open-source, array-oriented database management system Philippe Cudré-Mauroux Massachusetts Institute of

References■ SciDB website: http://scidb.org/

■ SSDB paper: http://people.csail.mit.edu/pcm/SSDB.pdf

■ [S09] Requirements for Science Data Bases and SciDB. Stonebraker, Becla, DeWitt, Lim, Maier, Ratzesberger, Zdonik. CIDR. 2009

■ [CM09] A Demonstration of SciDB: A Science-Oriented DBMS. Cudré-Mauroux, Kimura, Lim, Rogers, Simakov, Soroush, Velikhov, Wang, Balazinska, Becla, DeWitt, Heath, Maier, Madden, Stonebraker, Zdonik. PVLDB. 2009.

■ [CM10a] TrajStore: An Adaptive Storage System for Very Large Trajectory Data Sets. Cudré-Mauroux, Wu, Madden. ICDE. 2010.

■ [CM10b] SS-DB: A Standard Science DBMS Benchmark. Cudré-Mauroux, Kimura, Lim, Rogers, Madden, Stonebraker, Zdonik. Submitted for publication.

35

Monday, November 29, 2010