2 advanced database systems - cmu 15-721 · advanced database systems. 15-721 (spring 2020)...

84
Lecture #02 In-Memory Databases @Andy_Pavlo // 15-721 // Spring 2020 ADVANCED DATABASE SYSTEMS

Upload: others

Post on 25-Jun-2020

22 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 2 ADVANCED DATABASE SYSTEMS - CMU 15-721 · ADVANCED DATABASE SYSTEMS. 15-721 (Spring 2020) BACKGROUND Much of the development history of DBMSs is ... page0 page1 page2 page1. 15-721

Le

ctu

re #

02

In-Memory Databases

@Andy_Pavlo // 15-721 // Spring 2020

ADVANCEDDATABASE SYSTEMS

Page 2: 2 ADVANCED DATABASE SYSTEMS - CMU 15-721 · ADVANCED DATABASE SYSTEMS. 15-721 (Spring 2020) BACKGROUND Much of the development history of DBMSs is ... page0 page1 page2 page1. 15-721

15-721 (Spring 2020)

BACKGROUND

Much of the development history of DBMSs is about dealing with the limitations of hardware.

Hardware was much different when the original DBMSs were designed:→ Uniprocessor (single-core CPU)→ RAM was severely limited.→ The database had to be stored on disk.→ Disks were even slower than they are now.

2

Page 3: 2 ADVANCED DATABASE SYSTEMS - CMU 15-721 · ADVANCED DATABASE SYSTEMS. 15-721 (Spring 2020) BACKGROUND Much of the development history of DBMSs is ... page0 page1 page2 page1. 15-721

15-721 (Spring 2020)

BACKGROUND

But now DRAM capacities are large enough that most databases can fit in memory.→ Structured data sets are smaller.→ Unstructured or semi-structured data sets are larger.

We need to understand why we can't always use a "traditional" disk-oriented DBMS with a large cache to get the best performance.

3

Page 4: 2 ADVANCED DATABASE SYSTEMS - CMU 15-721 · ADVANCED DATABASE SYSTEMS. 15-721 (Spring 2020) BACKGROUND Much of the development history of DBMSs is ... page0 page1 page2 page1. 15-721

15-721 (Spring 2020)

TODAY'S AGENDA

Disk-Oriented DBMSs

In-Memory DBMSs

Concurrency Control Bottlenecks

4

Page 5: 2 ADVANCED DATABASE SYSTEMS - CMU 15-721 · ADVANCED DATABASE SYSTEMS. 15-721 (Spring 2020) BACKGROUND Much of the development history of DBMSs is ... page0 page1 page2 page1. 15-721

15-721 (Spring 2020)

DISK-ORIENTED DBMS

The primary storage location of the database is on non-volatile storage (e.g., HDD, SSD).

The database is organized as a set of fixed-length pages (aka blocks).

The system uses an in-memory buffer pool to cache pages fetched from disk.→ Its job is to manage the movement of those pages back

and forth between disk and memory.

5

Page 6: 2 ADVANCED DATABASE SYSTEMS - CMU 15-721 · ADVANCED DATABASE SYSTEMS. 15-721 (Spring 2020) BACKGROUND Much of the development history of DBMSs is ... page0 page1 page2 page1. 15-721

15-721 (Spring 2020)

BUFFER POOL

When a query accesses a page, the DBMS checks to see if that page is already in memory:→ If it's not, then the DBMS must retrieve it from disk and

copy it into a frame in its buffer pool.→ If there are no free frames, then find a page to evict.→ If the page being evicted is dirty, then the DBMS must

write it back to disk.

Once the page is in memory, the DBMS translates any on-disk addresses to their in-memory addresses.

6

Page 7: 2 ADVANCED DATABASE SYSTEMS - CMU 15-721 · ADVANCED DATABASE SYSTEMS. 15-721 (Spring 2020) BACKGROUND Much of the development history of DBMSs is ... page0 page1 page2 page1. 15-721

15-721 (Spring 2020)

Index

DISK-ORIENTED DATA ORGANIZATION

7

Buffer Pool

page6

page4Page Id +

Slot #

Database (On-Disk)

Page Table

page0

page1

page2

page2

Page 8: 2 ADVANCED DATABASE SYSTEMS - CMU 15-721 · ADVANCED DATABASE SYSTEMS. 15-721 (Spring 2020) BACKGROUND Much of the development history of DBMSs is ... page0 page1 page2 page1. 15-721

15-721 (Spring 2020)

Index

DISK-ORIENTED DATA ORGANIZATION

7

Buffer Pool

page6

page4Page Id +

Slot #

Database (On-Disk)

Page Table

page0

page1

page2

page2

Page 9: 2 ADVANCED DATABASE SYSTEMS - CMU 15-721 · ADVANCED DATABASE SYSTEMS. 15-721 (Spring 2020) BACKGROUND Much of the development history of DBMSs is ... page0 page1 page2 page1. 15-721

15-721 (Spring 2020)

Index

DISK-ORIENTED DATA ORGANIZATION

7

Buffer Pool

page6

page4Page Id +

Slot #

Database (On-Disk)

Page Table

page0

page1

page2

page2

Page 10: 2 ADVANCED DATABASE SYSTEMS - CMU 15-721 · ADVANCED DATABASE SYSTEMS. 15-721 (Spring 2020) BACKGROUND Much of the development history of DBMSs is ... page0 page1 page2 page1. 15-721

15-721 (Spring 2020)

Index

DISK-ORIENTED DATA ORGANIZATION

7

Buffer Pool

page6

page4Page Id +

Slot #

Database (On-Disk)

Page Table

page0

page1

page2

Page 11: 2 ADVANCED DATABASE SYSTEMS - CMU 15-721 · ADVANCED DATABASE SYSTEMS. 15-721 (Spring 2020) BACKGROUND Much of the development history of DBMSs is ... page0 page1 page2 page1. 15-721

