摘要:
XML schema evolutions can be performed on an XML-type database using partial data copy techniques. The partial data copy techniques provide mechanisms to identify a minimal set of data in the database that needs be copied out in order for schema evolution operations to occur. Identifying the minimal set of data involves comparing an existing XML schema to a new XML schema and determining the differences between the two schemas. Based on those differences, a minimal set of data can be determined. That data can then be copied to a temporary storage location, while the XML schema and its associated database structure are updated to conform to the new XML schema. Then, the minimal set of data is copied back into the modified database structure.
摘要:
A two-level cache to facilitate resolving resource path expressions for a hierarchy of resources is described, which includes a system-wide shared cache and a session-level cache. The shared cache is organized as a hierarchy of hash tables that mirrors the structure of a repository hierarchy. A particular hash table in a shared cache includes information for the child resources of a particular resource. A database management system that manages a shared cache may control the amount of memory used by the cache by implementing a replacement policy for the cache based on one or more characteristics of the resources in the repository. The session-level cache is a single level cache in which information for target resources of resolved path expressions may be tracked. In the session-level cache, the resource information is associated with the entire path expression of the associated resource.
摘要:
Techniques for estimating the cost of processing a database statement that includes one or more path expressions are provided. One aspect of cost is I/O cost, or the cost of reading data from persistent storage into memory according to a particular streaming operator. Binary-encoded XML data is stored in association with a synopsis that summarizes the binary-encoded XML data. The synopsis includes skip length information for one or more elements and indicates, for each such element, how large (e.g., in bytes) the element is in storage. The skip length information of a particular element thus indicates how much data may be skipped during I/O if the particular element does not match the path expression that is input to the streaming operator. The skip length information of one or more elements is used to estimate the cost of processing the database statement.
摘要:
Efficient evaluation of resource version history queries is enabled by using a data container storing records corresponding to links between successive versions of a resource. The records include: (a) a record identifier, (b) a predecessor identifier, (c) a successor identifier, (d) a predecessor rowset, which comprises the record identifier of each record in which the predecessor identifier in this record is the successor identifier, and (e) a successor rowset, which comprises the record identifier of each record in which the successor identifier in this record is the predecessor identifier. Depending on the nature of a request, a record is identified in which a particular version is identified by either the predecessor identifier or the successor identifier. Either the predecessor or successor rowsets are recursively read, while the predecessor or successor identifiers corresponding to each record read are added to a result set, thereby forming the ancestor or descendant version history.
摘要:
A method and apparatus for processing a file system operation at a database server is provided. A request to perform a file system operation on a resource stored in a database is received at a database system. The request may be implemented using the NFS protocol. The request may include state identification data that identifies state information associated with the request. State information associated with the request is retrieved within the database system based on the state identification data. State information is information that describes the operational state of the requestor for a particular file. The request is then processed based, at least in part, on the state identification. File system operations may be processed a database management system to access any data, such as a file, relational data, and object-relational data.
摘要:
Techniques are described for preserving the original insignificant white space of XML data. The techniques may be used in combination with compact XML data storage formats, such as binary XML, to preserve the insignificant white space without requiring as much storage space as uncompressed formats. White space opcodes/operand pairs are described for representing white space characters and white space patterns. The white space opcode/operand pairs represent the white space in binary XML, are use to generate the original white space when the binary XML is decoded back to textual XML data.
摘要:
A method and apparatus for providing file system operation locks at a database server is provided. A database server may employ database locks and file system operation locks in servicing requests from consistent requestors and inconsistent requesters. A database lock is a lock that is obtained in response to performing a database operation, and the database lock is released when the database operation has successfully completed. A file system operation lock is a lock that is obtained in response to performing an OPEN file system operation, and the file system operation lock is released when a CLOSE file system operation is performed. The database server may use a temporary copy of the resource, which reflects all the current changes that have been made to the resource by database operations, in servicing consistent requestors, and may use the original version of the resource in servicing inconsistent requesters.
摘要:
A version history of each of a plurality of resources is stored in a table. The version history for each resource comprises a set of one or more values for the resource, wherein each value in the version history of a resource indicates the value that the resource had in a particular version of the resource. In response to a request to perform an operation that causes a given resource that is subject to a uniqueness constraint to have a particular value, it is determined whether the uniqueness constraint is violated based on whether any version of any resource other than the given resource has the particular value. The uniqueness constraint is determined to be violated if any version of any resource other than the given resource has the particular value. The uniqueness constraint is not violated by existence of a version of the given resource that has the particular value.
摘要:
A method and apparatus for performing network file system (NFS) operations across a plurality of servers is provided. At a first server, a filehandle for a particular file is generated based, at least in part, on an identifier that uniquely identifies the particular file relative to all other files within a file system repository. The file system repository may be implemented in a database. The identifier may also be stored in the database. The first server sends a client the filehandle. The client may thereafter send another request for the performance of a file operation, containing the filehandle, to a different server. The second server may read the filehandle and use the identifier to locate the file within the repository against which to perform the file operation without receiving, from the first server, information that associates the filehandle with the file.
摘要:
A mechanism for querying a label-aware index in the context of versioning is provided. The key of the label-aware index is a composite key and includes a unique label identifier, corresponding to a specific label, and the key of the original index, which key itself may be a composite key. The label-aware index may be implemented as an index-organized table. The label-aware index is organized on disk first by the label identifier and then by the original index key so that queries of versions of resources within a particular label are as efficient as queries on an index of an unversioned repository with the same number of resources.