US11451627B2ActiveUtilityA1

System and method for content management with intelligent data store access across distributed stores

Assignee: OPEN TEXT HOLDINGS INCPriority: Apr 3, 2020Filed: Apr 3, 2020Granted: Sep 20, 2022
Est. expiryApr 3, 2040(~13.7 yrs left)· nominal 20-yr term from priority
G06F 16/182H04L 67/1097H04L 67/568H04L 67/08H04L 67/1001G06F 16/134G06F 16/13
57
PatentIndex Score
0
Cited by
10
References
21
Claims

Abstract

A configuration object is provided to configure a server. The configuration object can include storage node information for a first set of storage nodes available to a server. The configuration object determines, from the storage node information, a second set of storage nodes for inclusion in a map. The configuration object maps each storage node in the second set of storage nodes to a different index value in a set of index values. The configuration object receives an object identifier for a first object, transforms the object identifier into a resulting index value in the set of index values and, based on a determination that a first storage node is mapped to the resulting index value in the map, selects the first storage node as a target storage node for servicing a request to perform a first operation with respect to the first object.

Claims

exact text as granted — not AI-modified
What is claimed is: 
     
       1. A computer program product comprising a non-transitory computer readable medium storing therein a set of computer executable instructions, the set of computer executable instructions comprising instructions for:
 creating a configuration object having an associated type to which the configuration object applies and file store information for a first set of file stores available to a server; 
 receiving, by the server, a request to perform a first operation with respect to a first object associated with the associated type to which the configuration object applies; 
 using the configuration object, determining a second set of file stores, the second set of file stores being at least a subset of the first set of file stores; 
 creating a map that maps each file store in the second set of file stores to a different index value in a set of index values; 
 obtaining an object identifier for the first object; 
 transforming the object identifier into a resulting index value in the set of index values; 
 based on a determination that a first file store is mapped to the resulting index value in the map, selecting the first file store as a target file store for servicing the request to perform the first operation; and 
 servicing the request to perform the first operation using the target file store. 
 
     
     
       2. The computer program product of  claim 1 , further comprising caching the configuration object at the server. 
     
     
       3. The computer program product of  claim 1 , wherein the file store information for the first set of file stores includes an associated proximity value for each file store in the first set of file stores, and wherein determining the second set of file stores comprises:
 determining a lowest proximity value associated with the first set of file stores; and 
 selecting as the second set of file stores, those file stores from the first set of file stores associated with the lowest proximity value. 
 
     
     
       4. The computer program product of  claim 1 , wherein the file store information for the first set of file stores includes an associated access mode and an associated proximity value for each file store in the first set of file stores and wherein determining the second set of file stores comprises:
 determining, as a third set of file stores, those file stores from the first set of file stores that support a first access mode; 
 determining a lowest proximity value associated with the third set of file stores; and 
 selecting as the second set of file stores, those file stores from the third set of file stores that are associated with the lowest proximity value. 
 
     
     
       5. The computer program product of  claim 1 , wherein the set of computer executable instructions further comprises instructions for:
 based on a determination that the request to perform the first operation could not be successfully serviced using the target file store, selecting a second file store from the second set of file stores as a failover file store; and 
 servicing the request to perform the first operation using the failover file store. 
 
     
     
       6. The computer program product of  claim 1 , wherein the first object comprises associated object metadata and an associated content file and wherein servicing the request to perform the first operation using the target file store comprises storing the associated content file in the target file store and updating the associated object metadata in a database to include an identifier for the target file store. 
     
     
       7. The computer program product of  claim 1 , wherein the first object comprises associated object metadata and an associated content file and wherein servicing the request to perform the first operation using the target file store comprises storing the associated content file in the target file store and updating the associated object metadata in a database to include an identifier for the configuration object. 
     
     
       8. The computer program product of  claim 7 , wherein the set of computer executable instructions further comprises instructions for:
 receiving, at the server, a request to perform a second operation with respect to the first object; 
 based on the request to perform the second operation, accessing the associated object metadata and reading the identifier for the configuration object; 
 based on the identifier for the configuration object, fetching the configuration object; 
 using the configuration object, determining a second file store from the first set of file stores to use to service the request to perform the second operation; and 
 servicing the request to perform the second operation using the second file store. 
 
     
     
       9. The computer program product of  claim 1 , wherein the associated type is an object type or a content type. 
     
     
       10. The computer program product of  claim 1 , wherein transforming the object identifier into the resulting index value from the set of index values comprises:
 determining a number of file stores in the second set of file stores; and 
 applying a modulo operation to the object identifier using the number of file stores in the second set of file stores as an operator of the modulo operation to determine a remainder as the resulting index value. 
 
     
     
       11. A method comprising:
 providing a server, a database and a plurality of file stores, the server adapted to store content as objects having associated metadata and associated content files; 
 creating a configuration object having an associated type to which the configuration object applies and file store information for a first set of file stores available to the server; 
 receiving, at the server, a request to perform a first operation with respect to a first object associated with the associated type to which the configuration object applies; 
 using the configuration object, determining a second set of file stores, the second set of file stores being at least a subset of the first set of file stores; 
 creating a map that maps each file store in the second set of file stores to a different index value in a set of index values; 
 obtaining an object identifier for the first object; 
 transforming the object identifier into a resulting index value in the set of index values; 
 based on a determination that a first file store is mapped to the resulting index value in the map, select the first file store as a target file store for servicing the request to perform the first operation; and 
 servicing the request to perform the first operation using the target file store. 
 
     
     
       12. The method of  claim 11 , further comprising caching the configuration object at the server. 
     
     
       13. The method of  claim 11 , wherein the file store information for the first set of file stores includes an associated proximity value for each file store in the first set of file stores, and wherein determining the second set of file stores comprises:
 determining a lowest proximity value associated with the first set of file stores; and 
 selecting as the second set of file stores, those file stores from the first set of file stores associated with the lowest proximity value. 
 
     
     
       14. The method of  claim 11 , wherein the file store information for the first set of file stores includes an associated access mode and an associated proximity value for each file store in the first set of file stores and wherein determining the second set of file stores comprises:
 determining, as a third set of file stores, those file stores from the first set of file stores that support a first access mode; 
 determining a lowest proximity value associated with the third set of file stores; and 
 selecting as the second set of file stores, those file stores from the third set of file stores that are associated with the lowest proximity value. 
 
     
     
       15. The method of  claim 11 , wherein the map includes a failover file store. 
     
     
       16. The method of  claim 11 , wherein the first object comprises associated object metadata and an associated content file and wherein servicing the request to perform the first operation using the target file store comprises storing the associated content file in the target file store and updating the associated object metadata in the database to include an identifier for the target file store. 
     
     
       17. The method of  claim 11 , wherein the first object comprises associated object metadata and an associated content file and wherein servicing the request to perform the first operation using the target file store comprises storing the associated content file in the target file store and updating the associated object metadata in the database to include an identifier for the configuration object. 
     
     
       18. The method of  claim 17 , further comprising:
 receiving, by the server, a request to perform a second operation with respect to the first object; 
 based on the request to perform the second operation, accessing the associated object metadata and reading the identifier for the configuration object; 
 based on the identifier for the configuration object, fetching the configuration object; 
 using the configuration object to determine a second file store from the first set of file stores to use to service the request to perform the second operation; and 
 servicing the request to perform the second operation using the second file store. 
 
     
     
       19. The method of  claim 11 , wherein the associated type is an object type or a content type. 
     
     
       20. The method of  claim 11 , wherein transforming the object identifier into the resulting index value in the set of index values comprises:
 determining a number of file stores in the second set of file stores; and 
 applying a modulo operation to the object identifier using the number of file stores in the second set of file stores as an operator of the modulo operation to determine a remainder as the resulting index value. 
 
     
     
       21. A system for managing content comprising:
 a database for storing object metadata; 
 a file store computer system for providing a plurality of file stores; 
 a server coupled to the database and file store computer system, the server comprising:
 a processor; 
 a memory coupled to the processor, the memory storing therein a configuration object having a set of computer executable instructions, the configuration object having an associated type to which the configuration object applies and file store information for a first set of file stores available to the server, the set of computer executable instructions comprising instructions for:
 receiving, by the server, a request to perform a first operation with respect to a first object associated with the associated type to which the configuration object applies; 
 using the configuration object, determining a second set of file stores, the second set of file stores being at least a subset of the first set of file stores; 
 creating a map that maps each file store in the second set of file stores to a different index value in a set of index values; 
 obtaining an object identifier for the first object; 
 transforming the object identifier into a resulting index value in the set of index values; 
 based on a determination that a first file store is mapped to the resulting index value in the map, selecting the first file store as a target file store for servicing the request to perform the first operation; and 
 servicing the request to perform the first operation using the target file store.

Join the waitlist — get patent alerts

Track US11451627B2 — get alerts on status changes and closely related new filings.

We store only your email — no account needed. See our privacy policy.