Explain the external sort-merge algorithm with suitable example.

 External Sort-Merge Algorithm

Sorting of relations that do not fit in memory is called external sorting. The most commonly used technique for external sorting is the external sort-merge algorithm. Let M denote memory size (in pages).

1. Create sorted runs. Initialize i=0.

Repeat the following till the end of the relation (Let the final value of i be N)

a) Read M blocks of relation into memory

b) Sort the in-memory blocks

c) Write sorted data to run R

d) i=i+1


2.. Merge the runs (N-way merge). We assume that N<M. 

Use N blocks of memory to buffer input runs (one block per run), and one block to buffer output.

b. Repeat the following steps until all input buffer pages are empty:

i. Select the first record (in sort order) among all buffer pages 

ii. Write the record to the output buffer. If the output buffer is full write it to disk. 

iii. Delete the record from its input buffer page. If the buffer page becomes empty then read the next block (if any) of the run into the buffer.


Figure: External sorting using sort-merge.

The figure illustrates the steps of the external sort-merge for an example relation. For illustration purposes, we assume that only one tuple fits in a block (f, = 1), and we assume that memory holds at most three blocks. During the merge stage, two blocks are used for input and one for output.


Cost Analysis of external Sort-Merge

Let br denote the number of blocks containing records of relation r. The initial number of runs =[br/M].

Since the number of runs decreases by a factor of M. 1 in each merge pass;

Comments

Popular posts from this blog

Suppose that a data warehouse for Big-University consists of the following four dimensions: student, course, semester, and instructor, and two measures count and avg_grade. When at the lowest conceptual level (e.g., for a given student, course, semester, and instructor combination), the avg_grade measure stores the actual course grade of the student. At higher conceptual levels, avg_grade stores the average grade for the given combination. a) Draw a snowflake schema diagram for the data warehouse. b) Starting with the base cuboid [student, course, semester, instructor], what specific OLAP operations (e.g., roll-up from semester to year) should one perform in order to list the average grade of CS courses for each BigUniversity student. c) If each dimension has five levels (including all), such as “student < major < status < university < all”, how many cuboids will this cube contain (including the base and apex cuboids)?

Suppose that a data warehouse consists of the four dimensions; date, spectator, location, and game, and the two measures, count and charge, where charge is the fee that a spectator pays when watching a game on a given date. Spectators may be students, adults, or seniors, with each category having its own charge rate. a) Draw a star schema diagram for the data b) Starting with the base cuboid [date; spectator; location; game], what specific OLAP operations should perform in order to list the total charge paid by student spectators at GM Place in 2004?

Discuss classification or taxonomy of virtualization at different levels.