US6721742B1ExpiredUtility

Method, system and program products for modifying globally stored tables of a client-server environment

87
Assignee: IBMPriority: May 31, 2000Filed: May 31, 2000Granted: Apr 13, 2004
Est. expiryMay 31, 2020(expired)· nominal 20-yr term from priority
G06F 16/2343Y10S707/99945Y10S707/99943G06F 16/27Y10S707/99953G06F 16/275
87
PatentIndex Score
54
Cited by
13
References
52
Claims

Abstract

At least a portion of a table stored in a global data repository is selected to be accessed and modified. The selected portion is stored in a local table in local memory of a node of a client-server environment. The local table is modified, and then at least a portion of the modified local table is merged with the global table. The merger is performed without requiring any user locking of the global table.

Claims

exact text as granted — not AI-modified
What is claimed is:  
     
       1. A method of modifying stored tables of client-server environment, said method comprising: 
       providing, in local memory of a node of said client-server environment, a local table comprising at least a portion of a global table concurrently accessible by a plurality of users of said cliem-server environment, wherein said local table is manipulatable via database functions, as if it was a global table;  
       modifying said local table; and  
       atomically merging at least a portion of the modified local table with said global table, wherein said merging is performed without user locking of said global table wherein said atomically merging comprises using at least one counter to determine how to modify said global table to reflect one or more changes of said modified local table, wherein said at least one counter comprises a table change counter, and wherein said global table is modified after a predefined relationship between said table change counter and a table parameter value is satisfied.  
     
     
       2. The method of  claim 1 , wherein said at least one counter comprises a row change counter, and wherein a row of said global table is modified after a predefined relationship between said row change counter of said row and a row parameter value is satisfied. 
     
     
       3. The method of  claim 1 , wherein said atomically merging comprises: 
       obtaining a working copy of said global table;  
       performing one or more operations on said working copy to reflect one or more changes of said modified local table; and  
       replacing said global table with said working copy, if said one or more operations are performed successfully.  
     
     
       4. The method of  claim 3 , further comprising updating one or more counters associated with said global table, in response to said replacing. 
     
     
       5. The method of  claim 3 , wherein said performing one or more operations comprises at least one of the following: 
       (a) deleting from said working copy one or more columns deleted from said local table;  
       (b) adding to said working copy one or more columns added to said local table;  
       (c) deleting from said working copy one or more rows deleted from said local table;  
       (d) adding to said working copy one or more rows added to said local table; and  
       (e) updating one or more fields of one or more rows of said working copy to reflect a new value in one or more corresponding fields of said local table.  
     
     
       6. The method of  claim 5 , wherein when one of the operations (a)-(c) is performed, the operation is performed as ordered in (a)-(c). 
     
     
       7. The method of  claim 5 , wherein the deleting of one or more columns comprises associated for at least one column of said one or more columns: 
       comparing a counter associated with said at least one column with another counter; and  
       deleting said at least one column, should said counter have a predefined relationship with said another counter.  
     
     
       8. The method of  claim 5 , wherein the deleting of one or more rows comprises for at least one row of said one or more rows: 
       comparing a counter associated with said at least one row with another counter; and  
       deleting said at least one row, should said counter have a predefined relationship with said another counter.  
     
     
       9. The method of  claim 5 , wherein the adding of one or more columns comprises for at least one column of said one or more columns: 
       determining whether a column having a same name and type as said at least one column already exists in said working copy; and  
       adding said at least one column, if said at least one column does not already exist.  
     
     
       10. A system of modifying stored tables of a client-server environment, said system comprising: 
       means for providing, in local memory of a node of said client-server environment, a local table comprising at least a portion of a global table concurrently accessible by a plurality of users of said client-server environment, wherein said local table is manipulatable via database functions, as if it was a global table;  
       means for modifying said local table; and  
       means for atomically merging at least a portion of the modified local table with said global table, wherein said merging is performed without user locking of said global table wherein said means for atomically merging comprises means for using at least one counter to determine how to modify said global table to reflect one or more changes of said modified local table, wherein said at least one counter comprises a table change counter, and wherein said global table is modified after a predefined relationship between said table change counter and a table parameter value is satisfied.  
     
     
       11. Program storage device readable by a machine, tangibly embodying at least one program of instructions executable by the machine to perform a method of modifying stored tables of a client-server environment, said method comprising: 
       providing, in local memory of a node of said client-server environment, a local table comprising at least a portion of a global table concurrently accessible by a plurality of users of said client-server environment, wherein said local table is manipulatable via database functions, as if it was a global table;  
       modifying said local table; and  
       atomically merging at least a portion of the modified local table with said global table wherein said atomically merging comprises using at least one counter to determine how to modify said global table to reflect one or more changes of said modified local table, wherein said at least one counter comprises a table change counter, and wherein said global table is modified after a predefined relationship between said table change counter and a table parameter value is satisfied wherein said merging is performed without user locking of said global table.  
     
     
       12. The method of  claim 5 , wherein the adding of one or more rows comprises for at least one row of said one or more rows: 
       determining whether a row having a same name and type as said at least one row already exists in said working copy; and  
       adding said at least one row, if said at least one row does not already exist.  
     
     
       13. The method of  claim 5 , wherein the updating of one or more fields comprises for at least one of said one or more fields: 
       comparing said at least one of said one or more fields in said working copy with at least one corresponding field in said local table; and  
       replacing a value in said at least one of said one or more fields with a value in said at least corresponding field based on said comparing.  
     
     
       14. The method of  claim 5 , wherein the deleting of one or more columns comprises for at least one column of said one or more columns deleting when said at least one column has a same type and name as one or more corresponding columns in said local table. 
     
     
       15. The method of  claim 7 , wherein said another counter is associated with at least one corresponding column of said local table. 
     
     
       16. The method of  claim 7 , wherein said predefined relationship comprises said counter having a value no higher than that of said another counter. 
     
     
       17. The method of  claim 8 , wherein said another counter is associated with at least one corresponding row of said local table. 
     
     
       18. The method of  claim 8 , wherein said predefined relationship between said counter and said another counter comprises said counter having a value equal to that of said another counter. 
     
     
       19. The method of  claim 8 , further comprising: 
       searching in said working copy for a key for each row deleted from said local table; and  
       deleting said at least one row only if said key is present in said working copy and said predefined relationship between said counter and said another counter is present.  
     
     
       20. The method of  claim 9 , further comprising returning an error if column in said working copy has a same name and different type as said at least one column. 
     
     
       21. The system of  claim 12 , wherein said table change counter comprises a row change counter wherein said table parameter value comprises a row parameter value and wherein a row of said global table is modified after a predefined relationship between said row change counter of said row and said row parameter value is satisfied. 
     
     
       22. The system of  claim 10 , wherein said means for atomically merging comprises: 
       means for obtaining a working copy of said global table;  
       means for performing one or more operations on said working copy to reflect one or more changes of said modified local table; and  
       means for replacing said global table with said working copy, if said one or more operations are performed successfully.  
     
     
       23. The system of  claim 22 , further comprising means for updating one or more counters associated with said global table, in response to said replacing. 
     
     
       24. The system of  claim 22 , wherein said means for performing one or more operations comprises at least one of the following: 
       (a) means for deleting from said working copy one or more columns deleted from said local table;  
       (b) means for adding to said working copy one or more columns added to said local table;  
       (c) means for deleting from said working copy one or more rows deleted from said local table;  
       (d) means for adding to said working copy one or more rows added to said local table; and  
       (e) means for updating one or more fields of one or more rows of said working copy to reflect a new value in one or more corresponding fields of said local table.  
     
     
       25. The system of  claim 24 , wherein the means for deleting of one or more columns comprises for at least one column of said one or more columns: 
       means for comparing a counter associated with said at least one column with another counter; and  
       means for deleting said at least one column, should said counter have a predefined relationship with said another counter.  
     
     
       26. The system of  claim 24 , wherein the means for deleting of one or more rows comprises for at least one row of said one or more rows: 
       means for comparing a counter associated with said at least one row with another counter; and  
       means for deleting said at least one row, should said counter have a predefined relationship with said another counter.  
     
     
       27. The system of  claim 24 , wherein the means for adding of one or more columns comprises for at least one column of said one or more columns: 
       means for determining whether a column having a same name and type as said at least one column already exists in said working copy; and  
       means for adding said at least one column, if said at least one column does not already exist.  
     
     
       28. The system of  claim 24 , wherein the means for adding of one or more rows comprises for at least one row of said one or more rows: 
       means for determining whether a row having a same name and type as said at least one row already exists in said working copy; and  
       means for adding said at least one row, if said at least one row does not already exist.  
     
     
       29. The system of  claim 24 , wherein the means for updating of one or more fields comprises for at least one of said one or more fields: 
       means for comparing said at least one of said one or more fields in said working copy with at least one corresponding field in said local table; and  
       means for replacing a value in said at least one of said at one or more fields with a value in said at least one corresponding field based on said comparing.  
     
     
       30. The system of  claim 24 , wherein the means for deleting of one or more columns comprises for at least one column of said one or more columns means for deleting when said at least one column has a same type and name as one or more corresponding columns in said local table. 
     
     
       31. The system of  claim 25 , wherein said another counter is associated with at least one corresponding column of said local table. 
     
     
       32. The system of  claim 25 , wherein said predefined relationship comprises said counter having a value no higher than that of said another counter. 
     
     
       33. The system of  claim 26 , wherein said another counter is associated with at least one corresponding row of said local table. 
     
     
       34. The system of  claim 26 , wherein said predefined relationship comprises said counter having a value equal to that of said another counter. 
     
     
       35. The system of  claim 26 , further comprising: 
       means for searching in said working copy for a key for each row deleted from said local table; and  
       means for deleting said at least one row only if said key is present in said working copy and said predefined relationship is present.  
     
     
       36. The system of  claim 27 , further comprising means for returning an error if a column in said working copy has a same name and different type as said at least one column. 
     
     
       37. The at least one program storage device of  claim 13 , wherein said table change counter comprises a row change counter wherein said table parameter value comprises a row parameter value and wherein a row of said global table is modified after a predefined relationship between said row change counter of said row and said row parameter value is satisfied. 
     
     
       38. The at least one program storage device of  claim 11 , wherein said atomically merging comprises: 
       obtaining a working copy of said global table;  
       performing one or more operations on said working copy to reflect one or more changes of said modified local table; and  
       replacing said global table with said working copy, if said one or more operations are performed successfully.  
     
     
       39. The at least one program storage device of  claim 38 , further comprising updating one or more counters associated with said global table, in response to said replacing. 
     
     
       40. The at least one program storage device of  claim 38 , wherein said performing one or more operations comprises at least one of the following: 
       (a) deleting from said working copy one or more columns deleted from said local table;  
       (b) adding to said working copy one or more columns added to said local table;  
       (c) deleting from said working copy one or more rows deleted from said local table;  
       (d) adding to said working copy one or more rows added to said local table; and  
       (c) updating one or more fields of one or more rows of said working copy to reflect a new value in one or more corresponding fields of said local table.  
     
     
       41. The at least one program storage device of  claim 40 , wherein the deleting of one or more columns comprises for at least one column of said one or more columns: 
       comparing a counter associated with said at least one column with another counter; and  
       deleting said at least one column, should said counter have a predefined relationship with said another counter.  
     
     
       42. The at least one program storage device of  claim 40 , wherein the deleting of one or more rows comprises for at least one row of said one or more rows: 
       comparing a counter associated with said at least one row with another counter; and  
       deleting said at least one row, should said counter have a predefined relationship with said another counter.  
     
     
       43. The at least one program storage device of  claim 40 , wherein the adding of one or more columns comprises for at least one column of said one or more columns: 
       determining whether a column having a same name and type as said at least one column already exists in said working copy; and  
       adding said at least one column, if said at least one column does not already exist.  
     
     
       44. The at least one program storage device of  claim 40 , wherein the adding of one or more row comprises for at least one row of said one or more rows: 
       determining whether a row having a same name and type as said at least one row already exists in said working copy; and  
       adding said at least one row, if said at least one row does not already exist.  
     
     
       45. The at least one program storage device of  claim 40 , wherein the updating of one or more fields comprises for at least one of said one or more fields: 
       comparing said at least one of said one or more fields in said working copy with at least one corresponding field in said local table; and  
       replacing a value in said at least one of said one or more fields with a value in said at least one corresponding field based on said comparing.  
     
     
       46. The at least one program storage device of  claim 40 , wherein the deleting of one or more columns comprises for at least one column of said one or more columns deleting when said at least one column has a same type and name as one or more corresponding columns in said local table. 
     
     
       47. The at least one program storage device of  claim 41 , wherein said another counter is associated with at least one corresponding column of said local table. 
     
     
       48. The at least one program storage device of  claim 41 , wherein said predefined relationship between said counter and said another counter comprises said counter having a value no higher than that of said another counter. 
     
     
       49. The at least one program storage device of  claim 42 , wherein said another counter is associated with at least one corresponding row of said local table. 
     
     
       50. The at least one program storage device of  claim 42 , wherein said predefined relationship between said counter and said another counter comprises said counter having a value equal to that of said another counter. 
     
     
       51. The at least one program storage device of  claim 42 , further comprising: 
       searching in said working copy for a key for each row deleted from said local table; and  
       deleting said at least one row only if said key is present in said working copy and said predefined relationship between said counter and said another counter is present.  
     
     
       52. The at least one program storage device of  claim 43 , further comprising returning an error if a column in said working copy has a same name and different type as said at least one column.

Cited by (0)

No later patents cite this yet.

References (0)

No backward citations on record.