43
Προχωρημένα Θέματα Βάσεων Δεδ ομένων 1 ‘The OO7 Benchmark’ M.J.Carey, D.J.DeWitt, J.F.Naughton University of Wisconsin,Madison Version of January 1991 The SEQUOIA 2000 Storage BenchmarkM.Stonebraker, J.Frew, K. Gardels, J. Meredith University of California, Berkeley 1993 Μπαζιάνα Περιστέρα [email protected]

‘ The SEQUOIA 2000 Storage Benchmark ’ M.Stonebraker, J.Frew, K. Gardels, J. Meredith

  • Upload
    cherie

  • View
    25

  • Download
    0

Embed Size (px)

DESCRIPTION

‘The OO7 Benchmark’ M.J.Carey, D.J.DeWitt, J.F.Naughton University of Wisconsin , Madison Version of January 1991. ‘ The SEQUOIA 2000 Storage Benchmark ’ M.Stonebraker, J.Frew, K. Gardels, J. Meredith University of California, Berkeley 1993. Μπαζιάνα Περιστέρα [email protected]. - PowerPoint PPT Presentation

Citation preview

Page 1: ‘ The SEQUOIA 2000 Storage Benchmark ’ M.Stonebraker, J.Frew, K. Gardels, J. Meredith

Προχωρημένα Θέματα Βάσεων Δεδομένων

1

‘The OO7 Benchmark’M.J.Carey, D.J.DeWitt, J.F.Naughton

University of Wisconsin,MadisonVersion of January 1991

‘The SEQUOIA 2000 Storage Benchmark’M.Stonebraker, J.Frew, K. Gardels, J. Meredith

University of California, Berkeley

1993

Μπαζιάνα Περιστέρα[email protected]

Page 2: ‘ The SEQUOIA 2000 Storage Benchmark ’ M.Stonebraker, J.Frew, K. Gardels, J. Meredith

Προχωρημένα Θέματα Βάσεων Δεδομένων

2

The OO7 Benchmark

Benchmark: a comprehensive test of OODBMS (Object-Oriented DataBase

Management System) performance goals to evaluate new techniques and algorithms for OODBMS

implementation gives the performance metrics for OODBMS design

OO7 Benchmark: is implemented in 4 OODB systems: E/Exodus, Objectivity/DB,

Ontos, Versant – Fail to test the ObjectStore, from Object Design Inc.

uncovers correctness and/or performance problems of the tested OODBMS

Page 3: ‘ The SEQUOIA 2000 Storage Benchmark ’ M.Stonebraker, J.Frew, K. Gardels, J. Meredith

Προχωρημένα Θέματα Βάσεων Δεδομένων

3

Performance Characteristics tested by OO7

Speed of pointer traversals: over cashed data, over disk-resident data, sparse and dense traversals

Efficiency of updates: to indexed and unindexed object fields, repeated and sparse updates, updates of cashed data, creation and deletion of objects

Performance of query processor: on different kinds of queries

Page 4: ‘ The SEQUOIA 2000 Storage Benchmark ’ M.Stonebraker, J.Frew, K. Gardels, J. Meredith

Προχωρημένα Θέματα Βάσεων Δεδομένων

4

Related Work

OO1 Benchmark HyperModel Benchmark Initial Sun Benchmark, evaluating Vbase A Complex Object Benchmark (ACOB)- for client/server

applications Magic Editor, UC Berkeley

Page 5: ‘ The SEQUOIA 2000 Storage Benchmark ’ M.Stonebraker, J.Frew, K. Gardels, J. Meredith

Προχωρημένα Θέματα Βάσεων Δεδομένων

5

OO1 Benchmark (Object-Operations ver.1, Sun Benchmark)

First standard benchmark Measures performance for navigation and simple updates Is based on a database consisting of:

Part objects – fields: id, type, (x,y) coordination, build date Connections between part objects Each part has 3 ‘out-going’ and many ‘in-going’ connections Database size: 20.000 and 200.000 parts, to model applications

whose data fits or exceeds memory OO1 Benchmark operations:

‘Lookup’ -1000 random parts by ids ‘Traversal’- accesses 3.280 connected parts ‘Insert’ – adds 100 new parts to database

Page 6: ‘ The SEQUOIA 2000 Storage Benchmark ’ M.Stonebraker, J.Frew, K. Gardels, J. Meredith

