cs4604:introduconto#...

121
CS 4604: Introduc0on to Database Management Systems B. Aditya Prakash Lecture #9: Storing and Indexes

Upload: others

Post on 03-Jul-2020

2 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: CS4604:Introduconto# Database#Management#Systems#courses.cs.vt.edu/~cs4604/Spring14/lectures/lecture-9.pdf · Prakash’2014’ VTCS4604’ JimGray ’s#Storage#Latency#Analogy:###

CS  4604:  Introduc0on  to  Database  Management  Systems  

B.  Aditya  Prakash  Lecture  #9:  Storing  and  Indexes  

Page 2: CS4604:Introduconto# Database#Management#Systems#courses.cs.vt.edu/~cs4604/Spring14/lectures/lecture-9.pdf · Prakash’2014’ VTCS4604’ JimGray ’s#Storage#Latency#Analogy:###

Announcement  

§  No  class  on  Tuesday.    §  BUT  

– Project  Assignment  1  is  sAll  due  (in  class)  – We  will  return  HW1  – Pranav  and  Qianzhou  will  be  present  in  classroom  during  the  lecture  Ame  (as  extra  office  hours)  

Prakash  2014   VT  CS  4604   2  

Page 3: CS4604:Introduconto# Database#Management#Systems#courses.cs.vt.edu/~cs4604/Spring14/lectures/lecture-9.pdf · Prakash’2014’ VTCS4604’ JimGray ’s#Storage#Latency#Analogy:###

Prakash  2014   VT  CS  4604  

DBMS  Layers:  

Query Optimization and Execution

Relational Operators

Files and Access Methods

Buffer Management

Disk Space Management

DB

Queries  

TODAY  à  

3  

Page 4: CS4604:Introduconto# Database#Management#Systems#courses.cs.vt.edu/~cs4604/Spring14/lectures/lecture-9.pdf · Prakash’2014’ VTCS4604’ JimGray ’s#Storage#Latency#Analogy:###

Prakash  2014   VT  CS  4604  

Leverage  OS  for  disk/file  management?  

§  Layers  of  abstracAon  are  good  …  but:  

4  

Page 5: CS4604:Introduconto# Database#Management#Systems#courses.cs.vt.edu/~cs4604/Spring14/lectures/lecture-9.pdf · Prakash’2014’ VTCS4604’ JimGray ’s#Storage#Latency#Analogy:###

Prakash  2014   VT  CS  4604  

Leverage  OS  for  disk/file  management?  

§  Layers  of  abstracAon  are  good  …  but:  – Unfortunately,  OS  oZen  gets  in  the  way  of  DBMS  

5  

Page 6: CS4604:Introduconto# Database#Management#Systems#courses.cs.vt.edu/~cs4604/Spring14/lectures/lecture-9.pdf · Prakash’2014’ VTCS4604’ JimGray ’s#Storage#Latency#Analogy:###

Prakash  2014   VT  CS  4604  

Leverage  OS  for  disk/file  management?  

§  DBMS  wants/needs  to  do  things  “its  own  way”  – Specialized  prefetching  – Control  over  buffer  replacement  policy  

•  LRU  not  always  best  (someAmes  worst!!)  – Control  over  thread/process  scheduling  

•  “Convoy  problem”    – Arises  when  OS  scheduling  conflicts  with  DBMS  locking  

– Control  over  flushing  data  to  disk  • WAL  protocol  requires  flushing  log  entries  to  disk  

6  

Page 7: CS4604:Introduconto# Database#Management#Systems#courses.cs.vt.edu/~cs4604/Spring14/lectures/lecture-9.pdf · Prakash’2014’ VTCS4604’ JimGray ’s#Storage#Latency#Analogy:###

Prakash  2014   VT  CS  4604  

Disks  and  Files    

§  DBMS  stores  informaAon                                                                                        on  disks.  – but:  disks  are  (relaAvely)  VERY  slow!  

§ Major  implicaAons  for  DBMS  design!  

7  

Page 8: CS4604:Introduconto# Database#Management#Systems#courses.cs.vt.edu/~cs4604/Spring14/lectures/lecture-9.pdf · Prakash’2014’ VTCS4604’ JimGray ’s#Storage#Latency#Analogy:###

Prakash  2014   VT  CS  4604  

Disks  and  Files    

§ Major  implicaAons  for  DBMS  design:  – READ:  disk  -­‐>  main  memory  (RAM).  – WRITE:  reverse  – Both  are  high-­‐cost  operaAons,    relaAve  to  in-­‐memory  operaAons,  so  must  be  planned  carefully!  

8  

Page 9: CS4604:Introduconto# Database#Management#Systems#courses.cs.vt.edu/~cs4604/Spring14/lectures/lecture-9.pdf · Prakash’2014’ VTCS4604’ JimGray ’s#Storage#Latency#Analogy:###

Prakash  2014   VT  CS  4604  

Why  Not  Store  It  All  in  Main  Memory?  

9  

Page 10: CS4604:Introduconto# Database#Management#Systems#courses.cs.vt.edu/~cs4604/Spring14/lectures/lecture-9.pdf · Prakash’2014’ VTCS4604’ JimGray ’s#Storage#Latency#Analogy:###

Prakash  2014   VT  CS  4604  

Why  Not  Store  It  All  in  Main  Memory?  

§  Costs  too  much.    – disk:  ~$1/Gb;  memory:  ~$100/Gb    – High-­‐end  Databases  today  in  the  10-­‐100  TB  range.  

– Approx  60%  of  the  cost  of  a  producAon  system  is  in  the  disks.  

§ Main  memory  is  vola9le.  §  Note:  some  specialized  systems  do  store  enAre  database  in  main  memory.      

10  

Page 11: CS4604:Introduconto# Database#Management#Systems#courses.cs.vt.edu/~cs4604/Spring14/lectures/lecture-9.pdf · Prakash’2014’ VTCS4604’ JimGray ’s#Storage#Latency#Analogy:###

Prakash  2014   VT  CS  4604  

The  Storage  Hierarchy  Smaller, Faster

Bigger, Slower

11  

Page 12: CS4604:Introduconto# Database#Management#Systems#courses.cs.vt.edu/~cs4604/Spring14/lectures/lecture-9.pdf · Prakash’2014’ VTCS4604’ JimGray ’s#Storage#Latency#Analogy:###

Prakash  2014   VT  CS  4604  

The  Storage  Hierarchy  

– Main memory (RAM) for currently used data.

– Disk for the main database (secondary storage).

– Tapes for archiving older versions of the data (tertiary storage).

Smaller, Faster

Bigger, Slower

Registers

L1 Cache

Main Memory

Magnetic Disk

Magnetic Tape

.  .  .  

12  

Page 13: CS4604:Introduconto# Database#Management#Systems#courses.cs.vt.edu/~cs4604/Spring14/lectures/lecture-9.pdf · Prakash’2014’ VTCS4604’ JimGray ’s#Storage#Latency#Analogy:###

Prakash  2014   VT  CS  4604  

Jim  Gray’s  Storage  Latency  Analogy:      How  Far  Away  is  the  Data?  

Registers On Chip Cache On Board Cache

Memory

Disk

1 2

10

100

Tape

10 9

10 6

Boston

This Building

This Room My Head

10 min

1.5 hr

2 Years

1 min

Pluto

2,000 Years

The image cannot be displayed. Your computer may not have enough memory to open the image, or the image may have been corrupted. Restart your computer, and then open the file again. If the red x still appears, you may have to delete the image and then insert it again.

The image cannot be displayed. Your computer may not have

The image cannot be displayed. Your computer may not have enough

Andromeda

13  

Page 14: CS4604:Introduconto# Database#Management#Systems#courses.cs.vt.edu/~cs4604/Spring14/lectures/lecture-9.pdf · Prakash’2014’ VTCS4604’ JimGray ’s#Storage#Latency#Analogy:###

Prakash  2014   VT  CS  4604  

Disks  §  Secondary  storage  device  of  choice.    § Main  advantage  over  tapes:    random  access  vs.  sequen9al.  

§  Data  is  stored  and  retrieved  in  units  called  disk  blocks  or  pages.  

§  Unlike  RAM,  Ame  to  retrieve  a  disk  page  varies  depending  upon  locaAon  on  disk.      –  relaAve  placement  of  pages  on  disk  is  important!  

14  

Page 15: CS4604:Introduconto# Database#Management#Systems#courses.cs.vt.edu/~cs4604/Spring14/lectures/lecture-9.pdf · Prakash’2014’ VTCS4604’ JimGray ’s#Storage#Latency#Analogy:###

Prakash  2014   VT  CS  4604  

Anatomy  of  a  Disk    

Platters

Spindle