15-721 (Spring 2020)

Index

DISK-ORIENTED DATA ORGANIZATION

7

Buffer Pool

page6

page4Page Id +

Slot #

Database (On-Disk)

Page Table

page0

page1

page2

page1

Page 12: 2 ADVANCED DATABASE SYSTEMS - CMU 15-721 · ADVANCED DATABASE SYSTEMS. 15-721 (Spring 2020) BACKGROUND Much of the development history of DBMSs is ... page0 page1 page2 page1. 15-721

15-721 (Spring 2020)

Index

DISK-ORIENTED DATA ORGANIZATION

7

Buffer Pool

page6

page4Page Id +

Slot #

Database (On-Disk)

Page Table

page0

page1

page2

page1

Page 13: 2 ADVANCED DATABASE SYSTEMS - CMU 15-721 · ADVANCED DATABASE SYSTEMS. 15-721 (Spring 2020) BACKGROUND Much of the development history of DBMSs is ... page0 page1 page2 page1. 15-721

15-721 (Spring 2020)

Index

DISK-ORIENTED DATA ORGANIZATION

7

Buffer Pool

page6

page4Page Id +

Slot #

Database (On-Disk)

Page Table

page0

page1

page2

page1

Page 14: 2 ADVANCED DATABASE SYSTEMS - CMU 15-721 · ADVANCED DATABASE SYSTEMS. 15-721 (Spring 2020) BACKGROUND Much of the development history of DBMSs is ... page0 page1 page2 page1. 15-721

15-721 (Spring 2020)

BUFFER POOL

Every tuple access goes through the buffer pool manager regardless of whether that data will always be in memory.→ Always translate a tuple’s record id to its memory

location.→ Worker thread must pin pages that it needs to make sure

that they are not swapped to disk.

8

Page 15: 2 ADVANCED DATABASE SYSTEMS - CMU 15-721 · ADVANCED DATABASE SYSTEMS. 15-721 (Spring 2020) BACKGROUND Much of the development history of DBMSs is ... page0 page1 page2 page1. 15-721

15-721 (Spring 2020)

CONCURRENCY CONTROL

The systems assumes that a txn could stall at any time whenever it tries to access data that is not in memory.

Execute other txns at the same time so that if one txn stalls then others can keep running.→ Set locks to provide ACID guarantees for txns.→ Locks are stored in a separate data structure to avoid

being swapped to disk.

9

Page 16: 2 ADVANCED DATABASE SYSTEMS - CMU 15-721 · ADVANCED DATABASE SYSTEMS. 15-721 (Spring 2020) BACKGROUND Much of the development history of DBMSs is ... page0 page1 page2 page1. 15-721

15-721 (Spring 2020)

LOGGING & RECOVERY

Most DBMSs use STEAL + NO-FORCE buffer pool policies, so all modifications have to be flushed to the WAL before a txn can commit.

Each log entry contains the before and after image of record modified.

Lots of work to keep track of LSNs all throughout the DBMS.

10

Page 17: 2 ADVANCED DATABASE SYSTEMS - CMU 15-721 · ADVANCED DATABASE SYSTEMS. 15-721 (Spring 2020) BACKGROUND Much of the development history of DBMSs is ... page0 page1 page2 page1. 15-721

15-721 (Spring 2020)

DISK-ORIENTED DBMS OVERHEAD

11

BUFFER POOL

LATCHING

LOCKING

LOGGING

B-TREE KEYS

REAL WORK

16%14%

34%

12%

Measured CPU Instructions

OLTP THROUGH THE LOOKING GLASS, AND WHAT WE FOUND THERESIGMOD 2008

16%

7%

Page 18: 2 ADVANCED DATABASE SYSTEMS - CMU 15-721 · ADVANCED DATABASE SYSTEMS. 15-721 (Spring 2020) BACKGROUND Much of the development history of DBMSs is ... page0 page1 page2 page1. 15-721

15-721 (Spring 2020)

IN-MEMORY DBMSS

Assume that the primary storage location of the database is permanently in memory.

Early ideas proposed in the 1980s but it is now feasible because DRAM prices are low and capacities are high.

First commercial in-memory DBMSs were released in the 1990s.→ Examples: TimesTen, DataBlitz, Altibase

12

Page 19: 2 ADVANCED DATABASE SYSTEMS - CMU 15-721 · ADVANCED DATABASE SYSTEMS. 15-721 (Spring 2020) BACKGROUND Much of the development history of DBMSs is ... page0 page1 page2 page1. 15-721

15-721 (Spring 2020)

DATA ORGANIZATION

An in-memory DBMS does not need to store the database in slotted pages but it will still organize tuples in blocks/pages:→ Direct memory pointers vs. record ids→ Fixed-length vs. variable-length data pools→ Use checksums to detect software errors from trashing

the database.

The OS organizes memory in pages too. We will cover this later.

14

Page 20: 2 ADVANCED DATABASE SYSTEMS - CMU 15-721 · ADVANCED DATABASE SYSTEMS. 15-721 (Spring 2020) BACKGROUND Much of the development history of DBMSs is ... page0 page1 page2 page1. 15-721

15-721 (Spring 2020)

IN-MEMORY DATA ORGANIZATION

15

Fixed-LengthData BlocksIndex

Block Id +Offset

Variable-LengthData Blocks

Page 21: 2 ADVANCED DATABASE SYSTEMS - CMU 15-721 · ADVANCED DATABASE SYSTEMS. 15-721 (Spring 2020) BACKGROUND Much of the development history of DBMSs is ... page0 page1 page2 page1. 15-721

15-721 (Spring 2020)

INDEXES

Specialized main-memory indexes were proposed in 1980s when cache and memory access speeds were roughly equivalent.

But then caches got faster than main memory:→ Memory-optimized indexes performed worse than the

B+trees because they were not cache aware.

Indexes are usually rebuilt in an in-memory DBMS after restart to avoid logging overhead.

