Approach for accessing large objects
First Claim
1. A method for accessing large objects (LOBs) that belong to a column of a table, the method comprising the steps of:
- building an index on the column, the index including index entries that contain pointers to blocks containing LOB data associated with the LOBs;
if a first parameter is set to a first value, then storing a locator for each LOB in the table, wherein each locator includes a LOB identifier and a version number for a corresponding LOB; and
storing LOB data for each LOB out of the table;
if the first parameter is set to a second value, then storing a locator for each LOB in the table; and
storing LOB data in the table for at least a subset of the LOBs that belong to the column.
1 Assignment
0 Petitions
Accused Products
Abstract
A method and system for accessing a large object (LOB) that belongs to a cell in a table are provided. An index is built on a column in which the cell resides. The index has a key that includes a LOB identifier. A database server receives from a client a request to access the LOB. The server uses a LOB identifier value for the LOB to traverse the index to locate an index entry for the LOB. The server then follows address information contained in the index entry to a storage containing at least a portion of the LOB and accesses the portion of the LOB as specified in the request. A method and system for tracking storage for data items are also disclosed. Within an index that is built to access the data items are stored both index entries for locating blocks that store current versions of the data items, and index entries for locating blocks that store non-current versions of the data items.
128 Citations
18 Claims
-
1. A method for accessing large objects (LOBs) that belong to a column of a table, the method comprising the steps of:
-
building an index on the column, the index including index entries that contain pointers to blocks containing LOB data associated with the LOBs;
if a first parameter is set to a first value, then storing a locator for each LOB in the table, wherein each locator includes a LOB identifier and a version number for a corresponding LOB; and
storing LOB data for each LOB out of the table;
if the first parameter is set to a second value, then storing a locator for each LOB in the table; and
storing LOB data in the table for at least a subset of the LOBs that belong to the column. - View Dependent Claims (2)
storing the LOB data in the table for LOBs that have LOB data smaller than a specified size threshold; and
storing the LOB data out of the table for LOBs that have LOB data greater than the specified size threshold.
-
-
3. A computer-readable medium carrying one or more sequences of one or more instructions for accessing large objects (LOBs) that belong to a column of a table, the one or more sequences of one or more instructions including instructions which, when executed by one or more processors, cause the one or more processors to perform the steps of:
-
building an index on the column, the index including index entries that contain pointers to blocks containing LOB data associated with the LOBs;
if a first parameter is set to a first value, then storing a locator for each LOB in the table, wherein each locator includes a LOB identifier and a version number for a corresponding LOB; and
storing LOB data for each LOB out of the table;
if the first parameter is set to a second value, then storing a locator for each LOB in the table; and
storing LOB data in the table for at least a subset of the LOBs that belong to the column. - View Dependent Claims (4)
storing the LOB data in the table for LOBs that have LOB data smaller than a specified size threshold; and
storing the LOB data out of the table for LOBs that have LOB data greater than the specified size threshold.
-
-
5. A database server configured to manage large objects (LOBs) that belong to a column of a table by:
-
building an index on the column, the index including index entries that contain pointers to blocks containing LOB data associated with the LOBs;
if a first parameter is set to a first value, then storing a locator for each LOB in the table, wherein each locator includes a LOB identifier and a version number for a corresponding LOB; and
storing LOB data for each LOB out of the table;
if the first parameter is set to a second value, then storing a locator for each LOB in the table; and
storing LOB data in the table for at least a subset of the LOBs that belong to the column. - View Dependent Claims (6)
storing the LOB data in the table for LOBs that have LOB data smaller than a specified size threshold; and
storing the LOB data out of the table for LOBs that have LOB data greater than the specified size threshold.
-
-
7. A method for accessing large objects (LOBs) that belong to a column of a table, the method comprising the steps of:
-
building an index on the column, the index including index entries that contain pointers to blocks containing LOB data associated with the LOBs;
storing a locator for each LOB in the table, wherein each locator includes a LOB identifier and a version number for a corresponding LOB; and
storing within at least one cell in the column a plurality of pointers, where each pointer of the plurality of pointers points to a LOB chunk of a LOB that belongs to the cell. - View Dependent Claims (8, 9, 10)
the plurality of pointers point to a subset of LOB chunks of the LOB; and
the index contains one or more index entries that include pointers to the LOB chunks of the LOB that do not belong to the subset of LOB chunks.
-
-
9. The method as recited in claim 8, further comprising the steps of:
-
receiving a request to access a particular chunk of the LOB;
if the particular chunk belongs to the subset of LOB chunks, then following a pointer in the cell to the particular chunk; and
if the particular chunk does not belong to the subset of LOB chunks, then following a pointer in an index entry of the index to the particular chunk.
-
-
10. The method as recited in claim 8, wherein the LOB has a beginning and an end, and wherein the plurality of pointers point to a predetermined number of LOB chunks at the beginning of the LOB.
-
11. A computer-readable medium carrying one or more sequences of one or more instructions for accessing large objects (LOBs) that belong to a column of a table, the one or more sequences of one or more instructions including instructions which, when executed by one or more processors, cause the one or more processors to perform the steps of:
-
building an index on the column, the index including index entries that contain pointers to blocks containing LOB data associated with the LOBs;
storing a locator for each LOB in the table, wherein each locator includes a LOB identifier and a version number for a corresponding LOB; and
storing within at least one cell in the column a plurality of pointers, where each pointer of the plurality of pointers points to a LOB chunk of a LOB that belongs to the cell. - View Dependent Claims (12, 13, 14)
the plurality of pointers point to a subset of LOB chunks of the LOB; and
the index contains one or more index entries that include pointers to the LOB chunks of the LOB that do not belong to the subset of LOB chunks.
-
-
13. The computer-readable medium as recited in claim 12, further comprising one or more additional instructions which, when executed by the one or more processors, cause the one or more processors to perform the steps of:
-
receiving a request to access a particular chunk of the LOB;
if the particular chunk belongs to the subset of LOB chunks, then following a pointer in the cell to the particular chunk; and
if the particular chunk does not belong to the subset of LOB chunks, then following a pointer in an index entry of the index to the particular chunk.
-
-
14. The computer-readable medium as recited in claim 12, wherein the LOB has a beginning and an end, and wherein the plurality of pointers point to a predetermined number of LOB chunks at the beginning of the LOB.
-
15. A database server configured to provide access to large objects (LOBs) that belong to a column of a table by:
-
building an index on the column, the index including index entries that contain pointers to blocks containing LOB data associated with the LOBs;
storing a locator for each LOB in the table, wherein each locator includes a LOB identifier and a version number for a corresponding LOB; and
storing within at least one cell in the column a plurality of pointers, where each pointer of the plurality of pointers points to a LOB chunk of a LOB that belongs to the cell. - View Dependent Claims (16, 17, 18)
the plurality of pointers point to a subset of LOB chunks of the LOB; and
the index contains one or more index entries that include pointers to the LOB chunks of the LOB that do not belong to the subset of LOB chunks.
-
-
17. The database server as recited in claim 16, further configured to:
-
receive a request to access a particular chunk of the LOB;
if the particular chunk belongs to the subset of LOB chunks, then follow a pointer in the cell to the particular chunk; and
if the particular chunk does not belong to the subset of LOB chunks, then follow a pointer in an index entry of the index to the particular chunk.
-
-
18. The database server as recited in claim 16, wherein the LOB has a beginning and an end, and wherein the plurality of pointers point to a predetermined number of LOB chunks at the beginning of the LOB.
Specification