Προχωρημένα Θέματα Βάσεων Δεδομένων

6

HyperModel Benchmark

Richer schema and wider range of operations, than OO1 Performance test based on hypertext application model HyperModel database: graph of inter-connected nodes Node Relationships:

One hierarchical 1:N relationship Two M:N relationships

Types of nodes: k-1 levels of non-leaf nodes, which hold many integer values 1 level of leaf nodes, which hold a text string or a bitmap

HyperModel Benchmark operations: Exact-match lookup (by integer attribute value) Range query (1% and 10%) Group lookup (follows the relationship from a random node to its related nodes) Reference lookup (the inverse)

Page 7: ‘ The SEQUOIA 2000 Storage Benchmark ’ M.Stonebraker, J.Frew, K. Gardels, J. Meredith

Προχωρημένα Θέματα Βάσεων Δεδομένων

7

Why another benchmark?

We want to evaluate a wide range of OODB features OO1 Benchmark:

Tests on simple navigations and updates only Do not use complex objects, being important for many OODB applications Reference between ‘nearby’ objects Do not examine: density of traversals, traversal with updates, object queries

HyperModel Benchmark has no tests for: Object queries Updates to indexed vs. non-indexed object attributes Repeated object updates Impact of transaction boundaries

Page 8: ‘ The SEQUOIA 2000 Storage Benchmark ’ M.Stonebraker, J.Frew, K. Gardels, J. Meredith

Προχωρημένα Θέματα Βάσεων Δεδομένων

8

OO7 Database Description OO7 goals to test many aspects of OODBMS performance,

not to model a specific application Size of OO7 Benchmark Database: Small, Medium, Large

Page 9: ‘ The SEQUOIA 2000 Storage Benchmark ’ M.Stonebraker, J.Frew, K. Gardels, J. Meredith

Προχωρημένα Θέματα Βάσεων Δεδομένων

9

The design library (1) Basic component of the OO7 database:

A set of composite parts Design library in the OO7 database:

Is a set of all composite parts Num of composite parts per Module: NumCompPerModule (500)

Attributes of a composite part: Id (integer), buildDate (integer), Type (character array)

Document object: Associated with each composite part Models a documentation concerning the composite part Attributes: id (integer), title (character), text (character string) – length

of string: DocumentSize Composite part object and its document object:

Connected by a bi-directional association

Page 10: ‘ The SEQUOIA 2000 Storage Benchmark ’ M.Stonebraker, J.Frew, K. Gardels, J. Meredith

Προχωρημένα Θέματα Βάσεων Δεδομένων

10

The design library (2) A composite part contains:

A graph of atomic parts – basic units constructing a comp. part Num of atomic parts per com. Part: NumAtomicPerComp 20 atomic parts per com. part (small benchmark) 200 atomic parts per com. part (medium and large benchmark)

Attributes of an atomic part: Id (integer), buildDate (integer), x,y (integer), docId (integer), Type (character array)

Each atomic part: Is connected via bi-directional connections with other atomic parts (3,6,9)-

NumConnPerAtomic Connections between atomic parts in a ring, plus in random way

Connection objects: Connect atomic parts Attributes: length (integer), type (character array)

Page 11: ‘ The SEQUOIA 2000 Storage Benchmark ’ M.Stonebraker, J.Frew, K. Gardels, J. Meredith

Προχωρημένα Θέματα Βάσεων Δεδομένων

11

A Composite part and its associated document object

Page 12: ‘ The SEQUOIA 2000 Storage Benchmark ’ M.Stonebraker, J.Frew, K. Gardels, J. Meredith

Προχωρημένα Θέματα Βάσεων Δεδομένων

12

Assembling Complex Design (1)

We introduce the ‘assembly hierarchy’ to the database Each assembly object is made up from:

Either composite parts (base assembly level) Or other assembly objects (complex assembly level)

A base assembly object: Attributes: Id (integer), buildDate (integer), Type (character array) Has bi-directional association with:

3 ‘shared’ composite parts (on a module basis) 3 ‘unshared’ composite parts (both of them: NumCompPerAssm)

A complex assembly object (higher level of hierarchy): Attributes: Id (integer), buildDate (integer), Type (character array) Has bi-directional association with 3 sub-assemblies (NumAssmPerAssm):

Either base assemblies (if the complex assembly is at level two) Or other complex assemblies (if the complex assembly is at higher level)

