1461128266-b741f506-4a36-44df-846e-2f6d83948da7

What is claimed is:

1. A method for generating a replacement value associated with a data cell of a multidimensional cube representing multidimensional data stored in relational tables, the method comprising the steps of:
generating a tile position that represents a position of a tile in which the cell resides relative to other tiles within the multidimensional cube;
generating a local position that represents a position of the cell relative to other cells within the tile in which the cell resides; and
generating a replacement value based on the tile position value and the local position value.
2. The method of claim 1, wherein the step of generating a replacement value comprises:
generating a single tile number based on the tile position; and
generating a single offset number based on the local position.
3. The method of claim 2, further comprising the step of:
storing within a single row of an index-only table, at least the particular cell value, and
the tile number associated with the particular cell value.
4. The method of claim 1, further comprising the step of:
representing the tile and zero or more other tiles that are associated with a particular range of dimension key values as a key-range partition of a fact table associated with the multidimensional data.
5. The method of claim 1, wherein the step of generating a tile position comprises the step of:
generating a tile position that includes a tile coordinate value for each dimension associated with the two or more dimension key values, wherein each tile coordinate value qj is equal to
xj DIV Tj;
wherein xj represents a respective global coordinate position of the cell within a respective dimension j; and
wherein Tj represents a number of dimension key values spanned by the tile along the respective dimension j.
6. The method of claim 5, wherein the step of generating a replacement value includes the step of generating a single tile number based on the tile position, and wherein the step of generating a single tile number includes the step of:
generating a tile number equal to
sum(N-1, 1, p1* . . . *pj*q(j1))qj1;
wherein qj represents a tile coordinate value associated with a respective dimension j; and
wherein pj represents a number of pages along dimension j.
7. The method of claim 1, wherein the step of generating a local position includes the step of:
generating a local position that includes a local coordinate value for each dimension associated with the two or more dimension key values, wherein each local coordinate value rj is equal to
xj MOD Tj;
wherein xj represents a respective global coordinate position of the cell within a respective dimension j; and
wherein Tj represents a number of dimension key values spanned by the tile along the respective dimension j.
8. The method of claim 7, wherein the step of generating a replacement value includes the step of generating a single offset based on the local position, and wherein the step of generating a single offset includes the step of:
generating an offset equal to
sum(N-1, 1, T1* . . . Tj*r(j1))rj1;
wherein rj represents a local coordinate value associated with a respective dimension j.
9. A method for manipulating multidimensional data in relational tables, the method comprising the steps of:
maintaining a fact table for storing cell values that are associated with a plurality of dimensions;
receiving a request to store a particular cell value that is associated with a particular set of dimension key values, the particular set of dimension key values including one dimension key value for each of the plurality of dimensions;
generating a tile position that represents a position of a tile in which the particular cell value resides relative to other tiles within a multidimensional cube representing the multidimensional data;
generating a local position that represents a position of the particular cell value relative to other cells within the tile in which the cell resides;
generating a replacement value based on the tile position value and the local position value; and
storing within the fact table
the particular cell value, and
the replacement value in association with the particular cell value.
10. The method of claim 9, further comprising the step of:
maintaining metadata in a dictionary indicating that a mapping exists between the particular cell that contains the particular cell value and the replacement value.
11. The method of claim 9, wherein a plurality of cell values and associated replacement values are stored within the fact table, the method further comprising the steps of:
receiving a query that includes a join predicate on the fact table;
extracting cell values contained in the fact table;
mapping replacement values associated with respective cell values to respective associated sets of dimension key values;
expressing the predicate in terms of one or more associated sets of dimension key values; and
applying the predicate to the multidimensional data according to the query.
12. The method of claim 9, wherein the step of generating a replacement value includes:
generating a single tile number based on the tile position; and
generating a single offset number based on the local position.
13. The method of claim 12, wherein a plurality of cell values and associated replacement values are stored with the fact table, the method comprising the steps of:
receiving a query that includes a join predicate on the fact table;
extracting cell values contained in the fact table;
mapping replacement values associated with respective cell values to respective associated sets of dimension key values; and
expressing the predicate in terms of one or more associated sets of dimension key values; and
applying the predicate to the multidimensional data according to the query.
14. A computer-readable medium storing an index that is built on a table that has a plurality of rows, the index comprising:
an index entry that contains a key value for a sub-part of a row of the plurality of rows, the index entry including
first data for locating the row; and
second data for locating, within the row, a value associated with the sub-part of the row.
15. The computer-readable medium of claim 14, wherein the sub-part of the row is part of an array, and wherein each member of the array is represented in the row.
16. The computer-readable medium of claim 14, wherein the index has a different index entry for each sub-part of the row.
17. A method for locating data within a relational table wherein the data is associated with a key value, the method comprising the steps of:
traversing an index that is built on the relational table to locate a first entry for the key value;
reading first data from the first entry to identify which row of a plurality of rows of the relational table contains data associated with the key value; and
reading second data from the first entry to locate a first sub-part, within the row that is associated with the key value.
18. The method of claim 17, wherein the index has a second entry for a key value for a second sub-part of the row, the method further comprising the steps of:
traversing the index based on the key value associated with the second sub-part;
reading first data from the second entry to identify the row; and
reading second data from the second entry to locate the second sub-part within the row.
19. A computer-readable medium carrying one or more sequences of instructions for generating a replacement value associated with a data cell of a multidimensional cube representing multidimensional data stored in relational tables, wherein execution of the one or more sequences of instructions by one or more processors causes the one or more processors to perform the steps of:
generating a tile position that represents a position of a tile in which the cell resides relative to other tiles within the multidimensional cube;
generating a local position that represents a position of the cell relative to other cells within the tile in which the cell resides; and
generating a replacement value based on the tile position value and the local position value.
20. The computer-readable medium of claim 19, wherein execution of the one or more sequences of instructions by one or more processors causes the one or more processors to perform the step of generating a replacement value by performing the step of:
generating a single tile number based on the tile position; and
generating a single offset number based on the local position.
21. The computer-readable medium of claim 20, wherein execution of the one or more sequences of instructions by one or more processors causes the one or more processors to perform the step of:
storing within a single row of an index-only table, at least
the particular cell value, and
the tile number associated with the particular cell value.
22. The computer-readable medium of claim 19, wherein execution of the one or more sequences of instructions by one or more processors causes the one or more processors to perform the step of:
representing the tile and zero or more other tiles that are associated with a particular range of dimension key values as a key-range partition of a fact table associated with the multidimensional data.
23. The computer-readable medium of claim 19, wherein execution of the one or more sequences of instructions by one or more processors causes the one or more processors to perform the step of generating a tile position by performing the step of:
generating a tile position that includes a tile coordinate value for each dimension associated with the two or more dimension key values, wherein each tile coordinate value qj is equal to
xj DIV Tj;
wherein xj represents a respective global coordinate position of the cell within a respective dimension j; and
wherein Tj represents a number of dimension key values spanned by the tile along the respective dimension j.
24. The computer-readable medium of claim 23, wherein the step of generating a replacement value includes the step of generating a single tile number based on the tile position, and wherein execution of the one or more sequences of instructions by one or more processors causes the one or more processors to perform the step of generating a single tile number by performing the step of:
generating a tile number equal to
sum(N-1, 1, p1* . . . *pj*q(j1))qj1;
wherein qj represents a tile coordinate value associated with a respective dimension j; and
wherein pj represents a number of pages along dimension j.
25. The computer-readable medium of claim 19, wherein execution of the one or more sequences of instructions by one or more processors causes the one or more processors to perform the step of generating a local position by performing the step of:
generating a local position that includes a local coordinate value for each dimension associated with the two or more dimension key values, wherein each local coordinate value rj is equal to
xj MOD Tj;
wherein xj represents a respective global coordinate position of the cell within a respective dimension j; and
wherein Tj represents a number of dimension key values spanned by the tile along the respective dimension j.
26. The computer-readable medium of claim 25, wherein the step of generating a replacement value includes the step of generating a single offset based on the local position, and wherein execution of the one or more sequences of instructions by one or more processors causes the one or more processors to perform the step of generating a single offset by performing the step of:
generating an offset equal to
sum(N-1, 1, T1* . . . Tj*r(j1))rj1;
wherein rj represents a local coordinate value associated with a respective dimension j.
27. A computer-readable medium carrying one or more sequences of instructions for manipulating multidimensional data in relational tables, wherein execution of the one or more sequences of instructions by one or more processors causes the one or more processors to perform the steps of:
maintaining a fact table for storing cell values that are associated with a plurality of dimensions;
receiving a request to store a particular cell value that is associated with a particular set of dimension key values, the particular set of dimension key values including one dimension key value for each of the plurality of dimensions;
generating a tile position that represents a position of a tile in which the particular cell value resides relative to other tiles within a multidimensional cube representing the multidimensional data;
generating a local position that represents a position of the particular cell value relative to other cells within the tile in which the cell resides;
generating a replacement value based on the tile position value and the local position value; and
storing within the fact table
the particular cell value, and
the replacement value in association with the particular cell value.
28. The computer-readable medium of claim 27, wherein execution of the one or more sequences of instructions by one or more processors causes the one or more processors to perform the step of:
maintaining metadata in a dictionary indicating that a mapping exists between the particular cell that contains the particular cell value and the replacement value.
29. The computer-readable medium of claim 27, wherein a plurality of cell values and associated replacement values are stored within the fact table, and wherein execution of the one or more sequences of instructions by one or more processors causes the one or more processors to perform the steps of:
receiving a query that includes a join predicate on the fact table;
extracting cell values contained in the fact table;
mapping replacement values associated with respective cell values to respective associated sets of dimension key values;
expressing the predicate in terms of one or more associated sets of dimension key values; and
applying the predicate to the multidimensional data according to the query.
30. The computer-readable medium of claim 27, wherein execution of the one or more sequences of instructions by one or more processors causes the one or more processors to perform the step of generating a replacement value by performing the steps of:
generating a single tile number based on the tile position; and
generating a single offset number based on the local position.
31. The computer-readable medium of claim 30, wherein a plurality of cell values and associated replacement values are stored with the fact table, and wherein execution of the one or more sequences of instructions by one or more processors causes the one or more processors to perform the steps of:
receiving a query that includes a join predicate on the fact table;
extracting cell values contained in the fact table;
mapping replacement values associated with respective cell values to respective associated sets of dimension key values; and
expressing the predicate in terms of one or more associated sets of dimension key values; and
applying the predicate to the multidimensional data according to the query.
32. A computer-readable medium for locating data within a relational table wherein the data is associated with a key value, wherein execution of the one or more sequences of instructions by one or more processors causes the one or more processors to perform the steps of:
traversing an index that is built on the relational table to locate a first entry for the key value;
reading first data from the first entry to identify which row of a plurality of rows of the relational table contains data associated with the key value; and
reading second data from the first entry to locate a first sub-part, within the row that is associated with the key value.
33. The computer-readable medium of claim 32, wherein the index has a second entry for a key value for a second sub-part of the row, and wherein execution of the one or more sequences of instructions by one or more processors causes the one or more processors to perform the steps of:
traversing the index based on the key value associated with the second sub-part;
reading first data from the second entry to identify the row; and
reading second data from the second entry to locate the second sub-part within the row.