•  Sector •  Track •  Cylinder •  Platter •  Block size = multiple of sector size (which is fixed)

Disk head

Arm movement

Arm assembly

Tracks

Sector

#15  

Page 16: CS4604:Introduconto# Database#Management#Systems#courses.cs.vt.edu/~cs4604/Spring14/lectures/lecture-9.pdf · Prakash’2014’ VTCS4604’ JimGray ’s#Storage#Latency#Analogy:###

Prakash  2014   VT  CS  4604  

Accessing  a  Disk  Page  

§  Time  to  access  (read/write)  a  disk  block:  –  .  –  .  –  .  

16  

Page 17: CS4604:Introduconto# Database#Management#Systems#courses.cs.vt.edu/~cs4604/Spring14/lectures/lecture-9.pdf · Prakash’2014’ VTCS4604’ JimGray ’s#Storage#Latency#Analogy:###

Prakash  2014   VT  CS  4604  

Accessing  a  Disk  Page  

§  Time  to  access  (read/write)  a  disk  block:  – seek  9me:  moving  arms  to  posiAon  disk  head  on  track  

–  rota9onal  delay:  waiAng  for  block  to  rotate  under  head  

–  transfer  9me:  actually  moving  data  to/from  disk  surface  

17  

Page 18: CS4604:Introduconto# Database#Management#Systems#courses.cs.vt.edu/~cs4604/Spring14/lectures/lecture-9.pdf · Prakash’2014’ VTCS4604’ JimGray ’s#Storage#Latency#Analogy:###

Prakash  2014   VT  CS  4604  

Accessing  a  Disk  Page  

§  RelaAve  Ames?  – seek  9me:    –  rota9onal  delay:    –  transfer  9me:  

18  

Page 19: CS4604:Introduconto# Database#Management#Systems#courses.cs.vt.edu/~cs4604/Spring14/lectures/lecture-9.pdf · Prakash’2014’ VTCS4604’ JimGray ’s#Storage#Latency#Analogy:###

Prakash  2014   VT  CS  4604  

Accessing  a  Disk  Page  

§  RelaAve  Ames?  – seek  9me:  about  1  to  20msec    –  rota9onal  delay:  0  to  10msec    –  transfer  9me:  <  1msec  per  4KB  page  

Transfer

Seek

Rotate

transfer  

19  

Page 20: CS4604:Introduconto# Database#Management#Systems#courses.cs.vt.edu/~cs4604/Spring14/lectures/lecture-9.pdf · Prakash’2014’ VTCS4604’ JimGray ’s#Storage#Latency#Analogy:###

Prakash  2014   VT  CS  4604  

Seek  0me  &  rota0onal  delay  dominate  

§  Key  to  lower  I/O  cost:                                                                                                                  reduce  seek/rotaAon  delays!                                                                                              

§  Also  note:  For  shared  disks,  much  Ame  spent  waiAng  in  queue  for  access  to  arm/controller  

Seek

Rotate

transfer  

20  

Page 21: CS4604:Introduconto# Database#Management#Systems#courses.cs.vt.edu/~cs4604/Spring14/lectures/lecture-9.pdf · Prakash’2014’ VTCS4604’ JimGray ’s#Storage#Latency#Analogy:###

Prakash  2014   VT  CS  4604  

Arranging  Pages  on  Disk  

§  “Next” block  concept:      – blocks  on  same  track,  followed  by  – blocks  on  same  cylinder,  followed  by  – blocks  on  adjacent  cylinder  

§  Accesing  ‘next’  block  is  cheap  §  A  useful  opAmizaAon:  pre-­‐fetching  

– See  textbook  page  323  

21  

Page 22: CS4604:Introduconto# Database#Management#Systems#courses.cs.vt.edu/~cs4604/Spring14/lectures/lecture-9.pdf · Prakash’2014’ VTCS4604’ JimGray ’s#Storage#Latency#Analogy:###

Prakash  2014   VT  CS  4604  

Rules  of  thumb…  

1. Memory  access  much  faster  than  disk  I/O                (~  1000x)  

§  “SequenAal”  I/O  faster  than  “random”  I/O                  (~  10x)  

22  

Page 23: CS4604:Introduconto# Database#Management#Systems#courses.cs.vt.edu/~cs4604/Spring14/lectures/lecture-9.pdf · Prakash’2014’ VTCS4604’ JimGray ’s#Storage#Latency#Analogy:###

Prakash  2014   VT  CS  4604  

Disk  Arrays:  RAID  

§  Benefits:  – Higher  throughput  (via  data  “striping”)  – Longer  MTTF  (via  redundancy)  

Logical Physical

Just  FYI  

23  

Page 24: CS4604:Introduconto# Database#Management#Systems#courses.cs.vt.edu/~cs4604/Spring14/lectures/lecture-9.pdf · Prakash’2014’ VTCS4604’ JimGray ’s#Storage#Latency#Analogy:###

Prakash  2014   VT  CS  4604  

Recall:  DBMS  Layers  

Query Optimization and Execution

Relational Operators

Files and Access Methods

Buffer Management

Disk Space Management

DB

Queries  

TODAY  à  

24  

Page 25: CS4604:Introduconto# Database#Management#Systems#courses.cs.vt.edu/~cs4604/Spring14/lectures/lecture-9.pdf · Prakash’2014’ VTCS4604’ JimGray ’s#Storage#Latency#Analogy:###

Prakash  2014   VT  CS  4604  

Buffer  Management  in  a  DBMS  

DB  

MAIN  MEMORY  

DISK  

(copy  of  a)  disk  page  

free  frame  

Page  Requests  from  Higher  Levels  

buffer  pool  

choice  of  frame  dictated  by  replacement  policy  

Just  FYI  

25  

Page 26: CS4604:Introduconto# Database#Management#Systems#courses.cs.vt.edu/~cs4604/Spring14/lectures/lecture-9.pdf · Prakash’2014’ VTCS4604’ JimGray ’s#Storage#Latency#Analogy:###

Prakash  2014   VT  CS  4604  

Files  

§  FILE:  A  collecAon  of  pages,  each  containing  a  collecAon  of  records.    

§  Must  support:  –  insert/delete/modify  record  –  read  a  parAcular  record  (specified  using  record  id)  –  scan  all  records  (possibly  with  some  condiAons  on  the  records  to  be  retrieved)  

26  

Page 27: CS4604:Introduconto# Database#Management#Systems#courses.cs.vt.edu/~cs4604/Spring14/lectures/lecture-9.pdf · Prakash’2014’ VTCS4604’ JimGray ’s#Storage#Latency#Analogy:###

Prakash  2014   VT  CS  4604  

Alterna0ve  File  Organiza0ons  

Several  alternaAves  (w/  trade-­‐offs):  – Heap  files:    Suitable  when  typical  access  is  a  file  scan  retrieving  all  records.  

– Sorted  Files:  – Index  File  OrganizaAons:  

later  

27  

Page 28: CS4604:Introduconto# Database#Management#Systems#courses.cs.vt.edu/~cs4604/Spring14/lectures/lecture-9.pdf · Prakash’2014’ VTCS4604’ JimGray ’s#Storage#Latency#Analogy:###

Prakash  2014   VT  CS  4604  

Files  of  records  

§  Heap  of  pages  – as  linked  list  or  – directory  of  pages  

28  

Page 29: CS4604:Introduconto# Database#Management#Systems#courses.cs.vt.edu/~cs4604/Spring14/lectures/lecture-9.pdf · Prakash’2014’ VTCS4604’ JimGray ’s#Storage#Latency#Analogy:###

Prakash  2014   VT  CS  4604  

Heap  File  Using  Lists    