7 levels in assembly hierarchy (NumAssmLevels)

Page 13: ‘ The SEQUOIA 2000 Storage Benchmark ’ M.Stonebraker, J.Frew, K. Gardels, J. Meredith

Προχωρημένα Θέματα Βάσεων Δεδομένων

13

Assembling Complex Design (2)

buildDate: Range in base assemblies: 1000-1999 Range in ‘young’ composite parts: 2000-2999 Range in ‘old’ composite parts : 0-999 The percentage of ‘young’ vs. ‘old’ composite parts: YoungCompFrac

Page 14: ‘ The SEQUOIA 2000 Storage Benchmark ’ M.Stonebraker, J.Frew, K. Gardels, J. Meredith

Προχωρημένα Θέματα Βάσεων Δεδομένων

14

Assembling Complex Design (3) Each assembly hierarchy is called ‘module’ Characteristics of a module:

Attributes: Id (integer), buildDate (integer), Type (character array) Associated Manual object – larger version of a document

Page 15: ‘ The SEQUOIA 2000 Storage Benchmark ’ M.Stonebraker, J.Frew, K. Gardels, J. Meredith

Προχωρημένα Θέματα Βάσεων Δεδομένων

15

Testbed Configuration

2 Sun Workstations on an Ethernet LAN 1 Sun IPX workstation as Server:

48 MB memory 424 MB disk drive (model Sun0424): holds system S/W and swap space 1.3 GB disk drive (model Sun 1.3.G): holds the database (actual data) 424 MB disk drive (model Sun0424): holds recovery information

1 Sun Sparc ELC workstation as client: 24 MB memory 207 MB disk drive (model Sun0207): holds system S/W and swap space

SunOS run on both workstations

Page 16: ‘ The SEQUOIA 2000 Storage Benchmark ’ M.Stonebraker, J.Frew, K. Gardels, J. Meredith

Προχωρημένα Θέματα Βάσεων Δεδομένων

16

Design Syntax

Page 17: ‘ The SEQUOIA 2000 Storage Benchmark ’ M.Stonebraker, J.Frew, K. Gardels, J. Meredith

Προχωρημένα Θέματα Βάσεων Δεδομένων

17

Software - E/Exodus (1) Exodus consists of:

Exodus Storage Manager (EMS) E programming language

The EMS : Provides files of objects, B-trees, linear hashing Uses a page-server architecture (current version 2.2)

Client processes request pages from server via TCP/IP Server answers:- either from its buffer pool - or by invoking a disk process to perform the I/O operation. After reading

the page, it gives it to the client process and keeps a copy to buffer pool Provides concurrency control – at page and file level with non 2-PL protocol Provides recovery services – via logging the changed portion of objects

Page 18: ‘ The SEQUOIA 2000 Storage Benchmark ’ M.Stonebraker, J.Frew, K. Gardels, J. Meredith

Προχωρημένα Θέματα Βάσεων Δεδομένων

18

Software - E/Exodus (2) The E-language:

Extends C++, adding persistence, collection of persistent objects, B-trees indexes

No support for associations, queries Current version of E:

Based on GNU g++ compiler Uses EMS for storing persistent objects Operations on objects are compiled – Interpreter: EPVM 3.0, which

stores the objects in the buffer pool of the EMS client process Pointers between such objects are swizzled at traversal, and are

unswizzled at the replacement of the page by the EMS Our experiment with E/Exodus:

Disk page size: 8 KB – transfer unit between client and server Client buffer pool: 12 MB - Server buffer pool: 36 MB

Page 19: ‘ The SEQUOIA 2000 Storage Benchmark ’ M.Stonebraker, J.Frew, K. Gardels, J. Meredith

Προχωρημένα Θέματα Βάσεων Δεδομένων

19

Software – Objectivity/DB,ver.2.1 No page-server architecture: We have file-server architecture

No server process for handling data Clients access database pages via NFS – need of separate lock server placed in

Sun IPX Recovery via shadows:

During transaction, updates are written to shadow database At commit time, these updates apply to the database – are used to recover if

commit fails If transaction aborts, shadow database is deleted

Objectivity/DB provides: persistence to C++ :Persistent objects are defined by inheritance from a

persistent root class Sets, relations and iterators

Our experiment with Objectivity/DB : Client buffer pool: 12 MB - Server buffer pool: 36 MB Database and shadow files are stored as Unix files