16

Page 22: 2 ADVANCED DATABASE SYSTEMS - CMU 15-721 · ADVANCED DATABASE SYSTEMS. 15-721 (Spring 2020) BACKGROUND Much of the development history of DBMSs is ... page0 page1 page2 page1. 15-721

15-721 (Spring 2020)

QUERY PROCESSING

The best strategy for executing a query plan in a DBMS changes when all of the data is already in memory.→ Sequential scans are no longer significantly faster than

random access.

The traditional tuple-at-a-time iterator model is too slow because of function calls.→ This problem is more significant in OLAP DBMSs.

17

Page 23: 2 ADVANCED DATABASE SYSTEMS - CMU 15-721 · ADVANCED DATABASE SYSTEMS. 15-721 (Spring 2020) BACKGROUND Much of the development history of DBMSs is ... page0 page1 page2 page1. 15-721

15-721 (Spring 2020)

LOGGING & RECOVERY

The DBMS still needs a WAL on non-volatile storage since the system could halt at anytime.→ Use group commit to batch log entries and flush them

together to amortize fsync cost.→ May be possible to use more lightweight logging schemes

(e.g., only store redo information).

Since there are no "dirty" pages, there is no need to track LSNs throughout the system.

18

Page 24: 2 ADVANCED DATABASE SYSTEMS - CMU 15-721 · ADVANCED DATABASE SYSTEMS. 15-721 (Spring 2020) BACKGROUND Much of the development history of DBMSs is ... page0 page1 page2 page1. 15-721

15-721 (Spring 2020)

BOT TLENECKS

If I/O is no longer the slowest resource, much of the DBMS’s architecture will have to change account for other bottlenecks:→ Locking/latching→ Cache-line misses→ Pointer chasing→ Predicate evaluations→ Data movement & copying→ Networking (between application & DBMS)

20

Page 25: 2 ADVANCED DATABASE SYSTEMS - CMU 15-721 · ADVANCED DATABASE SYSTEMS. 15-721 (Spring 2020) BACKGROUND Much of the development history of DBMSs is ... page0 page1 page2 page1. 15-721

15-721 (Spring 2020)

CONCURRENCY CONTROL

The protocol to allow txns to access a database in a multi-programmed fashion while preserving the illusion that each of them is executing alone on a dedicated system.→ The goal is to have the effect of a group of txns on the

database’s state is equivalent to any serial execution of all txns.

Provides Atomicity + Isolation in ACID

21

Page 26: 2 ADVANCED DATABASE SYSTEMS - CMU 15-721 · ADVANCED DATABASE SYSTEMS. 15-721 (Spring 2020) BACKGROUND Much of the development history of DBMSs is ... page0 page1 page2 page1. 15-721

15-721 (Spring 2020)

CONCURRENCY CONTROL

For in-memory DBMSs, the cost of a txn acquiring a lock is the same as accessing data.

New bottleneck is contention caused from txnstrying access data at the same time.

The DBMS can store locking information about each tuple together with its data.→ This helps with CPU cache locality.→ Mutexes are too slow. Need to use compare-and-swap

(CAS) instructions.

22

Page 27: 2 ADVANCED DATABASE SYSTEMS - CMU 15-721 · ADVANCED DATABASE SYSTEMS. 15-721 (Spring 2020) BACKGROUND Much of the development history of DBMSs is ... page0 page1 page2 page1. 15-721

15-721 (Spring 2020)

COMPARE-AND-SWAP

Atomic instruction that compares contents of a memory location M to a given value V→ If values are equal, installs new given value V’ in M→ Otherwise operation fails

23

M__sync_bool_compare_and_swap(&M, 20, 30)20

Compare Value

AddressNew

Value

Page 28: 2 ADVANCED DATABASE SYSTEMS - CMU 15-721 · ADVANCED DATABASE SYSTEMS. 15-721 (Spring 2020) BACKGROUND Much of the development history of DBMSs is ... page0 page1 page2 page1. 15-721

15-721 (Spring 2020)

COMPARE-AND-SWAP

Atomic instruction that compares contents of a memory location M to a given value V→ If values are equal, installs new given value V’ in M→ Otherwise operation fails

23

M__sync_bool_compare_and_swap(&M, 20, 30)30

Compare Value

AddressNew

Value

Page 29: 2 ADVANCED DATABASE SYSTEMS - CMU 15-721 · ADVANCED DATABASE SYSTEMS. 15-721 (Spring 2020) BACKGROUND Much of the development history of DBMSs is ... page0 page1 page2 page1. 15-721

15-721 (Spring 2020)

CONCURRENCY CONTROL SCHEMES

Two-Phase Locking (2PL)→ Assume txns will conflict so they must acquire locks on

database objects before they are allowed to access them.

Timestamp Ordering (T/O)→ Assume that conflicts are rare so txns do not need to first

acquire locks on database objects and instead check for conflicts at commit time.

25

Page 30: 2 ADVANCED DATABASE SYSTEMS - CMU 15-721 · ADVANCED DATABASE SYSTEMS. 15-721 (Spring 2020) BACKGROUND Much of the development history of DBMSs is ... page0 page1 page2 page1. 15-721

15-721 (Spring 2020)

TWO-PHASE LOCKING

26

Txn #1

BEGIN

COMMIT

LOCK(A) LOCK(B) UNLOCK(A) UNLOCK(B)READ(A) WRITE(B)

Shrinking Phase

LOCK(A) LOCK(B)

Growing Phase

Page 31: 2 ADVANCED DATABASE SYSTEMS - CMU 15-721 · ADVANCED DATABASE SYSTEMS. 15-721 (Spring 2020) BACKGROUND Much of the development history of DBMSs is ... page0 page1 page2 page1. 15-721

15-721 (Spring 2020)

TWO-PHASE LOCKING

26

Txn #2

BEGI

N

COMMIT

