Differential Buffer
Differential Buffer
Motivation
¨ Inser&ng
new
tuples
into
a
compressed
structure
can
be
expensive
§ New
values
may
require
a
reorganiza&on
of
the
dic&onary
§ Number
of
bits
required
to
encode
all
dic&onary
values
may
change
§ A>ribute
vector
has
to
be
reorganized
2
Differential Buffer
¨ New
values
are
wri>en
to
a
dedicated
differen&al
buffer
(delta)
¨ Cache
Sensi&ve
B+
tree
(CSB+)
used
for
faster
search
on
delta
Read
Write
world_population
…
…
fname
Table fname
A>ribute
Vector
Dic&onary
A>ribute
Vector
Read Operations
Data Modifying
Dic&onary
0 0
0 Anton
Main
0 0
Operations
1 1
1 Hanna
Store
1 1
(compressed)
Table
2 1
2 1
2 Michael
0
Angela
CSB+
3 3
3 2
3 Differential
Sophie
1
Klaus
4 2
Buffer 2
Andre
5 1
up
to
50,000
8
Billion
entries
entries
3
Main
Store
Differen&al
Buffer
Differential Buffer
¨ Inserts
of
new
values
are
faster,
because
dic&onary
and
a>ribute
vector
does
not
need
to
be
resorted
¨ Range
select
on
differen&al
buffer
expensive,
based
on
unsorted
dic&onary
¨ Differen&al
Buffer
requires
more
memory:
§ No
a>ribute
vector
compression
§ Addi&onal
CSB+
tree
for
dic&onary
4
Tuple Lifetime
Michael
Berg
moves
from
Berlin
to
Potsdam
Table:
world_popula&on
recId
fname
lname
gender
country
city
birthday
Main
Store
0
Mar&n
Albrecht
m
GER
Berlin
08-‐05-‐1955
1
Michael
Berg
m
GER
Berlin
03-‐05-‐1970
2
Hanna
Schulze
f
GER
Hamburg
04-‐04-‐1968
3
Anton
Meyer
m
AUT
Innsbruck
10-‐20-‐1992
4
Ulrike
Schulze
f
GER
Potsdam
09-‐03-‐1977
5
Sophie
Schulze
f
GER
Rostock
06-‐20-‐2012
...
...
...
...
...
...
...
8
×
109
Zacharias
Perdopolus
m
GRE
Athen
03-‐12-‐1979
Differen&al
Buffer
UPDATE
‘world_popula*on’
SET
city=‘Potsdam’
WHERE
fname=
“Michael”
AND
lname=“Berg”
AND
city=“Berlin”
LIMIT
1
5
Tuple Lifetime
Michael
Berg
moves
from
Berlin
to
Potsdam
Table:
world_popula&on
recId
fname
lname
gender
country
city
birthday
Main
Store
0
Mar&n
Albrecht
m
GER
Berlin
08-‐05-‐1955
1
Michael
Berg
m
GER
Berlin
03-‐05-‐1970
2
Hanna
Schulze
f
GER
Hamburg
04-‐04-‐1968
3
Anton
Meyer
m
AUT
Innsbruck
10-‐20-‐1992
4
Ulrike
Schulze
f
GER
Potsdam
09-‐03-‐1977
5
Sophie
Schulze
f
GER
Rostock
06-‐20-‐2012
...
...
...
...
...
...
...
8
×
109
Zacharias
Perdopolus
m
GRE
Athen
03-‐12-‐1979
Differen&al
Buffer
UPDATE
‘world_popula*on’
SET
city=‘Potsdam’
WHERE
fname=
“Michael”
AND
lname=“Berg”
AND
city=“Berlin”
LIMIT
1
6
Tuple Lifetime
Michael
Berg
moves
from
Berlin
to
Potsdam
Table:
world_popula&on
recId
fname
lname
gender
country
city
birthday
Main
Store
0
Mar&n
Albrecht
m
GER
Berlin
08-‐05-‐1955
1
Michael
Berg
m
GER
Berlin
03-‐05-‐1970
2
Hanna
Schulze
f
GER
Hamburg
04-‐04-‐1968
3
Anton
Meyer
m
AUT
Innsbruck
10-‐20-‐1992
4
Ulrike
Schulze
f
GER
Potsdam
09-‐03-‐1977
5
Sophie
Schulze
f
GER
Rostock
06-‐20-‐2012
...
...
...
...
...
...
...
8
×
109
Zacharias
Perdopolus
m
GRE
Athen
03-‐12-‐1979
Tuple Lifetime
¨ Problem:
Tuples
are
present
in
Main
Store
and
Differen&al
Buffer
¨ Tuples
of
a
table
are
marked
by
a
validity
vector
to
reduce
the
required
amount
of
reorganiza&on
steps
(like
an
a>ribute
vector
for
validity)
¨ Invalidated
tuples
stay
in
the
database
table
un&l
the
next
reorganiza&on
takes
place
¨ Search
results
are
reduced
using
the
validity
vector
¨ 1
bit
required
per
database
tuple
8
Tuple Lifetime
Michael
Berg
moves
from
Berlin
to
Potsdam
Table:
world_popula&on
recId
fname
lname
gender
country
city
birthday
valid
Main
Store
0
Mar&n
Albrecht
m
GER
Berlin
08-‐05-‐1955
1
1
Michael
Berg
m
GER
Berlin
03-‐05-‐1970
0
2
Hanna
Schulze
f
GER
Hamburg
04-‐04-‐1968
1
3
Anton
Meyer
m
AUT
Innsbruck
10-‐20-‐1992
1
4
Ulrike
Schulze
f
GER
Potsdam
09-‐03-‐1977
1
5
Sophie
Schulze
f
GER
Rostock
06-‐20-‐2012
1
...
...
...
...
...
...
...
8
×
109
Zacharias
Perdopolus
m
GRE
Athen
03-‐12-‐1979
1
Tuple Lifetime
Michael
Berg
moves
from
Berlin
to
Potsdam
Table:
world_popula&on
recId
fname
lname
gender
country
city
birthday
valid
Main
Store
0
Mar&n
Albrecht
m
GER
Berlin
08-‐05-‐1955
1
1
Michael
Berg
m
GER
Berlin
03-‐05-‐1970
0
2
Hanna
Schulze
f
GER
Hamburg
04-‐04-‐1968
1
3
Anton
Meyer
m
AUT
Innsbruck
10-‐20-‐1992
1
4
Ulrike
Schulze
f
GER
Potsdam
09-‐03-‐1977
1
5
Sophie
Schulze
f
GER
Rostock
06-‐20-‐2012
1
...
...
...
...
...
...
...
8
×
109
Zacharias
Perdopolus
m
GRE
Athen
03-‐12-‐1979
1