SlideShare a Scribd company logo
Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke 1
External Sorting
Chapters 13: 13.1—13.5
Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke 2
Why Sort?
 A classic problem in computer science (See Knuth, v.3)!
 Data requested in sorted order
 e.g., find students in increasing gpa order
 Sorting is first step in bulk loading B+ tree index.
 Sorting useful for eliminating duplicate copies in a
collection of records (Why?)
 Sort-merge join algorithm involves sorting.
 Problem: sort 1Gb of data with 1Mb of RAM.
 why not virtual memory?
Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke 3
2-Way Merge Sort: Requires 3 Buffers
 Pass 1: Read a page, sort it (in memory), write it.
 only one buffer page is used
 Pass 2, 3, …, etc.:
 three buffer pages used.
Main memory buffers
INPUT 1
INPUT 2
OUTPUT
Disk
Disk
Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke 4
2-Way Merge Sort: Algorithm
proc two-way_extsort(file)
// Given a file on disk, sort it using 3 buffer pages
//Pass 0: produce 1-page runs
Read each page of file into memory, sort it, and write it out.
//Merge pairs of runs to produce longer runs until 1 run is left
While # of runs at end of previous pass > 1 do:
//Process passes i=1,2,…
While there are runs to be merged from previous pass do:
Pick next 2 runs from previous pass.
Reach read each run into an input buffer, 1 page at a time.
Merge the runs and write result to the output buffer by
forcing output buffer to disk one page at a time.
endproc
Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke 5
Two-Way External Merge Sort
 Each pass we read + write
each page in file => 2N I/O’s
per pass.
 N pages in the file => the
number of passes
 So total cost is:
 Idea: Divide and conquer:
sort subfiles and merge
 Input file contains 7 pages;
dark pages shows what
would happen with 8 pages.
 
 
log2 1
N
 
 
2 1
2
N N
log 
Input file
1-page runs
2-page runs
4-page runs
8-page runs
PASS 0
PASS 1
PASS 2
PASS 3
9
3,4 6,2 9,4 8,7 5,6 3,1 2
3,4 5,6
2,6 4,9 7,8 1,3 2
2,3
4,6
4,7
8,9
1,3
5,6 2
2,3
4,4
6,7
8,9
1,2
3,5
6
1,2
2,3
3,4
4,5
6,6
7,8
Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke 6
General External Merge Sort
 To sort a file with N pages using B buffer pages:
 Pass 0: use B buffer pages. Produce sorted runs of B
pages each.
 Pass 2, …, etc.: merge B-1 runs.
 