LOCK(B) LOCK(A) WRITE(A) UNLOCK(A) UNLOCK(B)WRITE(B)

Txn #1

BEGIN

COMMIT

LOCK(A) LOCK(B) UNLOCK(A) UNLOCK(B)READ(A) WRITE(B)LOCK(A) LOCK(B)

Page 32: 2 ADVANCED DATABASE SYSTEMS - CMU 15-721 · ADVANCED DATABASE SYSTEMS. 15-721 (Spring 2020) BACKGROUND Much of the development history of DBMSs is ... page0 page1 page2 page1. 15-721

15-721 (Spring 2020)

TWO-PHASE LOCKING

26

Txn #2

BEGI

N

COMMIT

LOCK(B) LOCK(A) WRITE(A) UNLOCK(A) UNLOCK(B)WRITE(B)

Txn #1

BEGIN

COMMIT

LOCK(A) LOCK(B) UNLOCK(A) UNLOCK(B)READ(A) WRITE(B)LOCK(A) LOCK(B)

Page 33: 2 ADVANCED DATABASE SYSTEMS - CMU 15-721 · ADVANCED DATABASE SYSTEMS. 15-721 (Spring 2020) BACKGROUND Much of the development history of DBMSs is ... page0 page1 page2 page1. 15-721

15-721 (Spring 2020)

TWO-PHASE LOCKING

26

Txn #2

BEGI

N

COMMIT

LOCK(B) LOCK(A) WRITE(A) UNLOCK(A) UNLOCK(B)WRITE(B)

Txn #1

BEGIN

COMMIT

LOCK(A) LOCK(B) UNLOCK(A) UNLOCK(B)READ(A) WRITE(B)LOCK(A) LOCK(B)

Page 34: 2 ADVANCED DATABASE SYSTEMS - CMU 15-721 · ADVANCED DATABASE SYSTEMS. 15-721 (Spring 2020) BACKGROUND Much of the development history of DBMSs is ... page0 page1 page2 page1. 15-721

15-721 (Spring 2020)

TWO-PHASE LOCKING

26

Txn #2

BEGI

N

COMMIT

LOCK(B) LOCK(A) WRITE(A) UNLOCK(A) UNLOCK(B)WRITE(B)

Txn #1

BEGIN

COMMIT

LOCK(A) LOCK(B) UNLOCK(A) UNLOCK(B)READ(A) WRITE(B)LOCK(A) LOCK(B)

Page 35: 2 ADVANCED DATABASE SYSTEMS - CMU 15-721 · ADVANCED DATABASE SYSTEMS. 15-721 (Spring 2020) BACKGROUND Much of the development history of DBMSs is ... page0 page1 page2 page1. 15-721

15-721 (Spring 2020)

TWO-PHASE LOCKING

26

Txn #2

BEGI

N

COMMIT

LOCK(B) LOCK(A) WRITE(A) UNLOCK(A) UNLOCK(B)WRITE(B)

Txn #1

BEGIN

COMMIT

LOCK(A) LOCK(B) UNLOCK(A) UNLOCK(B)READ(A) WRITE(B)LOCK(A) LOCK(B)

Page 36: 2 ADVANCED DATABASE SYSTEMS - CMU 15-721 · ADVANCED DATABASE SYSTEMS. 15-721 (Spring 2020) BACKGROUND Much of the development history of DBMSs is ... page0 page1 page2 page1. 15-721

15-721 (Spring 2020)

TWO-PHASE LOCKING

26

Txn #2

BEGI

N

COMMIT

LOCK(B) LOCK(A) WRITE(A) UNLOCK(A) UNLOCK(B)WRITE(B)

Txn #1

BEGIN

COMMIT

LOCK(A) LOCK(B) UNLOCK(A) UNLOCK(B)READ(A) WRITE(B)LOCK(A) LOCK(B)

Page 37: 2 ADVANCED DATABASE SYSTEMS - CMU 15-721 · ADVANCED DATABASE SYSTEMS. 15-721 (Spring 2020) BACKGROUND Much of the development history of DBMSs is ... page0 page1 page2 page1. 15-721

15-721 (Spring 2020)

TWO-PHASE LOCKING

26

Txn #2

BEGI

N

COMMIT

LOCK(B) LOCK(A) WRITE(A) UNLOCK(A) UNLOCK(B)WRITE(B)

Txn #1

BEGIN

COMMIT

LOCK(A) LOCK(B) UNLOCK(A) UNLOCK(B)READ(A) WRITE(B)LOCK(A) LOCK(B)

Page 38: 2 ADVANCED DATABASE SYSTEMS - CMU 15-721 · ADVANCED DATABASE SYSTEMS. 15-721 (Spring 2020) BACKGROUND Much of the development history of DBMSs is ... page0 page1 page2 page1. 15-721

15-721 (Spring 2020)

TWO-PHASE LOCKING

Deadlock Detection→ Each txn maintains a queue of the txns that hold the locks

that it waiting for.→ A separate thread checks these queues for deadlocks.→ If deadlock found, use a heuristic to decide what txn to

kill in order to break deadlock.

Deadlock Prevention→ Check whether another txn already holds a lock when

another txn requests it.→ If lock is not available, the txn will either (1) wait, (2)

commit suicide, or (3) kill the other txn.

27

Page 39: 2 ADVANCED DATABASE SYSTEMS - CMU 15-721 · ADVANCED DATABASE SYSTEMS. 15-721 (Spring 2020) BACKGROUND Much of the development history of DBMSs is ... page0 page1 page2 page1. 15-721

15-721 (Spring 2020)

TIMESTAMP ORDERING

Basic T/O→ Check for conflicts on each read/write.→ Copy tuples on each access to ensure repeatable reads.

Optimistic Currency Control (OCC)→ Store all changes in private workspace.→ Check for conflicts at commit time and then merge.

28