§  The  header  page  id  and  Heap  file  name  must  be  stored  someplace.  §  Each  page  contains  2  `pointers’  plus  data.  

Header  Page  

Data  Page  

Data  Page  

Data  Page  

Free  Page  

Free  Page  

Free  Page   Pages  with  

Free  Space  

Full  Pages  

29  

Page 30: CS4604:Introduconto# Database#Management#Systems#courses.cs.vt.edu/~cs4604/Spring14/lectures/lecture-9.pdf · Prakash’2014’ VTCS4604’ JimGray ’s#Storage#Latency#Analogy:###

Prakash  2014   VT  CS  4604  

Heap  File  Using  a  Page  Directory  

Data  Page  1  

Data  Page  2  

Data  Page  N  

Header  Page  

DIRECTORY  

30  

Page 31: CS4604:Introduconto# Database#Management#Systems#courses.cs.vt.edu/~cs4604/Spring14/lectures/lecture-9.pdf · Prakash’2014’ VTCS4604’ JimGray ’s#Storage#Latency#Analogy:###

Prakash  2014   VT  CS  4604  

Heap  File  Using  a  Page  Directory  

§  The  entry  for  a  page  can  include  the  number  of  free  bytes  on  the  page.  

§  The  directory  is  a  collecAon  of  pages;  linked  list  implementaAon  is  just  one  alternaAve.  – Much  smaller  than  linked  list  of  all  HF  pages!  

31  

Page 32: CS4604:Introduconto# Database#Management#Systems#courses.cs.vt.edu/~cs4604/Spring14/lectures/lecture-9.pdf · Prakash’2014’ VTCS4604’ JimGray ’s#Storage#Latency#Analogy:###

Prakash  2014   VT  CS  4604  

Page  Formats  

§  fixed  length  records  §  variable  length  records  

32  

Page 33: CS4604:Introduconto# Database#Management#Systems#courses.cs.vt.edu/~cs4604/Spring14/lectures/lecture-9.pdf · Prakash’2014’ VTCS4604’ JimGray ’s#Storage#Latency#Analogy:###

Prakash  2014   VT  CS  4604  

Page  Formats  

Important  concept:  rid  ==  record  id  Q0:  why  do  we  need  it?    Q1:  How  to  mark  the  locaAon  of  a  record?    Q2:  Why  not  its  byte  offset  in  the  file?  

33  

Page 34: CS4604:Introduconto# Database#Management#Systems#courses.cs.vt.edu/~cs4604/Spring14/lectures/lecture-9.pdf · Prakash’2014’ VTCS4604’ JimGray ’s#Storage#Latency#Analogy:###

Prakash  2014   VT  CS  4604  

Page  Formats  

Important  concept:  rid  ==  record  id  Q0:  why  do  we  need  it?    A0:  eg.,  for  indexing  

Q1:  How  to  mark  the  locaAon  of  a  record?    A1:  rid  =  record  id  =  page-­‐id  &  slot-­‐id    

Q2:  Why  not  its  byte  offset  in  the  file?    A2:  too  much  re-­‐organizaAon  on  ins/del.  

34  

Page 35: CS4604:Introduconto# Database#Management#Systems#courses.cs.vt.edu/~cs4604/Spring14/lectures/lecture-9.pdf · Prakash’2014’ VTCS4604’ JimGray ’s#Storage#Latency#Analogy:###

Prakash  2014   VT  CS  4604  

Fixed  length  records  

§  Q:  How  would  you  store  them  on  a  page/file?  

35  

Page 36: CS4604:Introduconto# Database#Management#Systems#courses.cs.vt.edu/~cs4604/Spring14/lectures/lecture-9.pdf · Prakash’2014’ VTCS4604’ JimGray ’s#Storage#Latency#Analogy:###

Prakash  2014   VT  CS  4604  

Fixed  length  records  

§  Q:  How  would  you  store  them  on  a  page/file?  §  A1:  How  about:  

slot  #1  slot  #2  

...  

N  

number  of  full  slots  

slot  #N  

free  space  

‘Packed’  

36  

Page 37: CS4604:Introduconto# Database#Management#Systems#courses.cs.vt.edu/~cs4604/Spring14/lectures/lecture-9.pdf · Prakash’2014’ VTCS4604’ JimGray ’s#Storage#Latency#Analogy:###

Prakash  2014   VT  CS  4604  

Fixed  length  records  

§  A1:  How  about:  BUT:  On  inserAon/deleAon,  we  have  too  much  to  reorganize/update

slot  #1  slot  #2  

...  

N  

number  of  full  slots  

slot  #N  

free  space  

‘Packed’  

37  

Page 38: CS4604:Introduconto# Database#Management#Systems#courses.cs.vt.edu/~cs4604/Spring14/lectures/lecture-9.pdf · Prakash’2014’ VTCS4604’ JimGray ’s#Storage#Latency#Analogy:###

Prakash  2014   VT  CS  4604  

Fixed  length  records  

§ What  would  you  do?  

38  

Page 39: CS4604:Introduconto# Database#Management#Systems#courses.cs.vt.edu/~cs4604/Spring14/lectures/lecture-9.pdf · Prakash’2014’ VTCS4604’ JimGray ’s#Storage#Latency#Analogy:###

Prakash  2014   VT  CS  4604  

Fixed  length  records  

§  Q:  How  would  you  store  them  on  a  page/file?  §  A2:  Bitmaps  

slot  #1  slot  #2  

...  slot  #N  

free  slots  

M  1   0   page  header  

39  

Page 40: CS4604:Introduconto# Database#Management#Systems#courses.cs.vt.edu/~cs4604/Spring14/lectures/lecture-9.pdf · Prakash’2014’ VTCS4604’ JimGray ’s#Storage#Latency#Analogy:###

Prakash  2014   VT  CS  4604  

Variable  length  records  

§  Q:  How  would  you  store  them  on  a  page/file?  

...  

page  header  

occupied  records  

40  

Page 41: CS4604:Introduconto# Database#Management#Systems#courses.cs.vt.edu/~cs4604/Spring14/lectures/lecture-9.pdf · Prakash’2014’ VTCS4604’ JimGray ’s#Storage#Latency#Analogy:###

Prakash  2014   VT  CS  4604  

Variable  length  records  

§  Q:  How  would  you  store  them  on  a  page/file?  

...  

page  header  

occupied  records  

• pack  them  •   keep  ptrs  to  them  

slot  directory  

other  info  (#  slots  etc)  

41  

Page 42: CS4604:Introduconto# Database#Management#Systems#courses.cs.vt.edu/~cs4604/Spring14/lectures/lecture-9.pdf · Prakash’2014’ VTCS4604’ JimGray ’s#Storage#Latency#Analogy:###

Prakash  2014   VT  CS  4604  

Variable  length  records  

§  Q:  How  would  you  store  them  on  a  page/file?  

...  

page  header  

occupied  records  • pack  them  •   keep  ptrs  to  them  •   mark  start  of  free  space    

slot  directory  

other  info  (#  slots  etc)  

42  

Page 43: CS4604:Introduconto# Database#Management#Systems#courses.cs.vt.edu/~cs4604/Spring14/lectures/lecture-9.pdf · Prakash’2014’ VTCS4604’ JimGray ’s#Storage#Latency#Analogy:###

Prakash  2014   VT  CS  4604  

Variable  length  records  

§  SLOTTED  PAGE  organizaAon  -­‐  popular.  

...  

page  header  

occupied  records  

43  

Page 44: CS4604:Introduconto# Database#Management#Systems#courses.cs.vt.edu/~cs4604/Spring14/lectures/lecture-9.pdf · Prakash’2014’ VTCS4604’ JimGray ’s#Storage#Latency#Analogy:###

Prakash  2014   VT  CS  4604  

Conclusions-­‐-­‐-­‐Storing  

§ Memory  hierarchy  §  Disks:  (>1000x  slower)  -­‐  thus  

– pack  info  in  blocks  –  try  to  fetch  nearby  blocks  (sequenAally)  

§  Record  organizaAon:  Sloxed  page  

44  

Page 45: CS4604:Introduconto# Database#Management#Systems#courses.cs.vt.edu/~cs4604/Spring14/lectures/lecture-9.pdf · Prakash’2014’ VTCS4604’ JimGray ’s#Storage#Latency#Analogy:###

TREE  INDEXES  

Prakash  2014   VT  CS  4604   45  

Page 46: CS4604:Introduconto# Database#Management#Systems#courses.cs.vt.edu/~cs4604/Spring14/lectures/lecture-9.pdf · Prakash’2014’ VTCS4604’ JimGray ’s#Storage#Latency#Analogy:###

Declaring  Indexes  

§  No  standard!  §  Typical  syntax:  CREATE INDEX StudentsInd ON Students(ID);

CREATE INDEX CoursesInd ON Courses(Number, DeptName);

Prakash  2014   VT  CS  4604   46  

Page 47: CS4604:Introduconto# Database#Management#Systems#courses.cs.vt.edu/~cs4604/Spring14/lectures/lecture-9.pdf · Prakash’2014’ VTCS4604’ JimGray ’s#Storage#Latency#Analogy:###

Types  of  Indexes  

§  Primary:  index  on  a  key  – Used  to  enforce  constraints  

§  Secondary:  index  on  non-­‐key  axribute  §  Clustering:  order  of  the  rows  in  the  data  pages  correspond  to  the  order  of  the  rows  in  the  index  – Only  one  clustered  index  can  exist  in  a  given  table  – Useful  for  range  predicates  

§  Non-­‐clustering:  physical  order  not  the  same  as  index  order  

Prakash  2014   VT  CS  4604   47  

Page 48: CS4604:Introduconto# Database#Management#Systems#courses.cs.vt.edu/~cs4604/Spring14/lectures/lecture-9.pdf · Prakash’2014’ VTCS4604’ JimGray ’s#Storage#Latency#Analogy:###

Using  Indexes  (1):  Equality  Searches  

§  Given  a  value  v,  the  index  takes  us  to  only  those  tuples  that  have  v    in  the  axribute(s)  of  the  index.  

§  E.g.    (use  CourseInd  index)    SELECT Enrollment FROM Courses WHERE Number = “4604” and DeptName = “CS”

Prakash  2014   VT  CS  4604   48  

Page 49: CS4604:Introduconto# Database#Management#Systems#courses.cs.vt.edu/~cs4604/Spring14/lectures/lecture-9.pdf · Prakash’2014’ VTCS4604’ JimGray ’s#Storage#Latency#Analogy:###

Using  Indexes  (1):  Equality  Searches  

§  Given  a  value  v,  the  index  takes  us  to  only  those  tuples  that  have  v    in  the  axribute(s)  of  the  index.  

§  Can  use  Hashes,  but  see  next

Prakash  2014   VT  CS  4604   49  

Page 50: CS4604:Introduconto# Database#Management#Systems#courses.cs.vt.edu/~cs4604/Spring14/lectures/lecture-9.pdf · Prakash’2014’ VTCS4604’ JimGray ’s#Storage#Latency#Analogy:###

Using  Indexes  (2):  Range  Searches  

§  ``Find  all  students  with  gpa  >  3.0’’  §  may  be  slow,  even  on  sorted  file  §  Hashes  not  a  good  idea!    § What  to  do?  

Prakash  2014   VT  CS  4604  

Page 1 Page 2 Page N Page 3 Data File

50  

Page 51: CS4604:Introduconto# Database#Management#Systems#courses.cs.vt.edu/~cs4604/Spring14/lectures/lecture-9.pdf · Prakash’2014’ VTCS4604’ JimGray ’s#Storage#Latency#Analogy:###

Range  Searches  

§  ``Find  all  students  with  gpa  >  3.0’’  §  may  be  slow,  even  on  sorted  file  §  SoluAon:    Create  an  `index’  file.  