N B
/
B Main memory buffers
INPUT 1
INPUT B-1
OUTPUT
Disk
Disk
INPUT 2
. . . . . .
. . .
* More than 3 buffer pages. How can we utilize them?
Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke 7
General External Merge Sort: Algorithm
proc extsort(file)
// Given a file on disk, sort it using B buffer pages
//Pass 0: produce B-pages runs
Read B pages of file into memory, sort them, and write them out.
//Merge B-1 runs to produce longer runs until 1 run is left
While # of runs at end of previous pass > 1 do:
//Process passes i=1,2,…
While there are runs to be merged from previous pass do:
Pick next B-1 runs from previous pass.
Reach read each run into an input buffer, 1 page at a time.
Merge the runs and write result to the output buffer by
forcing output buffer to disk one page at a time.
endproc
Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke 8
Cost of External Merge Sort
 Number of passes:
 Cost = 2N * (# of passes)
 E.g., with 5 buffer pages, to sort 108 page file:
 Pass 0: = 22 sorted runs of 5 pages each
(last run is only 3 pages)
 Pass 1: = 6 sorted runs of 20 pages each
(last run is only 8 pages)
 Pass 2: 2 sorted runs, 80 pages and 28 pages
 Pass 3: Sorted file of 108 pages
 
 
1 1
 
log /
B N B
 
108 5
/
 
22 4
/
Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke 9
Number of Passes of External Sort
N B=3 B=5 B=9 B=17 B=129 B=257
100 7 4 3 2 1 1
1,000 10 5 4 3 2 2
10,000 13 7 5 4 2 2
100,000 17 9 6 5 3 3
1,000,000 20 10 7 5 3 3
10,000,000 23 12 8 6 4 3
100,000,000 26 14 9 7 4 4
1,000,000,000 30 15 10 8 5 4
Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke 10
I/O for External Merge Sort
 … longer runs often means fewer passes!
 Actually, do I/O a page at a time
 In fact, read a block of pages sequentially!
 Suggests we should make each buffer
(input/output) be a block of pages.
 But this will reduce fan-out during merge passes!
 In practice, most files still sorted in 2-3 passes.
 Typical DBMSs sort 1M records of size 100 bytes
in 15 minutes
Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke 11
Number of Passes of Optimized Sort
N B=1,000 B=5,000 B=10,000
100 1 1 1
1,000 1 1 1
10,000 2 2 1
100,000 3 2 2
1,000,000 3 2 2
10,000,000 4 3 3
100,000,000 5 3 3
1,000,000,000 5 4 3
* Block size = 32, initial pass produces runs of size 2B.
Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke 12
Double Buffering
 To reduce wait time for I/O request to
complete, can prefetch into `shadow block’.
 Potentially, more passes; in practice, most files still
sorted in 2-3 passes.
OUTPUT
OUTPUT'
Disk Disk
INPUT 1
INPUT k
INPUT 2
INPUT 1'
INPUT 2'
INPUT k'
block size
b
B main memory buffers, k-way merge
Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke 13
Using B+ Trees for Sorting
 Scenario: Table to be sorted has B+ tree index on
sorting column(s).
 Idea: Can retrieve records in order by traversing
leaf pages.
 Is this a good idea?
 Cases to consider:
 B+ tree is clustered Good idea!
 B+ tree is not clustered Could be a very bad idea!
Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke 14
Clustered B+ Tree Used for Sorting
 Cost: root to the left-
most leaf, then retrieve
all leaf pages
(Alternative 1)
 If Alternative 2 is used?
Additional cost of
retrieving data records:
each page fetched just
once.
* Always better than external sorting!
(Directs search)
Data Records
Index
Data Entries
("Sequence set")
Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke 15
Unclustered B+ Tree Used for Sorting
 Alternative (2) for data entries; each data
entry contains rid of a data record. In general,
one I/O per data record!
(Directs search)
Data Records
Index
Data Entries
("Sequence set")
Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke 16
Summary
 External sorting is important; DBMS may dedicate
part of buffer pool for sorting!
 External merge sort minimizes disk I/O cost:
 Pass 0: Produces sorted runs of size B (# buffer pages).
Later passes: merge runs.
 # of runs merged at a time depends on B, and block size.
 Larger block size => smaller # runs merged.
 Clustered B+ tree is good for sorting; unclustered
tree is usually very bad.

More Related Content

Similar to ch13_extsort.ppt

MongoDB Memory Management Demystified
MongoDB Memory Management DemystifiedMongoDB Memory Management Demystified
MongoDB Memory Management Demystified
MongoDB
 
Mapreduce Algorithms
Mapreduce AlgorithmsMapreduce Algorithms
Mapreduce Algorithms
Amund Tveit
 
Database management system chapter13
Database management system chapter13Database management system chapter13
Database management system chapter13
Pranab Dasgupta
 
Parallel Database description in database management
Parallel Database description in database managementParallel Database description in database management
Parallel Database description in database management
chandugoswami
 
ch22a_ParallelDBs how parallel Datab.ppt
ch22a_ParallelDBs how parallel Datab.pptch22a_ParallelDBs how parallel Datab.ppt
ch22a_ParallelDBs how parallel Datab.ppt
RahulBhole12
 
Write intensive workloads and lsm trees
Write intensive workloads and lsm treesWrite intensive workloads and lsm trees
Write intensive workloads and lsm trees
Tilak Patidar
 
CS 542 Putting it all together -- Storage Management
CS 542 Putting it all together -- Storage ManagementCS 542 Putting it all together -- Storage Management
CS 542 Putting it all together -- Storage Management
J Singh
 
Samsung DeepSort
Samsung DeepSortSamsung DeepSort
Samsung DeepSort
Ryo Jin
 
Spark Meetup
Spark MeetupSpark Meetup
Spark Meetup
Sahan Bulathwela
 
Memory management in Linux
Memory management in LinuxMemory management in Linux
Memory management in Linux
Raghu Udiyar
 
Map Reduce Online
Map Reduce OnlineMap Reduce Online
Map Reduce Online
Hadoop User Group
 
virtual memory
virtual memoryvirtual memory
virtual memory
Abeer Naskar
 
data stage-material
data stage-materialdata stage-material
data stage-material
Rajesh Kv
 
MapReduce
MapReduceMapReduce
MapReduce
Abe Arredondo
 
Data corruption
Data corruptionData corruption
Data corruption
Tomas Vondra
 
Unix Memory Management - Operating Systems
Unix Memory Management - Operating SystemsUnix Memory Management - Operating Systems
Unix Memory Management - Operating Systems
Drishti Bhalla
 
Chapter 04
Chapter 04Chapter 04
Chapter 04
Google
 
Introduction To Map Reduce
Introduction To Map ReduceIntroduction To Map Reduce
Introduction To Map Reduce
rantav
 
Int 2 computer structure 2010
Int 2 computer structure 2010Int 2 computer structure 2010
Int 2 computer structure 2010
iarthur
 
Input and Output Devices and Systems
Input and Output Devices and SystemsInput and Output Devices and Systems
Input and Output Devices and Systems
Najma Alam
 

Similar to ch13_extsort.ppt (20)

MongoDB Memory Management Demystified
MongoDB Memory Management DemystifiedMongoDB Memory Management Demystified
MongoDB Memory Management Demystified
 
Mapreduce Algorithms
Mapreduce AlgorithmsMapreduce Algorithms
Mapreduce Algorithms
 
Database management system chapter13
Database management system chapter13Database management system chapter13
Database management system chapter13
 
Parallel Database description in database management
Parallel Database description in database managementParallel Database description in database management
Parallel Database description in database management
 
ch22a_ParallelDBs how parallel Datab.ppt
ch22a_ParallelDBs how parallel Datab.pptch22a_ParallelDBs how parallel Datab.ppt
ch22a_ParallelDBs how parallel Datab.ppt
 
Write intensive workloads and lsm trees
Write intensive workloads and lsm treesWrite intensive workloads and lsm trees
Write intensive workloads and lsm trees
 
CS 542 Putting it all together -- Storage Management
CS 542 Putting it all together -- Storage ManagementCS 542 Putting it all together -- Storage Management
CS 542 Putting it all together -- Storage Management
 
Samsung DeepSort
Samsung DeepSortSamsung DeepSort
Samsung DeepSort
 
Spark Meetup
Spark MeetupSpark Meetup
Spark Meetup
 
Memory management in Linux
Memory management in LinuxMemory management in Linux
Memory management in Linux
 
Map Reduce Online
Map Reduce OnlineMap Reduce Online
Map Reduce Online
 
virtual memory
virtual memoryvirtual memory
virtual memory
 
data stage-material
data stage-materialdata stage-material
data stage-material
 
MapReduce
MapReduceMapReduce
MapReduce
 
Data corruption
Data corruptionData corruption
Data corruption
 
Unix Memory Management - Operating Systems
Unix Memory Management - Operating SystemsUnix Memory Management - Operating Systems
Unix Memory Management - Operating Systems
 
Chapter 04
Chapter 04Chapter 04
Chapter 04
 
Introduction To Map Reduce
Introduction To Map ReduceIntroduction To Map Reduce
Introduction To Map Reduce
 
Int 2 computer structure 2010
Int 2 computer structure 2010Int 2 computer structure 2010
Int 2 computer structure 2010
 
Input and Output Devices and Systems
Input and Output Devices and SystemsInput and Output Devices and Systems
Input and Output Devices and Systems
 

More from vijayapraba1

HBase.pptx
HBase.pptxHBase.pptx
HBase.pptx
vijayapraba1
 
C10ComputerEngg.pptx
C10ComputerEngg.pptxC10ComputerEngg.pptx
C10ComputerEngg.pptx
vijayapraba1
 
apacheairflow-160827123852.pdf
apacheairflow-160827123852.pdfapacheairflow-160827123852.pdf
apacheairflow-160827123852.pdf
vijayapraba1
 
HDFS_architecture.ppt
HDFS_architecture.pptHDFS_architecture.ppt
HDFS_architecture.ppt
vijayapraba1
 
2 Discovery and Acquisition of Data1.pptx
2 Discovery and Acquisition of Data1.pptx2 Discovery and Acquisition of Data1.pptx
2 Discovery and Acquisition of Data1.pptx
vijayapraba1
 
C6ModelingTestingFinalOutputs.pptx
C6ModelingTestingFinalOutputs.pptxC6ModelingTestingFinalOutputs.pptx
C6ModelingTestingFinalOutputs.pptx
vijayapraba1
 
C3Problems and Brainstorming.ppt
C3Problems and Brainstorming.pptC3Problems and Brainstorming.ppt
C3Problems and Brainstorming.ppt
vijayapraba1
 
logic gates ppt.pptx
logic gates ppt.pptxlogic gates ppt.pptx
logic gates ppt.pptx
vijayapraba1
 
Combinational_Logic_Circuit_PPT.pptx
Combinational_Logic_Circuit_PPT.pptxCombinational_Logic_Circuit_PPT.pptx
Combinational_Logic_Circuit_PPT.pptx
vijayapraba1
 
NumberSystems.pptx
NumberSystems.pptxNumberSystems.pptx
NumberSystems.pptx
vijayapraba1
 
NumberSystems.pptx
NumberSystems.pptxNumberSystems.pptx
NumberSystems.pptx
vijayapraba1
 
DA-Module 1.pptx
DA-Module 1.pptxDA-Module 1.pptx
DA-Module 1.pptx
vijayapraba1
 
logic gates ppt-180430044215.pdf
logic gates ppt-180430044215.pdflogic gates ppt-180430044215.pdf
logic gates ppt-180430044215.pdf
vijayapraba1
 
sequential circuits PPT.pdf
sequential circuits PPT.pdfsequential circuits PPT.pdf
sequential circuits PPT.pdf
vijayapraba1
 
03_NumberSystems.pdf
03_NumberSystems.pdf03_NumberSystems.pdf
03_NumberSystems.pdf
vijayapraba1
 
Fundamentals of Programming Constructs.pptx
Fundamentals of  Programming Constructs.pptxFundamentals of  Programming Constructs.pptx
Fundamentals of Programming Constructs.pptx
vijayapraba1
 

More from vijayapraba1 (16)

HBase.pptx
HBase.pptxHBase.pptx
HBase.pptx
 
C10ComputerEngg.pptx
C10ComputerEngg.pptxC10ComputerEngg.pptx
C10ComputerEngg.pptx
 
apacheairflow-160827123852.pdf
apacheairflow-160827123852.pdfapacheairflow-160827123852.pdf
apacheairflow-160827123852.pdf
 
HDFS_architecture.ppt
HDFS_architecture.pptHDFS_architecture.ppt
HDFS_architecture.ppt
 
2 Discovery and Acquisition of Data1.pptx
2 Discovery and Acquisition of Data1.pptx2 Discovery and Acquisition of Data1.pptx
2 Discovery and Acquisition of Data1.pptx
 
C6ModelingTestingFinalOutputs.pptx
C6ModelingTestingFinalOutputs.pptxC6ModelingTestingFinalOutputs.pptx
C6ModelingTestingFinalOutputs.pptx
 
C3Problems and Brainstorming.ppt
C3Problems and Brainstorming.pptC3Problems and Brainstorming.ppt
C3Problems and Brainstorming.ppt
 
logic gates ppt.pptx
logic gates ppt.pptxlogic gates ppt.pptx
logic gates ppt.pptx
 
Combinational_Logic_Circuit_PPT.pptx
Combinational_Logic_Circuit_PPT.pptxCombinational_Logic_Circuit_PPT.pptx
Combinational_Logic_Circuit_PPT.pptx
 
NumberSystems.pptx
NumberSystems.pptxNumberSystems.pptx
NumberSystems.pptx
 
NumberSystems.pptx
NumberSystems.pptxNumberSystems.pptx
NumberSystems.pptx
 
DA-Module 1.pptx
DA-Module 1.pptxDA-Module 1.pptx
DA-Module 1.pptx
 
logic gates ppt-180430044215.pdf
logic gates ppt-180430044215.pdflogic gates ppt-180430044215.pdf
logic gates ppt-180430044215.pdf
 
sequential circuits PPT.pdf
sequential circuits PPT.pdfsequential circuits PPT.pdf
sequential circuits PPT.pdf
 
03_NumberSystems.pdf
03_NumberSystems.pdf03_NumberSystems.pdf
03_NumberSystems.pdf
 
Fundamentals of Programming Constructs.pptx
Fundamentals of  Programming Constructs.pptxFundamentals of  Programming Constructs.pptx
Fundamentals of Programming Constructs.pptx
 

Recently uploaded

Modelagem de um CSTR com reação endotermica.pdf
Modelagem de um CSTR com reação endotermica.pdfModelagem de um CSTR com reação endotermica.pdf
Modelagem de um CSTR com reação endotermica.pdf
camseq
 
22CYT12-Unit-V-E Waste and its Management.ppt
22CYT12-Unit-V-E Waste and its Management.ppt22CYT12-Unit-V-E Waste and its Management.ppt
22CYT12-Unit-V-E Waste and its Management.ppt
KrishnaveniKrishnara1
 
A review on techniques and modelling methodologies used for checking electrom...
A review on techniques and modelling methodologies used for checking electrom...A review on techniques and modelling methodologies used for checking electrom...
A review on techniques and modelling methodologies used for checking electrom...
nooriasukmaningtyas
 
Heat Resistant Concrete Presentation ppt
Heat Resistant Concrete Presentation pptHeat Resistant Concrete Presentation ppt
Heat Resistant Concrete Presentation ppt
mamunhossenbd75
 
Embedded machine learning-based road conditions and driving behavior monitoring
Embedded machine learning-based road conditions and driving behavior monitoringEmbedded machine learning-based road conditions and driving behavior monitoring
Embedded machine learning-based road conditions and driving behavior monitoring
IJECEIAES
 
A SYSTEMATIC RISK ASSESSMENT APPROACH FOR SECURING THE SMART IRRIGATION SYSTEMS
A SYSTEMATIC RISK ASSESSMENT APPROACH FOR SECURING THE SMART IRRIGATION SYSTEMSA SYSTEMATIC RISK ASSESSMENT APPROACH FOR SECURING THE SMART IRRIGATION SYSTEMS
A SYSTEMATIC RISK ASSESSMENT APPROACH FOR SECURING THE SMART IRRIGATION SYSTEMS
IJNSA Journal
 
PPT on GRP pipes manufacturing and testing
PPT on GRP pipes manufacturing and testingPPT on GRP pipes manufacturing and testing
PPT on GRP pipes manufacturing and testing
anoopmanoharan2
 
Technical Drawings introduction to drawing of prisms
Technical Drawings introduction to drawing of prismsTechnical Drawings introduction to drawing of prisms
Technical Drawings introduction to drawing of prisms
heavyhaig
 
Iron and Steel Technology Roadmap - Towards more sustainable steelmaking.pdf
Iron and Steel Technology Roadmap - Towards more sustainable steelmaking.pdfIron and Steel Technology Roadmap - Towards more sustainable steelmaking.pdf
Iron and Steel Technology Roadmap - Towards more sustainable steelmaking.pdf
RadiNasr
 
Advanced control scheme of doubly fed induction generator for wind turbine us...
Advanced control scheme of doubly fed induction generator for wind turbine us...Advanced control scheme of doubly fed induction generator for wind turbine us...
Advanced control scheme of doubly fed induction generator for wind turbine us...
IJECEIAES
 
Wearable antenna for antenna applications
Wearable antenna for antenna applicationsWearable antenna for antenna applications
Wearable antenna for antenna applications
Madhumitha Jayaram
 
Understanding Inductive Bias in Machine Learning
Understanding Inductive Bias in Machine LearningUnderstanding Inductive Bias in Machine Learning
Understanding Inductive Bias in Machine Learning
SUTEJAS
 
sieving analysis and results interpretation
sieving analysis and results interpretationsieving analysis and results interpretation
sieving analysis and results interpretation
ssuser36d3051
 
Low power architecture of logic gates using adiabatic techniques
Low power architecture of logic gates using adiabatic techniquesLow power architecture of logic gates using adiabatic techniques
Low power architecture of logic gates using adiabatic techniques
nooriasukmaningtyas
 
Recycled Concrete Aggregate in Construction Part III
Recycled Concrete Aggregate in Construction Part IIIRecycled Concrete Aggregate in Construction Part III
Recycled Concrete Aggregate in Construction Part III
Aditya Rajan Patra
 
132/33KV substation case study Presentation
132/33KV substation case study Presentation132/33KV substation case study Presentation
132/33KV substation case study Presentation
kandramariana6
 
Literature Review Basics and Understanding Reference Management.pptx
Literature Review Basics and Understanding Reference Management.pptxLiterature Review Basics and Understanding Reference Management.pptx
Literature Review Basics and Understanding Reference Management.pptx
Dr Ramhari Poudyal
 
Swimming pool mechanical components design.pptx
Swimming pool  mechanical components design.pptxSwimming pool  mechanical components design.pptx
Swimming pool mechanical components design.pptx
yokeleetan1
 
KuberTENes Birthday Bash Guadalajara - K8sGPT first impressions
KuberTENes Birthday Bash Guadalajara - K8sGPT first impressionsKuberTENes Birthday Bash Guadalajara - K8sGPT first impressions
KuberTENes Birthday Bash Guadalajara - K8sGPT first impressions
Victor Morales
 
bank management system in java and mysql report1.pdf
bank management system in java and mysql report1.pdfbank management system in java and mysql report1.pdf
bank management system in java and mysql report1.pdf
Divyam548318
 

Recently uploaded (20)

Modelagem de um CSTR com reação endotermica.pdf
Modelagem de um CSTR com reação endotermica.pdfModelagem de um CSTR com reação endotermica.pdf
Modelagem de um CSTR com reação endotermica.pdf
 
22CYT12-Unit-V-E Waste and its Management.ppt
22CYT12-Unit-V-E Waste and its Management.ppt22CYT12-Unit-V-E Waste and its Management.ppt
22CYT12-Unit-V-E Waste and its Management.ppt
 
A review on techniques and modelling methodologies used for checking electrom...
A review on techniques and modelling methodologies used for checking electrom...A review on techniques and modelling methodologies used for checking electrom...
A review on techniques and modelling methodologies used for checking electrom...
 
Heat Resistant Concrete Presentation ppt
Heat Resistant Concrete Presentation pptHeat Resistant Concrete Presentation ppt
Heat Resistant Concrete Presentation ppt
 
Embedded machine learning-based road conditions and driving behavior monitoring
Embedded machine learning-based road conditions and driving behavior monitoringEmbedded machine learning-based road conditions and driving behavior monitoring
Embedded machine learning-based road conditions and driving behavior monitoring
 
A SYSTEMATIC RISK ASSESSMENT APPROACH FOR SECURING THE SMART IRRIGATION SYSTEMS
A SYSTEMATIC RISK ASSESSMENT APPROACH FOR SECURING THE SMART IRRIGATION SYSTEMSA SYSTEMATIC RISK ASSESSMENT APPROACH FOR SECURING THE SMART IRRIGATION SYSTEMS
A SYSTEMATIC RISK ASSESSMENT APPROACH FOR SECURING THE SMART IRRIGATION SYSTEMS
 
PPT on GRP pipes manufacturing and testing
PPT on GRP pipes manufacturing and testingPPT on GRP pipes manufacturing and testing
PPT on GRP pipes manufacturing and testing
 
Technical Drawings introduction to drawing of prisms
Technical Drawings introduction to drawing of prismsTechnical Drawings introduction to drawing of prisms
Technical Drawings introduction to drawing of prisms
 
Iron and Steel Technology Roadmap - Towards more sustainable steelmaking.pdf
Iron and Steel Technology Roadmap - Towards more sustainable steelmaking.pdfIron and Steel Technology Roadmap - Towards more sustainable steelmaking.pdf
Iron and Steel Technology Roadmap - Towards more sustainable steelmaking.pdf
 
Advanced control scheme of doubly fed induction generator for wind turbine us...
Advanced control scheme of doubly fed induction generator for wind turbine us...Advanced control scheme of doubly fed induction generator for wind turbine us...
Advanced control scheme of doubly fed induction generator for wind turbine us...
 
Wearable antenna for antenna applications
Wearable antenna for antenna applicationsWearable antenna for antenna applications
Wearable antenna for antenna applications
 
Understanding Inductive Bias in Machine Learning
Understanding Inductive Bias in Machine LearningUnderstanding Inductive Bias in Machine Learning
Understanding Inductive Bias in Machine Learning
 
sieving analysis and results interpretation
sieving analysis and results interpretationsieving analysis and results interpretation
sieving analysis and results interpretation
 
Low power architecture of logic gates using adiabatic techniques
Low power architecture of logic gates using adiabatic techniquesLow power architecture of logic gates using adiabatic techniques
Low power architecture of logic gates using adiabatic techniques
 
Recycled Concrete Aggregate in Construction Part III
Recycled Concrete Aggregate in Construction Part IIIRecycled Concrete Aggregate in Construction Part III
Recycled Concrete Aggregate in Construction Part III
 
132/33KV substation case study Presentation
132/33KV substation case study Presentation132/33KV substation case study Presentation
132/33KV substation case study Presentation
 
Literature Review Basics and Understanding Reference Management.pptx
Literature Review Basics and Understanding Reference Management.pptxLiterature Review Basics and Understanding Reference Management.pptx
Literature Review Basics and Understanding Reference Management.pptx
 
Swimming pool mechanical components design.pptx
Swimming pool  mechanical components design.pptxSwimming pool  mechanical components design.pptx
Swimming pool mechanical components design.pptx
 
KuberTENes Birthday Bash Guadalajara - K8sGPT first impressions
KuberTENes Birthday Bash Guadalajara - K8sGPT first impressionsKuberTENes Birthday Bash Guadalajara - K8sGPT first impressions
KuberTENes Birthday Bash Guadalajara - K8sGPT first impressions
 
bank management system in java and mysql report1.pdf
bank management system in java and mysql report1.pdfbank management system in java and mysql report1.pdf
bank management system in java and mysql report1.pdf
 

ch13_extsort.ppt

  • 1. Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke 1 External Sorting Chapters 13: 13.1—13.5
  • 2. Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke 2 Why Sort?  A classic problem in computer science (See Knuth, v.3)!  Data requested in sorted order  e.g., find students in increasing gpa order  Sorting is first step in bulk loading B+ tree index.  Sorting useful for eliminating duplicate copies in a collection of records (Why?)  Sort-merge join algorithm involves sorting.  Problem: sort 1Gb of data with 1Mb of RAM.  why not virtual memory?
  • 3. Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke 3 2-Way Merge Sort: Requires 3 Buffers  Pass 1: Read a page, sort it (in memory), write it.  only one buffer page is used  Pass 2, 3, …, etc.:  three buffer pages used. Main memory buffers INPUT 1 INPUT 2 OUTPUT Disk Disk
  • 4. Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke 4 2-Way Merge Sort: Algorithm proc two-way_extsort(file) // Given a file on disk, sort it using 3 buffer pages //Pass 0: produce 1-page runs Read each page of file into memory, sort it, and write it out. //Merge pairs of runs to produce longer runs until 1 run is left While # of runs at end of previous pass > 1 do: //Process passes i=1,2,… While there are runs to be merged from previous pass do: Pick next 2 runs from previous pass. Reach read each run into an input buffer, 1 page at a time. Merge the runs and write result to the output buffer by forcing output buffer to disk one page at a time. endproc
  • 5. Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke 5 Two-Way External Merge Sort  Each pass we read + write each page in file => 2N I/O’s per pass.  N pages in the file => the number of passes  So total cost is:  Idea: Divide and conquer: sort subfiles and merge  Input file contains 7 pages; dark pages shows what would happen with 8 pages.     log2 1 N     2 1 2 N N log  Input file 1-page runs 2-page runs 4-page runs 8-page runs PASS 0 PASS 1 PASS 2 PASS 3 9 3,4 6,2 9,4 8,7 5,6 3,1 2 3,4 5,6 2,6 4,9 7,8 1,3 2 2,3 4,6 4,7 8,9 1,3 5,6 2 2,3 4,4 6,7 8,9 1,2 3,5 6 1,2 2,3 3,4 4,5 6,6 7,8
  • 6. Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke 6 General External Merge Sort  To sort a file with N pages using B buffer pages:  Pass 0: use B buffer pages. Produce sorted runs of B pages each.  Pass 2, …, etc.: merge B-1 runs.   N B / B Main memory buffers INPUT 1 INPUT B-1 OUTPUT Disk Disk INPUT 2 . . . . . . . . . * More than 3 buffer pages. How can we utilize them?
  • 7. Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke 7 General External Merge Sort: Algorithm proc extsort(file) // Given a file on disk, sort it using B buffer pages //Pass 0: produce B-pages runs Read B pages of file into memory, sort them, and write them out. //Merge B-1 runs to produce longer runs until 1 run is left While # of runs at end of previous pass > 1 do: //Process passes i=1,2,… While there are runs to be merged from previous pass do: Pick next B-1 runs from previous pass. Reach read each run into an input buffer, 1 page at a time. Merge the runs and write result to the output buffer by forcing output buffer to disk one page at a time. endproc
  • 8. Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke 8 Cost of External Merge Sort  Number of passes:  Cost = 2N * (# of passes)  E.g., with 5 buffer pages, to sort 108 page file:  Pass 0: = 22 sorted runs of 5 pages each (last run is only 3 pages)  Pass 1: = 6 sorted runs of 20 pages each (last run is only 8 pages)  Pass 2: 2 sorted runs, 80 pages and 28 pages  Pass 3: Sorted file of 108 pages     1 1   log / B N B   108 5 /   22 4 /
  • 9. Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke 9 Number of Passes of External Sort N B=3 B=5 B=9 B=17 B=129 B=257 100 7 4 3 2 1 1 1,000 10 5 4 3 2 2 10,000 13 7 5 4 2 2 100,000 17 9 6 5 3 3 1,000,000 20 10 7 5 3 3 10,000,000 23 12 8 6 4 3 100,000,000 26 14 9 7 4 4 1,000,000,000 30 15 10 8 5 4
  • 10. Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke 10 I/O for External Merge Sort  … longer runs often means fewer passes!  Actually, do I/O a page at a time  In fact, read a block of pages sequentially!  Suggests we should make each buffer (input/output) be a block of pages.  But this will reduce fan-out during merge passes!  In practice, most files still sorted in 2-3 passes.  Typical DBMSs sort 1M records of size 100 bytes in 15 minutes
  • 11. Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke 11 Number of Passes of Optimized Sort N B=1,000 B=5,000 B=10,000 100 1 1 1 1,000 1 1 1 10,000 2 2 1 100,000 3 2 2 1,000,000 3 2 2 10,000,000 4 3 3 100,000,000 5 3 3 1,000,000,000 5 4 3 * Block size = 32, initial pass produces runs of size 2B.
  • 12. Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke 12 Double Buffering  To reduce wait time for I/O request to complete, can prefetch into `shadow block’.  Potentially, more passes; in practice, most files still sorted in 2-3 passes. OUTPUT OUTPUT' Disk Disk INPUT 1 INPUT k INPUT 2 INPUT 1' INPUT 2' INPUT k' block size b B main memory buffers, k-way merge
  • 13. Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke 13 Using B+ Trees for Sorting  Scenario: Table to be sorted has B+ tree index on sorting column(s).  Idea: Can retrieve records in order by traversing leaf pages.  Is this a good idea?  Cases to consider:  B+ tree is clustered Good idea!  B+ tree is not clustered Could be a very bad idea!
  • 14. Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke 14 Clustered B+ Tree Used for Sorting  Cost: root to the left- most leaf, then retrieve all leaf pages (Alternative 1)  If Alternative 2 is used? Additional cost of retrieving data records: each page fetched just once. * Always better than external sorting! (Directs search) Data Records Index Data Entries ("Sequence set")
  • 15. Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke 15 Unclustered B+ Tree Used for Sorting  Alternative (2) for data entries; each data entry contains rid of a data record. In general, one I/O per data record! (Directs search) Data Records Index Data Entries ("Sequence set")
  • 16. Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke 16 Summary  External sorting is important; DBMS may dedicate part of buffer pool for sorting!  External merge sort minimizes disk I/O cost:  Pass 0: Produces sorted runs of size B (# buffer pages). Later passes: merge runs.  # of runs merged at a time depends on B, and block size.  Larger block size => smaller # runs merged.  Clustered B+ tree is good for sorting; unclustered tree is usually very bad.