Page 40: 2 ADVANCED DATABASE SYSTEMS - CMU 15-721 · ADVANCED DATABASE SYSTEMS. 15-721 (Spring 2020) BACKGROUND Much of the development history of DBMSs is ... page0 page1 page2 page1. 15-721

15-721 (Spring 2020)

BASIC T/O

29

Txn #1

BEGIN

COMMIT

READ(A) WRITE(B) WRITE(A)

Page 41: 2 ADVANCED DATABASE SYSTEMS - CMU 15-721 · ADVANCED DATABASE SYSTEMS. 15-721 (Spring 2020) BACKGROUND Much of the development history of DBMSs is ... page0 page1 page2 page1. 15-721

15-721 (Spring 2020)

BASIC T/O

29

Txn #1

BEGIN

COMMIT

READ(A) WRITE(B) WRITE(A)

Page 42: 2 ADVANCED DATABASE SYSTEMS - CMU 15-721 · ADVANCED DATABASE SYSTEMS. 15-721 (Spring 2020) BACKGROUND Much of the development history of DBMSs is ... page0 page1 page2 page1. 15-721

15-721 (Spring 2020)

BASIC T/O

29

Txn #1

BEGIN

COMMIT

READ(A) WRITE(B) WRITE(A)

10001

Page 43: 2 ADVANCED DATABASE SYSTEMS - CMU 15-721 · ADVANCED DATABASE SYSTEMS. 15-721 (Spring 2020) BACKGROUND Much of the development history of DBMSs is ... page0 page1 page2 page1. 15-721

15-721 (Spring 2020)

BASIC T/O

29

Record Read Timestamp

WriteTimestamp

A

B 10000

Txn #1

BEGIN

COMMIT

READ(A) WRITE(B) WRITE(A)

10000

10000

10000

10001

Page 44: 2 ADVANCED DATABASE SYSTEMS - CMU 15-721 · ADVANCED DATABASE SYSTEMS. 15-721 (Spring 2020) BACKGROUND Much of the development history of DBMSs is ... page0 page1 page2 page1. 15-721

15-721 (Spring 2020)

BASIC T/O

29

Record Read Timestamp

WriteTimestamp

A

B 10000

Txn #1

BEGIN

COMMIT

READ(A) WRITE(B) WRITE(A)

10000

10000

10000

10001

Page 45: 2 ADVANCED DATABASE SYSTEMS - CMU 15-721 · ADVANCED DATABASE SYSTEMS. 15-721 (Spring 2020) BACKGROUND Much of the development history of DBMSs is ... page0 page1 page2 page1. 15-721

15-721 (Spring 2020)

BASIC T/O

29

Record Read Timestamp

WriteTimestamp

A

B 10000

Txn #1

BEGIN

COMMIT

READ(A) WRITE(B) WRITE(A)

10001

10000

10000

10001

Page 46: 2 ADVANCED DATABASE SYSTEMS - CMU 15-721 · ADVANCED DATABASE SYSTEMS. 15-721 (Spring 2020) BACKGROUND Much of the development history of DBMSs is ... page0 page1 page2 page1. 15-721

15-721 (Spring 2020)

BASIC T/O

29

Record Read Timestamp

WriteTimestamp

A

B 10000

Txn #1

BEGIN

COMMIT

READ(A) WRITE(B) WRITE(A)

10001

10001

10000

10001

Page 47: 2 ADVANCED DATABASE SYSTEMS - CMU 15-721 · ADVANCED DATABASE SYSTEMS. 15-721 (Spring 2020) BACKGROUND Much of the development history of DBMSs is ... page0 page1 page2 page1. 15-721

15-721 (Spring 2020)

BASIC T/O

29

Record Read Timestamp

WriteTimestamp

A

B 10000

Txn #1

BEGIN

COMMIT

READ(A) WRITE(B) WRITE(A)

10001

10001

10000

10001

Page 48: 2 ADVANCED DATABASE SYSTEMS - CMU 15-721 · ADVANCED DATABASE SYSTEMS. 15-721 (Spring 2020) BACKGROUND Much of the development history of DBMSs is ... page0 page1 page2 page1. 15-721

15-721 (Spring 2020)

BASIC T/O

29

Record Read Timestamp

WriteTimestamp

A

B 10000

Txn #1

BEGIN

COMMIT

READ(A) WRITE(B) WRITE(A)

10001

10001

10000

10001

Page 49: 2 ADVANCED DATABASE SYSTEMS - CMU 15-721 · ADVANCED DATABASE SYSTEMS. 15-721 (Spring 2020) BACKGROUND Much of the development history of DBMSs is ... page0 page1 page2 page1. 15-721

15-721 (Spring 2020)

BASIC T/O

29

Record Read Timestamp

WriteTimestamp

A

B 10000

Txn #1

BEGIN

COMMIT

READ(A) WRITE(B) WRITE(A)

10001

10001

10005

10001

Page 50: 2 ADVANCED DATABASE SYSTEMS - CMU 15-721 · ADVANCED DATABASE SYSTEMS. 15-721 (Spring 2020) BACKGROUND Much of the development history of DBMSs is ... page0 page1 page2 page1. 15-721

15-721 (Spring 2020)

BASIC T/O

29

Record Read Timestamp

WriteTimestamp

A

B 10000

Txn #1

BEGIN

COMMIT

READ(A) WRITE(B) WRITE(A)

10001

10001

10005

10001

Page 51: 2 ADVANCED DATABASE SYSTEMS - CMU 15-721 · ADVANCED DATABASE SYSTEMS. 15-721 (Spring 2020) BACKGROUND Much of the development history of DBMSs is ... page0 page1 page2 page1. 15-721

15-721 (Spring 2020)

OPTIMISTIC CONCURRENCY CONTROL

Timestamp-ordering scheme where txns copy data read/write into a private workspace that is not visible to other active txns.

When a txn commits, the DBMS verifies that there are no conflicts.

First proposed in 1981 at CMU by H.T. Kung.