Prakash  2014   VT  CS  4604  

Page 1 Page 2 Page N Page 3 Data File

k2 kN k1 Index File

51  

Page 52: CS4604:Introduconto# Database#Management#Systems#courses.cs.vt.edu/~cs4604/Spring14/lectures/lecture-9.pdf · Prakash’2014’ VTCS4604’ JimGray ’s#Storage#Latency#Analogy:###

Range  Searches  

§ More  details:  §  if  index  file  is  small,  do  binary  search  there  §  Otherwise??  

Prakash  2014   VT  CS  4604  

Page 1 Page 2 Page N Page 3 Data File

k2 kN k1 Index File

52  

Page 53: CS4604:Introduconto# Database#Management#Systems#courses.cs.vt.edu/~cs4604/Spring14/lectures/lecture-9.pdf · Prakash’2014’ VTCS4604’ JimGray ’s#Storage#Latency#Analogy:###

B-­‐trees  

§  the  most  successful  family  of  index  schemes  (B-­‐trees,  B+-­‐trees,  B*-­‐trees)  

§  Can  be  used  for  primary/secondary,  clustering/non-­‐clustering  index.  

§  balanced  “n-­‐way”  search  trees  §  Original  Paper:  Rudolf  Bayer  and  McCreight,  E.  M.  OrganizaAon  and  Maintenance  of  Large  Ordered  Indexes.  Acta  InformaAca  1,  173-­‐189,  1972.  

Prakash  2014   VT  CS  4604   53  

Page 54: CS4604:Introduconto# Database#Management#Systems#courses.cs.vt.edu/~cs4604/Spring14/lectures/lecture-9.pdf · Prakash’2014’ VTCS4604’ JimGray ’s#Storage#Latency#Analogy:###

B-­‐trees  

§  Eg.,  B-­‐tree  of  order  d=1:  

Prakash  2014   VT  CS  4604  

1   3  

6  

7  

9  

13  

<6  

>6   <9  >9  

54  

Page 55: CS4604:Introduconto# Database#Management#Systems#courses.cs.vt.edu/~cs4604/Spring14/lectures/lecture-9.pdf · Prakash’2014’ VTCS4604’ JimGray ’s#Storage#Latency#Analogy:###

B  -­‐  tree  proper0es:  

§  each  node,  in  a  B-­‐tree  of  order  d:  – Key  order  – at  most  n=2d  keys  – at  least  d  keys  (except  root,  which  may  have  just  1  key)  

– all  leaves  at  the  same  level  –  if  number  of  pointers  is  k,  then  node  has  exactly  k-­‐1  keys  

–  (leaves  are  empty)  

Prakash  2014   VT  CS  4604  

v1   v2   …   vn-­‐1  

p1   pn  

55  

Page 56: CS4604:Introduconto# Database#Management#Systems#courses.cs.vt.edu/~cs4604/Spring14/lectures/lecture-9.pdf · Prakash’2014’ VTCS4604’ JimGray ’s#Storage#Latency#Analogy:###

Proper0es  

§  “block  aware”  nodes:  each  node  is  a  disk  page  §  O(log  (N))  for  everything!  (ins/del/search)  §  typically,  if  d  =  50  -­‐  100,  then  2  -­‐  3  levels  §  uAlizaAon  >=  50%,  guaranteed;  on  average  69%  

Prakash  2014   VT  CS  4604   56  

Page 57: CS4604:Introduconto# Database#Management#Systems#courses.cs.vt.edu/~cs4604/Spring14/lectures/lecture-9.pdf · Prakash’2014’ VTCS4604’ JimGray ’s#Storage#Latency#Analogy:###

Queries  

§  Algo  for  exact  match  query?  (eg.,  ssn=8?)  

Prakash  2014   VT  CS  4604  

1   3  

6  

7  

9  

13  

<6  

>6   <9  >9  

57  

Page 58: CS4604:Introduconto# Database#Management#Systems#courses.cs.vt.edu/~cs4604/Spring14/lectures/lecture-9.pdf · Prakash’2014’ VTCS4604’ JimGray ’s#Storage#Latency#Analogy:###

JAVA  anima0on  

§  hxp://slady.net/java/bt/  

Prakash  2014   VT  CS  4604   58  

Page 59: CS4604:Introduconto# Database#Management#Systems#courses.cs.vt.edu/~cs4604/Spring14/lectures/lecture-9.pdf · Prakash’2014’ VTCS4604’ JimGray ’s#Storage#Latency#Analogy:###

Queries  

§  Algo  for  exact  match  query?  (eg.,  ssn=8?)  

Prakash  2014   VT  CS  4604  

1   3  

6  

7  

9  

13  

<6  

>6   <9  >9  

59  

Page 60: CS4604:Introduconto# Database#Management#Systems#courses.cs.vt.edu/~cs4604/Spring14/lectures/lecture-9.pdf · Prakash’2014’ VTCS4604’ JimGray ’s#Storage#Latency#Analogy:###

Queries  

§  Algo  for  exact  match  query?  (eg.,  ssn=8?)  

Prakash  2014   VT  CS  4604  

1   3  

6  

7  

9  

13  

<6  

>6   <9  >9  

60  

Page 61: CS4604:Introduconto# Database#Management#Systems#courses.cs.vt.edu/~cs4604/Spring14/lectures/lecture-9.pdf · Prakash’2014’ VTCS4604’ JimGray ’s#Storage#Latency#Analogy:###

Queries  

§  Algo  for  exact  match  query?  (eg.,  ssn=8?)  

Prakash  2014   VT  CS  4604  

1   3  

6  

7  

9  

13  

<6  

>6   <9  >9  

61  

Page 62: CS4604:Introduconto# Database#Management#Systems#courses.cs.vt.edu/~cs4604/Spring14/lectures/lecture-9.pdf · Prakash’2014’ VTCS4604’ JimGray ’s#Storage#Latency#Analogy:###

Queries  

§  Algo  for  exact  match  query?  (eg.,  ssn=8?)  

Prakash  2014   VT  CS  4604  

1   3  

6  

7  

9  

13  

<6  

>6   <9  >9  

H  steps  (=  disk  accesses)  

62  

Page 63: CS4604:Introduconto# Database#Management#Systems#courses.cs.vt.edu/~cs4604/Spring14/lectures/lecture-9.pdf · Prakash’2014’ VTCS4604’ JimGray ’s#Storage#Latency#Analogy:###

Queries  

§  what  about  range  queries?  (eg.,  5<salary<8)  §  Proximity/  nearest  neighbor  searches?  (eg.,  salary  ~  8  )  

Prakash  2014   VT  CS  4604   63  