Page 20: ‘ The SEQUOIA 2000 Storage Benchmark ’ M.Stonebraker, J.Frew, K. Gardels, J. Meredith

Προχωρημένα Θέματα Βάσεων Δεδομένων

20

Software – Ontos,ver.2.2 (1)

Ontos employs client-server architecture Objects are created in one of the three storage managers (SM)

‘in-memory’ SM, manages transient objects –like C++ implementation ‘Standard’ SM, implements the object-server architecture including the

objects of locking and transferring from client to server ‘group’ SM, implements the page-server architecture – OO7 benchmark

composite parts, atomic parts, connection objects are created by the ‘group’ SM

Ontos: Provides: sets, lists and associations Do not support query optimizer for object-SQL Supports nested transactions, optimistic concurrency control

Page 21: ‘ The SEQUOIA 2000 Storage Benchmark ’ M.Stonebraker, J.Frew, K. Gardels, J. Meredith

Προχωρημένα Θέματα Βάσεων Δεδομένων

21

Software – Ontos,ver.2.2 (2)

Recovery in Ontos: Via REDO logging During a transaction, all updates are buffered to virtual memory At commit time, the updates are written to files in the server After success, the updates are applied to the database

Buffering at the client: No client buffer pool Objects are kept in client’s virtual memory

Our experiment with Ontos: Disk page size: 7.5 KB – transfer unit between client and server Unix file systems are used to hold the database

Page 22: ‘ The SEQUOIA 2000 Storage Benchmark ’ M.Stonebraker, J.Frew, K. Gardels, J. Meredith

Προχωρημένα Θέματα Βάσεων Δεδομένων

22

Software – Versant 3.0 Beta

Versant employs: Client-server architecture Object-server architecture Different objects for locking and transferring between client and server

Versant Object Manager: caches objects during a transaction

Server Storage Manager: Performs I/O with page granularity

Versant C++ interface: adds persistence to C++ Do not modify the C++ compiler

Page 23: ‘ The SEQUOIA 2000 Storage Benchmark ’ M.Stonebraker, J.Frew, K. Gardels, J. Meredith

Προχωρημένα Θέματα Βάσεων Δεδομένων

23

Results (1) Results: Traversals, Queries, Structural Modification Operations

Database Size:

Small Databases

Medium Databases

Page 24: ‘ The SEQUOIA 2000 Storage Benchmark ’ M.Stonebraker, J.Frew, K. Gardels, J. Meredith

Προχωρημένα Θέματα Βάσεων Δεδομένων

24

Results (2)

Traversals Are implemented as methods of the database objects Navigate from object to object, invoking the appropriate method

at each object Run over ‘small’ and ‘medium’ OO7 benchmark databases In ‘small’ OO7 databases, run in two ways:

‘cold’, if the traverse begins with the client and server cashes empty ‘hot’, if the first running is a ‘cold’ traversal and then run the same

query 4 times reporting the average of the middle 3 runs

Page 25: ‘ The SEQUOIA 2000 Storage Benchmark ’ M.Stonebraker, J.Frew, K. Gardels, J. Meredith

Προχωρημένα Θέματα Βάσεων Δεδομένων

25

Traversal T1: Raw traversal speed ‘Traverse the assembly hierarchy. As each base assembly is visited, visit each

of its referenced unshared composite parts. As each composite part is visited, perform a depth first search on its graph of atomic parts. Return a count of the number of atomic parts visited when done’

Medium DB

Page 26: ‘ The SEQUOIA 2000 Storage Benchmark ’ M.Stonebraker, J.Frew, K. Gardels, J. Meredith

Προχωρημένα Θέματα Βάσεων Δεδομένων

26

Traversal T6: Sparse traversal speed ‘Traverse the assembly hierarchy. As each base assembly is visited, visit

each of its referenced unshared composite parts. As each composite part is visited, visit the root atomic part. Return a count of the number of atomic parts visited when done’

Page 27: ‘ The SEQUOIA 2000 Storage Benchmark ’ M.Stonebraker, J.Frew, K. Gardels, J. Meredith

Προχωρημένα Θέματα Βάσεων Δεδομένων

27

Traversal T2: Traversal with updates ‘Repeat Traversal T1, but update objects during the traversal. There are three types of