30

ON OPTIMISTIC METHODS FOR CONCURRENCY CONTROLACM TRANSACTIONS ON DATABASE SYSTEMS 1981

Page 52: 2 ADVANCED DATABASE SYSTEMS - CMU 15-721 · ADVANCED DATABASE SYSTEMS. 15-721 (Spring 2020) BACKGROUND Much of the development history of DBMSs is ... page0 page1 page2 page1. 15-721

15-721 (Spring 2020)

OPTIMISTIC CONCURRENCY CONTROL

31

Txn #1

BEGI

N

READ(A) WRITE(A) WRITE(B)

Record Value WriteTimestamp

B 456 10000

123A 10000

COMMIT

Page 53: 2 ADVANCED DATABASE SYSTEMS - CMU 15-721 · ADVANCED DATABASE SYSTEMS. 15-721 (Spring 2020) BACKGROUND Much of the development history of DBMSs is ... page0 page1 page2 page1. 15-721

15-721 (Spring 2020)

OPTIMISTIC CONCURRENCY CONTROL

31

Txn #1

BEGI

N

READ(A) WRITE(A) WRITE(B)

Read PhaseRecord Value Write

Timestamp

B 456 10000

123A 10000

COMMIT

Page 54: 2 ADVANCED DATABASE SYSTEMS - CMU 15-721 · ADVANCED DATABASE SYSTEMS. 15-721 (Spring 2020) BACKGROUND Much of the development history of DBMSs is ... page0 page1 page2 page1. 15-721

15-721 (Spring 2020)

OPTIMISTIC CONCURRENCY CONTROL

31

Txn #1

BEGI

N

READ(A) WRITE(A) WRITE(B)

Record Value WriteTimestamp

B 456 10000

123A 10000

COMMIT

Page 55: 2 ADVANCED DATABASE SYSTEMS - CMU 15-721 · ADVANCED DATABASE SYSTEMS. 15-721 (Spring 2020) BACKGROUND Much of the development history of DBMSs is ... page0 page1 page2 page1. 15-721

15-721 (Spring 2020)

OPTIMISTIC CONCURRENCY CONTROL

31

Txn #1

BEGI

N

READ(A) WRITE(A) WRITE(B)

Workspace

Record Value WriteTimestamp

123A 10000

Record Value WriteTimestamp

B 456 10000

123A 10000

COMMIT

Page 56: 2 ADVANCED DATABASE SYSTEMS - CMU 15-721 · ADVANCED DATABASE SYSTEMS. 15-721 (Spring 2020) BACKGROUND Much of the development history of DBMSs is ... page0 page1 page2 page1. 15-721

15-721 (Spring 2020)

OPTIMISTIC CONCURRENCY CONTROL

31

Txn #1

BEGI

N

READ(A) WRITE(A) WRITE(B)

Workspace

Record Value WriteTimestamp

123A 10000

Record Value WriteTimestamp

B 456 10000

123A 10000

COMMIT

Page 57: 2 ADVANCED DATABASE SYSTEMS - CMU 15-721 · ADVANCED DATABASE SYSTEMS. 15-721 (Spring 2020) BACKGROUND Much of the development history of DBMSs is ... page0 page1 page2 page1. 15-721

15-721 (Spring 2020)

OPTIMISTIC CONCURRENCY CONTROL

31

Txn #1

BEGI

N

READ(A) WRITE(A) WRITE(B)

Workspace

Record Value WriteTimestamp

123A 10000

Record Value WriteTimestamp

B 456 10000

123A 10000888 ∞COMMIT

Page 58: 2 ADVANCED DATABASE SYSTEMS - CMU 15-721 · ADVANCED DATABASE SYSTEMS. 15-721 (Spring 2020) BACKGROUND Much of the development history of DBMSs is ... page0 page1 page2 page1. 15-721

15-721 (Spring 2020)

OPTIMISTIC CONCURRENCY CONTROL

31

Txn #1

BEGI

N

READ(A) WRITE(A) WRITE(B)

Workspace

Record Value WriteTimestamp

B 456 10000

123A 10000

Record Value WriteTimestamp

B 456 10000

123A 10000888 ∞COMMIT

Page 59: 2 ADVANCED DATABASE SYSTEMS - CMU 15-721 · ADVANCED DATABASE SYSTEMS. 15-721 (Spring 2020) BACKGROUND Much of the development history of DBMSs is ... page0 page1 page2 page1. 15-721

15-721 (Spring 2020)

OPTIMISTIC CONCURRENCY CONTROL

31

Txn #1

BEGI

N

READ(A) WRITE(A) WRITE(B)

Workspace

Record Value WriteTimestamp

B 456 10000

123A 10000

Record Value WriteTimestamp

B 456 10000

123A 10000888 ∞999 ∞

COMMIT

Page 60: 2 ADVANCED DATABASE SYSTEMS - CMU 15-721 · ADVANCED DATABASE SYSTEMS. 15-721 (Spring 2020) BACKGROUND Much of the development history of DBMSs is ... page0 page1 page2 page1. 15-721

15-721 (Spring 2020)

OPTIMISTIC CONCURRENCY CONTROL

31

Txn #1

BEGI

N

READ(A) WRITE(A) WRITE(B) VALIDATE PHASE WRITE PHASE

Workspace

Record Value WriteTimestamp

B 456 10000

123A 10000

Record Value WriteTimestamp

B 456 10000

123A 10000888 ∞999 ∞

COMMIT

Page 61: 2 ADVANCED DATABASE SYSTEMS - CMU 15-721 · ADVANCED DATABASE SYSTEMS. 15-721 (Spring 2020) BACKGROUND Much of the development history of DBMSs is ... page0 page1 page2 page1. 15-721

15-721 (Spring 2020)

OPTIMISTIC CONCURRENCY CONTROL

31

Txn #1

BEGI

N

READ(A) WRITE(A) WRITE(B) VALIDATE PHASE WRITE PHASE