Page 64: CS4604:Introduconto# Database#Management#Systems#courses.cs.vt.edu/~cs4604/Spring14/lectures/lecture-9.pdf · Prakash’2014’ VTCS4604’ JimGray ’s#Storage#Latency#Analogy:###

Queries  

§  what  about  range  queries?  (eg.,  5<salary<8)  §  Proximity/  nearest  neighbor  searches?  (eg.,  salary  ~  8  )  

Prakash  2014   VT  CS  4604  

1   3  

6  

7  

9  

13  

<6  

>6   <9  >9  

64  

Page 65: CS4604:Introduconto# Database#Management#Systems#courses.cs.vt.edu/~cs4604/Spring14/lectures/lecture-9.pdf · Prakash’2014’ VTCS4604’ JimGray ’s#Storage#Latency#Analogy:###

Queries  

§  what  about  range  queries?  (eg.,  5<salary<8)  §  Proximity/  nearest  neighbor  searches?  (eg.,  salary  ~  8  )  

Prakash  2014   VT  CS  4604  

1   3  

6  

7  

9  

13  

<6  

>6   <9  >9  

65  

Page 66: CS4604:Introduconto# Database#Management#Systems#courses.cs.vt.edu/~cs4604/Spring14/lectures/lecture-9.pdf · Prakash’2014’ VTCS4604’ JimGray ’s#Storage#Latency#Analogy:###

Queries  

§  what  about  range  queries?  (eg.,  5<salary<8)  §  Proximity/  nearest  neighbor  searches?  (eg.,  salary  ~  8  )  

Prakash  2014   VT  CS  4604  

1   3  

6  

7  

9  

13  

<6  

>6   <9  >9  

66  

Page 67: CS4604:Introduconto# Database#Management#Systems#courses.cs.vt.edu/~cs4604/Spring14/lectures/lecture-9.pdf · Prakash’2014’ VTCS4604’ JimGray ’s#Storage#Latency#Analogy:###

Queries  

§  what  about  range  queries?  (eg.,  5<salary<8)  §  Proximity/  nearest  neighbor  searches?  (eg.,  salary  ~  8  )  

Prakash  2014   VT  CS  4604  

1   3  

6  

7  

9  

13  

<6  

>6   <9  >9  

67  

Page 68: CS4604:Introduconto# Database#Management#Systems#courses.cs.vt.edu/~cs4604/Spring14/lectures/lecture-9.pdf · Prakash’2014’ VTCS4604’ JimGray ’s#Storage#Latency#Analogy:###

Varia0ons  

§  How  could  we  do  even  bexer  than  the  B-­‐trees  above?  

Prakash  2014   VT  CS  4604   68  

Page 69: CS4604:Introduconto# Database#Management#Systems#courses.cs.vt.edu/~cs4604/Spring14/lectures/lecture-9.pdf · Prakash’2014’ VTCS4604’ JimGray ’s#Storage#Latency#Analogy:###

B+  trees  -­‐  Mo0va0on  

§  B-­‐tree  –  print  keys  in  sorted  order:  

Prakash  2014   VT  CS  4604  

1   3  

6  

7  

9  

13  

<6  

>6   <9  >9  

69  

Page 70: CS4604:Introduconto# Database#Management#Systems#courses.cs.vt.edu/~cs4604/Spring14/lectures/lecture-9.pdf · Prakash’2014’ VTCS4604’ JimGray ’s#Storage#Latency#Analogy:###

B+  trees  -­‐  Mo0va0on  

§  B-­‐tree  needs  back-­‐tracking  –  how  to  avoid  it?  

Prakash  2014   VT  CS  4604  

1   3  

6  

7  

9  

13  

<6  

>6   <9  >9  

70  

Page 71: CS4604:Introduconto# Database#Management#Systems#courses.cs.vt.edu/~cs4604/Spring14/lectures/lecture-9.pdf · Prakash’2014’ VTCS4604’ JimGray ’s#Storage#Latency#Analogy:###

B+  trees  -­‐  Mo0va0on  

§  Stronger  reason:  for  clustering  index,  data  records  are  scaxered:  

Prakash  2014   VT  CS  4604  

1   3  

6  

7  

9  

13  

<6  

>6   <9  >9  

71  

Page 72: CS4604:Introduconto# Database#Management#Systems#courses.cs.vt.edu/~cs4604/Spring14/lectures/lecture-9.pdf · Prakash’2014’ VTCS4604’ JimGray ’s#Storage#Latency#Analogy:###

Solu0on:  B+  -­‐  trees    

§  facilitate  sequenAal  ops  §  They  string  all  leaf  nodes  together    §  AND  §  replicate  keys  from  non-­‐leaf  nodes,  to  make  sure  every  key  appears  at  the  leaf  level  

§  (vital,  for  clustering  index!)  

Prakash  2014   VT  CS  4604   72  

Page 73: CS4604:Introduconto# Database#Management#Systems#courses.cs.vt.edu/~cs4604/Spring14/lectures/lecture-9.pdf · Prakash’2014’ VTCS4604’ JimGray ’s#Storage#Latency#Analogy:###

B+  trees  

Prakash  2014   VT  CS  4604  

1   3  

6  

6  

9  

9  

<6  

>=6   <9  >=9  

7   13  

73  

Page 74: CS4604:Introduconto# Database#Management#Systems#courses.cs.vt.edu/~cs4604/Spring14/lectures/lecture-9.pdf · Prakash’2014’ VTCS4604’ JimGray ’s#Storage#Latency#Analogy:###

B+  trees  

Prakash  2014   VT  CS  4604  

1   3  

6  

6  

9  

9  

<6  

>=6   <9  >=9  

7   13  

Index  Pages  

Data  Pages  

74  

Page 75: CS4604:Introduconto# Database#Management#Systems#courses.cs.vt.edu/~cs4604/Spring14/lectures/lecture-9.pdf · Prakash’2014’ VTCS4604’ JimGray ’s#Storage#Latency#Analogy:###

B+  trees  

§ More  details:  next  (and  textbook)  §  In  short:  on  split  

– at  leaf  level:  COPY  middle  key  upstairs  – at  non-­‐leaf  level:  push  middle  key  upstairs  (as  in  plain  B-­‐tree)  

Prakash  2014   VT  CS  4604   75  

Page 76: CS4604:Introduconto# Database#Management#Systems#courses.cs.vt.edu/~cs4604/Spring14/lectures/lecture-9.pdf · Prakash’2014’ VTCS4604’ JimGray ’s#Storage#Latency#Analogy:###

Example  B+  Tree  

§  Search  begins  at  root,  and  key  comparisons  direct  it  to  a  leaf    

§  Search  for  5*,  15*,  all  data  entries  >=  24*  ...  

Prakash  2014   VT  CS  4604  

Based on the search for 15*, we know it is not in the tree!

Root

17 24 30

2* 3* 5* 7* 14* 16* 19* 20* 22* 24* 27* 29* 33* 34* 38* 39*

13

76  

Page 77: CS4604:Introduconto# Database#Management#Systems#courses.cs.vt.edu/~cs4604/Spring14/lectures/lecture-9.pdf · Prakash’2014’ VTCS4604’ JimGray ’s#Storage#Latency#Analogy:###

Inser0ng  a  Data  Entry  into  a  B+  Tree  

§  Find  correct  leaf  L.    §  Put  data  entry  onto  L.  

–  If  L  has  enough  space,  done!  – Else,  must  split    L  (into  L  and  a  new  node  L2)  

•  Redistribute  entries  evenly,  copy  up  middle  key.  

§  parent  node  may  overflow  – but  then:  push  up  middle  key.  Splits  “grow”  tree;  root  split  increases  height.      

Prakash  2014   VT  CS  4604   77  

Page 78: CS4604:Introduconto# Database#Management#Systems#courses.cs.vt.edu/~cs4604/Spring14/lectures/lecture-9.pdf · Prakash’2014’ VTCS4604’ JimGray ’s#Storage#Latency#Analogy:###

Example  B+  Tree  –  Inser0ng  30*  

Prakash  2014   VT  CS  4604  

Root

17 24

2* 3* 5* 7* 14* 16* 19* 20* 22* 24* 27* 29*

13

23*

78  

Page 79: CS4604:Introduconto# Database#Management#Systems#courses.cs.vt.edu/~cs4604/Spring14/lectures/lecture-9.pdf · Prakash’2014’ VTCS4604’ JimGray ’s#Storage#Latency#Analogy:###

Example  B+  Tree  –  Inser0ng  30*  

Prakash  2014   VT  CS  4604  

Root

17 24

2* 3* 5* 7* 14* 16* 19* 20* 22* 24* 27* 29*

13

23* 30*  

79  

