EP0453707A2

Method and means for managing space re-use in a shadow written B-tree via free space lists.

Abstract

A method for managing space re-use with respect to the indices (nodes) of shadow written tree organized dynamic random accessed files/records/pages located in the external store of a CPU. The method reserves space in all non-leaf nodes and maintains a list of available node addresses. When a new node is required then space, if available, is obtained from the parent node list. Only when the parent list becomes exhausted is space (node) obtained from a node inventory manager. Deletion of a node causes its address to be placed on the free or available list maintained by that node's parent. If there is no space, then space on the parent node list is obtained by returning to the inventory manager that node on the list having the least locality with the existing subordinate (children) nodes of the parent.

EP0453707A2, drawing sheet 1
Sheet 1 of 7

Term

Term ended

Projected expiry passed 18 January 2011, 15.7 years ago.

  1. Priority
  2. Filed
  3. Published
  4. Projected expiry
  5. Today

10 claims: 4 independent, 6 dependent

  1. 1
    A method for managing space re-use with respect to the key oriented, tree organized indices of dynamic random accessible files, said indices and files being located in and shadow written to a external store of a CPU,    each index having a root node, interior nodes, and exterior nodes, all keys to the files appearing in the exterior nodes, all interior nodes including routing pointers and synchronization values to external nodes, said interior nodes being either split or combined so as to avoid under and overflow of the bounded space allocated to said interior nodes,    said CPU having resource managers including a manager of assignable nodes,    the method comprising the steps of:(a) reserving storage space associated with all interior nodes and maintaining a list of available node addresses;(b) responsive to the creation of a new node, obtaining storage space, if available, from the list of an interior node operative as a parent node to the new node, otherwise obtaining space from the node manager;(c) responsive to deletion of a node, causing the address of the deleted node to be placed on the free or available list maintained by an interior node operative as the parent to the deleted node, otherwise, returning to the node manager that node on the list maintained by the parent node having the least locality with the existing subordinate nodes of the parent node;and(d) responsive to either creating or deleting a node, updating changes to the indices and to lists as an indivisible constituent of steps (b) or (c).
  2. 2
    A CPU implemented method for managing insertion and deletion of elements in B-tree organized key oriented indices of files defined and shadow written onto a system managed storage (SMS) portion of a computing system, said SMS establishing index lockable paths to said files,    each B-tree index including a root node, interior nodes, and exterior nodes, all keys to the files appearing in the exterior nodes (leaves), all interior (non-leaf) nodes including routing pointers and synchronization values, said nodes being split (split ops) or combined (join ops) in order to avoid overflow or underflow of nodes whose associated number of elements is bounded,    said method being of the type wherein updating or deletion of any file results in the alteration of the synchronized values of nodes in the access paths to those external nodes containing keys to the updated file,    the method comprising the steps of:(a) defining leaf search B-tree access paths over SMS;(b) defining bounded free space lists over the non-leaf nodes of said B-tree;and(c) responsive to dynamic change in B-tree join and split ops in avoidance of under and overflow, re-using the space assigned to a node (predecessor) of extinguished subordinate nodes (successors), whereby contiguity of leaf nodes in SMS is maintained.
  3. 9
    A CPU implemented method for node insertion of elements in B-tree organized key oriented indices of files defined and shadow written onto a system managed storage (SMS) portion of a computing system, said SMS establishing index lockable paths to said files,    each B-tree index including a root node, interior nodes, and exterior nodes, all keys to the files appearing in the exterior nodes (leaves), all interior (non-leaf) nodes including routing pointers and synchronization values, said nodes being split (split ops) or combined (join ops) in order to avoid overflow or underflow of nodes whose associated information capacity is bounded,    updating or deletion of any file resulting in the alteration of the synchronized values of nodes in the access paths to those external nodes containing keys to the updated file , comprising the steps of:(a) ascertaining the node to which a new element is to be appended and locking the update scope (minimal subtree defining path from deepest safe interior node to the ascertained node);(b) ascertaining whether insertion of the new element would result in information overflow at the ascertained node, and(1) either appending the new element to the ascertained node and writing the update in place in the absence of overflow, or(2) replacing the ascertained node with a pair of nodes including the appended new element, writing said pair of nodes to new locations in the SMS, inserting new routing pointers and synchronization values in a predecessor node having less than (m-1) elements assigned thereto, and writing said predecessor node in place in the SMS, said node pair having respectively m/2 and the remaining elements, said replacement step including ascertaining whether a node is available in the free space list appending said nodes predecessor, and if not available, obtaining the same from the SMS.
  4. 10
    In a computer system having:(a) a processor including an operating system defining a functional computer system image;and(b) a subsystem coupling said processor including means for storing and shadow writing B-tree organized key oriented indices and files, and a systems storage manager (SMS) for establishing an index lockable paths to said files and for managing storage space use and allocation within said subsystem, each B-tree index hin said subsystem including a root node, interior nodes, and exterior nodes, all keys to the files appearing in the exterior nodes (leaves), all interior (non-leaf) nodes including routing pointers and synchronization values, and each interior node having an upper bound of elements capable of being associated therewith, an improvement comprising:(c) means for updating or deleting any file resulting in the alteration of the synchronized values of nodes in the access paths to those external nodes containing keys to the updated file;(d) means responsive to updating or deleting of any file for effectuating said nodes being split (split ops) or combined (join ops) in order to avoid overflow or underflow of nodes in the bounded space associated therewith;(e) means for defining leaf search B-tree access paths over said subsystem;(f) means for defining bounded free space lists over the non-leaf nodes of said B-tree;and(g) means responsive to dynamic change in B-tree join and split ops in avoidance of under and overflow, for re-using the space assigned to a node (predecessor) of extinguished subordinate nodes (successors), and for updating changes to the indices and to indicia of space usage as included steps within an atomic operation whereby contiguity of leaf nodes in the subsystem is maintained.