Workspace

Record Value WriteTimestamp

B 456 10000

123A 10000

Record Value WriteTimestamp

B 456 10000

123A 10000888 ∞999 ∞

COMMIT

Page 62: 2 ADVANCED DATABASE SYSTEMS - CMU 15-721 · ADVANCED DATABASE SYSTEMS. 15-721 (Spring 2020) BACKGROUND Much of the development history of DBMSs is ... page0 page1 page2 page1. 15-721

15-721 (Spring 2020)

OPTIMISTIC CONCURRENCY CONTROL

31

Txn #1

BEGI

N

READ(A) WRITE(A) WRITE(B) VALIDATE PHASE WRITE PHASE

10001

Workspace

Record Value WriteTimestamp

B 456 10000

123A 10000

Record Value WriteTimestamp

B 456 10000

123A 10000888 ∞999 ∞

COMMIT

Page 63: 2 ADVANCED DATABASE SYSTEMS - CMU 15-721 · ADVANCED DATABASE SYSTEMS. 15-721 (Spring 2020) BACKGROUND Much of the development history of DBMSs is ... page0 page1 page2 page1. 15-721

15-721 (Spring 2020)

OPTIMISTIC CONCURRENCY CONTROL

31

Txn #1

BEGI

N

READ(A) WRITE(A) WRITE(B) VALIDATE PHASE WRITE PHASE

10001

Workspace

Record Value WriteTimestamp

B 456 10000

123A 10000

Record Value WriteTimestamp

B 456 10000

123A 10000888 ∞999 ∞

COMMIT

888

999 10001

10001

Page 64: 2 ADVANCED DATABASE SYSTEMS - CMU 15-721 · ADVANCED DATABASE SYSTEMS. 15-721 (Spring 2020) BACKGROUND Much of the development history of DBMSs is ... page0 page1 page2 page1. 15-721

15-721 (Spring 2020)

OBSERVATION

When there is low contention, optimistic protocols perform better because the DBMS spends less time checking for conflicts.

At high contention, the both classes of protocols degenerate to essentially the same serial execution.

32

Page 65: 2 ADVANCED DATABASE SYSTEMS - CMU 15-721 · ADVANCED DATABASE SYSTEMS. 15-721 (Spring 2020) BACKGROUND Much of the development history of DBMSs is ... page0 page1 page2 page1. 15-721

15-721 (Spring 2020)

CONCURRENCY CONTROL EVALUATION

Compare in-memory concurrency control protocols at high levels of parallelism.→ Single test-bed system.→ Evaluate protocols using core counts beyond what is

available on today's CPUs.

Running in extreme environments exposes what are the main bottlenecks in the DBMS.

33

STARING INTO THE ABYSS: AN EVALUATION OF CONCURRENCY CONTROL WITH ONE THOUSAND CORESVLDB 2014

Page 66: 2 ADVANCED DATABASE SYSTEMS - CMU 15-721 · ADVANCED DATABASE SYSTEMS. 15-721 (Spring 2020) BACKGROUND Much of the development history of DBMSs is ... page0 page1 page2 page1. 15-721

15-721 (Spring 2020)

1000-CORE CPU SIMUL ATOR

DBx1000 Database System→ In-memory DBMS with pluggable lock manager.→ No network access, logging, or concurrent indexes.→ All txns execute using stored procedures.

MIT Graphite CPU Simulator→ Single-socket, tile-based CPU.→ Shared L2 cache for groups of cores.→ Tiles communicate over 2D-mesh network.

34

Page 67: 2 ADVANCED DATABASE SYSTEMS - CMU 15-721 · ADVANCED DATABASE SYSTEMS. 15-721 (Spring 2020) BACKGROUND Much of the development history of DBMSs is ... page0 page1 page2 page1. 15-721

15-721 (Spring 2020)

TARGET WORKLOAD

Yahoo! Cloud Serving Benchmark (YCSB)→ 20 million tuples→ Each tuple is 1KB (total database is ~20GB)

Each transactions reads/modifies 16 tuples.

Varying skew in transaction access patterns.

Serializable isolation level.

35

Page 68: 2 ADVANCED DATABASE SYSTEMS - CMU 15-721 · ADVANCED DATABASE SYSTEMS. 15-721 (Spring 2020) BACKGROUND Much of the development history of DBMSs is ... page0 page1 page2 page1. 15-721

15-721 (Spring 2020)

CONCURRENCY CONTROL SCHEMES

36

DL_DETECTNO_WAITWAIT_DIE

2PL w/ Deadlock Detection2PL w/ Non-waiting Prevention2PL w/ Wait-and-Die Prevention

TIMESTAMPMVCCOCC

Basic T/O AlgorithmMulti-Version T/OOptimistic Concurrency Control

Page 69: 2 ADVANCED DATABASE SYSTEMS - CMU 15-721 · ADVANCED DATABASE SYSTEMS. 15-721 (Spring 2020) BACKGROUND Much of the development history of DBMSs is ... page0 page1 page2 page1. 15-721

15-721 (Spring 2020)

CONCURRENCY CONTROL SCHEMES

36

DL_DETECTNO_WAITWAIT_DIE

2PL w/ Deadlock Detection2PL w/ Non-waiting Prevention2PL w/ Wait-and-Die Prevention

Page 70: 2 ADVANCED DATABASE SYSTEMS - CMU 15-721 · ADVANCED DATABASE SYSTEMS. 15-721 (Spring 2020) BACKGROUND Much of the development history of DBMSs is ... page0 page1 page2 page1. 15-721

15-721 (Spring 2020)

CONCURRENCY CONTROL SCHEMES

36

TIMESTAMPMVCCOCC

Basic T/O AlgorithmMulti-Version T/OOptimistic Concurrency Control