Page 80: CS4604:Introduconto# Database#Management#Systems#courses.cs.vt.edu/~cs4604/Spring14/lectures/lecture-9.pdf · Prakash’2014’ VTCS4604’ JimGray ’s#Storage#Latency#Analogy:###

Example  B+  Tree  -­‐  Inser0ng  8*  

Prakash  2014   VT  CS  4604  

Root

17 24

2* 3* 5* 7* 14* 16* 19* 20* 22* 24* 27* 29*

13

23*

80  

Page 81: CS4604:Introduconto# Database#Management#Systems#courses.cs.vt.edu/~cs4604/Spring14/lectures/lecture-9.pdf · Prakash’2014’ VTCS4604’ JimGray ’s#Storage#Latency#Analogy:###

Example  B+  Tree  -­‐  Inser0ng  8*  

Prakash  2014   VT  CS  4604  

Root

17 24

2* 3* 5* 7* 14* 16* 19* 20* 22* 24* 27* 29*

13

23*

No  Space  

81  

Page 82: CS4604:Introduconto# Database#Management#Systems#courses.cs.vt.edu/~cs4604/Spring14/lectures/lecture-9.pdf · Prakash’2014’ VTCS4604’ JimGray ’s#Storage#Latency#Analogy:###

Prakash  2014   VT  CS  4604  

Example  B+  Tree  -­‐  Inser0ng  8*  Root

17 24

2* 3* 5* 7* 14* 16* 19* 20* 22* 24* 27* 29*

13

23*

2* 3* 5* 14* 16* 19* 20* 22* 24* 27* 29* 23* 7* 8*

13 17 24

5*

So  Split!  

82  

Page 83: CS4604:Introduconto# Database#Management#Systems#courses.cs.vt.edu/~cs4604/Spring14/lectures/lecture-9.pdf · Prakash’2014’ VTCS4604’ JimGray ’s#Storage#Latency#Analogy:###

Prakash  2014   VT  CS  4604  

Example  B+  Tree  -­‐  Inser0ng  8*  Root

17 24

2* 3* 5* 7* 14* 16* 19* 20* 22* 24* 27* 29*

13

23*

2* 3* 5* 14* 16* 19* 20* 22* 24* 27* 29* 23* 7* 8*

13 17 24

5*

So  Split!  

And  then  push  middle  UP  

83  

Page 84: CS4604:Introduconto# Database#Management#Systems#courses.cs.vt.edu/~cs4604/Spring14/lectures/lecture-9.pdf · Prakash’2014’ VTCS4604’ JimGray ’s#Storage#Latency#Analogy:###

Prakash  2014   VT  CS  4604  

Example  B+  Tree  -­‐  Inser0ng  8*  Root

17 24

2* 3* 5* 7* 14* 16* 19* 20* 22* 24* 27* 29*

13

23*

2* 3* 14* 16* 19* 20* 22* 24* 27* 29* 23* 7* 8*

5   13 17 24

5*

<5   >=5  

Final  State  

84  

Page 85: CS4604:Introduconto# Database#Management#Systems#courses.cs.vt.edu/~cs4604/Spring14/lectures/lecture-9.pdf · Prakash’2014’ VTCS4604’ JimGray ’s#Storage#Latency#Analogy:###

Example  B+  Tree  -­‐  Inser0ng  21*  

Prakash  2014   VT  CS  4604  

2* 3*

Root

5

14* 16* 19* 20* 22* 24* 27* 29* 7* 5* 8*

13 17 24

23*

2* 3* 14* 16* 19* 20* 22* 24* 27* 29* 7* 5* 8* 23*

85  

Page 86: CS4604:Introduconto# Database#Management#Systems#courses.cs.vt.edu/~cs4604/Spring14/lectures/lecture-9.pdf · Prakash’2014’ VTCS4604’ JimGray ’s#Storage#Latency#Analogy:###

Example  B+  Tree  -­‐  Inser0ng  21*  

Prakash  2014   VT  CS  4604  

2* 3*

Root

5

14* 16* 19* 20* 22* 24* 27* 29* 7* 5* 8*

13 17 24

23*

2* 3* 14* 16* 19* 20* 24* 27* 29* 7* 5* 8* 21* 22* 23*

17 21 24 13 5 Root  is  Full,  so  split  recursively  

86  

Page 87: CS4604:Introduconto# Database#Management#Systems#courses.cs.vt.edu/~cs4604/Spring14/lectures/lecture-9.pdf · Prakash’2014’ VTCS4604’ JimGray ’s#Storage#Latency#Analogy:###

Example  B+  Tree:  Recursive  split  

Prakash  2014   VT  CS  4604  

•  Notice that root was also split, increasing height.

2* 3*

Root

17

21 24

14* 16* 19* 20* 21* 22* 23* 24* 27* 29*

13 5

7* 5* 8*

87  

Page 88: CS4604:Introduconto# Database#Management#Systems#courses.cs.vt.edu/~cs4604/Spring14/lectures/lecture-9.pdf · Prakash’2014’ VTCS4604’ JimGray ’s#Storage#Latency#Analogy:###

Prakash  2014   VT  CS  4604  

Example:  Data  vs.  Index  Page  Split  

§  leaf:  ‘copy’  §  non-­‐leaf:  ‘push’  

§  why  not  ‘copy’  @  non-­‐leaves?  

2* 3* 5* 7* 8*

5

5 21 24

17

13

… 2* 3* 5* 7*

17 21 24 13

Data Page Split

Index Page Split

8*

5

#88  

Page 89: CS4604:Introduconto# Database#Management#Systems#courses.cs.vt.edu/~cs4604/Spring14/lectures/lecture-9.pdf · Prakash’2014’ VTCS4604’ JimGray ’s#Storage#Latency#Analogy:###

Same  Inser0ng  21*:  The  Deferred  Split  

Prakash  2014   VT  CS  4604  

2* 3*

Root

5

14* 16* 19* 20* 22* 24* 27* 29* 7* 5* 8*

13 17 24

23*

Note  this  has  free  space.  So…  

89  

Page 90: CS4604:Introduconto# Database#Management#Systems#courses.cs.vt.edu/~cs4604/Spring14/lectures/lecture-9.pdf · Prakash’2014’ VTCS4604’ JimGray ’s#Storage#Latency#Analogy:###

Inser0ng  21*:  The  Deferred  Split  

Prakash  2014   VT  CS  4604  

2* 3*

Root

5

14* 16* 19* 20* 22* 24* 27* 29* 7* 5* 8*

13 17 24

23*

LEND  keys  to  sibling,  through  PARENT!  

2* 3*

Root

5

14* 16* 19* 20* 21* 23* 24* 27* 7* 5* 8*

13 17 23

22* 29*

90  

Page 91: CS4604:Introduconto# Database#Management#Systems#courses.cs.vt.edu/~cs4604/Spring14/lectures/lecture-9.pdf · Prakash’2014’ VTCS4604’ JimGray ’s#Storage#Latency#Analogy:###

Inser0ng  21*:  The  Deferred  Split  

Prakash  2014   VT  CS  4604  

2* 3*

Root

5

14* 16* 19* 20* 22* 24* 27* 29* 7* 5* 8*

13 17 24

23*

Shorter,  more  packed,  faster  tree  

2* 3*

Root

5

14* 16* 19* 20* 21* 23* 24* 27* 7* 5* 8*

13 17 23

22* 29*

91  

Page 92: CS4604:Introduconto# Database#Management#Systems#courses.cs.vt.edu/~cs4604/Spring14/lectures/lecture-9.pdf · Prakash’2014’ VTCS4604’ JimGray ’s#Storage#Latency#Analogy:###

Inser0on  examples  for  you  to  try  

Prakash  2014   VT  CS  4604  

2* 3*

Root

30

14* 16* 21* 22* 23*

13 5

7* 5* 8*

20 … (not shown)

11*

Insert the following data entries (in order): 28*, 6*, 25*

92  

Page 93: CS4604:Introduconto# Database#Management#Systems#courses.cs.vt.edu/~cs4604/Spring14/lectures/lecture-9.pdf · Prakash’2014’ VTCS4604’ JimGray ’s#Storage#Latency#Analogy:###

Answer…  

Prakash  2014   VT  CS  4604  

2* 3*

30

7* 8* 14* 16*

7 5

6* 5*

13 …

After inserting 28*, 6*

After inserting 25*

21* 22* 23* 28*

20

11*

93  

Page 94: CS4604:Introduconto# Database#Management#Systems#courses.cs.vt.edu/~cs4604/Spring14/lectures/lecture-9.pdf · Prakash’2014’ VTCS4604’ JimGray ’s#Storage#Latency#Analogy:###

Answer…  