update patterns in this traversal. In each, a single update to an atomic part consists of swapping its (x,y) attributes. The three types of updates are:

A: Update one atomic part per composite part

B: Update every atomic part as it is encountered

C: Update each atomic part in a composite part 4 times

When done, return the number of update operations that were actually performed’

Page 28: ‘ The SEQUOIA 2000 Storage Benchmark ’ M.Stonebraker, J.Frew, K. Gardels, J. Meredith

Προχωρημένα Θέματα Βάσεων Δεδομένων

28

Traversal T3: Traversal with indexed field updates

‘Repeat Traversal T2, except that now the update is on the date field, which is indexed. The specific update is to increment the date if it is odd, and decrement the date if it is even’

Page 29: ‘ The SEQUOIA 2000 Storage Benchmark ’ M.Stonebraker, J.Frew, K. Gardels, J. Meredith

Προχωρημένα Θέματα Βάσεων Δεδομένων

29

Traversals T8 and T9: Operations on Manual

‘Traversal T8 scans the manual object, counting the number of occurrences of the character ‘I.’. Traversal T9 checks to see if the first and the last character in the manual objects are the same’

Page 30: ‘ The SEQUOIA 2000 Storage Benchmark ’ M.Stonebraker, J.Frew, K. Gardels, J. Meredith

Προχωρημένα Θέματα Βάσεων Δεδομένων

30

Traversals CU (Cached Update)

‘Perform traversal T1, followed by T2A, in a single transaction. Report the total time minus the T1 hot time minus the T1 cold time’

Page 31: ‘ The SEQUOIA 2000 Storage Benchmark ’ M.Stonebraker, J.Frew, K. Gardels, J. Meredith

Προχωρημένα Θέματα Βάσεων Δεδομένων

31

Queries…Query Q1: exact match lookup

• ‘Generate 10 random atomic part id’s; for each part id generated, lookup the atomic part with that id. Return the number of atomic parts processed when done’

Page 32: ‘ The SEQUOIA 2000 Storage Benchmark ’ M.Stonebraker, J.Frew, K. Gardels, J. Meredith

Προχωρημένα Θέματα Βάσεων Δεδομένων

32

Queries Q2, Q3 and Q7

Query Q2: ‘ Choose a range for dates that will contain the last 1% of the dates found in the database’s atomic parts. Retrieve the atomic parts that satisfy this range predicate’

Query Q3: ‘ Choose a range for dates that will contain the last 10% of the dates found in the database’s atomic parts. Retrieve the atomic parts that satisfy this range predicate’

Query Q7: ‘ Scan all atomic parts’

Page 33: ‘ The SEQUOIA 2000 Storage Benchmark ’ M.Stonebraker, J.Frew, K. Gardels, J. Meredith

Προχωρημένα Θέματα Βάσεων Δεδομένων

33

Query Q4: path lookup

‘Generate 100 random document titles. For each title generated, find all base assemblies that use the composite part corresponding to the document. Also, count the total number of base assemblies that qualify’

Page 34: ‘ The SEQUOIA 2000 Storage Benchmark ’ M.Stonebraker, J.Frew, K. Gardels, J. Meredith

Προχωρημένα Θέματα Βάσεων Δεδομένων

34

Query Q5: single-level make

‘Find all base assemblies that use a composite part with a build date later than the build date of the base assembly. Also, report the number of qualifying base assemblies found’

Page 35: ‘ The SEQUOIA 2000 Storage Benchmark ’ M.Stonebraker, J.Frew, K. Gardels, J. Meredith

Προχωρημένα Θέματα Βάσεων Δεδομένων

35

Query Q8: ad-hoc join

‘Find all pairs of documents and atomic parts where the document id in the atomic part matches the id of the document. Also, return a count of the number of such pairs encountered’

Page 36: ‘ The SEQUOIA 2000 Storage Benchmark ’ M.Stonebraker, J.Frew, K. Gardels, J. Meredith

Προχωρημένα Θέματα Βάσεων Δεδομένων

36

Structural Modifications:

1: InsertCreate five new composite parts, which includes creating a number of new atomic parts (100 in small configuration, 1000 in large, and five new document objects) and insert them into the database by installing references to these composite parts into 10 randomly chosen base assembly objects’

2: Delete‘Delete the five newly created composite parts (and all of their associated atomic parts and document objects)’

