Page 1
Introduction Optimizing I/O Performance Optimizing Cache Performance Evaluation Discussion
Fractal Prefetching B+-Trees: Optimizing BothCache and Disk Performance
Shimin Chen, Phillip B. Gibbons, Todd C. Mowry, and Gary Valentin
October 3, 2011
Presenter: Mike Qin [email protected]
Page 2
Introduction Optimizing I/O Performance Optimizing Cache Performance Evaluation Discussion
The Paradox – Page Size
Large page size optimize the I/O, results in binary search in a huge page toCPU cache.
Binary Search is not cache friendly.compare compare compare bingo
Small page size will slow down search for disk I/O.
search
bingo
search
search
bingo
2 seeks
4 seeks
Page 3
Introduction Optimizing I/O Performance Optimizing Cache Performance Evaluation Discussion
Idea
Optimize both disk I/O and cache utilization – put a subtree in the tree node.
Page 4
Introduction Optimizing I/O Performance Optimizing Cache Performance Evaluation Discussion
Common Way of Optimizing Disk I/O
Multiple page node size
• Spacial localityPrefetch more data that have spacial locality.
• I/O parallelismStorage system can strip a page accross several disks.
Read ahead
• Hard to be aggressive on disk. Time = Seek Time + Transfer Time
Better Page Replacement Policy
• like ARC or LIRS
Page 5
Introduction Optimizing I/O Performance Optimizing Cache Performance Evaluation Discussion
I/O Optimizations in fpB+-Tree
Single disk page as a node
• Fetching an extra page will introduce an extra seek when I/O parallelismdoesn’t exists.
Read ahead for range-scans. Overlap the I/O cache miss.
1 Find the start and end range query.
2 Prefetch the page far-away from the begining page.
range start range endprefetching from this block
Tree
Page 6
Introduction Optimizing I/O Performance Optimizing Cache Performance Evaluation Discussion
Cache Optimization Within a Page
Micro-indexing
• Flat structure.An extra array for indexing. All fits into one node.
• Works as a charm when searching.
• Slow and cache unfriendly on insertion and deletion.
Cache friendly at the page level
• Disk First ApproachTree with in a tree node (a page).
• Cache First ApproachMerge part of the tree into several pages.
Page 7
Introduction Optimizing I/O Performance Optimizing Cache Performance Evaluation Discussion
Disk First Approach
A single node contains a complete sub-tree. It yeilds out fixed amount (N-2N)of fan-outs. When it violates the fan-out requirements, it could either split ormerge.
But wait... How about the space usage of each page?
Page 8
Introduction Optimizing I/O Performance Optimizing Cache Performance Evaluation Discussion
Space overflow/underflow in Disk First Approach
Given the fixed amount of fan-outs of each subtree, the space usage is notdeterministic!
Overflow!
page
very sparse subnode
page
Space Wasted
very dense subnode
Overflow
Underflow
Page 9
Introduction Optimizing I/O Performance Optimizing Cache Performance Evaluation Discussion
Insert/Delete
Insert:
1 Find a node to insert in the page
2 Find a slot, if not, split the node
3 If no room for another node, reorganized the subtree.
4 If still no room, split the whole page.
Delete:
1 Find the elements in the page to delete.
2 Mark that as empty slot. (Don’t merge the node on half empty.)
3 If page fan-out smaller than minimum fan-out. Merge the page.
4 Reorganized the tree if underflow.
Bulkload:
1 Compute the level according to fan-out.
2 Organized the subtree as sparse as possible.
Page 10
Introduction Optimizing I/O Performance Optimizing Cache Performance Evaluation Discussion
Best Fan-out ParameterPage Cache Fetch Cost T1
CPU Cache Fetch Cost Tnext
Number of cache lines of non-leaf nodes wNumber of cache lines of leaf-nodes x
Level of subtree L
Cost = (L− 1)×NonLeafCost + LeafCost
= (L− 1)× [T1 + (w − 1)Tnext] + [T1 + (x− 1)Tnext]
As fan-out gets larger, cost also gets larger. Our goal: largest fan-out with <10% larger than optimal cost.
Page 11
Introduction Optimizing I/O Performance Optimizing Cache Performance Evaluation Discussion
Cache First Approach
Merge the fine-grained node into pages.Stratagy:
• Try to put parent and children node into one page. (Optimize for search.)
• Put sibling leaf node into one page. (Optimize for range scan.)
• Otherwise, put it in the overflow page. (Only for leaf node parents.)
Page 12
Introduction Optimizing I/O Performance Optimizing Cache Performance Evaluation Discussion
Cache First Approach
Merge the fine-grained node into pages.Stratagy:
leaf node placement
noleaf node placement
Overflowed leaf node parent
Page 13
Introduction Optimizing I/O Performance Optimizing Cache Performance Evaluation Discussion
Insertion on Different Placement Stratagy
Leaf node:
1 Find a slot to insert.
2 If full, split the node.
3 If no space for a new node, split the whole page.
Leaf parent node:
1 Find a slot to insert.
2 If full, split the node.
3 If no space for new node and parent of this node also need to be split, thensplit the parent and this node. Put them in the same page.
4 Otherwise, allocate space from overflow pages.
Page 14
Introduction Optimizing I/O Performance Optimizing Cache Performance Evaluation Discussion
Insertion on Different Placement Stratagy (Continue)
Nonleaf Node:
1 Find a slot to insert.
2 If full, split the node.
3 If no space for new node. Reorganize the subtree within this page.
4 If still no space, split the page.
Page 15
Introduction Optimizing I/O Performance Optimizing Cache Performance Evaluation Discussion
Insertion Demo
insert
Page 16
Introduction Optimizing I/O Performance Optimizing Cache Performance Evaluation Discussion
Insertion Demo
split
split?
Page 17
Introduction Optimizing I/O Performance Optimizing Cache Performance Evaluation Discussion
Insertion Demo
overflow page
Page 18
Introduction Optimizing I/O Performance Optimizing Cache Performance Evaluation Discussion
Insertion Demo
split
?split
Page 19
Introduction Optimizing I/O Performance Optimizing Cache Performance Evaluation Discussion
Insertion Demo
Page 20
Introduction Optimizing I/O Performance Optimizing Cache Performance Evaluation Discussion
Insertion Demo
Page 21
Introduction Optimizing I/O Performance Optimizing Cache Performance Evaluation Discussion
Insertion Demo
split?
insert
Reorganize
nonleaf node
Page 22
Introduction Optimizing I/O Performance Optimizing Cache Performance Evaluation Discussion
Insertion Demo
split!
insert
Split the Page
nonleaf node
space efficiencyproblem
Page 23
Introduction Optimizing I/O Performance Optimizing Cache Performance Evaluation Discussion
Environments
Page size:
• From 4KB to 32KB
• Each have selected a good fan-out with costoptimal < 110%
Buffer manager:
• Using a CLOCK page replacement policy.
Comparison:
• Disk-first approach and cache-first approach vs. microindexing.
• Performance evaluation including: search, insert, delete and range scan.
• Evaluation on the space overhead.
Page 24
Introduction Optimizing I/O Performance Optimizing Cache Performance Evaluation Discussion
Search Performance on 100% Bulkload
Search on 100% bulkloaded initialization.
105 106 1071
1.5
2
2.5
3
# of entries in leaf pages
exec
utio
n tim
e (M
cyc
les)
Disk−optimized B+treeMicro−indexing Disk−first fpB+tree Cache−first fpB+tree
105 106 1071
1.5
2
2.5
3
# of entries in leaf pages
exec
utio
n tim
e (M
cyc
les)
Disk−optimized B+treeMicro−indexing Disk−first fpB+tree Cache−first fpB+tree
´�µ Ô��� ×�Þ� � �Ã� ´�µ Ô��� ×�Þ� � �Ã�
105 106 1071
1.5
2
2.5
3
3.5
# of entries in leaf pages
exec
utio
n tim
e (M
cyc
les)
Disk−optimized B+treeMicro−indexing Disk−first fpB+tree Cache−first fpB+tree
105 106 1071
1.5
2
2.5
3
3.5
# of entries in leaf pages
exec
utio
n tim
e (M
cyc
les)
Disk−optimized B+treeMicro−indexing Disk−first fpB+tree Cache−first fpB+tree
´ µ Ô��� ×�Þ� � ½�Ã� ´�µ Ô��� ×�Þ� � ¿¾Ã�
���ÙÖ� ½¼� Ë��Ö � Ô�Ö�ÓÖÑ�Ò � �ÓÖ ½¼¼± �ÙÐ�ÐÓ��
105 106 1071
1.5
2
2.5
3
3.5
# of entries in leaf pages
exec
utio
n tim
e (M
cyc
les)
nonleaf= 64B nonleaf=128B nonleaf=192B(selected)nonleaf=256B nonleaf=320B nonleaf=384B nonleaf=448B nonleaf=512B
105 106 1071
1.5
2
2.5
3
3.5
# of entries in leaf pages
exec
utio
n tim
e (M
cyc
les)
128B 256B 512B 704B(selected) 1024B Best Synthesized
´�µ ��×�¹¬Ö×Ø �Ô��¹ÌÖ�� ´�µ �� ��¹¬Ö×Ø �Ô��¹ÌÖ��
���ÙÖ� ½½� ÇÔØ�Ñ�Ð Û��Ø� ×�Ð� Ø�ÓÒ ´½�Ã� Ô���µ
� ���Ú� ×��Ö � Ô�Ö�ÓÖÑ�Ò � Ú�ÖÝ ÐÓ×� ØÓ Ø�� ��×Ø �ÑÓÒ� Ø��ÒÓ�� �Ó� �׺ ���ÙÖ� ½½´�µ ×�ÓÛ× Ø�� Ô�Ö�ÓÖÑ�Ò � Ó� ��×�¹¬Ö×Ø �Ô��¹ÌÖ��× Ù×�Ò� ÒÓÒÐ��� ÒÓ�� ×�Þ�× �ÖÓÑ ��� ´�Ò Ä¾ � �� Ð�Ò�µ ØÓ �½¾� ´� ľ � �� Ð�Ò�×µº ÇÙÖ ×�Ð� Ø�� ÓÔØ�Ñ�ÐØÖ�� �× Û�Ø��Ò ¾± Ó� Ø�� ��×Ø �Ü� ÙØ�ÓÒ Ø�Ñ�׺ �ÓÖ � ��¹¬Ö×Ø �Ô��¹ÌÖ��× Û� Ñ��×ÙÖ�� Ø�� Ô�Ö�ÓÖÑ�Ò � �ÓÖ ÒÓ�� ×�Þ�×Ö�Ò��Ò� �ÖÓÑ ½¾�� ØÓ ½¼¾��º ÁÒ ���ÙÖ� ½½´�µ¸ �ÓÖ ×�ÑÔÐ� �ØݸÛ� ÓÒÐÝ ×�ÓÛ ÙÖÚ�× �ÓÖ ÒÓ�� ×�Þ�× Ó� ½¾��¸ ¾���¸ �½¾�¸�¼��¸ ½¼¾��¸ �Ò� � ��×Ø Ô�Ö�ÓÖÑ�Ò � ÙÖÚ� ×ÝÒØ��×�Þ�� �ÝØ���Ò� Ø�� Ñ�Ò�ÑÙÑ× Ó� �ÐÐ ÙÖÚ�× Û�Ø� Ø�� ×�Ñ� � Ó� �Ò¹ØÖ��× �Ò Ð��� Ô���׺ ÇÙÖ ×�Ð� Ø�� ÓÔØ�Ñ�Ð ØÖ�� Ô�Ö�ÓÖÑ× Û�Ø��Ò�± Ó� Ø�� ��×غ ÁÒ Ø�� �ÜÔ�Ö�Ñ�ÒØ× Ø��Ø �ÓÐÐÓÛ¸ Û� Ù×� Ø��ÓÔØ�Ñ�Ð ÒÓ�� ×�Þ�× ��Ú�Ò �Ò Ì��Ð� ¾º
Î�ÖÝ�Ò� Ø�� �ÙÐ�ÐÓ�� �� ØÓÖº ÁÒ ���ÙÖ� ½¾¸ Û� Ú�Ö¹��� Ø�� ¿Å¹�ÒØÖÝ �ÜÔ�Ö�Ñ�ÒØ× �Ò ���ÙÖ� ½¼´ µ Û�Ø� �ÙÐ�ÐÓ���� ØÓÖ× Ö�Ò��Ò� �ÖÓÑ �¼± ØÓ ½¼¼±º �ÓÑÔ�Ö�� Û�Ø� ��×�¹ÓÔØ�Ñ�Þ�� ��¹ÌÖ��׸ �Ô��¹ÌÖ��× �Ò� Ñ� ÖÓ¹�Ò��Ü�Ò� � ���Ú�×Ô���¹ÙÔ× ��ØÛ��Ò ½º¿� �Ò� ½º�¼ºÌ�� ×Ø�Ô¹�ÓÛÒ �Ø �¼± �ÓÖ Ñ� ÖÓ¹�Ò��Ü�Ò� �Ò� ��×�¹¬Ö×Ø
�Ô��¹ÌÖ��× �× �� �Ù×� Ø��Ý Ö��Ù � ÓÒ� Ô��� Ð�Ú�Ð �Ø �¼±º�ÐØ�ÓÙ�� Ø�� ��×�¹ÓÔØ�Ñ�Þ�� ��¹ÌÖ��× �Ð×Ó Ö��Ù � ÓÒ� Ð�Ú�Ð��Ö�¸ Ø�� ×�Ú�Ò�× �Ö� Ó«×�Ø �Ý � Ð�Ö��Ö Ó×Ø �ÓÖ ×��Ö ��Ò� Ð���Ô���× Û�Ø� �Ò Ö��×�� �ÙÐ�ÐÓ�� �� ØÓÖ׺ �� ��¹¬Ö×Ø �Ô��¹ÌÖ��× �ÐÐ ��Ú� Ø�� ×�Ñ� ÒÙÑ��Ö Ó� ÒÓ�� Ð�Ú�Ð× �Ò Ø��× ×�Ø Ó�
60 70 80 90 1001.5
2
2.5
3
3.5
bulkload factor when building the trees
exec
utio
n tim
e (M
cyc
les)
Disk−optimized B+treeMicro−indexing Disk−first fpB+tree Cache−first fpB+tree
���ÙÖ� ½¾� Ë��Ö � Ô�Ö�ÓÖÑ�Ò � Ú�ÖÝ�Ò� �ÙÐ�ÐÓ�� �� ¹ØÓÖ× ´¿Å ��Ý׸ ½�Ã� Ô���µ
60 70 80 90 1000
10
20
30
40
50
60
70
80
bulkload factor (16KB page)
exec
utio
n tim
e (M
cyc
les)
Disk−optimized B+treeMicro−indexing Disk−first fpB+tree Cache−first fpB+tree
105 106 1070
10
20
30
40
50
60
70
# of entries in leaf pages (16KB page, 100% full)
exec
utio
n tim
e (M
cyc
les)
Disk−optimized B+treeMicro−indexing Disk−first fpB+tree Cache−first fpB+tree
´�µ Î�ÖÝ�Ò� �ÙÐ�ÐÓ�� �� ØÓÖ× ´�µ Î�ÖÝ�Ò� � Ó� �ÒØÖ��×
10
20
30
40
50
60
70
80
90
(3M entries in leaf pages, 100% full)
exec
utio
n tim
e (M
cyc
les)
4KB 8KB 16KB 32KB
Disk−optimized B+treeMicro−indexing Disk−first fpB+tree Cache−first fpB+tree
0
20
40
60
80
100
(3M entries in leaf pages, 70% full)ex
ecut
ion
time
(M c
ycle
s)4KB 8KB 16KB 32KB
Disk−optimized B+treeMicro−indexing Disk−first fpB+tree Cache−first fpB+tree
´ µ Î�ÖÝ�Ò� Ô��� ×�Þ�× ´½¼¼± �ÙÐе ´�µ Î�ÖÝ�Ò� Ô��� ×�Þ�× ´�¼± �ÙÐе
���ÙÖ� ½¿� ÁÒ×�ÖØ�ÓÒ Ô�Ö�ÓÖÑ�Ò �
�ÜÔ�Ö�Ñ�ÒØ× �Ò� Ø��Ö��ÓÖ� ×�Ñ�Ð�Ö Ô�Ö�ÓÖÑ�Ò �º
4.2.2 Insertion Performance���ÙÖ� ½¿ ×�ÓÛ× Ø�� �Ò×�ÖØ�ÓÒ Ô�Ö�ÓÖÑ�Ò � �Ò �ÓÙÖ ���¹
��Ö�ÒØ ×�ØØ�Ò�׺ Ì�� �ÜÔ�Ö�Ñ�ÒØ× �ÐÐ Ñ��×ÙÖ�� Ø�� �Ü� Ù¹Ø�ÓÒ Ø�Ñ�× �ÓÖ �Ò×�ÖØ�Ò� ¾¼¼¼ Ö�Ò�ÓÑ ��Ý× ��Ø�Ö �ÙÐ�ÐÓ��׸Û��Ð� Ú�ÖÝ�Ò� Ø�� �ÙÐ�ÐÓ�� �� ØÓÖ¸ Ø�� ÒÙÑ��Ö× Ó� �ÒØÖ��× �ÒÐ��� Ô���׸ �Ò� Ø�� Ô��� ×�Þ�º Ì�� �Ô��¹ÌÖ��× � ���Ú� ÙÔØÓ � ¿�¹�ÓÐ� ×Ô���¹ÙÔ ÓÚ�Ö ��×�¹ÓÔØ�Ñ�Þ�� ��¹ÌÖ��׸ Û��Ð�Ñ� ÖÓ¹�Ò��Ü�Ò� Ô�Ö�ÓÖÑ× �ÐÑÓ×Ø �× ÔÓÓÖÐÝ �× ��×�¹ÓÔØ�ÑÞ����¹ÌÖ��׺���ÙÖ� ½¿´�µ ÓÑÔ�Ö�× �Ò×�ÖØ�ÓÒ Ô�Ö�ÓÖÑ�Ò � Ó� ØÖ��× �ÖÓÑ
�¼± ØÓ ½¼¼± �ÙÐÐ ÓÒØ��Ò�Ò� ¿Å ��Ý׺ �ÓÑÔ�Ö�� ØÓ ��×�¹ÓÔØ�Ñ�Þ�� ��¹ÌÖ��׸ Ø�� �Ô��¹ÌÖ��× � ���Ú� ½� ØÓ ¾¼¹�ÓÐ�×Ô���¹ÙÔ× ��ØÛ��Ò �¼± �Ò� �¼±¸ Û��Ð� �ÓÖ ½¼¼± �ÙÐÐ ØÖ��׸Ø��Ý �Ö� ÓÚ�Ö ½º� Ø�Ñ�× ��ØØ�Öº ÁÒØ�Ö�×Ø�Ò�Ðݸ Ø�� ÙÖÚ�×��Ú� �ÜØÖ�Ñ�ÐÝ ��«�Ö�ÒØ ×��Ô�×� Ø�Ó×� Ó� ��×�¹ÓÔØ�Ñ�Þ�� ��¹ÌÖ��× �Ò� Ñ� ÖÓ¹�Ò��Ü�Ò� �Ò Ö��×� �ÖÓÑ �¼± ØÓ �¼± �ÙØ �ÖÓÔ�Ø Ø�� ½¼¼± ÔÓ�Òظ Û��Ð� Ø�� ÙÖÚ�× Ó� �Ô��¹ÌÖ��× ×Ø�Ý �Ø�Ø ¬Ö×Ø �ÙØ �ÙÑÔ �Ö�Ñ�Ø� �ÐÐÝ �Ø Ø�� ½¼¼± ÔÓ�Òغ Ì��×��«� Ø× �Ò �� �ÜÔÐ��Ò�� �Ý Ø�� ÓÑ��Ò�Ø�ÓÒ Ó� ØÛÓ �� ØÓÖ×���Ø� ÑÓÚ�Ñ�ÒØ �Ò� Ô��� ×ÔÐ�Ø׺ Ï��Ò ØÖ��× �Ö� �¼± ØÓ �¼±�ÙÐи �Ò×�ÖØ�ÓÒ× Ù×Ù�ÐÐÝ ¬Ò� �ÑÔØÝ ×ÐÓØ× �Ò� Ø�� Ñ��ÓÖ ÓÔ�Ö¹�Ø�ÓÒ ��Ø�Ö ×��Ö ��Ò� Û��Ö� Ø�� ��Ý ��ÐÓÒ�× �× ØÓ ÑÓÚ� Ø����Ý �Ò� ÔÓ�ÒØ�Ö �ÖÖ�Ý× �Ò ÓÖ��Ö ØÓ �Ò×�ÖØ Ø�� Ò�Û �ÒØÖݺ ÁÒ
Page 25
Introduction Optimizing I/O Performance Optimizing Cache Performance Evaluation Discussion
Search Performance on 100% Bulkload
Search on 100% bulkloaded initialization.
105 106 1071
1.5
2
2.5
3
# of entries in leaf pages
exec
utio
n tim
e (M
cyc
les)
Disk−optimized B+treeMicro−indexing Disk−first fpB+tree Cache−first fpB+tree
105 106 1071
1.5
2
2.5
3
# of entries in leaf pages
exec
utio
n tim
e (M
cyc
les)
Disk−optimized B+treeMicro−indexing Disk−first fpB+tree Cache−first fpB+tree
´�µ Ô��� ×�Þ� � �Ã� ´�µ Ô��� ×�Þ� � �Ã�
105 106 1071
1.5
2
2.5
3
3.5
# of entries in leaf pages
exec
utio
n tim
e (M
cyc
les)
Disk−optimized B+treeMicro−indexing Disk−first fpB+tree Cache−first fpB+tree
105 106 1071
1.5
2
2.5
3
3.5
# of entries in leaf pages
exec
utio
n tim
e (M
cyc
les)
Disk−optimized B+treeMicro−indexing Disk−first fpB+tree Cache−first fpB+tree
´ µ Ô��� ×�Þ� � ½�Ã� ´�µ Ô��� ×�Þ� � ¿¾Ã�
���ÙÖ� ½¼� Ë��Ö � Ô�Ö�ÓÖÑ�Ò � �ÓÖ ½¼¼± �ÙÐ�ÐÓ��
105 106 1071
1.5
2
2.5
3
3.5
# of entries in leaf pages
exec
utio
n tim
e (M
cyc
les)
nonleaf= 64B nonleaf=128B nonleaf=192B(selected)nonleaf=256B nonleaf=320B nonleaf=384B nonleaf=448B nonleaf=512B
105 106 1071
1.5
2
2.5
3
3.5
# of entries in leaf pages
exec
utio
n tim
e (M
cyc
les)
128B 256B 512B 704B(selected) 1024B Best Synthesized
´�µ ��×�¹¬Ö×Ø �Ô��¹ÌÖ�� ´�µ �� ��¹¬Ö×Ø �Ô��¹ÌÖ��
���ÙÖ� ½½� ÇÔØ�Ñ�Ð Û��Ø� ×�Ð� Ø�ÓÒ ´½�Ã� Ô���µ
� ���Ú� ×��Ö � Ô�Ö�ÓÖÑ�Ò � Ú�ÖÝ ÐÓ×� ØÓ Ø�� ��×Ø �ÑÓÒ� Ø��ÒÓ�� �Ó� �׺ ���ÙÖ� ½½´�µ ×�ÓÛ× Ø�� Ô�Ö�ÓÖÑ�Ò � Ó� ��×�¹¬Ö×Ø �Ô��¹ÌÖ��× Ù×�Ò� ÒÓÒÐ��� ÒÓ�� ×�Þ�× �ÖÓÑ ��� ´�Ò Ä¾ � �� Ð�Ò�µ ØÓ �½¾� ´� ľ � �� Ð�Ò�×µº ÇÙÖ ×�Ð� Ø�� ÓÔØ�Ñ�ÐØÖ�� �× Û�Ø��Ò ¾± Ó� Ø�� ��×Ø �Ü� ÙØ�ÓÒ Ø�Ñ�׺ �ÓÖ � ��¹¬Ö×Ø �Ô��¹ÌÖ��× Û� Ñ��×ÙÖ�� Ø�� Ô�Ö�ÓÖÑ�Ò � �ÓÖ ÒÓ�� ×�Þ�×Ö�Ò��Ò� �ÖÓÑ ½¾�� ØÓ ½¼¾��º ÁÒ ���ÙÖ� ½½´�µ¸ �ÓÖ ×�ÑÔÐ� �ØݸÛ� ÓÒÐÝ ×�ÓÛ ÙÖÚ�× �ÓÖ ÒÓ�� ×�Þ�× Ó� ½¾��¸ ¾���¸ �½¾�¸�¼��¸ ½¼¾��¸ �Ò� � ��×Ø Ô�Ö�ÓÖÑ�Ò � ÙÖÚ� ×ÝÒØ��×�Þ�� �ÝØ���Ò� Ø�� Ñ�Ò�ÑÙÑ× Ó� �ÐÐ ÙÖÚ�× Û�Ø� Ø�� ×�Ñ� � Ó� �Ò¹ØÖ��× �Ò Ð��� Ô���׺ ÇÙÖ ×�Ð� Ø�� ÓÔØ�Ñ�Ð ØÖ�� Ô�Ö�ÓÖÑ× Û�Ø��Ò�± Ó� Ø�� ��×غ ÁÒ Ø�� �ÜÔ�Ö�Ñ�ÒØ× Ø��Ø �ÓÐÐÓÛ¸ Û� Ù×� Ø��ÓÔØ�Ñ�Ð ÒÓ�� ×�Þ�× ��Ú�Ò �Ò Ì��Ð� ¾º
Î�ÖÝ�Ò� Ø�� �ÙÐ�ÐÓ�� �� ØÓÖº ÁÒ ���ÙÖ� ½¾¸ Û� Ú�Ö¹��� Ø�� ¿Å¹�ÒØÖÝ �ÜÔ�Ö�Ñ�ÒØ× �Ò ���ÙÖ� ½¼´ µ Û�Ø� �ÙÐ�ÐÓ���� ØÓÖ× Ö�Ò��Ò� �ÖÓÑ �¼± ØÓ ½¼¼±º �ÓÑÔ�Ö�� Û�Ø� ��×�¹ÓÔØ�Ñ�Þ�� ��¹ÌÖ��׸ �Ô��¹ÌÖ��× �Ò� Ñ� ÖÓ¹�Ò��Ü�Ò� � ���Ú�×Ô���¹ÙÔ× ��ØÛ��Ò ½º¿� �Ò� ½º�¼ºÌ�� ×Ø�Ô¹�ÓÛÒ �Ø �¼± �ÓÖ Ñ� ÖÓ¹�Ò��Ü�Ò� �Ò� ��×�¹¬Ö×Ø
�Ô��¹ÌÖ��× �× �� �Ù×� Ø��Ý Ö��Ù � ÓÒ� Ô��� Ð�Ú�Ð �Ø �¼±º�ÐØ�ÓÙ�� Ø�� ��×�¹ÓÔØ�Ñ�Þ�� ��¹ÌÖ��× �Ð×Ó Ö��Ù � ÓÒ� Ð�Ú�Ð��Ö�¸ Ø�� ×�Ú�Ò�× �Ö� Ó«×�Ø �Ý � Ð�Ö��Ö Ó×Ø �ÓÖ ×��Ö ��Ò� Ð���Ô���× Û�Ø� �Ò Ö��×�� �ÙÐ�ÐÓ�� �� ØÓÖ׺ �� ��¹¬Ö×Ø �Ô��¹ÌÖ��× �ÐÐ ��Ú� Ø�� ×�Ñ� ÒÙÑ��Ö Ó� ÒÓ�� Ð�Ú�Ð× �Ò Ø��× ×�Ø Ó�
60 70 80 90 1001.5
2
2.5
3
3.5
bulkload factor when building the trees
exec
utio
n tim
e (M
cyc
les)
Disk−optimized B+treeMicro−indexing Disk−first fpB+tree Cache−first fpB+tree
���ÙÖ� ½¾� Ë��Ö � Ô�Ö�ÓÖÑ�Ò � Ú�ÖÝ�Ò� �ÙÐ�ÐÓ�� �� ¹ØÓÖ× ´¿Å ��Ý׸ ½�Ã� Ô���µ
60 70 80 90 1000
10
20
30
40
50
60
70
80
bulkload factor (16KB page)
exec
utio
n tim
e (M
cyc
les)
Disk−optimized B+treeMicro−indexing Disk−first fpB+tree Cache−first fpB+tree
105 106 1070
10
20
30
40
50
60
70
# of entries in leaf pages (16KB page, 100% full)
exec
utio
n tim
e (M
cyc
les)
Disk−optimized B+treeMicro−indexing Disk−first fpB+tree Cache−first fpB+tree
´�µ Î�ÖÝ�Ò� �ÙÐ�ÐÓ�� �� ØÓÖ× ´�µ Î�ÖÝ�Ò� � Ó� �ÒØÖ��×
10
20
30
40
50
60
70
80
90
(3M entries in leaf pages, 100% full)
exec
utio
n tim
e (M
cyc
les)
4KB 8KB 16KB 32KB
Disk−optimized B+treeMicro−indexing Disk−first fpB+tree Cache−first fpB+tree
0
20
40
60
80
100
(3M entries in leaf pages, 70% full)
exec
utio
n tim
e (M
cyc
les)
4KB 8KB 16KB 32KB
Disk−optimized B+treeMicro−indexing Disk−first fpB+tree Cache−first fpB+tree
´ µ Î�ÖÝ�Ò� Ô��� ×�Þ�× ´½¼¼± �ÙÐе ´�µ Î�ÖÝ�Ò� Ô��� ×�Þ�× ´�¼± �ÙÐе
���ÙÖ� ½¿� ÁÒ×�ÖØ�ÓÒ Ô�Ö�ÓÖÑ�Ò �
�ÜÔ�Ö�Ñ�ÒØ× �Ò� Ø��Ö��ÓÖ� ×�Ñ�Ð�Ö Ô�Ö�ÓÖÑ�Ò �º
4.2.2 Insertion Performance���ÙÖ� ½¿ ×�ÓÛ× Ø�� �Ò×�ÖØ�ÓÒ Ô�Ö�ÓÖÑ�Ò � �Ò �ÓÙÖ ���¹
��Ö�ÒØ ×�ØØ�Ò�׺ Ì�� �ÜÔ�Ö�Ñ�ÒØ× �ÐÐ Ñ��×ÙÖ�� Ø�� �Ü� Ù¹Ø�ÓÒ Ø�Ñ�× �ÓÖ �Ò×�ÖØ�Ò� ¾¼¼¼ Ö�Ò�ÓÑ ��Ý× ��Ø�Ö �ÙÐ�ÐÓ��׸Û��Ð� Ú�ÖÝ�Ò� Ø�� �ÙÐ�ÐÓ�� �� ØÓÖ¸ Ø�� ÒÙÑ��Ö× Ó� �ÒØÖ��× �ÒÐ��� Ô���׸ �Ò� Ø�� Ô��� ×�Þ�º Ì�� �Ô��¹ÌÖ��× � ���Ú� ÙÔØÓ � ¿�¹�ÓÐ� ×Ô���¹ÙÔ ÓÚ�Ö ��×�¹ÓÔØ�Ñ�Þ�� ��¹ÌÖ��׸ Û��Ð�Ñ� ÖÓ¹�Ò��Ü�Ò� Ô�Ö�ÓÖÑ× �ÐÑÓ×Ø �× ÔÓÓÖÐÝ �× ��×�¹ÓÔØ�ÑÞ����¹ÌÖ��׺���ÙÖ� ½¿´�µ ÓÑÔ�Ö�× �Ò×�ÖØ�ÓÒ Ô�Ö�ÓÖÑ�Ò � Ó� ØÖ��× �ÖÓÑ
�¼± ØÓ ½¼¼± �ÙÐÐ ÓÒØ��Ò�Ò� ¿Å ��Ý׺ �ÓÑÔ�Ö�� ØÓ ��×�¹ÓÔØ�Ñ�Þ�� ��¹ÌÖ��׸ Ø�� �Ô��¹ÌÖ��× � ���Ú� ½� ØÓ ¾¼¹�ÓÐ�×Ô���¹ÙÔ× ��ØÛ��Ò �¼± �Ò� �¼±¸ Û��Ð� �ÓÖ ½¼¼± �ÙÐÐ ØÖ��׸Ø��Ý �Ö� ÓÚ�Ö ½º� Ø�Ñ�× ��ØØ�Öº ÁÒØ�Ö�×Ø�Ò�Ðݸ Ø�� ÙÖÚ�×��Ú� �ÜØÖ�Ñ�ÐÝ ��«�Ö�ÒØ ×��Ô�×� Ø�Ó×� Ó� ��×�¹ÓÔØ�Ñ�Þ�� ��¹ÌÖ��× �Ò� Ñ� ÖÓ¹�Ò��Ü�Ò� �Ò Ö��×� �ÖÓÑ �¼± ØÓ �¼± �ÙØ �ÖÓÔ�Ø Ø�� ½¼¼± ÔÓ�Òظ Û��Ð� Ø�� ÙÖÚ�× Ó� �Ô��¹ÌÖ��× ×Ø�Ý �Ø�Ø ¬Ö×Ø �ÙØ �ÙÑÔ �Ö�Ñ�Ø� �ÐÐÝ �Ø Ø�� ½¼¼± ÔÓ�Òغ Ì��×��«� Ø× �Ò �� �ÜÔÐ��Ò�� �Ý Ø�� ÓÑ��Ò�Ø�ÓÒ Ó� ØÛÓ �� ØÓÖ×���Ø� ÑÓÚ�Ñ�ÒØ �Ò� Ô��� ×ÔÐ�Ø׺ Ï��Ò ØÖ��× �Ö� �¼± ØÓ �¼±�ÙÐи �Ò×�ÖØ�ÓÒ× Ù×Ù�ÐÐÝ ¬Ò� �ÑÔØÝ ×ÐÓØ× �Ò� Ø�� Ñ��ÓÖ ÓÔ�Ö¹�Ø�ÓÒ ��Ø�Ö ×��Ö ��Ò� Û��Ö� Ø�� ��Ý ��ÐÓÒ�× �× ØÓ ÑÓÚ� Ø����Ý �Ò� ÔÓ�ÒØ�Ö �ÖÖ�Ý× �Ò ÓÖ��Ö ØÓ �Ò×�ÖØ Ø�� Ò�Û �ÒØÖݺ ÁÒ
Page 26
Introduction Optimizing I/O Performance Optimizing Cache Performance Evaluation Discussion
Search Performance on Varied Bulkload
Search on a varied bulkloaded initialization.
105 106 1071
1.5
2
2.5
3
# of entries in leaf pages
exec
utio
n tim
e (M
cyc
les)
Disk−optimized B+treeMicro−indexing Disk−first fpB+tree Cache−first fpB+tree
105 106 1071
1.5
2
2.5
3
# of entries in leaf pages
exec
utio
n tim
e (M
cyc
les)
Disk−optimized B+treeMicro−indexing Disk−first fpB+tree Cache−first fpB+tree
´�µ Ô��� ×�Þ� � �Ã� ´�µ Ô��� ×�Þ� � �Ã�
105 106 1071
1.5
2
2.5
3
3.5
# of entries in leaf pages
exec
utio
n tim
e (M
cyc
les)
Disk−optimized B+treeMicro−indexing Disk−first fpB+tree Cache−first fpB+tree
105 106 1071
1.5
2
2.5
3
3.5
# of entries in leaf pages
exec
utio
n tim
e (M
cyc
les)
Disk−optimized B+treeMicro−indexing Disk−first fpB+tree Cache−first fpB+tree
´ µ Ô��� ×�Þ� � ½�Ã� ´�µ Ô��� ×�Þ� � ¿¾Ã�
���ÙÖ� ½¼� Ë��Ö � Ô�Ö�ÓÖÑ�Ò � �ÓÖ ½¼¼± �ÙÐ�ÐÓ��
105 106 1071
1.5
2
2.5
3
3.5
# of entries in leaf pages
exec
utio
n tim
e (M
cyc
les)
nonleaf= 64B nonleaf=128B nonleaf=192B(selected)nonleaf=256B nonleaf=320B nonleaf=384B nonleaf=448B nonleaf=512B
105 106 1071
1.5
2
2.5
3
3.5
# of entries in leaf pages
exec
utio
n tim
e (M
cyc
les)
128B 256B 512B 704B(selected) 1024B Best Synthesized
´�µ ��×�¹¬Ö×Ø �Ô��¹ÌÖ�� ´�µ �� ��¹¬Ö×Ø �Ô��¹ÌÖ��
���ÙÖ� ½½� ÇÔØ�Ñ�Ð Û��Ø� ×�Ð� Ø�ÓÒ ´½�Ã� Ô���µ
� ���Ú� ×��Ö � Ô�Ö�ÓÖÑ�Ò � Ú�ÖÝ ÐÓ×� ØÓ Ø�� ��×Ø �ÑÓÒ� Ø��ÒÓ�� �Ó� �׺ ���ÙÖ� ½½´�µ ×�ÓÛ× Ø�� Ô�Ö�ÓÖÑ�Ò � Ó� ��×�¹¬Ö×Ø �Ô��¹ÌÖ��× Ù×�Ò� ÒÓÒÐ��� ÒÓ�� ×�Þ�× �ÖÓÑ ��� ´�Ò Ä¾ � �� Ð�Ò�µ ØÓ �½¾� ´� ľ � �� Ð�Ò�×µº ÇÙÖ ×�Ð� Ø�� ÓÔØ�Ñ�ÐØÖ�� �× Û�Ø��Ò ¾± Ó� Ø�� ��×Ø �Ü� ÙØ�ÓÒ Ø�Ñ�׺ �ÓÖ � ��¹¬Ö×Ø �Ô��¹ÌÖ��× Û� Ñ��×ÙÖ�� Ø�� Ô�Ö�ÓÖÑ�Ò � �ÓÖ ÒÓ�� ×�Þ�×Ö�Ò��Ò� �ÖÓÑ ½¾�� ØÓ ½¼¾��º ÁÒ ���ÙÖ� ½½´�µ¸ �ÓÖ ×�ÑÔÐ� �ØݸÛ� ÓÒÐÝ ×�ÓÛ ÙÖÚ�× �ÓÖ ÒÓ�� ×�Þ�× Ó� ½¾��¸ ¾���¸ �½¾�¸�¼��¸ ½¼¾��¸ �Ò� � ��×Ø Ô�Ö�ÓÖÑ�Ò � ÙÖÚ� ×ÝÒØ��×�Þ�� �ÝØ���Ò� Ø�� Ñ�Ò�ÑÙÑ× Ó� �ÐÐ ÙÖÚ�× Û�Ø� Ø�� ×�Ñ� � Ó� �Ò¹ØÖ��× �Ò Ð��� Ô���׺ ÇÙÖ ×�Ð� Ø�� ÓÔØ�Ñ�Ð ØÖ�� Ô�Ö�ÓÖÑ× Û�Ø��Ò�± Ó� Ø�� ��×غ ÁÒ Ø�� �ÜÔ�Ö�Ñ�ÒØ× Ø��Ø �ÓÐÐÓÛ¸ Û� Ù×� Ø��ÓÔØ�Ñ�Ð ÒÓ�� ×�Þ�× ��Ú�Ò �Ò Ì��Ð� ¾º
Î�ÖÝ�Ò� Ø�� �ÙÐ�ÐÓ�� �� ØÓÖº ÁÒ ���ÙÖ� ½¾¸ Û� Ú�Ö¹��� Ø�� ¿Å¹�ÒØÖÝ �ÜÔ�Ö�Ñ�ÒØ× �Ò ���ÙÖ� ½¼´ µ Û�Ø� �ÙÐ�ÐÓ���� ØÓÖ× Ö�Ò��Ò� �ÖÓÑ �¼± ØÓ ½¼¼±º �ÓÑÔ�Ö�� Û�Ø� ��×�¹ÓÔØ�Ñ�Þ�� ��¹ÌÖ��׸ �Ô��¹ÌÖ��× �Ò� Ñ� ÖÓ¹�Ò��Ü�Ò� � ���Ú�×Ô���¹ÙÔ× ��ØÛ��Ò ½º¿� �Ò� ½º�¼ºÌ�� ×Ø�Ô¹�ÓÛÒ �Ø �¼± �ÓÖ Ñ� ÖÓ¹�Ò��Ü�Ò� �Ò� ��×�¹¬Ö×Ø
�Ô��¹ÌÖ��× �× �� �Ù×� Ø��Ý Ö��Ù � ÓÒ� Ô��� Ð�Ú�Ð �Ø �¼±º�ÐØ�ÓÙ�� Ø�� ��×�¹ÓÔØ�Ñ�Þ�� ��¹ÌÖ��× �Ð×Ó Ö��Ù � ÓÒ� Ð�Ú�Ð��Ö�¸ Ø�� ×�Ú�Ò�× �Ö� Ó«×�Ø �Ý � Ð�Ö��Ö Ó×Ø �ÓÖ ×��Ö ��Ò� Ð���Ô���× Û�Ø� �Ò Ö��×�� �ÙÐ�ÐÓ�� �� ØÓÖ׺ �� ��¹¬Ö×Ø �Ô��¹ÌÖ��× �ÐÐ ��Ú� Ø�� ×�Ñ� ÒÙÑ��Ö Ó� ÒÓ�� Ð�Ú�Ð× �Ò Ø��× ×�Ø Ó�
60 70 80 90 1001.5
2
2.5
3
3.5
bulkload factor when building the trees
exec
utio
n tim
e (M
cyc
les)
Disk−optimized B+treeMicro−indexing Disk−first fpB+tree Cache−first fpB+tree
���ÙÖ� ½¾� Ë��Ö � Ô�Ö�ÓÖÑ�Ò � Ú�ÖÝ�Ò� �ÙÐ�ÐÓ�� �� ¹ØÓÖ× ´¿Å ��Ý׸ ½�Ã� Ô���µ
60 70 80 90 1000
10
20
30
40
50
60
70
80
bulkload factor (16KB page)
exec
utio
n tim
e (M
cyc
les)
Disk−optimized B+treeMicro−indexing Disk−first fpB+tree Cache−first fpB+tree
105 106 1070
10
20
30
40
50
60
70
# of entries in leaf pages (16KB page, 100% full)
exec
utio
n tim
e (M
cyc
les)
Disk−optimized B+treeMicro−indexing Disk−first fpB+tree Cache−first fpB+tree
´�µ Î�ÖÝ�Ò� �ÙÐ�ÐÓ�� �� ØÓÖ× ´�µ Î�ÖÝ�Ò� � Ó� �ÒØÖ��×
10
20
30
40
50
60
70
80
90
(3M entries in leaf pages, 100% full)
exec
utio
n tim
e (M
cyc
les)
4KB 8KB 16KB 32KB
Disk−optimized B+treeMicro−indexing Disk−first fpB+tree Cache−first fpB+tree
0
20
40
60
80
100
(3M entries in leaf pages, 70% full)
exec
utio
n tim
e (M
cyc
les)
4KB 8KB 16KB 32KB
Disk−optimized B+treeMicro−indexing Disk−first fpB+tree Cache−first fpB+tree
´ µ Î�ÖÝ�Ò� Ô��� ×�Þ�× ´½¼¼± �ÙÐе ´�µ Î�ÖÝ�Ò� Ô��� ×�Þ�× ´�¼± �ÙÐе
���ÙÖ� ½¿� ÁÒ×�ÖØ�ÓÒ Ô�Ö�ÓÖÑ�Ò �
�ÜÔ�Ö�Ñ�ÒØ× �Ò� Ø��Ö��ÓÖ� ×�Ñ�Ð�Ö Ô�Ö�ÓÖÑ�Ò �º
4.2.2 Insertion Performance���ÙÖ� ½¿ ×�ÓÛ× Ø�� �Ò×�ÖØ�ÓÒ Ô�Ö�ÓÖÑ�Ò � �Ò �ÓÙÖ ���¹
��Ö�ÒØ ×�ØØ�Ò�׺ Ì�� �ÜÔ�Ö�Ñ�ÒØ× �ÐÐ Ñ��×ÙÖ�� Ø�� �Ü� Ù¹Ø�ÓÒ Ø�Ñ�× �ÓÖ �Ò×�ÖØ�Ò� ¾¼¼¼ Ö�Ò�ÓÑ ��Ý× ��Ø�Ö �ÙÐ�ÐÓ��׸Û��Ð� Ú�ÖÝ�Ò� Ø�� �ÙÐ�ÐÓ�� �� ØÓÖ¸ Ø�� ÒÙÑ��Ö× Ó� �ÒØÖ��× �ÒÐ��� Ô���׸ �Ò� Ø�� Ô��� ×�Þ�º Ì�� �Ô��¹ÌÖ��× � ���Ú� ÙÔØÓ � ¿�¹�ÓÐ� ×Ô���¹ÙÔ ÓÚ�Ö ��×�¹ÓÔØ�Ñ�Þ�� ��¹ÌÖ��׸ Û��Ð�Ñ� ÖÓ¹�Ò��Ü�Ò� Ô�Ö�ÓÖÑ× �ÐÑÓ×Ø �× ÔÓÓÖÐÝ �× ��×�¹ÓÔØ�ÑÞ����¹ÌÖ��׺���ÙÖ� ½¿´�µ ÓÑÔ�Ö�× �Ò×�ÖØ�ÓÒ Ô�Ö�ÓÖÑ�Ò � Ó� ØÖ��× �ÖÓÑ
�¼± ØÓ ½¼¼± �ÙÐÐ ÓÒØ��Ò�Ò� ¿Å ��Ý׺ �ÓÑÔ�Ö�� ØÓ ��×�¹ÓÔØ�Ñ�Þ�� ��¹ÌÖ��׸ Ø�� �Ô��¹ÌÖ��× � ���Ú� ½� ØÓ ¾¼¹�ÓÐ�×Ô���¹ÙÔ× ��ØÛ��Ò �¼± �Ò� �¼±¸ Û��Ð� �ÓÖ ½¼¼± �ÙÐÐ ØÖ��׸Ø��Ý �Ö� ÓÚ�Ö ½º� Ø�Ñ�× ��ØØ�Öº ÁÒØ�Ö�×Ø�Ò�Ðݸ Ø�� ÙÖÚ�×��Ú� �ÜØÖ�Ñ�ÐÝ ��«�Ö�ÒØ ×��Ô�×� Ø�Ó×� Ó� ��×�¹ÓÔØ�Ñ�Þ�� ��¹ÌÖ��× �Ò� Ñ� ÖÓ¹�Ò��Ü�Ò� �Ò Ö��×� �ÖÓÑ �¼± ØÓ �¼± �ÙØ �ÖÓÔ�Ø Ø�� ½¼¼± ÔÓ�Òظ Û��Ð� Ø�� ÙÖÚ�× Ó� �Ô��¹ÌÖ��× ×Ø�Ý �Ø�Ø ¬Ö×Ø �ÙØ �ÙÑÔ �Ö�Ñ�Ø� �ÐÐÝ �Ø Ø�� ½¼¼± ÔÓ�Òغ Ì��×��«� Ø× �Ò �� �ÜÔÐ��Ò�� �Ý Ø�� ÓÑ��Ò�Ø�ÓÒ Ó� ØÛÓ �� ØÓÖ×���Ø� ÑÓÚ�Ñ�ÒØ �Ò� Ô��� ×ÔÐ�Ø׺ Ï��Ò ØÖ��× �Ö� �¼± ØÓ �¼±�ÙÐи �Ò×�ÖØ�ÓÒ× Ù×Ù�ÐÐÝ ¬Ò� �ÑÔØÝ ×ÐÓØ× �Ò� Ø�� Ñ��ÓÖ ÓÔ�Ö¹�Ø�ÓÒ ��Ø�Ö ×��Ö ��Ò� Û��Ö� Ø�� ��Ý ��ÐÓÒ�× �× ØÓ ÑÓÚ� Ø����Ý �Ò� ÔÓ�ÒØ�Ö �ÖÖ�Ý× �Ò ÓÖ��Ö ØÓ �Ò×�ÖØ Ø�� Ò�Û �ÒØÖݺ ÁÒ
Page 27
Introduction Optimizing I/O Performance Optimizing Cache Performance Evaluation Discussion
Insert Performance
Insert performance under a) different bulkload factors b) # of entries.
105 106 1071
1.5
2
2.5
3
# of entries in leaf pages
exec
utio
n tim
e (M
cyc
les)
Disk−optimized B+treeMicro−indexing Disk−first fpB+tree Cache−first fpB+tree
105 106 1071
1.5
2
2.5
3
# of entries in leaf pages
exec
utio
n tim
e (M
cyc
les)
Disk−optimized B+treeMicro−indexing Disk−first fpB+tree Cache−first fpB+tree
´�µ Ô��� ×�Þ� � �Ã� ´�µ Ô��� ×�Þ� � �Ã�
105 106 1071
1.5
2
2.5
3
3.5
# of entries in leaf pages
exec
utio
n tim
e (M
cyc
les)
Disk−optimized B+treeMicro−indexing Disk−first fpB+tree Cache−first fpB+tree
105 106 1071
1.5
2
2.5
3
3.5
# of entries in leaf pages
exec
utio
n tim
e (M
cyc
les)
Disk−optimized B+treeMicro−indexing Disk−first fpB+tree Cache−first fpB+tree
´ µ Ô��� ×�Þ� � ½�Ã� ´�µ Ô��� ×�Þ� � ¿¾Ã�
���ÙÖ� ½¼� Ë��Ö � Ô�Ö�ÓÖÑ�Ò � �ÓÖ ½¼¼± �ÙÐ�ÐÓ��
105 106 1071
1.5
2
2.5
3
3.5
# of entries in leaf pages
exec
utio
n tim
e (M
cyc
les)
nonleaf= 64B nonleaf=128B nonleaf=192B(selected)nonleaf=256B nonleaf=320B nonleaf=384B nonleaf=448B nonleaf=512B
105 106 1071
1.5
2
2.5
3
3.5
# of entries in leaf pages
exec
utio
n tim
e (M
cyc
les)
128B 256B 512B 704B(selected) 1024B Best Synthesized
´�µ ��×�¹¬Ö×Ø �Ô��¹ÌÖ�� ´�µ �� ��¹¬Ö×Ø �Ô��¹ÌÖ��
���ÙÖ� ½½� ÇÔØ�Ñ�Ð Û��Ø� ×�Ð� Ø�ÓÒ ´½�Ã� Ô���µ
� ���Ú� ×��Ö � Ô�Ö�ÓÖÑ�Ò � Ú�ÖÝ ÐÓ×� ØÓ Ø�� ��×Ø �ÑÓÒ� Ø��ÒÓ�� �Ó� �׺ ���ÙÖ� ½½´�µ ×�ÓÛ× Ø�� Ô�Ö�ÓÖÑ�Ò � Ó� ��×�¹¬Ö×Ø �Ô��¹ÌÖ��× Ù×�Ò� ÒÓÒÐ��� ÒÓ�� ×�Þ�× �ÖÓÑ ��� ´�Ò Ä¾ � �� Ð�Ò�µ ØÓ �½¾� ´� ľ � �� Ð�Ò�×µº ÇÙÖ ×�Ð� Ø�� ÓÔØ�Ñ�ÐØÖ�� �× Û�Ø��Ò ¾± Ó� Ø�� ��×Ø �Ü� ÙØ�ÓÒ Ø�Ñ�׺ �ÓÖ � ��¹¬Ö×Ø �Ô��¹ÌÖ��× Û� Ñ��×ÙÖ�� Ø�� Ô�Ö�ÓÖÑ�Ò � �ÓÖ ÒÓ�� ×�Þ�×Ö�Ò��Ò� �ÖÓÑ ½¾�� ØÓ ½¼¾��º ÁÒ ���ÙÖ� ½½´�µ¸ �ÓÖ ×�ÑÔÐ� �ØݸÛ� ÓÒÐÝ ×�ÓÛ ÙÖÚ�× �ÓÖ ÒÓ�� ×�Þ�× Ó� ½¾��¸ ¾���¸ �½¾�¸�¼��¸ ½¼¾��¸ �Ò� � ��×Ø Ô�Ö�ÓÖÑ�Ò � ÙÖÚ� ×ÝÒØ��×�Þ�� �ÝØ���Ò� Ø�� Ñ�Ò�ÑÙÑ× Ó� �ÐÐ ÙÖÚ�× Û�Ø� Ø�� ×�Ñ� � Ó� �Ò¹ØÖ��× �Ò Ð��� Ô���׺ ÇÙÖ ×�Ð� Ø�� ÓÔØ�Ñ�Ð ØÖ�� Ô�Ö�ÓÖÑ× Û�Ø��Ò�± Ó� Ø�� ��×غ ÁÒ Ø�� �ÜÔ�Ö�Ñ�ÒØ× Ø��Ø �ÓÐÐÓÛ¸ Û� Ù×� Ø��ÓÔØ�Ñ�Ð ÒÓ�� ×�Þ�× ��Ú�Ò �Ò Ì��Ð� ¾º
Î�ÖÝ�Ò� Ø�� �ÙÐ�ÐÓ�� �� ØÓÖº ÁÒ ���ÙÖ� ½¾¸ Û� Ú�Ö¹��� Ø�� ¿Å¹�ÒØÖÝ �ÜÔ�Ö�Ñ�ÒØ× �Ò ���ÙÖ� ½¼´ µ Û�Ø� �ÙÐ�ÐÓ���� ØÓÖ× Ö�Ò��Ò� �ÖÓÑ �¼± ØÓ ½¼¼±º �ÓÑÔ�Ö�� Û�Ø� ��×�¹ÓÔØ�Ñ�Þ�� ��¹ÌÖ��׸ �Ô��¹ÌÖ��× �Ò� Ñ� ÖÓ¹�Ò��Ü�Ò� � ���Ú�×Ô���¹ÙÔ× ��ØÛ��Ò ½º¿� �Ò� ½º�¼ºÌ�� ×Ø�Ô¹�ÓÛÒ �Ø �¼± �ÓÖ Ñ� ÖÓ¹�Ò��Ü�Ò� �Ò� ��×�¹¬Ö×Ø
�Ô��¹ÌÖ��× �× �� �Ù×� Ø��Ý Ö��Ù � ÓÒ� Ô��� Ð�Ú�Ð �Ø �¼±º�ÐØ�ÓÙ�� Ø�� ��×�¹ÓÔØ�Ñ�Þ�� ��¹ÌÖ��× �Ð×Ó Ö��Ù � ÓÒ� Ð�Ú�Ð��Ö�¸ Ø�� ×�Ú�Ò�× �Ö� Ó«×�Ø �Ý � Ð�Ö��Ö Ó×Ø �ÓÖ ×��Ö ��Ò� Ð���Ô���× Û�Ø� �Ò Ö��×�� �ÙÐ�ÐÓ�� �� ØÓÖ׺ �� ��¹¬Ö×Ø �Ô��¹ÌÖ��× �ÐÐ ��Ú� Ø�� ×�Ñ� ÒÙÑ��Ö Ó� ÒÓ�� Ð�Ú�Ð× �Ò Ø��× ×�Ø Ó�
60 70 80 90 1001.5
2
2.5
3
3.5
bulkload factor when building the trees
exec
utio
n tim
e (M
cyc
les)
Disk−optimized B+treeMicro−indexing Disk−first fpB+tree Cache−first fpB+tree
���ÙÖ� ½¾� Ë��Ö � Ô�Ö�ÓÖÑ�Ò � Ú�ÖÝ�Ò� �ÙÐ�ÐÓ�� �� ¹ØÓÖ× ´¿Å ��Ý׸ ½�Ã� Ô���µ
60 70 80 90 1000
10
20
30
40
50
60
70
80
bulkload factor (16KB page)
exec
utio
n tim
e (M
cyc
les)
Disk−optimized B+treeMicro−indexing Disk−first fpB+tree Cache−first fpB+tree
105 106 1070
10
20
30
40
50
60
70
# of entries in leaf pages (16KB page, 100% full)ex
ecut
ion
time
(M c
ycle
s)
Disk−optimized B+treeMicro−indexing Disk−first fpB+tree Cache−first fpB+tree
´�µ Î�ÖÝ�Ò� �ÙÐ�ÐÓ�� �� ØÓÖ× ´�µ Î�ÖÝ�Ò� � Ó� �ÒØÖ��×
10
20
30
40
50
60
70
80
90
(3M entries in leaf pages, 100% full)
exec
utio
n tim
e (M
cyc
les)
4KB 8KB 16KB 32KB
Disk−optimized B+treeMicro−indexing Disk−first fpB+tree Cache−first fpB+tree
0
20
40
60
80
100
(3M entries in leaf pages, 70% full)
exec
utio
n tim
e (M
cyc
les)
4KB 8KB 16KB 32KB
Disk−optimized B+treeMicro−indexing Disk−first fpB+tree Cache−first fpB+tree
´ µ Î�ÖÝ�Ò� Ô��� ×�Þ�× ´½¼¼± �ÙÐе ´�µ Î�ÖÝ�Ò� Ô��� ×�Þ�× ´�¼± �ÙÐе
���ÙÖ� ½¿� ÁÒ×�ÖØ�ÓÒ Ô�Ö�ÓÖÑ�Ò �
�ÜÔ�Ö�Ñ�ÒØ× �Ò� Ø��Ö��ÓÖ� ×�Ñ�Ð�Ö Ô�Ö�ÓÖÑ�Ò �º
4.2.2 Insertion Performance���ÙÖ� ½¿ ×�ÓÛ× Ø�� �Ò×�ÖØ�ÓÒ Ô�Ö�ÓÖÑ�Ò � �Ò �ÓÙÖ ���¹
��Ö�ÒØ ×�ØØ�Ò�׺ Ì�� �ÜÔ�Ö�Ñ�ÒØ× �ÐÐ Ñ��×ÙÖ�� Ø�� �Ü� Ù¹Ø�ÓÒ Ø�Ñ�× �ÓÖ �Ò×�ÖØ�Ò� ¾¼¼¼ Ö�Ò�ÓÑ ��Ý× ��Ø�Ö �ÙÐ�ÐÓ��׸Û��Ð� Ú�ÖÝ�Ò� Ø�� �ÙÐ�ÐÓ�� �� ØÓÖ¸ Ø�� ÒÙÑ��Ö× Ó� �ÒØÖ��× �ÒÐ��� Ô���׸ �Ò� Ø�� Ô��� ×�Þ�º Ì�� �Ô��¹ÌÖ��× � ���Ú� ÙÔØÓ � ¿�¹�ÓÐ� ×Ô���¹ÙÔ ÓÚ�Ö ��×�¹ÓÔØ�Ñ�Þ�� ��¹ÌÖ��׸ Û��Ð�Ñ� ÖÓ¹�Ò��Ü�Ò� Ô�Ö�ÓÖÑ× �ÐÑÓ×Ø �× ÔÓÓÖÐÝ �× ��×�¹ÓÔØ�ÑÞ����¹ÌÖ��׺���ÙÖ� ½¿´�µ ÓÑÔ�Ö�× �Ò×�ÖØ�ÓÒ Ô�Ö�ÓÖÑ�Ò � Ó� ØÖ��× �ÖÓÑ
�¼± ØÓ ½¼¼± �ÙÐÐ ÓÒØ��Ò�Ò� ¿Å ��Ý׺ �ÓÑÔ�Ö�� ØÓ ��×�¹ÓÔØ�Ñ�Þ�� ��¹ÌÖ��׸ Ø�� �Ô��¹ÌÖ��× � ���Ú� ½� ØÓ ¾¼¹�ÓÐ�×Ô���¹ÙÔ× ��ØÛ��Ò �¼± �Ò� �¼±¸ Û��Ð� �ÓÖ ½¼¼± �ÙÐÐ ØÖ��׸Ø��Ý �Ö� ÓÚ�Ö ½º� Ø�Ñ�× ��ØØ�Öº ÁÒØ�Ö�×Ø�Ò�Ðݸ Ø�� ÙÖÚ�×��Ú� �ÜØÖ�Ñ�ÐÝ ��«�Ö�ÒØ ×��Ô�×� Ø�Ó×� Ó� ��×�¹ÓÔØ�Ñ�Þ�� ��¹ÌÖ��× �Ò� Ñ� ÖÓ¹�Ò��Ü�Ò� �Ò Ö��×� �ÖÓÑ �¼± ØÓ �¼± �ÙØ �ÖÓÔ�Ø Ø�� ½¼¼± ÔÓ�Òظ Û��Ð� Ø�� ÙÖÚ�× Ó� �Ô��¹ÌÖ��× ×Ø�Ý �Ø�Ø ¬Ö×Ø �ÙØ �ÙÑÔ �Ö�Ñ�Ø� �ÐÐÝ �Ø Ø�� ½¼¼± ÔÓ�Òغ Ì��×��«� Ø× �Ò �� �ÜÔÐ��Ò�� �Ý Ø�� ÓÑ��Ò�Ø�ÓÒ Ó� ØÛÓ �� ØÓÖ×���Ø� ÑÓÚ�Ñ�ÒØ �Ò� Ô��� ×ÔÐ�Ø׺ Ï��Ò ØÖ��× �Ö� �¼± ØÓ �¼±�ÙÐи �Ò×�ÖØ�ÓÒ× Ù×Ù�ÐÐÝ ¬Ò� �ÑÔØÝ ×ÐÓØ× �Ò� Ø�� Ñ��ÓÖ ÓÔ�Ö¹�Ø�ÓÒ ��Ø�Ö ×��Ö ��Ò� Û��Ö� Ø�� ��Ý ��ÐÓÒ�× �× ØÓ ÑÓÚ� Ø����Ý �Ò� ÔÓ�ÒØ�Ö �ÖÖ�Ý× �Ò ÓÖ��Ö ØÓ �Ò×�ÖØ Ø�� Ò�Û �ÒØÖݺ ÁÒ
Page 28
Introduction Optimizing I/O Performance Optimizing Cache Performance Evaluation Discussion
Insert Performance
Insert performance under different page size. c) 100% full d) 70% full
105 106 1071
1.5
2
2.5
3
# of entries in leaf pages
exec
utio
n tim
e (M
cyc
les)
Disk−optimized B+treeMicro−indexing Disk−first fpB+tree Cache−first fpB+tree
105 106 1071
1.5
2
2.5
3
# of entries in leaf pagesex
ecut
ion
time
(M c
ycle
s)
Disk−optimized B+treeMicro−indexing Disk−first fpB+tree Cache−first fpB+tree
´�µ Ô��� ×�Þ� � �Ã� ´�µ Ô��� ×�Þ� � �Ã�
105 106 1071
1.5
2
2.5
3
3.5
# of entries in leaf pages
exec
utio
n tim
e (M
cyc
les)
Disk−optimized B+treeMicro−indexing Disk−first fpB+tree Cache−first fpB+tree
105 106 1071
1.5
2
2.5
3
3.5
# of entries in leaf pages
exec
utio
n tim
e (M
cyc
les)
Disk−optimized B+treeMicro−indexing Disk−first fpB+tree Cache−first fpB+tree
´ µ Ô��� ×�Þ� � ½�Ã� ´�µ Ô��� ×�Þ� � ¿¾Ã�
���ÙÖ� ½¼� Ë��Ö � Ô�Ö�ÓÖÑ�Ò � �ÓÖ ½¼¼± �ÙÐ�ÐÓ��
105 106 1071
1.5
2
2.5
3
3.5
# of entries in leaf pages
exec
utio
n tim
e (M
cyc
les)
nonleaf= 64B nonleaf=128B nonleaf=192B(selected)nonleaf=256B nonleaf=320B nonleaf=384B nonleaf=448B nonleaf=512B
105 106 1071
1.5
2
2.5
3
3.5
# of entries in leaf pages
exec
utio
n tim
e (M
cyc
les)
128B 256B 512B 704B(selected) 1024B Best Synthesized
´�µ ��×�¹¬Ö×Ø �Ô��¹ÌÖ�� ´�µ �� ��¹¬Ö×Ø �Ô��¹ÌÖ��
���ÙÖ� ½½� ÇÔØ�Ñ�Ð Û��Ø� ×�Ð� Ø�ÓÒ ´½�Ã� Ô���µ
� ���Ú� ×��Ö � Ô�Ö�ÓÖÑ�Ò � Ú�ÖÝ ÐÓ×� ØÓ Ø�� ��×Ø �ÑÓÒ� Ø��ÒÓ�� �Ó� �׺ ���ÙÖ� ½½´�µ ×�ÓÛ× Ø�� Ô�Ö�ÓÖÑ�Ò � Ó� ��×�¹¬Ö×Ø �Ô��¹ÌÖ��× Ù×�Ò� ÒÓÒÐ��� ÒÓ�� ×�Þ�× �ÖÓÑ ��� ´�Ò Ä¾ � �� Ð�Ò�µ ØÓ �½¾� ´� ľ � �� Ð�Ò�×µº ÇÙÖ ×�Ð� Ø�� ÓÔØ�Ñ�ÐØÖ�� �× Û�Ø��Ò ¾± Ó� Ø�� ��×Ø �Ü� ÙØ�ÓÒ Ø�Ñ�׺ �ÓÖ � ��¹¬Ö×Ø �Ô��¹ÌÖ��× Û� Ñ��×ÙÖ�� Ø�� Ô�Ö�ÓÖÑ�Ò � �ÓÖ ÒÓ�� ×�Þ�×Ö�Ò��Ò� �ÖÓÑ ½¾�� ØÓ ½¼¾��º ÁÒ ���ÙÖ� ½½´�µ¸ �ÓÖ ×�ÑÔÐ� �ØݸÛ� ÓÒÐÝ ×�ÓÛ ÙÖÚ�× �ÓÖ ÒÓ�� ×�Þ�× Ó� ½¾��¸ ¾���¸ �½¾�¸�¼��¸ ½¼¾��¸ �Ò� � ��×Ø Ô�Ö�ÓÖÑ�Ò � ÙÖÚ� ×ÝÒØ��×�Þ�� �ÝØ���Ò� Ø�� Ñ�Ò�ÑÙÑ× Ó� �ÐÐ ÙÖÚ�× Û�Ø� Ø�� ×�Ñ� � Ó� �Ò¹ØÖ��× �Ò Ð��� Ô���׺ ÇÙÖ ×�Ð� Ø�� ÓÔØ�Ñ�Ð ØÖ�� Ô�Ö�ÓÖÑ× Û�Ø��Ò�± Ó� Ø�� ��×غ ÁÒ Ø�� �ÜÔ�Ö�Ñ�ÒØ× Ø��Ø �ÓÐÐÓÛ¸ Û� Ù×� Ø��ÓÔØ�Ñ�Ð ÒÓ�� ×�Þ�× ��Ú�Ò �Ò Ì��Ð� ¾º
Î�ÖÝ�Ò� Ø�� �ÙÐ�ÐÓ�� �� ØÓÖº ÁÒ ���ÙÖ� ½¾¸ Û� Ú�Ö¹��� Ø�� ¿Å¹�ÒØÖÝ �ÜÔ�Ö�Ñ�ÒØ× �Ò ���ÙÖ� ½¼´ µ Û�Ø� �ÙÐ�ÐÓ���� ØÓÖ× Ö�Ò��Ò� �ÖÓÑ �¼± ØÓ ½¼¼±º �ÓÑÔ�Ö�� Û�Ø� ��×�¹ÓÔØ�Ñ�Þ�� ��¹ÌÖ��׸ �Ô��¹ÌÖ��× �Ò� Ñ� ÖÓ¹�Ò��Ü�Ò� � ���Ú�×Ô���¹ÙÔ× ��ØÛ��Ò ½º¿� �Ò� ½º�¼ºÌ�� ×Ø�Ô¹�ÓÛÒ �Ø �¼± �ÓÖ Ñ� ÖÓ¹�Ò��Ü�Ò� �Ò� ��×�¹¬Ö×Ø
�Ô��¹ÌÖ��× �× �� �Ù×� Ø��Ý Ö��Ù � ÓÒ� Ô��� Ð�Ú�Ð �Ø �¼±º�ÐØ�ÓÙ�� Ø�� ��×�¹ÓÔØ�Ñ�Þ�� ��¹ÌÖ��× �Ð×Ó Ö��Ù � ÓÒ� Ð�Ú�Ð��Ö�¸ Ø�� ×�Ú�Ò�× �Ö� Ó«×�Ø �Ý � Ð�Ö��Ö Ó×Ø �ÓÖ ×��Ö ��Ò� Ð���Ô���× Û�Ø� �Ò Ö��×�� �ÙÐ�ÐÓ�� �� ØÓÖ׺ �� ��¹¬Ö×Ø �Ô��¹ÌÖ��× �ÐÐ ��Ú� Ø�� ×�Ñ� ÒÙÑ��Ö Ó� ÒÓ�� Ð�Ú�Ð× �Ò Ø��× ×�Ø Ó�
60 70 80 90 1001.5
2
2.5
3
3.5
bulkload factor when building the trees
exec
utio
n tim
e (M
cyc
les)
Disk−optimized B+treeMicro−indexing Disk−first fpB+tree Cache−first fpB+tree
���ÙÖ� ½¾� Ë��Ö � Ô�Ö�ÓÖÑ�Ò � Ú�ÖÝ�Ò� �ÙÐ�ÐÓ�� �� ¹ØÓÖ× ´¿Å ��Ý׸ ½�Ã� Ô���µ
60 70 80 90 1000
10
20
30
40
50
60
70
80
bulkload factor (16KB page)
exec
utio
n tim
e (M
cyc
les)
Disk−optimized B+treeMicro−indexing Disk−first fpB+tree Cache−first fpB+tree
105 106 1070
10
20
30
40
50
60
70
# of entries in leaf pages (16KB page, 100% full)
exec
utio
n tim
e (M
cyc
les)
Disk−optimized B+treeMicro−indexing Disk−first fpB+tree Cache−first fpB+tree
´�µ Î�ÖÝ�Ò� �ÙÐ�ÐÓ�� �� ØÓÖ× ´�µ Î�ÖÝ�Ò� � Ó� �ÒØÖ��×
10
20
30
40
50
60
70
80
90
(3M entries in leaf pages, 100% full)
exec
utio
n tim
e (M
cyc
les)
4KB 8KB 16KB 32KB
Disk−optimized B+treeMicro−indexing Disk−first fpB+tree Cache−first fpB+tree
0
20
40
60
80
100
(3M entries in leaf pages, 70% full)ex
ecut
ion
time
(M c
ycle
s)4KB 8KB 16KB 32KB
Disk−optimized B+treeMicro−indexing Disk−first fpB+tree Cache−first fpB+tree
´ µ Î�ÖÝ�Ò� Ô��� ×�Þ�× ´½¼¼± �ÙÐе ´�µ Î�ÖÝ�Ò� Ô��� ×�Þ�× ´�¼± �ÙÐе
���ÙÖ� ½¿� ÁÒ×�ÖØ�ÓÒ Ô�Ö�ÓÖÑ�Ò �
�ÜÔ�Ö�Ñ�ÒØ× �Ò� Ø��Ö��ÓÖ� ×�Ñ�Ð�Ö Ô�Ö�ÓÖÑ�Ò �º
4.2.2 Insertion Performance���ÙÖ� ½¿ ×�ÓÛ× Ø�� �Ò×�ÖØ�ÓÒ Ô�Ö�ÓÖÑ�Ò � �Ò �ÓÙÖ ���¹
��Ö�ÒØ ×�ØØ�Ò�׺ Ì�� �ÜÔ�Ö�Ñ�ÒØ× �ÐÐ Ñ��×ÙÖ�� Ø�� �Ü� Ù¹Ø�ÓÒ Ø�Ñ�× �ÓÖ �Ò×�ÖØ�Ò� ¾¼¼¼ Ö�Ò�ÓÑ ��Ý× ��Ø�Ö �ÙÐ�ÐÓ��׸Û��Ð� Ú�ÖÝ�Ò� Ø�� �ÙÐ�ÐÓ�� �� ØÓÖ¸ Ø�� ÒÙÑ��Ö× Ó� �ÒØÖ��× �ÒÐ��� Ô���׸ �Ò� Ø�� Ô��� ×�Þ�º Ì�� �Ô��¹ÌÖ��× � ���Ú� ÙÔØÓ � ¿�¹�ÓÐ� ×Ô���¹ÙÔ ÓÚ�Ö ��×�¹ÓÔØ�Ñ�Þ�� ��¹ÌÖ��׸ Û��Ð�Ñ� ÖÓ¹�Ò��Ü�Ò� Ô�Ö�ÓÖÑ× �ÐÑÓ×Ø �× ÔÓÓÖÐÝ �× ��×�¹ÓÔØ�ÑÞ����¹ÌÖ��׺���ÙÖ� ½¿´�µ ÓÑÔ�Ö�× �Ò×�ÖØ�ÓÒ Ô�Ö�ÓÖÑ�Ò � Ó� ØÖ��× �ÖÓÑ
�¼± ØÓ ½¼¼± �ÙÐÐ ÓÒØ��Ò�Ò� ¿Å ��Ý׺ �ÓÑÔ�Ö�� ØÓ ��×�¹ÓÔØ�Ñ�Þ�� ��¹ÌÖ��׸ Ø�� �Ô��¹ÌÖ��× � ���Ú� ½� ØÓ ¾¼¹�ÓÐ�×Ô���¹ÙÔ× ��ØÛ��Ò �¼± �Ò� �¼±¸ Û��Ð� �ÓÖ ½¼¼± �ÙÐÐ ØÖ��׸Ø��Ý �Ö� ÓÚ�Ö ½º� Ø�Ñ�× ��ØØ�Öº ÁÒØ�Ö�×Ø�Ò�Ðݸ Ø�� ÙÖÚ�×��Ú� �ÜØÖ�Ñ�ÐÝ ��«�Ö�ÒØ ×��Ô�×� Ø�Ó×� Ó� ��×�¹ÓÔØ�Ñ�Þ�� ��¹ÌÖ��× �Ò� Ñ� ÖÓ¹�Ò��Ü�Ò� �Ò Ö��×� �ÖÓÑ �¼± ØÓ �¼± �ÙØ �ÖÓÔ�Ø Ø�� ½¼¼± ÔÓ�Òظ Û��Ð� Ø�� ÙÖÚ�× Ó� �Ô��¹ÌÖ��× ×Ø�Ý �Ø�Ø ¬Ö×Ø �ÙØ �ÙÑÔ �Ö�Ñ�Ø� �ÐÐÝ �Ø Ø�� ½¼¼± ÔÓ�Òغ Ì��×��«� Ø× �Ò �� �ÜÔÐ��Ò�� �Ý Ø�� ÓÑ��Ò�Ø�ÓÒ Ó� ØÛÓ �� ØÓÖ×���Ø� ÑÓÚ�Ñ�ÒØ �Ò� Ô��� ×ÔÐ�Ø׺ Ï��Ò ØÖ��× �Ö� �¼± ØÓ �¼±�ÙÐи �Ò×�ÖØ�ÓÒ× Ù×Ù�ÐÐÝ ¬Ò� �ÑÔØÝ ×ÐÓØ× �Ò� Ø�� Ñ��ÓÖ ÓÔ�Ö¹�Ø�ÓÒ ��Ø�Ö ×��Ö ��Ò� Û��Ö� Ø�� ��Ý ��ÐÓÒ�× �× ØÓ ÑÓÚ� Ø����Ý �Ò� ÔÓ�ÒØ�Ö �ÖÖ�Ý× �Ò ÓÖ��Ö ØÓ �Ò×�ÖØ Ø�� Ò�Û �ÒØÖݺ ÁÒ
Page 29
Introduction Optimizing I/O Performance Optimizing Cache Performance Evaluation Discussion
Delete Performance
Delete performance under different a) bulkload factors b) page sizes.
60 70 80 90 1000
5
10
15
20
25
30
bulkload factor (16KB page)
exec
utio
n tim
e (M
cyc
les)
Disk−optimized B+treeMicro−indexing Disk−first fpB+tree Cache−first fpB+tree
0
10
20
30
40
50
(3M entries in leaf pages, 100% full)
exec
utio
n tim
e (M
cyc
les)
4KB 8KB 16KB 32KB
Disk−optimized B+treeMicro−indexing Disk−first fpB+tree Cache−first fpB+tree
´�µ Î�ÖÝ�Ò� �ÙÐ�ÐÓ�� �� ØÓÖ× ´�µ Î�ÖÝ�Ò� Ô��� ×�Þ�× ´½¼¼± �ÙÐе
���ÙÖ� ½�� ��Ð�Ø�ÓÒ Ô�Ö�ÓÖÑ�Ò �
��×�¹ÓÔØ�Ñ�Þ�� ��¹ÌÖ��׸ Ø��× ��Ø� ÑÓÚ�Ñ�ÒØ �× �Ý ��Ö Ø���ÓÑ�Ò�ÒØ Ó×غ �× Ø�� Ó ÙÔ��� ÔÓÖØ�ÓÒ× Ó� Ø�� �ÖÖ�Ý× �ÖÓÛ�ÖÓÑ �¼± ØÓ �¼±¸ Ø��× Ó×Ø �Ò Ö��×�׸ Ö�×ÙÐØ�Ò� �Ò ×ÐÓÛ�Ö�Ò×�ÖØ�ÓÒ Ø�Ñ�׺ Å� ÖÓ¹�Ò��Ü�Ò� ���Ô× Ø�� ×�Ñ� Ð�Ö�� �Ö¹Ö�Ý ×ØÖÙ ØÙÖ� ÙÒØÓÙ ��� �Ò� Ø��Ö��ÓÖ� ×Ù«�Ö× �ÖÓÑ Ø�� ×�Ñ��«� غ ÀÓÛ�Ú�Ö¸ �Ò �Ô��¹ÌÖ��׸ Û� Ö��Ù �� Ø�� ��Ø� ÑÓÚ�¹Ñ�ÒØ Ó×Ø �Ý Ù×�Ò� ×Ñ�ÐÐ�Ö � ��¹ÓÔØ�Ñ�Þ�� ÒÓ��׸ Ö�×ÙÐØ�Ò��Ò ½� ØÓ ¾¼¹�ÓÐ� ×Ô���¹ÙÔ׺ ��Ø� ÑÓÚ�Ñ�ÒØ ��× �� ÓÑ�ÑÙ � Ð�×× Ó×ØÐÝ Ø��Ò ×��Ö �¸ Ð����Ò� ØÓ Ø�� �Ø ÙÖÚ�× ÙÔØ�ÖÓÙ�� �¼± �ÙÐк Ï��Ò Ø�� ØÖ��× �Ö� ½¼¼± �ÙÐи �Ò×�ÖØ�ÓÒ× �Ù×� �Ö�ÕÙ�ÒØ Ô��� ×ÔÐ�Ø׺ ÁÒ �Ô��¹ÌÖ��׸ Ø�� Ó×Ø Ó� � Ô���×ÔÐ�Ø �× ��Ö ÑÓÖ� Ø��Ò Ø�� ÔÖ�Ú�ÓÙ× ��Ø� ÑÓÚ�Ñ�ÒØ Ó×ظ Ö�¹×ÙÐØ�Ò� �Ò Ø�� Ð�Ö�� �ÙÑÔ ×��Ò �Ò Ø�� ÙÖÚ�׺ ÁÒ ��¹ÌÖ��×�Ò� Ñ� ÖÓ¹�Ò��Ü�Ò�¸ �ÓÛ�Ú�Ö¸ Ø�� Ô��� ×ÔÐ�Ø Ó×Ø �× ÓÑÔ�¹Ö��Ð� ØÓ ÓÔÝ�Ò� ��Ð� Ó� � Ô���¸ Û�� � �× Ø�� �Ú�Ö��� ��Ø�ÑÓÚ�Ñ�ÒØ Ó×Ø �ÓÖ �Ò×�ÖØ�Ò� �ÒØÓ �Ò �ÐÑÓ×Ø �ÙÐÐ Ô���º �ÙØÐ�Ø�Ö �Ò×�ÖØ�ÓÒ× Ñ�Ý ��Ø ��Ð� �ÑÔØÝ Ô���× ´�Ù×Ø ×ÔÐ�ص �Ò���Ò � �Ò ÙÖ Ð�×× ��Ø� ÑÓÚ�Ñ�Òظ Ö�×ÙÐØ�Ò� �Ò ��×Ø�Ö �Ò×�ÖØ�ÓÒØ�Ñ�× �Ø Ø�� ½¼¼± ÔÓ�Òغ
���ÙÖ� ½¿´�µ ×�ÓÛ× �Ò×�ÖØ�ÓÒ Ô�Ö�ÓÖÑ�Ò � ÓÒ �ÙÐÐ ØÖ��×Ó� ��«�Ö�ÒØ ×�Þ�׺ �ÓÑÔ�Ö�� ØÓ ��×�¹ÓÔØ�Ñ�Þ�� ��¹ÌÖ��׸�Ô��¹ÌÖ��× � ���Ú� ×Ô���¹ÙÔ× �ÖÓÑ �º¾� ØÓ ½º�¾ Û��Ò Ø��ÒÙÑ��Ö Ó� �ÒØÖ��× �Ò Ð��� Ô���× �× �Ò Ö��×�� �ÖÓÑ ½¼¼Ã ØÓ½¼Åº Ì��× �� Ö��×� �Ò ×Ô���¹ÙÔ �× �Ù×�� �Ý Ø�� �Ò Ö��×¹�Ò� ÒÙÑ��Ö Ó� Ô��� ×ÔÐ�Ø× ´�ÖÓÑ �� ØÓ ½�¿½ Ð��� Ô��� ×ÔÐ�Ø×�ÓÖ ��×�¹ÓÔØ�Ñ�Þ�� ��¹ÌÖ��׸ �Ò� ×�Ñ�Ð�Ö ØÖ�Ò�× �ÓÖ ÓØ��Ö�Ò��Ü�×µº �× �Ö�Ù�� ��ÓÚ�¸ �Ò Ö��×�� Ô��� ×ÔÐ�Ø× ��Ú� �ÑÙ � �Ö��Ø�Ö Ô�Ö�ÓÖÑ�Ò � �ÑÔ� Ø ÓÒ �Ô��¹ÌÖ��× Ø��Ò ÓÒ��×�¹ÓÔØ�Ñ�Þ�� ��¹ÌÖ��× �Ò� Ñ� ÖÓ¹�Ò��Ü�Ò�¸ Ð����Ò� ØÓ Ø��×Ô���¹ÙÔ �� Ö��×�º
���ÙÖ�× ½¿´ µ �Ò� ´�µ ÓÑÔ�Ö� Ø�� �Ò×�ÖØ�ÓÒ Ô�Ö�ÓÖÑ�Ò �Ú�ÖÝ�Ò� Ô��� ×�Þ�× Û��Ò ØÖ��× �Ö� ½¼¼± �Ò� �¼± �ÙÐк �×Ø�� Ô��� ×�Þ� �ÖÓÛ׸ Ø�� �Ü� ÙØ�ÓÒ Ø�Ñ�× Ó� ��×�¹ÓÔØ�Ñ�Þ����¹ÌÖ��× �Ò� Ñ� ÖÓ¹�Ò��Ü�Ò� �ÜÔÐÓ�� �� �Ù×� Ó� Ø�� Óѹ��Ò�� �«� Ø× Ó� Ð�Ö��Ö ��Ø� ÑÓÚ�Ñ�ÒØ �Ò� Ð�Ö��Ö Ô��� ×ÔÐ�Ø Ó×Ø׺ ÁÒ �Ô��¹ÌÖ��׸ Ø�ÓÙ�� Ô��� ×ÔÐ�Ø Ó×Ø× �Ð×Ó �Ò Ö��×�¸×��Ö � �Ò� ��Ø� ÑÓÚ�Ñ�ÒØ Ó×Ø× ÓÒÐÝ ��Ò�� ×Ð���ØÐݸ ��¹ �Ù×� Û�Ø� Ð�Ö��Ö Ô��� ×�Þ�× ÓÑ�× Ø�� ��Ú�ÒØ���× Ó� Ð�Ö��ÖÓÔØ�Ñ�Ð ÒÓ�� Û��Ø�׺ Ì��Ö��ÓÖ� Ø�� ÙÖÚ�× Ó� �Ô��¹ÌÖ��× �Ò¹ Ö��×� �Ò ���ÙÖ� ½¿´ µ �ÙØ �Ö� �ÐÑÓ×Ø �Ø �Ò ´�µº �ÐØÓ��Ø��Ö�Ò ���ÙÖ� ½¿´ µ �Ò� ´�µ¸ �Ô��¹ÌÖ��× � ���Ú� ½º½�ß¾º�¼ �Ò��º��ß¿�º� �ÓÐ� ×Ô���¹ÙÔ× ÓÚ�Ö ��×�¹ÓÔØ�Ñ�Þ�� ��¹ÌÖ��׸ Ö�¹×Ô� Ø�Ú�Ðݺ
�ÓÑÔ�Ö�Ò� Ø�� ØÛÓ �Ô��¹ÌÖ��׸ Û� ×�� Ø��Ý ��Ú� ×�Ñ�¹Ð�Ö �Ò×�ÖØ�ÓÒ Ô�Ö�ÓÖÑ�Ò �º ËÓÑ�Ø�Ñ�× � ��¹¬Ö×Ø �Ô��¹ÌÖ��×Ô�Ö�ÓÖÑ ÛÓÖ×� Ø��Ò ��×�¹¬Ö×Ø �Ô��¹ÌÖ��׺ Ì��× �× ÔÖ�Ñ�Ö�ÐÝ�� �Ù×� Ó� Ø�� ÑÓÖ� ÓÑÔÐ� �Ø�� ÒÓ��»Ô��� ×ÔÐ�Ø ÓÔ�Ö�Ø�ÓÒ×�Ò � ��¹¬Ö×Ø �Ô��¹ÌÖ��׸ �× ��× Ù××�� �Ò Ë� Ø�ÓÒ ¿º¾º
4.2.3 Deletion Performance��Ð�Ø�ÓÒ× �Ö� �ÑÔÐ�Ñ�ÒØ�� �× Ð�ÞÝ ��Ð�Ø�ÓÒ× �Ò �ÐÐ Ø�� �Ò¹
0
200
400
600
800
1000
1200
sim
ulat
ion
time
(M c
ycle
s)
Disk−optimized B+tree
Disk−first fpB+tree
Cache−first fpB+tree
���ÙÖ� ½�� Ê�Ò�� × �Ò Ô�Ö�ÓÖÑ�Ò � ´½�Ã� Ô���¸× �ÒÒ�Ò� ½Å ��Ý×µ
0
10
20
30
40
50
page size
spac
e ov
erhe
ad (p
erce
ntag
e)4KB 8KB 16KB 32KB
Disk−first fpB+tree Cache−first fpB+tree
0
10
20
30
40
50
page size
spac
e ov
erhe
ad (p
erce
ntag
e)
4KB 8KB 16KB 32KB
Disk−first fpB+tree Cache−first fpB+tree
´�µ ��Ø�Ö �ÙÐ�ÐÓ���Ò� ØÖ��× ½¼¼± �ÙÐÐ ´�µ Å�ØÙÖ� ØÖ��×
���ÙÖ� ½�� ËÔ� � ÓÚ�Ö����
��Ü�׺ � ×��Ö � �× �ÓÐÐÓÛ�� �Ý � ��Ø� ÑÓÚ�Ñ�ÒØ ÓÔ�Ö�Ø�ÓÒ ØÓÖ�ÑÓÚ� Ø�� ��Ð�Ø�� �ÒØÖݸ �ÙØ Û� �Ó ÒÓØ Ñ�Ö�� ÙÒ��ÖÓÛ��Ô���× ÓÖ ÒÓ��׺ ���ÙÖ� ½� �Ú�ÐÙ�Ø�× ��Ð�Ø�ÓÒ Ô�Ö�ÓÖÑ�Ò �´�ÓÖ ¾¼¼¼ Ö�Ò�ÓÑ ��Ð�Ø�ÓÒ×µ �Ò ØÛÓ ×�ØØ�Ò�×� ´�µ Ú�ÖÝ�Ò� Ø���ÙÐ�ÐÓ�� �� ØÓÖ Û��Ò Ø�� Ô��� ×�Þ� �× ½�Ã�¸ �Ò� ´�µ Ú�ÖÝ�Ò�Ø�� Ô��� ×�Þ�× Û��Ò Ø�� ØÖ��× �Ö� ½¼¼± �ÙÐк Ì�� �ÓÑ�Ò�ÒØ Ó×Ø �Ò ��×�¹ÓÔØ�Ñ�Þ�� ��¹ÌÖ��× �Ò� Ñ� ÖÓ¹�Ò��Ü�Ò� �× Ø����Ø� ÑÓÚ�Ñ�ÒØ Ó×ظ Û�� � �Ò Ö��×�× �× Ø�� �ÙÐ�ÐÓ�� �� ØÓÖ�Ò Ö��×�× �Ò� Ø�� Ô��� ×�Þ� �ÖÓÛ׺ ÀÓÛ�Ú�Ö¸ Ø�� ×��Ö � �Ò���Ø� ÑÓÚ�Ñ�ÒØ Ó×Ø× Ó� �Ô��¹ÌÖ��× ÓÒÐÝ ��Ò�� ×Ð���ØÐݺ ËÓØ�� �Ô��¹ÌÖ��× � ���Ú� ¿º¾ß¾¼º� �ÓÐ� ×Ô���¹ÙÔ× ÓÚ�Ö ��×�¹ÓÔØ�Ñ�Þ�� ��¹ÌÖ��׺
4.2.4 Range Scan Performance���ÙÖ� ½� ÓÑÔ�Ö�× Ø�� Ö�Ò�� × �Ò � �� Ô�Ö�ÓÖÑ�Ò � Ó�
�Ô��¹ÌÖ��× �Ò� ��×�¹ÓÔØ�Ñ�Þ�� ��¹ÌÖ��׺ Ì�� ØÖ��× �Ö��ÙÐ�ÐÓ���� Û�Ø� ¿Å ��Ý׸ Ù×�Ò� � ½¼¼± �ÙÐ�ÐÓ�� �� ØÓÖºÏ� ��Ò�Ö�Ø� ½¼¼ Ö�Ò�ÓÑ ×Ø�ÖØ ��Ý׸ �ÓÖ �� � ÓÑÔÙØ�Ò� �Ò�Ò� ��Ý ×Ù � Ø��Ø Ø�� Ö�Ò�� ×Ô�Ò× ÔÖ� �×�ÐÝ ½Å ØÙÔÐ� Á�׸�Ò� Ø��Ò Ô�Ö�ÓÖÑ Ø��×� ½¼¼ Ö�Ò�� × �Ò× ÓÒ� ��Ø�Ö �ÒÓØ��Öº�ÓÑÔ�Ö�� ØÓ Ø�� ��×�¹ÓÔØ�Ñ�Þ�� ��¹ÌÖ��׸ Ø�� ��×�¹¬Ö×Ø �Ò� � ��¹¬Ö×Ø �Ô��¹ÌÖ��× � ���Ú� ×Ô���¹ÙÔ× Ó� �º¾ �Ò� ¿º�¸ Ö�¹×Ô� Ø�Ú�Ðݺ
4.3 I/O Performance and Space OverheadËÔ� � ÇÚ�Ö����º ���ÙÖ� ½� ×�ÓÛ× Ø�� ×Ô� � ÓÚ�Ö�����
Ó� Ø�� �Ô��¹ÌÖ��× ÓÑÔ�Ö�� ØÓ ��×�¹ÓÔØ�Ñ�Þ�� ��¹ÌÖ��× �ÓÖ� Ö�Ò�� Ó� Ô��� ×�Þ�׸ ��Ô� Ø�Ò� ØÛÓ ´�ÜØÖ�Ñ�е × �Ò�Ö�Ó×�´�µ �ÑÑ����Ø�ÐÝ ��Ø�Ö �ÙÐ�ÐÓ���Ò� Ø�� ØÖ��× ½¼¼± �ÙÐи �Ò�´�µ ��Ø�Ö �Ò×�ÖØ�Ò� �Å ��Ý× �ÒØÓ ØÖ��× �ÙÐ�ÐÓ���� Û�Ø� ½Å��Ý׺ Ï� ×�� Ø��Ø �Ò �� � Ó� Ø��×� × �Ò�Ö�Ó׸ ��×�¹¬Ö×Ø �Ô��¹ÌÖ��× �Ò ÙÖ Ð�×× Ø��Ò � �± ÓÚ�Ö����º ÁÒ � ��¹¬Ö×Ø �Ô��¹ÌÖ��׸ Ø�� ×Ô� � ÓÚ�Ö���� �× Ð�×× Ø��Ò �± ÙÒ��Ö × �Ò�Ö�Ó´�µ¸ �Ú�Ò ��ØØ�Ö Ø��Ò ��×�¹¬Ö×Ø �Ô��¹ÌÖ��׺ Ì��× �× �� �Ù×�
�ËÔ� � ÇÚ�Ö���� �� Ó� Ô���× �Ò Ø�� �Ò��Ü
� Ó� Ô���× �Ò � ��×�¹ÓÔØ�Ñ�Þ�� ��¹ÌÖ��� ½
Page 30
Introduction Optimizing I/O Performance Optimizing Cache Performance Evaluation Discussion
Range Scan Performance
60 70 80 90 1000
5
10
15
20
25
30
bulkload factor (16KB page)
exec
utio
n tim
e (M
cyc
les)
Disk−optimized B+treeMicro−indexing Disk−first fpB+tree Cache−first fpB+tree
0
10
20
30
40
50
(3M entries in leaf pages, 100% full)
exec
utio
n tim
e (M
cyc
les)
4KB 8KB 16KB 32KB
Disk−optimized B+treeMicro−indexing Disk−first fpB+tree Cache−first fpB+tree
´�µ Î�ÖÝ�Ò� �ÙÐ�ÐÓ�� �� ØÓÖ× ´�µ Î�ÖÝ�Ò� Ô��� ×�Þ�× ´½¼¼± �ÙÐе
���ÙÖ� ½�� ��Ð�Ø�ÓÒ Ô�Ö�ÓÖÑ�Ò �
��×�¹ÓÔØ�Ñ�Þ�� ��¹ÌÖ��׸ Ø��× ��Ø� ÑÓÚ�Ñ�ÒØ �× �Ý ��Ö Ø���ÓÑ�Ò�ÒØ Ó×غ �× Ø�� Ó ÙÔ��� ÔÓÖØ�ÓÒ× Ó� Ø�� �ÖÖ�Ý× �ÖÓÛ�ÖÓÑ �¼± ØÓ �¼±¸ Ø��× Ó×Ø �Ò Ö��×�׸ Ö�×ÙÐØ�Ò� �Ò ×ÐÓÛ�Ö�Ò×�ÖØ�ÓÒ Ø�Ñ�׺ Å� ÖÓ¹�Ò��Ü�Ò� ���Ô× Ø�� ×�Ñ� Ð�Ö�� �Ö¹Ö�Ý ×ØÖÙ ØÙÖ� ÙÒØÓÙ ��� �Ò� Ø��Ö��ÓÖ� ×Ù«�Ö× �ÖÓÑ Ø�� ×�Ñ��«� غ ÀÓÛ�Ú�Ö¸ �Ò �Ô��¹ÌÖ��׸ Û� Ö��Ù �� Ø�� ��Ø� ÑÓÚ�¹Ñ�ÒØ Ó×Ø �Ý Ù×�Ò� ×Ñ�ÐÐ�Ö � ��¹ÓÔØ�Ñ�Þ�� ÒÓ��׸ Ö�×ÙÐØ�Ò��Ò ½� ØÓ ¾¼¹�ÓÐ� ×Ô���¹ÙÔ׺ ��Ø� ÑÓÚ�Ñ�ÒØ ��× �� ÓÑ�ÑÙ � Ð�×× Ó×ØÐÝ Ø��Ò ×��Ö �¸ Ð����Ò� ØÓ Ø�� �Ø ÙÖÚ�× ÙÔØ�ÖÓÙ�� �¼± �ÙÐк Ï��Ò Ø�� ØÖ��× �Ö� ½¼¼± �ÙÐи �Ò×�ÖØ�ÓÒ× �Ù×� �Ö�ÕÙ�ÒØ Ô��� ×ÔÐ�Ø׺ ÁÒ �Ô��¹ÌÖ��׸ Ø�� Ó×Ø Ó� � Ô���×ÔÐ�Ø �× ��Ö ÑÓÖ� Ø��Ò Ø�� ÔÖ�Ú�ÓÙ× ��Ø� ÑÓÚ�Ñ�ÒØ Ó×ظ Ö�¹×ÙÐØ�Ò� �Ò Ø�� Ð�Ö�� �ÙÑÔ ×��Ò �Ò Ø�� ÙÖÚ�׺ ÁÒ ��¹ÌÖ��×�Ò� Ñ� ÖÓ¹�Ò��Ü�Ò�¸ �ÓÛ�Ú�Ö¸ Ø�� Ô��� ×ÔÐ�Ø Ó×Ø �× ÓÑÔ�¹Ö��Ð� ØÓ ÓÔÝ�Ò� ��Ð� Ó� � Ô���¸ Û�� � �× Ø�� �Ú�Ö��� ��Ø�ÑÓÚ�Ñ�ÒØ Ó×Ø �ÓÖ �Ò×�ÖØ�Ò� �ÒØÓ �Ò �ÐÑÓ×Ø �ÙÐÐ Ô���º �ÙØÐ�Ø�Ö �Ò×�ÖØ�ÓÒ× Ñ�Ý ��Ø ��Ð� �ÑÔØÝ Ô���× ´�Ù×Ø ×ÔÐ�ص �Ò���Ò � �Ò ÙÖ Ð�×× ��Ø� ÑÓÚ�Ñ�Òظ Ö�×ÙÐØ�Ò� �Ò ��×Ø�Ö �Ò×�ÖØ�ÓÒØ�Ñ�× �Ø Ø�� ½¼¼± ÔÓ�Òغ
���ÙÖ� ½¿´�µ ×�ÓÛ× �Ò×�ÖØ�ÓÒ Ô�Ö�ÓÖÑ�Ò � ÓÒ �ÙÐÐ ØÖ��×Ó� ��«�Ö�ÒØ ×�Þ�׺ �ÓÑÔ�Ö�� ØÓ ��×�¹ÓÔØ�Ñ�Þ�� ��¹ÌÖ��׸�Ô��¹ÌÖ��× � ���Ú� ×Ô���¹ÙÔ× �ÖÓÑ �º¾� ØÓ ½º�¾ Û��Ò Ø��ÒÙÑ��Ö Ó� �ÒØÖ��× �Ò Ð��� Ô���× �× �Ò Ö��×�� �ÖÓÑ ½¼¼Ã ØÓ½¼Åº Ì��× �� Ö��×� �Ò ×Ô���¹ÙÔ �× �Ù×�� �Ý Ø�� �Ò Ö��×¹�Ò� ÒÙÑ��Ö Ó� Ô��� ×ÔÐ�Ø× ´�ÖÓÑ �� ØÓ ½�¿½ Ð��� Ô��� ×ÔÐ�Ø×�ÓÖ ��×�¹ÓÔØ�Ñ�Þ�� ��¹ÌÖ��׸ �Ò� ×�Ñ�Ð�Ö ØÖ�Ò�× �ÓÖ ÓØ��Ö�Ò��Ü�×µº �× �Ö�Ù�� ��ÓÚ�¸ �Ò Ö��×�� Ô��� ×ÔÐ�Ø× ��Ú� �ÑÙ � �Ö��Ø�Ö Ô�Ö�ÓÖÑ�Ò � �ÑÔ� Ø ÓÒ �Ô��¹ÌÖ��× Ø��Ò ÓÒ��×�¹ÓÔØ�Ñ�Þ�� ��¹ÌÖ��× �Ò� Ñ� ÖÓ¹�Ò��Ü�Ò�¸ Ð����Ò� ØÓ Ø��×Ô���¹ÙÔ �� Ö��×�º
���ÙÖ�× ½¿´ µ �Ò� ´�µ ÓÑÔ�Ö� Ø�� �Ò×�ÖØ�ÓÒ Ô�Ö�ÓÖÑ�Ò �Ú�ÖÝ�Ò� Ô��� ×�Þ�× Û��Ò ØÖ��× �Ö� ½¼¼± �Ò� �¼± �ÙÐк �×Ø�� Ô��� ×�Þ� �ÖÓÛ׸ Ø�� �Ü� ÙØ�ÓÒ Ø�Ñ�× Ó� ��×�¹ÓÔØ�Ñ�Þ����¹ÌÖ��× �Ò� Ñ� ÖÓ¹�Ò��Ü�Ò� �ÜÔÐÓ�� �� �Ù×� Ó� Ø�� Óѹ��Ò�� �«� Ø× Ó� Ð�Ö��Ö ��Ø� ÑÓÚ�Ñ�ÒØ �Ò� Ð�Ö��Ö Ô��� ×ÔÐ�Ø Ó×Ø׺ ÁÒ �Ô��¹ÌÖ��׸ Ø�ÓÙ�� Ô��� ×ÔÐ�Ø Ó×Ø× �Ð×Ó �Ò Ö��×�¸×��Ö � �Ò� ��Ø� ÑÓÚ�Ñ�ÒØ Ó×Ø× ÓÒÐÝ ��Ò�� ×Ð���ØÐݸ ��¹ �Ù×� Û�Ø� Ð�Ö��Ö Ô��� ×�Þ�× ÓÑ�× Ø�� ��Ú�ÒØ���× Ó� Ð�Ö��ÖÓÔØ�Ñ�Ð ÒÓ�� Û��Ø�׺ Ì��Ö��ÓÖ� Ø�� ÙÖÚ�× Ó� �Ô��¹ÌÖ��× �Ò¹ Ö��×� �Ò ���ÙÖ� ½¿´ µ �ÙØ �Ö� �ÐÑÓ×Ø �Ø �Ò ´�µº �ÐØÓ��Ø��Ö�Ò ���ÙÖ� ½¿´ µ �Ò� ´�µ¸ �Ô��¹ÌÖ��× � ���Ú� ½º½�ß¾º�¼ �Ò��º��ß¿�º� �ÓÐ� ×Ô���¹ÙÔ× ÓÚ�Ö ��×�¹ÓÔØ�Ñ�Þ�� ��¹ÌÖ��׸ Ö�¹×Ô� Ø�Ú�Ðݺ
�ÓÑÔ�Ö�Ò� Ø�� ØÛÓ �Ô��¹ÌÖ��׸ Û� ×�� Ø��Ý ��Ú� ×�Ñ�¹Ð�Ö �Ò×�ÖØ�ÓÒ Ô�Ö�ÓÖÑ�Ò �º ËÓÑ�Ø�Ñ�× � ��¹¬Ö×Ø �Ô��¹ÌÖ��×Ô�Ö�ÓÖÑ ÛÓÖ×� Ø��Ò ��×�¹¬Ö×Ø �Ô��¹ÌÖ��׺ Ì��× �× ÔÖ�Ñ�Ö�ÐÝ�� �Ù×� Ó� Ø�� ÑÓÖ� ÓÑÔÐ� �Ø�� ÒÓ��»Ô��� ×ÔÐ�Ø ÓÔ�Ö�Ø�ÓÒ×�Ò � ��¹¬Ö×Ø �Ô��¹ÌÖ��׸ �× ��× Ù××�� �Ò Ë� Ø�ÓÒ ¿º¾º
4.2.3 Deletion Performance��Ð�Ø�ÓÒ× �Ö� �ÑÔÐ�Ñ�ÒØ�� �× Ð�ÞÝ ��Ð�Ø�ÓÒ× �Ò �ÐÐ Ø�� �Ò¹
0
200
400
600
800
1000
1200
sim
ulat
ion
time
(M c
ycle
s)
Disk−optimized B+tree
Disk−first fpB+tree
Cache−first fpB+tree
���ÙÖ� ½�� Ê�Ò�� × �Ò Ô�Ö�ÓÖÑ�Ò � ´½�Ã� Ô���¸× �ÒÒ�Ò� ½Å ��Ý×µ
0
10
20
30
40
50
page size
spac
e ov
erhe
ad (p
erce
ntag
e)
4KB 8KB 16KB 32KB
Disk−first fpB+tree Cache−first fpB+tree
0
10
20
30
40
50
page size
spac
e ov
erhe
ad (p
erce
ntag
e)
4KB 8KB 16KB 32KB
Disk−first fpB+tree Cache−first fpB+tree
´�µ ��Ø�Ö �ÙÐ�ÐÓ���Ò� ØÖ��× ½¼¼± �ÙÐÐ ´�µ Å�ØÙÖ� ØÖ��×
���ÙÖ� ½�� ËÔ� � ÓÚ�Ö����
��Ü�׺ � ×��Ö � �× �ÓÐÐÓÛ�� �Ý � ��Ø� ÑÓÚ�Ñ�ÒØ ÓÔ�Ö�Ø�ÓÒ ØÓÖ�ÑÓÚ� Ø�� ��Ð�Ø�� �ÒØÖݸ �ÙØ Û� �Ó ÒÓØ Ñ�Ö�� ÙÒ��ÖÓÛ��Ô���× ÓÖ ÒÓ��׺ ���ÙÖ� ½� �Ú�ÐÙ�Ø�× ��Ð�Ø�ÓÒ Ô�Ö�ÓÖÑ�Ò �´�ÓÖ ¾¼¼¼ Ö�Ò�ÓÑ ��Ð�Ø�ÓÒ×µ �Ò ØÛÓ ×�ØØ�Ò�×� ´�µ Ú�ÖÝ�Ò� Ø���ÙÐ�ÐÓ�� �� ØÓÖ Û��Ò Ø�� Ô��� ×�Þ� �× ½�Ã�¸ �Ò� ´�µ Ú�ÖÝ�Ò�Ø�� Ô��� ×�Þ�× Û��Ò Ø�� ØÖ��× �Ö� ½¼¼± �ÙÐк Ì�� �ÓÑ�Ò�ÒØ Ó×Ø �Ò ��×�¹ÓÔØ�Ñ�Þ�� ��¹ÌÖ��× �Ò� Ñ� ÖÓ¹�Ò��Ü�Ò� �× Ø����Ø� ÑÓÚ�Ñ�ÒØ Ó×ظ Û�� � �Ò Ö��×�× �× Ø�� �ÙÐ�ÐÓ�� �� ØÓÖ�Ò Ö��×�× �Ò� Ø�� Ô��� ×�Þ� �ÖÓÛ׺ ÀÓÛ�Ú�Ö¸ Ø�� ×��Ö � �Ò���Ø� ÑÓÚ�Ñ�ÒØ Ó×Ø× Ó� �Ô��¹ÌÖ��× ÓÒÐÝ ��Ò�� ×Ð���ØÐݺ ËÓØ�� �Ô��¹ÌÖ��× � ���Ú� ¿º¾ß¾¼º� �ÓÐ� ×Ô���¹ÙÔ× ÓÚ�Ö ��×�¹ÓÔØ�Ñ�Þ�� ��¹ÌÖ��׺
4.2.4 Range Scan Performance���ÙÖ� ½� ÓÑÔ�Ö�× Ø�� Ö�Ò�� × �Ò � �� Ô�Ö�ÓÖÑ�Ò � Ó�
�Ô��¹ÌÖ��× �Ò� ��×�¹ÓÔØ�Ñ�Þ�� ��¹ÌÖ��׺ Ì�� ØÖ��× �Ö��ÙÐ�ÐÓ���� Û�Ø� ¿Å ��Ý׸ Ù×�Ò� � ½¼¼± �ÙÐ�ÐÓ�� �� ØÓÖºÏ� ��Ò�Ö�Ø� ½¼¼ Ö�Ò�ÓÑ ×Ø�ÖØ ��Ý׸ �ÓÖ �� � ÓÑÔÙØ�Ò� �Ò�Ò� ��Ý ×Ù � Ø��Ø Ø�� Ö�Ò�� ×Ô�Ò× ÔÖ� �×�ÐÝ ½Å ØÙÔÐ� Á�׸�Ò� Ø��Ò Ô�Ö�ÓÖÑ Ø��×� ½¼¼ Ö�Ò�� × �Ò× ÓÒ� ��Ø�Ö �ÒÓØ��Öº�ÓÑÔ�Ö�� ØÓ Ø�� ��×�¹ÓÔØ�Ñ�Þ�� ��¹ÌÖ��׸ Ø�� ��×�¹¬Ö×Ø �Ò� � ��¹¬Ö×Ø �Ô��¹ÌÖ��× � ���Ú� ×Ô���¹ÙÔ× Ó� �º¾ �Ò� ¿º�¸ Ö�¹×Ô� Ø�Ú�Ðݺ
4.3 I/O Performance and Space OverheadËÔ� � ÇÚ�Ö����º ���ÙÖ� ½� ×�ÓÛ× Ø�� ×Ô� � ÓÚ�Ö�����
Ó� Ø�� �Ô��¹ÌÖ��× ÓÑÔ�Ö�� ØÓ ��×�¹ÓÔØ�Ñ�Þ�� ��¹ÌÖ��× �ÓÖ� Ö�Ò�� Ó� Ô��� ×�Þ�׸ ��Ô� Ø�Ò� ØÛÓ ´�ÜØÖ�Ñ�е × �Ò�Ö�Ó×�´�µ �ÑÑ����Ø�ÐÝ ��Ø�Ö �ÙÐ�ÐÓ���Ò� Ø�� ØÖ��× ½¼¼± �ÙÐи �Ò�´�µ ��Ø�Ö �Ò×�ÖØ�Ò� �Å ��Ý× �ÒØÓ ØÖ��× �ÙÐ�ÐÓ���� Û�Ø� ½Å��Ý׺ Ï� ×�� Ø��Ø �Ò �� � Ó� Ø��×� × �Ò�Ö�Ó׸ ��×�¹¬Ö×Ø �Ô��¹ÌÖ��× �Ò ÙÖ Ð�×× Ø��Ò � �± ÓÚ�Ö����º ÁÒ � ��¹¬Ö×Ø �Ô��¹ÌÖ��׸ Ø�� ×Ô� � ÓÚ�Ö���� �× Ð�×× Ø��Ò �± ÙÒ��Ö × �Ò�Ö�Ó´�µ¸ �Ú�Ò ��ØØ�Ö Ø��Ò ��×�¹¬Ö×Ø �Ô��¹ÌÖ��׺ Ì��× �× �� �Ù×�
�ËÔ� � ÇÚ�Ö���� �� Ó� Ô���× �Ò Ø�� �Ò��Ü
� Ó� Ô���× �Ò � ��×�¹ÓÔØ�Ñ�Þ�� ��¹ÌÖ��� ½
Page 31
Introduction Optimizing I/O Performance Optimizing Cache Performance Evaluation Discussion
Space Overhead
a) Bulkload 10M keys. b) Insert 9M keys and bulkload 1M keys.
60 70 80 90 1000
5
10
15
20
25
30
bulkload factor (16KB page)
exec
utio
n tim
e (M
cyc
les)
Disk−optimized B+treeMicro−indexing Disk−first fpB+tree Cache−first fpB+tree
0
10
20
30
40
50
(3M entries in leaf pages, 100% full)
exec
utio
n tim
e (M
cyc
les)
4KB 8KB 16KB 32KB
Disk−optimized B+treeMicro−indexing Disk−first fpB+tree Cache−first fpB+tree
´�µ Î�ÖÝ�Ò� �ÙÐ�ÐÓ�� �� ØÓÖ× ´�µ Î�ÖÝ�Ò� Ô��� ×�Þ�× ´½¼¼± �ÙÐе
���ÙÖ� ½�� ��Ð�Ø�ÓÒ Ô�Ö�ÓÖÑ�Ò �
��×�¹ÓÔØ�Ñ�Þ�� ��¹ÌÖ��׸ Ø��× ��Ø� ÑÓÚ�Ñ�ÒØ �× �Ý ��Ö Ø���ÓÑ�Ò�ÒØ Ó×غ �× Ø�� Ó ÙÔ��� ÔÓÖØ�ÓÒ× Ó� Ø�� �ÖÖ�Ý× �ÖÓÛ�ÖÓÑ �¼± ØÓ �¼±¸ Ø��× Ó×Ø �Ò Ö��×�׸ Ö�×ÙÐØ�Ò� �Ò ×ÐÓÛ�Ö�Ò×�ÖØ�ÓÒ Ø�Ñ�׺ Å� ÖÓ¹�Ò��Ü�Ò� ���Ô× Ø�� ×�Ñ� Ð�Ö�� �Ö¹Ö�Ý ×ØÖÙ ØÙÖ� ÙÒØÓÙ ��� �Ò� Ø��Ö��ÓÖ� ×Ù«�Ö× �ÖÓÑ Ø�� ×�Ñ��«� غ ÀÓÛ�Ú�Ö¸ �Ò �Ô��¹ÌÖ��׸ Û� Ö��Ù �� Ø�� ��Ø� ÑÓÚ�¹Ñ�ÒØ Ó×Ø �Ý Ù×�Ò� ×Ñ�ÐÐ�Ö � ��¹ÓÔØ�Ñ�Þ�� ÒÓ��׸ Ö�×ÙÐØ�Ò��Ò ½� ØÓ ¾¼¹�ÓÐ� ×Ô���¹ÙÔ׺ ��Ø� ÑÓÚ�Ñ�ÒØ ��× �� ÓÑ�ÑÙ � Ð�×× Ó×ØÐÝ Ø��Ò ×��Ö �¸ Ð����Ò� ØÓ Ø�� �Ø ÙÖÚ�× ÙÔØ�ÖÓÙ�� �¼± �ÙÐк Ï��Ò Ø�� ØÖ��× �Ö� ½¼¼± �ÙÐи �Ò×�ÖØ�ÓÒ× �Ù×� �Ö�ÕÙ�ÒØ Ô��� ×ÔÐ�Ø׺ ÁÒ �Ô��¹ÌÖ��׸ Ø�� Ó×Ø Ó� � Ô���×ÔÐ�Ø �× ��Ö ÑÓÖ� Ø��Ò Ø�� ÔÖ�Ú�ÓÙ× ��Ø� ÑÓÚ�Ñ�ÒØ Ó×ظ Ö�¹×ÙÐØ�Ò� �Ò Ø�� Ð�Ö�� �ÙÑÔ ×��Ò �Ò Ø�� ÙÖÚ�׺ ÁÒ ��¹ÌÖ��×�Ò� Ñ� ÖÓ¹�Ò��Ü�Ò�¸ �ÓÛ�Ú�Ö¸ Ø�� Ô��� ×ÔÐ�Ø Ó×Ø �× ÓÑÔ�¹Ö��Ð� ØÓ ÓÔÝ�Ò� ��Ð� Ó� � Ô���¸ Û�� � �× Ø�� �Ú�Ö��� ��Ø�ÑÓÚ�Ñ�ÒØ Ó×Ø �ÓÖ �Ò×�ÖØ�Ò� �ÒØÓ �Ò �ÐÑÓ×Ø �ÙÐÐ Ô���º �ÙØÐ�Ø�Ö �Ò×�ÖØ�ÓÒ× Ñ�Ý ��Ø ��Ð� �ÑÔØÝ Ô���× ´�Ù×Ø ×ÔÐ�ص �Ò���Ò � �Ò ÙÖ Ð�×× ��Ø� ÑÓÚ�Ñ�Òظ Ö�×ÙÐØ�Ò� �Ò ��×Ø�Ö �Ò×�ÖØ�ÓÒØ�Ñ�× �Ø Ø�� ½¼¼± ÔÓ�Òغ
���ÙÖ� ½¿´�µ ×�ÓÛ× �Ò×�ÖØ�ÓÒ Ô�Ö�ÓÖÑ�Ò � ÓÒ �ÙÐÐ ØÖ��×Ó� ��«�Ö�ÒØ ×�Þ�׺ �ÓÑÔ�Ö�� ØÓ ��×�¹ÓÔØ�Ñ�Þ�� ��¹ÌÖ��׸�Ô��¹ÌÖ��× � ���Ú� ×Ô���¹ÙÔ× �ÖÓÑ �º¾� ØÓ ½º�¾ Û��Ò Ø��ÒÙÑ��Ö Ó� �ÒØÖ��× �Ò Ð��� Ô���× �× �Ò Ö��×�� �ÖÓÑ ½¼¼Ã ØÓ½¼Åº Ì��× �� Ö��×� �Ò ×Ô���¹ÙÔ �× �Ù×�� �Ý Ø�� �Ò Ö��×¹�Ò� ÒÙÑ��Ö Ó� Ô��� ×ÔÐ�Ø× ´�ÖÓÑ �� ØÓ ½�¿½ Ð��� Ô��� ×ÔÐ�Ø×�ÓÖ ��×�¹ÓÔØ�Ñ�Þ�� ��¹ÌÖ��׸ �Ò� ×�Ñ�Ð�Ö ØÖ�Ò�× �ÓÖ ÓØ��Ö�Ò��Ü�×µº �× �Ö�Ù�� ��ÓÚ�¸ �Ò Ö��×�� Ô��� ×ÔÐ�Ø× ��Ú� �ÑÙ � �Ö��Ø�Ö Ô�Ö�ÓÖÑ�Ò � �ÑÔ� Ø ÓÒ �Ô��¹ÌÖ��× Ø��Ò ÓÒ��×�¹ÓÔØ�Ñ�Þ�� ��¹ÌÖ��× �Ò� Ñ� ÖÓ¹�Ò��Ü�Ò�¸ Ð����Ò� ØÓ Ø��×Ô���¹ÙÔ �� Ö��×�º
���ÙÖ�× ½¿´ µ �Ò� ´�µ ÓÑÔ�Ö� Ø�� �Ò×�ÖØ�ÓÒ Ô�Ö�ÓÖÑ�Ò �Ú�ÖÝ�Ò� Ô��� ×�Þ�× Û��Ò ØÖ��× �Ö� ½¼¼± �Ò� �¼± �ÙÐк �×Ø�� Ô��� ×�Þ� �ÖÓÛ׸ Ø�� �Ü� ÙØ�ÓÒ Ø�Ñ�× Ó� ��×�¹ÓÔØ�Ñ�Þ����¹ÌÖ��× �Ò� Ñ� ÖÓ¹�Ò��Ü�Ò� �ÜÔÐÓ�� �� �Ù×� Ó� Ø�� Óѹ��Ò�� �«� Ø× Ó� Ð�Ö��Ö ��Ø� ÑÓÚ�Ñ�ÒØ �Ò� Ð�Ö��Ö Ô��� ×ÔÐ�Ø Ó×Ø׺ ÁÒ �Ô��¹ÌÖ��׸ Ø�ÓÙ�� Ô��� ×ÔÐ�Ø Ó×Ø× �Ð×Ó �Ò Ö��×�¸×��Ö � �Ò� ��Ø� ÑÓÚ�Ñ�ÒØ Ó×Ø× ÓÒÐÝ ��Ò�� ×Ð���ØÐݸ ��¹ �Ù×� Û�Ø� Ð�Ö��Ö Ô��� ×�Þ�× ÓÑ�× Ø�� ��Ú�ÒØ���× Ó� Ð�Ö��ÖÓÔØ�Ñ�Ð ÒÓ�� Û��Ø�׺ Ì��Ö��ÓÖ� Ø�� ÙÖÚ�× Ó� �Ô��¹ÌÖ��× �Ò¹ Ö��×� �Ò ���ÙÖ� ½¿´ µ �ÙØ �Ö� �ÐÑÓ×Ø �Ø �Ò ´�µº �ÐØÓ��Ø��Ö�Ò ���ÙÖ� ½¿´ µ �Ò� ´�µ¸ �Ô��¹ÌÖ��× � ���Ú� ½º½�ß¾º�¼ �Ò��º��ß¿�º� �ÓÐ� ×Ô���¹ÙÔ× ÓÚ�Ö ��×�¹ÓÔØ�Ñ�Þ�� ��¹ÌÖ��׸ Ö�¹×Ô� Ø�Ú�Ðݺ
�ÓÑÔ�Ö�Ò� Ø�� ØÛÓ �Ô��¹ÌÖ��׸ Û� ×�� Ø��Ý ��Ú� ×�Ñ�¹Ð�Ö �Ò×�ÖØ�ÓÒ Ô�Ö�ÓÖÑ�Ò �º ËÓÑ�Ø�Ñ�× � ��¹¬Ö×Ø �Ô��¹ÌÖ��×Ô�Ö�ÓÖÑ ÛÓÖ×� Ø��Ò ��×�¹¬Ö×Ø �Ô��¹ÌÖ��׺ Ì��× �× ÔÖ�Ñ�Ö�ÐÝ�� �Ù×� Ó� Ø�� ÑÓÖ� ÓÑÔÐ� �Ø�� ÒÓ��»Ô��� ×ÔÐ�Ø ÓÔ�Ö�Ø�ÓÒ×�Ò � ��¹¬Ö×Ø �Ô��¹ÌÖ��׸ �× ��× Ù××�� �Ò Ë� Ø�ÓÒ ¿º¾º
4.2.3 Deletion Performance��Ð�Ø�ÓÒ× �Ö� �ÑÔÐ�Ñ�ÒØ�� �× Ð�ÞÝ ��Ð�Ø�ÓÒ× �Ò �ÐÐ Ø�� �Ò¹
0
200
400
600
800
1000
1200
sim
ulat
ion
time
(M c
ycle
s)
Disk−optimized B+tree
Disk−first fpB+tree
Cache−first fpB+tree
���ÙÖ� ½�� Ê�Ò�� × �Ò Ô�Ö�ÓÖÑ�Ò � ´½�Ã� Ô���¸× �ÒÒ�Ò� ½Å ��Ý×µ
0
10
20
30
40
50
page size
spac
e ov
erhe
ad (p
erce
ntag
e)
4KB 8KB 16KB 32KB
Disk−first fpB+tree Cache−first fpB+tree
0
10
20
30
40
50
page size
spac
e ov
erhe
ad (p
erce
ntag
e)
4KB 8KB 16KB 32KB
Disk−first fpB+tree Cache−first fpB+tree
´�µ ��Ø�Ö �ÙÐ�ÐÓ���Ò� ØÖ��× ½¼¼± �ÙÐÐ ´�µ Å�ØÙÖ� ØÖ��×
���ÙÖ� ½�� ËÔ� � ÓÚ�Ö����
��Ü�׺ � ×��Ö � �× �ÓÐÐÓÛ�� �Ý � ��Ø� ÑÓÚ�Ñ�ÒØ ÓÔ�Ö�Ø�ÓÒ ØÓÖ�ÑÓÚ� Ø�� ��Ð�Ø�� �ÒØÖݸ �ÙØ Û� �Ó ÒÓØ Ñ�Ö�� ÙÒ��ÖÓÛ��Ô���× ÓÖ ÒÓ��׺ ���ÙÖ� ½� �Ú�ÐÙ�Ø�× ��Ð�Ø�ÓÒ Ô�Ö�ÓÖÑ�Ò �´�ÓÖ ¾¼¼¼ Ö�Ò�ÓÑ ��Ð�Ø�ÓÒ×µ �Ò ØÛÓ ×�ØØ�Ò�×� ´�µ Ú�ÖÝ�Ò� Ø���ÙÐ�ÐÓ�� �� ØÓÖ Û��Ò Ø�� Ô��� ×�Þ� �× ½�Ã�¸ �Ò� ´�µ Ú�ÖÝ�Ò�Ø�� Ô��� ×�Þ�× Û��Ò Ø�� ØÖ��× �Ö� ½¼¼± �ÙÐк Ì�� �ÓÑ�Ò�ÒØ Ó×Ø �Ò ��×�¹ÓÔØ�Ñ�Þ�� ��¹ÌÖ��× �Ò� Ñ� ÖÓ¹�Ò��Ü�Ò� �× Ø����Ø� ÑÓÚ�Ñ�ÒØ Ó×ظ Û�� � �Ò Ö��×�× �× Ø�� �ÙÐ�ÐÓ�� �� ØÓÖ�Ò Ö��×�× �Ò� Ø�� Ô��� ×�Þ� �ÖÓÛ׺ ÀÓÛ�Ú�Ö¸ Ø�� ×��Ö � �Ò���Ø� ÑÓÚ�Ñ�ÒØ Ó×Ø× Ó� �Ô��¹ÌÖ��× ÓÒÐÝ ��Ò�� ×Ð���ØÐݺ ËÓØ�� �Ô��¹ÌÖ��× � ���Ú� ¿º¾ß¾¼º� �ÓÐ� ×Ô���¹ÙÔ× ÓÚ�Ö ��×�¹ÓÔØ�Ñ�Þ�� ��¹ÌÖ��׺
4.2.4 Range Scan Performance���ÙÖ� ½� ÓÑÔ�Ö�× Ø�� Ö�Ò�� × �Ò � �� Ô�Ö�ÓÖÑ�Ò � Ó�
�Ô��¹ÌÖ��× �Ò� ��×�¹ÓÔØ�Ñ�Þ�� ��¹ÌÖ��׺ Ì�� ØÖ��× �Ö��ÙÐ�ÐÓ���� Û�Ø� ¿Å ��Ý׸ Ù×�Ò� � ½¼¼± �ÙÐ�ÐÓ�� �� ØÓÖºÏ� ��Ò�Ö�Ø� ½¼¼ Ö�Ò�ÓÑ ×Ø�ÖØ ��Ý׸ �ÓÖ �� � ÓÑÔÙØ�Ò� �Ò�Ò� ��Ý ×Ù � Ø��Ø Ø�� Ö�Ò�� ×Ô�Ò× ÔÖ� �×�ÐÝ ½Å ØÙÔÐ� Á�׸�Ò� Ø��Ò Ô�Ö�ÓÖÑ Ø��×� ½¼¼ Ö�Ò�� × �Ò× ÓÒ� ��Ø�Ö �ÒÓØ��Öº�ÓÑÔ�Ö�� ØÓ Ø�� ��×�¹ÓÔØ�Ñ�Þ�� ��¹ÌÖ��׸ Ø�� ��×�¹¬Ö×Ø �Ò� � ��¹¬Ö×Ø �Ô��¹ÌÖ��× � ���Ú� ×Ô���¹ÙÔ× Ó� �º¾ �Ò� ¿º�¸ Ö�¹×Ô� Ø�Ú�Ðݺ
4.3 I/O Performance and Space OverheadËÔ� � ÇÚ�Ö����º ���ÙÖ� ½� ×�ÓÛ× Ø�� ×Ô� � ÓÚ�Ö�����
Ó� Ø�� �Ô��¹ÌÖ��× ÓÑÔ�Ö�� ØÓ ��×�¹ÓÔØ�Ñ�Þ�� ��¹ÌÖ��× �ÓÖ� Ö�Ò�� Ó� Ô��� ×�Þ�׸ ��Ô� Ø�Ò� ØÛÓ ´�ÜØÖ�Ñ�е × �Ò�Ö�Ó×�´�µ �ÑÑ����Ø�ÐÝ ��Ø�Ö �ÙÐ�ÐÓ���Ò� Ø�� ØÖ��× ½¼¼± �ÙÐи �Ò�´�µ ��Ø�Ö �Ò×�ÖØ�Ò� �Å ��Ý× �ÒØÓ ØÖ��× �ÙÐ�ÐÓ���� Û�Ø� ½Å��Ý׺ Ï� ×�� Ø��Ø �Ò �� � Ó� Ø��×� × �Ò�Ö�Ó׸ ��×�¹¬Ö×Ø �Ô��¹ÌÖ��× �Ò ÙÖ Ð�×× Ø��Ò � �± ÓÚ�Ö����º ÁÒ � ��¹¬Ö×Ø �Ô��¹ÌÖ��׸ Ø�� ×Ô� � ÓÚ�Ö���� �× Ð�×× Ø��Ò �± ÙÒ��Ö × �Ò�Ö�Ó´�µ¸ �Ú�Ò ��ØØ�Ö Ø��Ò ��×�¹¬Ö×Ø �Ô��¹ÌÖ��׺ Ì��× �× �� �Ù×�
�ËÔ� � ÇÚ�Ö���� �� Ó� Ô���× �Ò Ø�� �Ò��Ü
� Ó� Ô���× �Ò � ��×�¹ÓÔØ�Ñ�Þ�� ��¹ÌÖ��� ½
Page 32
Introduction Optimizing I/O Performance Optimizing Cache Performance Evaluation Discussion
Discussions
• Too hard to implement (compare to micro-indexing). Insertion is expensiveanyway.
• Concurrency problem. Lock at node level or page level? Fine grain or coarsegrain?
• Logging issue? How to guarantee consistency of this data structure.
• Missing real word benchmark for search/insert/delete.