Prakash  2014   VT  CS  4604  

2* 3*

13

20 23

7* 8* 14* 16* 21* 22* 23* 25* 28*

7 5

6* 5*

30

11*

After inserting 25*

94  

Page 95: CS4604:Introduconto# Database#Management#Systems#courses.cs.vt.edu/~cs4604/Spring14/lectures/lecture-9.pdf · Prakash’2014’ VTCS4604’ JimGray ’s#Storage#Latency#Analogy:###

Dele0ng  a  Data  Entry  from  a  B+  Tree  

§  Start  at  root,  find  leaf  L  where  entry  belongs.  §  Remove  the  entry.  

–  If  L  is  at  least  half-­‐full,  done!    –  If  L  underflows  

•  Try  to  re-­‐distribute,  borrowing  from  sibling  (adjacent  node  with  same  parent  as  L).  

•  If  re-­‐distribuAon  fails,  merge  L  and  sibling.  –  update  parent  –  and  possibly  merge,  recursively  

Prakash  2014   VT  CS  4604   95  

Page 96: CS4604:Introduconto# Database#Management#Systems#courses.cs.vt.edu/~cs4604/Spring14/lectures/lecture-9.pdf · Prakash’2014’ VTCS4604’ JimGray ’s#Storage#Latency#Analogy:###

Dele0on  from  B+Tree  

Prakash  2014   VT  CS  4604  

2* 3*

Root

17

21 24

14* 16* 19* 20* 21* 22* 23* 24* 27* 29*

13 5

7* 5* 8*

96  

Page 97: CS4604:Introduconto# Database#Management#Systems#courses.cs.vt.edu/~cs4604/Spring14/lectures/lecture-9.pdf · Prakash’2014’ VTCS4604’ JimGray ’s#Storage#Latency#Analogy:###

Prakash  2014   VT  CS  4604  

Example:  Delete  19*  &  20*  

DeleAng  19*  is  easy:  

2* 3*

Root 17

24 30

14* 16* 19* 20* 22* 24* 27* 29* 33* 34* 38* 39*

13 5

7* 5* 8*

2* 3*

Root 17

30

14* 16* 33* 34* 38* 39*

13 5

7* 5* 8* 22* 24*

27

27* 29*

20* 22*

•  DeleAng  20*  -­‐>  re-­‐distribuAon  (noAce:  27  copied  up)  

1 2

3

97  

Page 98: CS4604:Introduconto# Database#Management#Systems#courses.cs.vt.edu/~cs4604/Spring14/lectures/lecture-9.pdf · Prakash’2014’ VTCS4604’ JimGray ’s#Storage#Latency#Analogy:###

Prakash  2014   VT  CS  4604  

2* 3*

Root 17

30

14* 16* 33* 34* 38* 39*

13 5

7* 5* 8* 22* 24*

27

27* 29*

               ...  And  Then  Dele0ng  24*  

2* 3*

Root 17

14* 16* 33* 34* 38* 39*

13 5

7* 5* 8* 22* 27*

30

29*

•  Must  merge  leaves:  OPPOSITE  of  insert  

3

4

98  

Page 99: CS4604:Introduconto# Database#Management#Systems#courses.cs.vt.edu/~cs4604/Spring14/lectures/lecture-9.pdf · Prakash’2014’ VTCS4604’ JimGray ’s#Storage#Latency#Analogy:###

Prakash  2014   VT  CS  4604  

2* 3*

Root 17

30

14* 16* 33* 34* 38* 39*

13 5

7* 5* 8* 22* 24*

27

27* 29*

               ...  And  Then  Dele0ng  24*  

2* 3*

Root 17

14* 16* 33* 34* 38* 39*

13 5

7* 5* 8* 22* 27*

30

29*

•  Must  merge  leaves:  OPPOSITE  of  insert  

…  but  are  we  done??  

3

4

99  

Page 100: CS4604:Introduconto# Database#Management#Systems#courses.cs.vt.edu/~cs4604/Spring14/lectures/lecture-9.pdf · Prakash’2014’ VTCS4604’ JimGray ’s#Storage#Latency#Analogy:###

 ...  Merge  Non-­‐Leaf  Nodes,  Shrink  Tree  

Prakash  2014   VT  CS  4604  

2* 3*

Root 17

14* 16* 33* 34* 38* 39*

13 5

7* 5* 8* 22* 27*

30

29*

4

2* 3* 7* 14* 16* 22* 27* 29* 33* 34* 38* 39* 5* 8*

Root 30 13 5 17

5

100  

Page 101: CS4604:Introduconto# Database#Management#Systems#courses.cs.vt.edu/~cs4604/Spring14/lectures/lecture-9.pdf · Prakash’2014’ VTCS4604’ JimGray ’s#Storage#Latency#Analogy:###

Example  of  Non-­‐leaf  Re-­‐distribu0on  

§  Tree  is  shown  below  during  deleAon  of  24*.    §  Now,  we  can  re-­‐distribute  keys  

Prakash  2014   VT  CS  4604  

Root

13 5 17 20

22

30

14* 16* 17* 18* 20* 33* 34* 38* 39* 22* 27* 29* 21* 7* 5* 8* 3* 2*

101  

Page 102: CS4604:Introduconto# Database#Management#Systems#courses.cs.vt.edu/~cs4604/Spring14/lectures/lecture-9.pdf · Prakash’2014’ VTCS4604’ JimGray ’s#Storage#Latency#Analogy:###

Aoer  Re-­‐distribu0on  

§  need  only  re-­‐distribute  ‘20’;  did  ‘17’,  too  §  why  would  we  want  to  re-­‐distribute  more  keys?  

Prakash  2014   VT  CS  4604  

14* 16* 33* 34* 38* 39* 22* 27* 29* 17* 18* 20* 21* 7* 5* 8* 2* 3*

Root

13 5

17

30 20 22

102  

Page 103: CS4604:Introduconto# Database#Management#Systems#courses.cs.vt.edu/~cs4604/Spring14/lectures/lecture-9.pdf · Prakash’2014’ VTCS4604’ JimGray ’s#Storage#Latency#Analogy:###

Main  observa0ons  for  dele0on  

§  If  a  key  value  appears  twice  (leaf  +  nonleaf),  the  above  algorithms  delete  it  from  the  leaf,  only    

§  why  not  non-­‐leaf,  too?  

Prakash  2014   VT  CS  4604   103  

Page 104: CS4604:Introduconto# Database#Management#Systems#courses.cs.vt.edu/~cs4604/Spring14/lectures/lecture-9.pdf · Prakash’2014’ VTCS4604’ JimGray ’s#Storage#Latency#Analogy:###

Main  observa0ons  for  dele0on  

§  If  a  key  value  appears  twice  (leaf  +  nonleaf),  the  above  algorithms  delete  it  from  the  leaf,  only    

§  why  not  non-­‐leaf,  too?  §  ‘lazy  deleAons’  -­‐  in  fact,  some  vendors  just  mark  entries  as  deleted  (~  underflow),  – and  reorganize/compact  later  

Prakash  2014   VT  CS  4604   104  

Page 105: CS4604:Introduconto# Database#Management#Systems#courses.cs.vt.edu/~cs4604/Spring14/lectures/lecture-9.pdf · Prakash’2014’ VTCS4604’ JimGray ’s#Storage#Latency#Analogy:###

Recap:  main  ideas  

§  on  overflow,  split  (and  ‘push’,  or  ‘copy’)  – or  consider  deferred  split  

§  on  underflow,  borrow  keys;  or  merge  – or  let  it  underflow...  

Prakash  2014   VT  CS  4604   105  

Page 106: CS4604:Introduconto# Database#Management#Systems#courses.cs.vt.edu/~cs4604/Spring14/lectures/lecture-9.pdf · Prakash’2014’ VTCS4604’ JimGray ’s#Storage#Latency#Analogy:###

B+  Trees  in  Prac0ce  

§  Typical  order:  100.    Typical  fill-­‐factor:  67%.  – average  fanout  =  2*100*0.67  =  134  

§  Typical  capaciAes:  – Height  4:  1334  =  312,900,721  entries  – Height  3:  1333  =        2,406,104  entries  

Prakash  2014   VT  CS  4604   106  

Page 107: CS4604:Introduconto# Database#Management#Systems#courses.cs.vt.edu/~cs4604/Spring14/lectures/lecture-9.pdf · Prakash’2014’ VTCS4604’ JimGray ’s#Storage#Latency#Analogy:###

B+  Trees  in  Prac0ce  

§  Can  oZen  keep  top  levels  in  buffer  pool:  – Level  1  =                      1  page  =          8  KB  – Level  2  =            134  pages  =          1  MB  – Level  3  =    17,956  pages  =  140  MB  