The claims below are in addition to those above.
All refrences to claim(s) which appear below refer to the numbering after this setence.

1. A computer implemented method to automatically deploy a next version of a software component from a plurality of software components in a cloud environment, the method comprising:
receiving, at a computer, a request to deploy the next version of the software component in the cloud environment;
receiving, at the computer, a dependency analysis of a plurality of dependencies among the plurality of software components of the cloud environment, wherein receiving the dependency analysis further comprises:
receiving data related to the requests for communication among the plurality of software components;
based on the received data, categorizing the requests into a plurality of request categories based on types of resources requested by the corresponding requests; and
determining frequency of requests by the request categories among the plurality of software components;

the computer, postponing a deployment of the next version of the software component based on the dependency analysis until a currently processed deployment of another software component is processed when a first set of affected software components affected by deployment of the next version of the software component overlaps with a second set of affected software components affected by the currently processed deployment of the another software component;
deploying, from the computer, the next version of the software component in the cloud environment in accordance with the scheduled deployment;
the computer, quarantining the next version of the software component until a predefined criteria is satisfied;
comparing an error rate of responses generated by a current version of the software component with the error rate of responses generated by the next version of the software component; and
releasing the next version of the software component from the quarantine upon determining that a difference between the error rate of the next version of the software component and the error rate of the current version software component is below a predefined threshold.
2. The method of claim 1, wherein quarantining the next version of the software component further comprises:
running a current version of the software component and the next version of the software component concurrently until the next version is released from the quarantine, and
processing a portion of a plurality of requests to the software component by the next version of the software component.
3. The method of claim 1 further comprising:
upon satisfying the predefined criteria, releasing the version of the software component from the quarantine.
4. The method of claim 1 further comprising:
upon successfully processing requests from the plurality of request categories by the next version of the software component, releasing the next version of the software component from the quarantine.
5. A computer system to automatically deploy in a cloud infrastructure a next version of a software component from a plurality of software components of the cloud infrastructure, the system including:
at least one processor and memory to execute program code, which when executed cause the computer to perform operations comprising:
receiving a plurality of requests between the plurality of software components, wherein based on the received plurality of requests an analysis of a plurality of dependencies among the plurality of software components of the cloud infrastructure is generated, wherein the analysis of the plurality of dependencies further comprises:
receiving data related to the requests for communication among the plurality of software components;
based on the received data, categorizing the requests into a plurality of request categories based on types of resources requested by the corresponding requests; and
determining frequency of requests by the request categories among the plurality of software components;