Page 37: ‘ The SEQUOIA 2000 Storage Benchmark ’ M.Stonebraker, J.Frew, K. Gardels, J. Meredith

Προχωρημένα Θέματα Βάσεων Δεδομένων

37

Small and large databases…..

Small Databases

Medium Databases

Page 38: ‘ The SEQUOIA 2000 Storage Benchmark ’ M.Stonebraker, J.Frew, K. Gardels, J. Meredith

Προχωρημένα Θέματα Βάσεων Δεδομένων

38

Conclusion..

OO7 test results give OODBMS performance characteristics that are not observed in previous benchmarking systems

Each application’s requirements lead us to choose the best OODBMS suitable for it

Page 39: ‘ The SEQUOIA 2000 Storage Benchmark ’ M.Stonebraker, J.Frew, K. Gardels, J. Meredith

Προχωρημένα Θέματα Βάσεων Δεδομένων

39

The SEQUOIA 2000 Storage Benchmark

Collects the database requirements of Earth Sciences (ES): Geography, hydrology, oceanography…

Hopes that it will be applied to general database community Tests the performance of three DBMSs:

GRASS, IPW, POSTGRESS Characteristics of ES applications:

Massive size: Database contains (satellite) images: 10^14 bytes (100Tbytes)

Complex data types: support for arrays, spatial objects, complex objects

Sophisticated searching: B-trees are adequate for searching for arrays and spatial data

Need for new benchmark for ES applications

Page 40: ‘ The SEQUOIA 2000 Storage Benchmark ’ M.Stonebraker, J.Frew, K. Gardels, J. Meredith

Προχωρημένα Θέματα Βάσεων Δεδομένων

40

Scaling benchmark Regional benchmark: geographic region 1280 km x 800 km National benchmark: geographic region 5500 km x 3000 km Earth benchmark: all the earth…..

Kinds of data: Raster data: tile area 1 km x 1 km (or 0.5 x 0.5), tile size 10 bits

regional benchmark contains: 2x1280x2x800=4.096.000 tileseach: (5 observations)*(2bytes)=10 bytes

Point data: a geogr. feature is given by its name and its location (2x32 bits) regional benchmark occupies: 1.83 Mbytes

Polygon data: polygons contain regions of same landuse, av. pol. sides=50regional benchmark occupies 19.1 bytes

Directed graph data: area unit is segment regional benchmark occupies 47.8 bytes

Page 41: ‘ The SEQUOIA 2000 Storage Benchmark ’ M.Stonebraker, J.Frew, K. Gardels, J. Meredith

Προχωρημένα Θέματα Βάσεων Δεδομένων

41

Benchmark Queries…(1) Query 1: data load

‘Create and load the data base and build any necessary secondary indexes’

Query 2: raster query‘Select data for a given wavelength band and rectangular region ordered by ascending time’

Query 3: raster query ‘Select data for a given time and geographic rectangle and then calculate an arithmetic function of the five wavelength band values for each cell in the study rectangle’

Query 4: raster query ‘Select data for a given time, wavelength band and geographic rectangle. Lower the resolution of the image by a factor of 64 to a cell size of 4x4km and store it as a new object

POSTQUEL

POSTQUEL

Page 42: ‘ The SEQUOIA 2000 Storage Benchmark ’ M.Stonebraker, J.Frew, K. Gardels, J. Meredith

Προχωρημένα Θέματα Βάσεων Δεδομένων

42

Benchmark Queries…(2) Query 5: Point query

‘Find the POINT record that has a specific name’ Query 6: Polygon query

‘Find all the polygons that intersect a specific rectangle and store them in DBMS’ Query 7: Polygon query

‘Find all the polygons that are more than a specific size and within a specific circle’ Query 8: Spatial join

‘Show the landuse/landcover in a 50 km quadrangle surrounding a given point’ Query 9: Spatial join

‘Find the raster data for a given landuse type in a study rectangle for a given wavelength and time’

Query 10: Spatial join‘Find the names of all points within polygons of a specific vegetation type and create this

as a new DBMS object’ Query 11: Recursion

‘Find all segments of any waterway that are within 20 km downstream of a specific point’

Page 43: ‘ The SEQUOIA 2000 Storage Benchmark ’ M.Stonebraker, J.Frew, K. Gardels, J. Meredith

Προχωρημένα Θέματα Βάσεων Δεδομένων

43

Results