Prakash  2014   VT  CS  4604   107  

Page 108: CS4604:Introduconto# Database#Management#Systems#courses.cs.vt.edu/~cs4604/Spring14/lectures/lecture-9.pdf · Prakash’2014’ VTCS4604’ JimGray ’s#Storage#Latency#Analogy:###

B+  trees  with  duplicates  

§  Everything  so  far:  assumed  unique  key  values  §  How  to  extend  B+-­‐trees  for  duplicates?  

– Alt.  2:  <key,  rid>  – Alt.  3:  <key,  {rid  list}>  

§  2  approaches,  roughly  equivalent  

Prakash  2014   VT  CS  4604   108  

Page 109: CS4604:Introduconto# Database#Management#Systems#courses.cs.vt.edu/~cs4604/Spring14/lectures/lecture-9.pdf · Prakash’2014’ VTCS4604’ JimGray ’s#Storage#Latency#Analogy:###

B+  trees  with  duplicates  

§  approach#1:  repeat  the  key  values,  and  extend  B+  tree  algo’s  appropriately  -­‐  eg.  many  ‘14’s  

Prakash  2014   VT  CS  4604  

14 24

2* 3* 5* 7* 13* 14* 14* 14* 22* 24* 27* 29*

13

23* 14* 14*

109  

Page 110: CS4604:Introduconto# Database#Management#Systems#courses.cs.vt.edu/~cs4604/Spring14/lectures/lecture-9.pdf · Prakash’2014’ VTCS4604’ JimGray ’s#Storage#Latency#Analogy:###

B+  trees  with  duplicates  

§  approach#1:  subtle  problem  with  deleAon:  §  treat  rid  as  part  of  the  key,  thus  making  it  unique  

Prakash  2014   VT  CS  4604  

14 24

2* 3* 5* 7* 13* 14* 14* 14* 22* 24* 27* 29*

13

23* 14* 14*

110  

Page 111: CS4604:Introduconto# Database#Management#Systems#courses.cs.vt.edu/~cs4604/Spring14/lectures/lecture-9.pdf · Prakash’2014’ VTCS4604’ JimGray ’s#Storage#Latency#Analogy:###

B+  trees  with  duplicates  

§  approach#2:  store  each  key  value:  once  §  but  store  the  {rid  list}  as  variable-­‐length  field  (and  use  overflow  pages,  if  needed)  

Prakash  2014   VT  CS  4604  

14 24

2* 3* 5* 7* 13* 14* 22* 24* 27* 29*

13

23* {rid list}  

{rid list, cont’d}  111  

Page 112: CS4604:Introduconto# Database#Management#Systems#courses.cs.vt.edu/~cs4604/Spring14/lectures/lecture-9.pdf · Prakash’2014’ VTCS4604’ JimGray ’s#Storage#Latency#Analogy:###

B+trees  in  Prac0ce    

§  prefix  compression;    §  bulk-­‐loading;    §  ‘order’  

Prakash  2014   VT  CS  4604   112  

Page 113: CS4604:Introduconto# Database#Management#Systems#courses.cs.vt.edu/~cs4604/Spring14/lectures/lecture-9.pdf · Prakash’2014’ VTCS4604’ JimGray ’s#Storage#Latency#Analogy:###

Prefix  Key  Compression  

§  Important  to  increase  fan-­‐out.    (Why?)  §  Key  values  in  index  entries  only  `direct  traffic’;  can  oZen  compress  them.  

Prakash  2014   VT  CS  4604  

Papadopoulos Pernikovskaya

113  

Page 114: CS4604:Introduconto# Database#Management#Systems#courses.cs.vt.edu/~cs4604/Spring14/lectures/lecture-9.pdf · Prakash’2014’ VTCS4604’ JimGray ’s#Storage#Latency#Analogy:###

Prefix  Key  Compression  

§  Important  to  increase  fan-­‐out.    (Why?)  §  Key  values  in  index  entries  only  `direct  traffic’;  can  oZen  compress  them.  

Prakash  2014   VT  CS  4604  

Pap Per <room for more separators/keys>  

114  

Page 115: CS4604:Introduconto# Database#Management#Systems#courses.cs.vt.edu/~cs4604/Spring14/lectures/lecture-9.pdf · Prakash’2014’ VTCS4604’ JimGray ’s#Storage#Latency#Analogy:###

Bulk  Loading  of  a  B+  Tree  

§  In  an  empty  tree,  insert  many  keys  § Why  not  one-­‐at-­‐a-­‐Ame?  

– Too  slow!  

Prakash  2014   VT  CS  4604   115  

Page 116: CS4604:Introduconto# Database#Management#Systems#courses.cs.vt.edu/~cs4604/Spring14/lectures/lecture-9.pdf · Prakash’2014’ VTCS4604’ JimGray ’s#Storage#Latency#Analogy:###

Bulk  Loading  of  a  B+  Tree  

§  IniAalizaAon:    Sort  all  data  entries  §  scan  list;  whenever  enough  for  a  page,  pack  §  <repeat  for  upper  level>  

Prakash  2014   VT  CS  4604  

3* 4* 6* 9* 10* 11* 12* 13* 20* 22* 23* 31* 35* 36* 38* 41* 44*

Sorted pages of data entries; not yet in B+ tree Root

116  

Page 117: CS4604:Introduconto# Database#Management#Systems#courses.cs.vt.edu/~cs4604/Spring14/lectures/lecture-9.pdf · Prakash’2014’ VTCS4604’ JimGray ’s#Storage#Latency#Analogy:###

Prakash 2014 VT CS 4604

3* 4* 6* 9* 10* 11* 12* 13* 20* 22* 23* 31* 35* 36* 38* 41* 44*

Root

Data entry pages not yet in B+ tree 35 23 12 6

10 20

3* 4* 6* 9* 10* 11* 12* 13* 20* 22* 23* 31* 35* 36* 38* 41* 44*

6

Root

10

12 23

20

35

38

not yet in B+ tree Data entry pages

Bulk  Loading  of  a  B+  Tree  

117

Page 118: CS4604:Introduconto# Database#Management#Systems#courses.cs.vt.edu/~cs4604/Spring14/lectures/lecture-9.pdf · Prakash’2014’ VTCS4604’ JimGray ’s#Storage#Latency#Analogy:###

A  Note  on  `Order’  

§  Order  (d)  concept  replaced  by  physical  space  criterion  in  pracAce  (`at  least  half-­‐full’).  

§  Why  do  we  need  it?  –  Index  pages  can  typically  hold  many  more  entries  than  leaf  pages.  

–  Variable  sized  records  and  search  keys  mean  different  nodes  will  contain  different  numbers  of  entries.  

–  Even  with  fixed  length  fields,  mulAple  records  with  the  same  search  key  value  (duplicates)  can  lead  to  variable-­‐sized  data  entries  (if  we  use  AlternaAve  (3)).  

Prakash  2014   VT  CS  4604   118  

Page 119: CS4604:Introduconto# Database#Management#Systems#courses.cs.vt.edu/~cs4604/Spring14/lectures/lecture-9.pdf · Prakash’2014’ VTCS4604’ JimGray ’s#Storage#Latency#Analogy:###

A  Note  on  `Order’  

§ Many  real  systems  are  even  sloppier  than  this:  they  allow  underflow,  and  only  reclaim  space  when  a  page  is  completely  empty.  

§  (what  are  the  benefits  of  such  ‘slopiness’?)  

Prakash  2014   VT  CS  4604   119  

Page 120: CS4604:Introduconto# Database#Management#Systems#courses.cs.vt.edu/~cs4604/Spring14/lectures/lecture-9.pdf · Prakash’2014’ VTCS4604’ JimGray ’s#Storage#Latency#Analogy:###

Conclusions  

§  B+tree  is  the  prevailing  indexing  method    §  Excellent,  O(logN)  worst-­‐case  performance  for  ins/del/search;  (~3-­‐4  disk  accesses  in  pracAce)  

§  guaranteed  50%  space  uAlizaAon;  avg  69%  

Prakash  2014   VT  CS  4604   120  

Page 121: CS4604:Introduconto# Database#Management#Systems#courses.cs.vt.edu/~cs4604/Spring14/lectures/lecture-9.pdf · Prakash’2014’ VTCS4604’ JimGray ’s#Storage#Latency#Analogy:###

Conclusions  

§  Can  be  used  for  any  type  of  index:  primary/secondary,  sparse  (clustering),  or  dense  (non-­‐clustering)  

§  Several  fine-­‐extensions  on  the  basic  algorithm  – deferred  split;  prefix  compression;  (underflows)  – bulk-­‐loading  – duplicate  handling  

Prakash  2014   VT  CS  4604   121