postponing deployment of the next version of the software component based on the received analysis until a currently processed deployment of another software component is processed when a first set of affected software components affected by deployment of the next version of the software component overlaps with a second set of affected software components affected by the currently processed deployment of the another software component;
deploying the next version of the software component onto the cloud infrastructure in accordance with the scheduled deployment;
quarantining the next version of the software component until a predefined criteria is satisfied;
comparing an error rate of responses generated by a current version of the software component with the error rate of responses generated by the next version of the software component; and
releasing the next version of the software component from the quarantine upon determining that a difference between the error rate of the next version of the software component and the error rate of the current version software component is below a predefined threshold.
6. The system of claim 5, wherein the operations further comprising:
dispatching a portion of a plurality of requests to the software component to the next version of the software component.
7. The system of claim 5, wherein the operations further comprising:
upon satisfying a predefined criteria, releasing the next version of the software component from the quarantine, and
dispatching incoming requests to the software component to the next version of the software component.
8. The system of claim 5, wherein the operations comprising:
upon successfully processing requests from the plurality of request categories by the next version of the software component, releasing the next version of the software component from the quarantine.
9. A non-transitory computer readable medium storing instructions thereon, which when executed by a processor cause a computer system to:
receive a request to deploy a next version of the software component from a plurality of software components in a cloud environment;
receive a dependency analysis of a plurality of dependencies among the plurality of software components of the cloud environment, wherein the dependency analysis is generated by:
receiving data related to a plurality of requests between the software components;
based on the received data, categorizing the plurality of requests into a plurality of request categories based on types of resources requested by the corresponding plurality of requests; and
determining frequency of requests by the request categories among the plurality of software components;

postpone deployment of the next version of the software component based on the dependency analysis until a currently processed deployment of another software component is processed when a first set of affected software components affected by deployment of the next version of the software component overlaps with a second set of affected software components affected by the currently processed deployment of the another software component;
deploy the next version of the software component in the cloud environment in accordance with the scheduled deployment;
quarantine the next version of the software component until a predefined criteria is satisfied;
comparing an error rate of responses generated by a current version of the software component with the error rate of responses generated by the next version of the software component; and
releasing the next version of the software component from the quarantine upon determining that a difference between the error rate of the next version of the software component and the error rate of the current version software component is below a predefined threshold.
10. The computer readable medium of claim 9, wherein quarantining the next version of the software component further comprises:
running a current version of the software component and the next version of the software component concurrently until the next version is released from the quarantine, and
processing a portion of a plurality of requests to the software component by the next version of the software component.
11. The computer readable medium of claim 9 further comprising:
upon satisfying the predefined criteria, releasing the version of the software component from the quarantine.