Top-nodes algorithm

The top-nodes algorithm is an algorithm for managing a resource reservation calendar.[1]

It is used when a resource is shared among lots of users (for example bandwidth in a telecommunication link, or disk capacity in a large data center).

The algorithm allows

Principle

The calendar is stored as a binary tree where leaves represent elementary time periods. Other nodes represent the period of time covered by all their descendants.

Example of a 7-hour calendar (with elementary periods of one hour)

The period of time covered by a reservation is represented by a set of "top-nodes". This set is the minimal set of nodes that exactly cover the reservation period of time.

A node of the binary tree is a "top-node" for a given reservation if

and

Top-nodes for a reservation from 1:00 to 5:59

The following value is stored in each node:

q(node) = max(q(left child), q(right child))
          + total amount of reserved resource for all reservations having this node as a "top-node"

(for code optimization, the two parts of this sum are usually stored separately.)

Performance

The advantage of this algorithm is that the time to register a new resource reservation depends only on the calendar size (it does not depend on the total number of reservations).

Let "n" be the number of elementary periods in the calendar.

The maximal number of "top-nodes" for a given reservation is 2.log n.

where M is the number of reservations that are active during the added calendar periods.

(M = 0 if reservations are not allowed after the end of the calendar.)

External links

References

  1. Related US patent
This article is issued from Wikipedia - version of the Monday, March 16, 2015. The text is available under the Creative Commons Attribution/Share Alike but additional terms may apply for the media files.