Page 71: 2 ADVANCED DATABASE SYSTEMS - CMU 15-721 · ADVANCED DATABASE SYSTEMS. 15-721 (Spring 2020) BACKGROUND Much of the development history of DBMSs is ... page0 page1 page2 page1. 15-721

15-721 (Spring 2020)

READ-ONLY WORKLOAD

37

Page 72: 2 ADVANCED DATABASE SYSTEMS - CMU 15-721 · ADVANCED DATABASE SYSTEMS. 15-721 (Spring 2020) BACKGROUND Much of the development history of DBMSs is ... page0 page1 page2 page1. 15-721

15-721 (Spring 2020)

WRITE-INTENSIVE / MEDIUM -CONTENTION

38

Page 73: 2 ADVANCED DATABASE SYSTEMS - CMU 15-721 · ADVANCED DATABASE SYSTEMS. 15-721 (Spring 2020) BACKGROUND Much of the development history of DBMSs is ... page0 page1 page2 page1. 15-721

15-721 (Spring 2020)

WRITE-INTENSIVE / HIGH -CONTENTION

39

Page 74: 2 ADVANCED DATABASE SYSTEMS - CMU 15-721 · ADVANCED DATABASE SYSTEMS. 15-721 (Spring 2020) BACKGROUND Much of the development history of DBMSs is ... page0 page1 page2 page1. 15-721

15-721 (Spring 2020)

WRITE-INTENSIVE / HIGH -CONTENTION

39

Page 75: 2 ADVANCED DATABASE SYSTEMS - CMU 15-721 · ADVANCED DATABASE SYSTEMS. 15-721 (Spring 2020) BACKGROUND Much of the development history of DBMSs is ... page0 page1 page2 page1. 15-721

15-721 (Spring 2020)

WRITE-INTENSIVE / HIGH -CONTENTION

39

Page 76: 2 ADVANCED DATABASE SYSTEMS - CMU 15-721 · ADVANCED DATABASE SYSTEMS. 15-721 (Spring 2020) BACKGROUND Much of the development history of DBMSs is ... page0 page1 page2 page1. 15-721

15-721 (Spring 2020)

BOT TLENECKS

Lock Thrashing→ DL_DETECT, WAIT_DIE

Timestamp Allocation→ All T/O algorithms + WAIT_DIE

Memory Allocations→ OCC + MVCC

40

Page 77: 2 ADVANCED DATABASE SYSTEMS - CMU 15-721 · ADVANCED DATABASE SYSTEMS. 15-721 (Spring 2020) BACKGROUND Much of the development history of DBMSs is ... page0 page1 page2 page1. 15-721

15-721 (Spring 2020)

LOCK THRASHING

Each txn waits longer to acquire locks, causing other txn to wait longer to acquire locks.

Can measure this phenomenon by removing deadlock detection/prevention overhead.→ Force txns to acquire locks in primary key order.→ Deadlocks are not possible.

41

Page 78: 2 ADVANCED DATABASE SYSTEMS - CMU 15-721 · ADVANCED DATABASE SYSTEMS. 15-721 (Spring 2020) BACKGROUND Much of the development history of DBMSs is ... page0 page1 page2 page1. 15-721

15-721 (Spring 2020)

LOCK THRASHING

42

Page 79: 2 ADVANCED DATABASE SYSTEMS - CMU 15-721 · ADVANCED DATABASE SYSTEMS. 15-721 (Spring 2020) BACKGROUND Much of the development history of DBMSs is ... page0 page1 page2 page1. 15-721

15-721 (Spring 2020)

LOCK THRASHING

42

Page 80: 2 ADVANCED DATABASE SYSTEMS - CMU 15-721 · ADVANCED DATABASE SYSTEMS. 15-721 (Spring 2020) BACKGROUND Much of the development history of DBMSs is ... page0 page1 page2 page1. 15-721

15-721 (Spring 2020)

TIMESTAMP ALLOCATION

Mutex→ Worst option.

Atomic Addition→ Requires cache invalidation on write.

Batched Atomic Addition→ Needs a back-off mechanism to prevent fast burn.

Hardware Clock→ Not sure if it will exist in future CPUs.

Hardware Counter→ Not implemented in existing CPUs.

43

Page 81: 2 ADVANCED DATABASE SYSTEMS - CMU 15-721 · ADVANCED DATABASE SYSTEMS. 15-721 (Spring 2020) BACKGROUND Much of the development history of DBMSs is ... page0 page1 page2 page1. 15-721

15-721 (Spring 2020)

TIMESTAMP ALLOCATION

44

Page 82: 2 ADVANCED DATABASE SYSTEMS - CMU 15-721 · ADVANCED DATABASE SYSTEMS. 15-721 (Spring 2020) BACKGROUND Much of the development history of DBMSs is ... page0 page1 page2 page1. 15-721

15-721 (Spring 2020)

MEMORY ALLOCATIONS

Copying data on every read/write access slows down the DBMS because of contention on the memory controller.→ In-place updates and non-copying reads are not affected

as much.

Default libc malloc is slow. Never use it.→ We will discuss this further later in the semester.

45

Page 83: 2 ADVANCED DATABASE SYSTEMS - CMU 15-721 · ADVANCED DATABASE SYSTEMS. 15-721 (Spring 2020) BACKGROUND Much of the development history of DBMSs is ... page0 page1 page2 page1. 15-721

15-721 (Spring 2020)

PARTING THOUGHTS

The design of a in-memory DBMS is significantly different than a disk-oriented system.

The world has finally become comfortable with in-memory data storage and processing.

Increases in DRAM capacities have stalled in recent years compared to SSDs…

46

Page 84: 2 ADVANCED DATABASE SYSTEMS - CMU 15-721 · ADVANCED DATABASE SYSTEMS. 15-721 (Spring 2020) BACKGROUND Much of the development history of DBMSs is ... page0 page1 page2 page1. 15-721

15-721 (Spring 2020)

NEXT CL ASS

Multi-Version Concurrency Control

47