Abstract: A data backup system implements coordination between a Database Server and a Backup Server to produce a recoverable database dump. By utilizing a technique referred to as stripe affinity, a mechanism is disclosed for ensuring the integrity of a database backup made to multiple archive devices simultaneously. In addition, by utilizing stripe affinity, archived data may be reloaded from fewer archive devices than were used to make the original backup.A task scheduler mechanism allocates processor time among the tasks that comprise the backup system. In this way the I/O service tasks can process their event queues while the current set of allocation pages are also being processed.
Abstract: Database system and methods are described for improving execution speed of database queries (e.g., for decision support) by optimizing execution of nested queries or "subqueries," such as are commonly used in client/server database environments. In particular, a subquery cache is provided having a size which can be dynamically adjusted by the system during execution of the query, for achieving an optimal cache size. During execution of the subquery, the system keeps statistics on cache "hits" and "misses." Specifically, the system stores a count of the number of times a row is found in the cache (i.e., a "hit") as well as a count of the number of times a scan of the cache yields no "hit" (i.e., a "miss"). Also, a maximum LRU (least-recently used) depth of the deepest hit in the cache is also tracked. This tracks how deep (i.e., the deepest row) into the cache there has been a "hit.
Abstract: A server performs an indexing method of data management to create and maintain indexes more efficiently than existing indexing approaches. The server is disposed between an application program and a DBMS and is coupled to a data base located within the DBMS. The data base has an ordered set of data values stored in memory. Each data value has a bit pattern and an identifier associated therewith. The server creates a plurality of bit vectors such that the number of bit vectors created equals the longest length bit pattern for the values. The server accesses one of the values stored in the data base. Each bit of the bit pattern for the value is then assigned by the server to a unique position in successive bit vectors. The bits are assigned to identical unique positions in each of the successive bit vectors. The server repeats the above-described accessing and assigning steps for each remaining value of the set to form an index of bit vectors for the values.
Abstract: Database system and methods are described for maintenance of B-Tree indexes, such as are commonly used in a relational database environment. "Load patterns" are monitored, for optimizing B-Tree node splitting, based on a particular load pattern's effect on B-Tree growth. More particularly, an "ascending insert" load pattern--that is, the insertion of data records for a multi-column table where the particular records to be inserted have a fixed value for the first column and a monotonically increasing value for the subsequent column(s)--can be identified and optimized. Methods are described for splitting the B-Tree nodes or pages, not at the half-way point, but instead exactly at the point of insertion, a position where the insert row would have gone into the page (had it not overflowed).
Abstract: Method and arrangement for dynamic, run-time alteration of pre-set variable space relationships by run-time GUI modification of object connections associated with the variable spaces. Arbitrary linkages between all variable spaces are established prior to runtime to allow initial conditions for variable resolution irrespective of anticipated or actual object connections. Thus all variables associated with objects are prespecified and provided with initial values, so long as a value has been assigned to the variable in some object. When actual object relationships are indicated at run-time, these effect new variable space linkages. The initial and subsequent linkages are effected with pointer addresses within the respective variable spaces.
Abstract: Method and arrangement for dispatching messages between instance specific dispatch tables of objects, when a particular object does not have resident the method called for execution in response to a message directed toward it. When a message is sent to a first object and the method called for execution is not resident or associated with the first object, the first object may expressly reference another object of the same class which may contain the required method. The message is according dispatched to another instance specific dispatch table associated with an object which may be able to execute the method called for by the message initially transmitted. Upward chaining between instance, class, and superclass level dispatch tables, and method supercalls canceling the effect of method overriding by instance level methods are included in the method and arrangement.
Abstract: A database management system is provided for security of database objects. These objects may be passive elements such as tables, rows, views, the databases themselves, etc., or they may be executable items such as stored procedures or triggers. A mechanism is provided for "certifying" that certain types of objects such as stored procedures, triggers, and views can be safely used to access other, sensitive objects in the database. Certification indicates that (1) a security officer has evaluated and certified the object, and (2) the now certified object has not undergone a defined security-relevant change since certification. Certification is particularly important in the context of a "trusted" stored procedure or a "trusted" stored trigger. "Trusted" executable objects can be executed at sensitivity levels that exceed that of a user or subject. Thus, the subject may use a trusted stored procedure or trigger to access certain objects having higher sensitivity levels than his or her own.
Abstract: Method and system for distributing prefragmented data processing loads in a fault tolerant system linked in a ring topology of disk subsystems and data processing nodes. The data processing load of the node under fault is shifted in one direction along the ring, and adjacent nodes in the same direction along the ring successively shift their entire data processing loads to their immediately adjacent data processing nodes. The adjacent data processing nodes in the non-shifted direction absorb increased workloads by one net data fragment each until the entire data processing load of the data processing node under fault is absorbed.
Abstract: A method for ensuring reliable interactions between principals within a database or between databases. The method involves the creation of database contracts which are, in essence, binding constraints on the behavior of entities within a database system that can be enforced by the system. A database contract is formed when two or more principals agree on the terms and conditions of the contract, and a monitor puts in to place the constraints necessary to enforce the agreed-upon terms and conditions after determining that each of the principals has the requisite authority and ability to carry out the contract.
Abstract: Method and system for dispatching a message to an alternate object upon its failure to find a required method at the object to which originally sent. The method and system employ the technique of using alternate dispatch variables which can be provided with values naming the alternate objects to which the messages are to be dispatched upon failure of execution at the local object. The alternate object toward which the message is dispatched may contain a method required for execution by a message sent to a first object, but which is unfulfilled by absence of the desired method in the first object. The class of the first object establishes alternate dispatch variables which can be set at run-time by a user making entries in a graphical user interface (GUI) effective to cause redispatch of the message to the alternate object.
Abstract: A data backup system implements coordination between a Database Server and a Backup Server to produce a recoverable database dump. By utilizing a technique referred to as stripe affinity, a mechanism is disclosed for ensuring the integrity of a database backup made to multiple archive devices simultaneously. In addition, by utilizing stripe affinity, archived data may be reloaded from fewer archive devices than were used to make the original backup. A task scheduler mechanism allocates processor time among the tasks that comprise the backup system. In this way the I/O service tasks can process their event queues while the current set of allocation pages are also being processed.