Claims
- 1. A method for managing data, the method comprising the steps of:
maintaining a plurality of persistent data items on persistent storage accessible to a plurality of nodes, the persistent data items including a particular data item stored at a particular location on said persistent storage; assigning exclusive ownership of each of the persistent data items to one of the nodes, wherein a particular node of said plurality of nodes is assigned exclusive ownership of said particular data item; when any node wants an operation performed that involves said particular data item, the node that desires the operation to be performed ships the operation to the particular node for the particular node to perform the operation on the particular data item as said particular data item is exclusively owned by said particular node; gathering statistics by gathering information about at least one of system performance and workload; and dynamically reassigning ownership of the persistent data items based on said statistics to improve at least one of system performance and throughput.
- 2. The method of claim 1 wherein the step of gathering information includes monitoring which nodes require operations that involve the persistent data items
- 3. The method of claim 1 wherein the plurality of nodes are nodes of a multi-node database system.
- 4. The method of claim 1 wherein the step of dynamically reassigning is performed without receiving user input that specifies the nodes to which the persistent data items are to be reassigned.
- 5. The method of claim 3 wherein the step of dynamically reassigning is performed while said multi-node database system continues to process database commands from database applications.
- 6. The method of claim 1 wherein the step of dynamically reassigning is performed after a certain period of time, and is based on which nodes required operations that involve the persistent data items during said certain period of time.
- 7. The method of claim 6 wherein the step of dynamically reassigning includes reassigning ownership of the particular data item to the node that most frequently required operations that involved the particular data item.
- 8. The method of claim 1 wherein:
the step of dynamic reassigning includes reassigning ownership of the particular data item to a first node; and the method further comprises the step of dynamically reassigning ownership of a second data item from the first node to a second node in response to reassigning ownership of the particular data item to the first node.
- 9. The method of claim 8 wherein:
the assignment of the particular data item to the first node causes a threshold associated with the first node to be exceeded; and the step of dynamically reassigning ownership of the second data item is performed in response to the threshold being exceeded.
- 10. A method for managing data, the method comprising the steps of:
maintaining a plurality of persistent data items on persistent storage accessible to a plurality of nodes, the persistent data items including a particular data item stored at a particular location on said persistent storage; assigning exclusive ownership of each of the persistent data items to one of the nodes, wherein a first node of said plurality of nodes is assigned exclusive ownership of said particular data item; when any node wants an operation performed that involves said particular data item, the node that desires the operation to be performed ships the operation to the first node for the first node to perform the operation on the particular data item as said particular data item is exclusively owned by said first node; while the exclusive ownership of the particular data item is held by said first node, receiving a command that requires an operation to be performed on the particular data item; and causing the operation to be performed by a second node that is different than said first node.
- 11. The method of claim 10 wherein the step of causing the operation to be performed by a second node includes:
temporarily reassigning exclusive ownership of said particular data item to the second node for a duration that is at least as long as required for said second node to perform a sub-operation of said command, wherein said sub-operation involves said particular data item; and after said duration, automatically reassigning said exclusive ownership of said particular data item back to said first node.
- 12. The method of claim 11 wherein the step of temporarily reassigning is performed to allow sub-operations of a parallelized operation to be distributed among slaves that reside on a plurality of nodes.
- 13. The method of claim 11 wherein the step of temporarily reassigning is performed to allow operations required by said command to be consolidated at a set of one or more nodes that includes said second node and does not include said first node.
- 14. The method of claim 10 wherein:
the step of causing the operation to be performed by a second node includes causing the second node to perform the operation without the second node obtaining exclusive ownership of said particular data item; the second node is allowed to access said particular data item to perform a sub-operation of said command, wherein said sub-operation involves said particular data item; and after the second node has completed performance of said sub-operation, ceasing to allow said second node to access said particular data item.
- 15. The method of claim 14 further comprising the steps of:
determining that read uncommitted isolation level applies to said command; and allowing said second node to perform said sub-operation without requiring said first node to flush to disk any dirty version of said particular data item.
- 16. The method of claim 14 further comprising the steps of:
determining that read committed isolation level applies to said command; and preventing said second node from performing said sub-operation until said first node has flushed to disk any dirty version of said particular data item.
- 17. A computer-readable medium carrying one or more sequences of instructions which, when executed by one or more processors, causes the one or more processors to perform the method recited in claim 1.
- 18. A computer-readable medium carrying one or more sequences of instructions which, when executed by one or more processors, causes the one or more processors to perform the method recited in claim 2.
- 19. A computer-readable medium carrying one or more sequences of instructions which, when executed by one or more processors, causes the one or more processors to perform the method recited in claim 3.
- 20. A computer-readable medium carrying one or more sequences of instructions which, when executed by one or more processors, causes the one or more processors to perform the method recited in claim 4.
- 21. A computer-readable medium carrying one or more sequences of instructions which, when executed by one or more processors, causes the one or more processors to perform the method recited in claim 5.
- 22. A computer-readable medium carrying one or more sequences of instructions which, when executed by one or more processors, causes the one or more processors to perform the method recited in claim 6.
- 23. A computer-readable medium carrying one or more sequences of instructions which, when executed by one or more processors, causes the one or more processors to perform the method recited in claim 7.
- 24. A computer-readable medium carrying one or more sequences of instructions which, when executed by one or more processors, causes the one or more processors to perform the method recited in claim 8.
- 25. A computer-readable medium carrying one or more sequences of instructions which, when executed by one or more processors, causes the one or more processors to perform the method recited in claim 9.
- 26. A computer-readable medium carrying one or more sequences of instructions which, when executed by one or more processors, causes the one or more processors to perform the method recited in claim 10.
- 27. A computer-readable medium carrying one or more sequences of instructions which, when executed by one or more processors, causes the one or more processors to perform the method recited in claim 11.
- 28. A computer-readable medium carrying one or more sequences of instructions which, when executed by one or more processors, causes the one or more processors to perform the method recited in claim 12.
- 29. A computer-readable medium carrying one or more sequences of instructions which, when executed by one or more processors, causes the one or more processors to perform the method recited in claim 13.
- 30. A computer-readable medium carrying one or more sequences of instructions which, when executed by one or more processors, causes the one or more processors to perform the method recited in claim 14.
- 31. A computer-readable medium carrying one or more sequences of instructions which, when executed by one or more processors, causes the one or more processors to perform the method recited in claim 15.
- 32. A computer-readable medium carrying one or more sequences of instructions which, when executed by one or more processors, causes the one or more processors to perform the method recited in claim 16.
PRIORITY CLAIM/RELATED APPLICATIONS
[0001] This application claims the benefit of priority from U.S. Provisional Application Ser. No. 60/492,019 entitled “Shared Nothing on Shared Disk Hardware”, filed Aug. 1, 2003, which is incorporated by reference in its entirety for all purposes as if fully set forth herein.
[0002] This application also claims benefit as a Continuation-in-part of Application Serial No. 10/665,062 filed Sep. 17, 2003 and Application Ser. No. 10/718,875, filed Nov. 21, 2003, the entire contents of which are hereby incorporated by reference as if fully set forth herein.
[0003] This application is related to U.S. application Ser. No.______, (Attorney Docket No. 50277-2325) entitled “Parallel Recovery by Non-Failed Nodes,” by Roger Bamford, Sashikanth Chandrasekaran and Angelo Pruscino, filed on the same day herewith;, and U.S. application Ser. No.______, (Attorney Docket No. 50277-2326) entitled “Partitioned Shared Cache,” by Roger Bamford, Sashikanth Chandrasekaran and Angelo Pruscino, filed on the same day herewith; both of which are incorporated by reference in their entirety for all purposes as if fully set forth herein.
Provisional Applications (1)
|
Number |
Date |
Country |
|
60492019 |
Aug 2003 |
US |
Continuation in Parts (2)
|
Number |
Date |
Country |
Parent |
10718875 |
Nov 2003 |
US |
Child |
10831401 |
Apr 2004 |
US |
Parent |
10665062 |
Sep 2003 |
US |
Child |
10831401 |
Apr 2004 |
US |