System and method for performing shard migration to support functions of a cloud-based service
First Claim
Patent Images
1. A method of database partitioning within a collaborative environment hosted by a cloud-based platform, the method comprising:
- partitioning a database into multiple shard databases based upon ownership of one or more objects stored in the database, wherein the one or more objects are stored within a given one of the multiple shard databases based upon an association of the one or more objects with a user identification;
mapping within a mapping database, a first user identification to a first shard database and a second user identification to a second shard database, wherein the mapping database, the first shard database, and the second shard database are associated with the cloud-based platform that supports collaboration between a first user having the first user identification and a second user having the second user identification;
providing, via the cloud-based platform, to the second user, access to a collaboration folder that is owned by the first user, wherein the collaboration folder is located in the first shard database, wherein the collaboration folder is identifiable by a parent folder and a path that indicates a location of the collaboration ion folder within a folder tree;
receiving a request to transfer the association of the one or more objects and the collaboration folder from the first user identification to the second user identification;
migrating ownership of the one or more objects and the collaboration folder from the first shard database of the cloud-based platform to the second shard database of the cloud-based platform,wherein the migrating includes migrating the collaboration folder and one or more folders stored within the collaboration folder;
inserting an access lock on the one or more objects and the collaboration folder in the mapping database, the first shard database, and the second shard database;
updating a status of the one or more objects and a status of the collaboration folder in the mapping database to point to the second shard database;
moving the one or more objects and the collaboration folder from the first shard database associated with the first user identification to the second shard database associated with the second user identification;
deleting the one or more objects and the collaboration folder from the first shard database; and
releasing the access lock on the one or more objects and the collaboration folder in the second shard database, the mapping database, and the first shard database.
2 Assignments
0 Petitions
Accused Products
Abstract
Systems and methods of maintaining a horizontally scaled database based on data ownership for a cloud-based platform (e.g., cloud-based collaboration and/or storage platform/service) are disclosed. The system database comprises multiple shard databases, and all files and folders owned by a user are stored on a single shard database. When a user transfers ownership of a file and/or a folder to a second user, the transferred file and/or folder is stored on the shard database that stores all of the data for the second user.
422 Citations
28 Claims
-
1. A method of database partitioning within a collaborative environment hosted by a cloud-based platform, the method comprising:
-
partitioning a database into multiple shard databases based upon ownership of one or more objects stored in the database, wherein the one or more objects are stored within a given one of the multiple shard databases based upon an association of the one or more objects with a user identification; mapping within a mapping database, a first user identification to a first shard database and a second user identification to a second shard database, wherein the mapping database, the first shard database, and the second shard database are associated with the cloud-based platform that supports collaboration between a first user having the first user identification and a second user having the second user identification; providing, via the cloud-based platform, to the second user, access to a collaboration folder that is owned by the first user, wherein the collaboration folder is located in the first shard database, wherein the collaboration folder is identifiable by a parent folder and a path that indicates a location of the collaboration ion folder within a folder tree; receiving a request to transfer the association of the one or more objects and the collaboration folder from the first user identification to the second user identification; migrating ownership of the one or more objects and the collaboration folder from the first shard database of the cloud-based platform to the second shard database of the cloud-based platform, wherein the migrating includes migrating the collaboration folder and one or more folders stored within the collaboration folder; inserting an access lock on the one or more objects and the collaboration folder in the mapping database, the first shard database, and the second shard database; updating a status of the one or more objects and a status of the collaboration folder in the mapping database to point to the second shard database; moving the one or more objects and the collaboration folder from the first shard database associated with the first user identification to the second shard database associated with the second user identification; deleting the one or more objects and the collaboration folder from the first shard database; and releasing the access lock on the one or more objects and the collaboration folder in the second shard database, the mapping database, and the first shard database. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12)
-
-
13. A method of performing shard migration within a collaborative environment hosted by a cloud-based platform, the method comprising:
-
mapping within a mapping database, a first user identification to a first shard database and a second user identification to a second shard database, wherein the mapping database, the first shard database, and the second shard database are associated with the cloud-based platform that supports collaboration between a first user having the first user identification and a second user having the second user identification, wherein one or more objects are stored in the first shard database and associated with the first user identification; receiving a request that involves change of association of the one or more items stored in one of multiple shard databases in the cloud-based platform; providing, via the cloud-based platform, to the second user, access to a collaboration folder that is owned by the first user, wherein the collaboration folder is located in the first shard database, wherein the collaboration folder is identifiable by a parent folder and a path that indicates a location of the collaboration folder within a folder tree; migrating ownership of the one or more objects and the collaboration folder from the first shard database of the cloud-based platform to the second shard database of the cloud-based platform, wherein the migrating includes migrating the collaboration folder and one or more folders stored within the collaboration folder; and moving the one or more items and the collaboration folder from a source shard database associated with a first user identification to a destination shard database associated with a second user identification updating a status of the one or more items and a status of the collaboration folder in the mapping database to point to the destination shard database; inserting the one or more items and the collaboration folder from the source shard database into the destination shard database; deleting the one or more items and the collaboration folder from the source shard database. - View Dependent Claims (14, 15, 16, 17)
-
-
18. A system for performing shard migration to support functions of a cloud-based platform, the system comprising:
-
a processor; a memory having stored thereon instructions which, when executed by the processor, causes the system to; map, within a mapping database, a first user identification to a first shard database and a second user identification to a second shard database, wherein the mapping database, the first shard database, and the second shard database are associated with the cloud-based platform that supports collaboration between a first user having a first user identification and a second user having a second user identification, wherein one or more objects are stored in the first shard database and associated with the first user identification; receive a request that involves change of association of the one or more objects stored in one of multiple shard databases; provide, via the cloud-based platform, to the second user, access to a collaboration folder that is owned by the first user, wherein the collaboration folder is located in the first shard database, wherein the collaboration folder is identifiable by a parent folder and a path that indicates a location of the collaboration folder within a folder tree; migrate ownership of the one or more objects and the collaboration folder from the first shard database of the cloud-based platform to the second shard database of the cloud-based platform, wherein the migrating includes migrating the collaboration folder and one or more folders stored within the collaboration folder; move the one or more objects and the collaboration folder from a source shard database associated with a first user identification to a destination shard database associated with a second user identification, wherein upon the move the one or more objects appear in the destination shard database and are removed from the source shard database; and update a status of the one or more objects and a status of the collaboration folder in the mapping database to point to the destination shard database. - View Dependent Claims (19, 20, 21)
-
-
22. A non-transitory machine-readable storage medium having stored thereon instructions which, when executed by a processor, cause the processor to:
-
partition a database into multiple shard databases based upon ownership of objects stored in the database, wherein the objects are stored within one of the multiple shard databases based upon an association of the objects with a user identification, wherein the user identification uniquely corresponds to a single shard database in the multiple shard databases; map, within a mapping database, a first user identification to a first shard database and a second user identification to a second shard database, wherein the mapping database, the first shard database, and the second shard database are associated with a cloud-based platform that supports collaboration between a first user having the first user identification and a second user having the second user identification, wherein the one or more objects are stored in the first shard database and associated with the first user identification; provide, via the cloud-based platform, to the second user, access to a collaboration folder that is owned by the first user, wherein the collaboration folder is located in the first shard database, wherein the collaboration folder is identifiable by a parent folder and a path that indicates a location of the collaboration folder within a folder tree; receive a request to transfer the association of the objects and the collaboration folder from the first user identification to the second user identification; and migrate ownership of the one or more objects and the collaboration folder from the first shard database of the cloud-based platform to the second shard database of the cloud-based platform, wherein the migrating includes migrating the collaboration folder and one or more folders stored within the collaboration folder; move the one or more objects and the collaboration folder from the first shard database associated with the first user identification to the second shard database associated with the second user identification, wherein upon the move, the one or more objects appear in the second shard database and are removed from the first shard database; and update a status of the one or more objects and a status of the collaboration folder in the mapping database to point to the second shard database. - View Dependent Claims (23, 24, 25, 26)
-
-
27. An apparatus for performing shard migration for a cloud-based collaboration platform, the apparatus performing the operations of:
-
a memory having stored thereon instructions and coupled to a processor; the processor configured for; mapping, based on mapping metadata, a user identification to a shard database included in multiple databases that store one or more items based upon an association of the one or more items with the user identification, wherein the user identification uniquely corresponds to a single shard database in the multiple shard databases, wherein the mapping metadata identifies a first user having a first user identification and a second user having a second user identification, wherein the one or more items are stored in the first shard database and associated with the first user identification; receiving a request and determining whether the request involves a change of association of one or more items in the cloud-based collaboration platform; and providing, via the cloud-based collaboration platform, to the second user, access to a collaboration folder that is owned by the first user, wherein the collaboration folder is located in a first shard database, wherein the collaboration folder is identifiable by a parent folder and a path that indicates a location of the collaboration folder within a folder tree, wherein the first shard database and the second shard database are included in the multiple databases; migrating ownership of the one or more items and the collaboration folder from the first shard database of the cloud-based collaboration platform to the second shard database of the cloud-based collaboration platform, wherein the migrating includes migrating the collaboration folder and one or more folders stored within the collaboration folder; and moving the one or more items and the collaboration folder from the first shard database of the cloud-based collaboration platform to the second shard database of the cloud-based collaboration platform responsive to the request wherein the second shard database is different from the first shard database; and updating the mapping metadata that maps the one or more items and the collaboration folder in the cloud-based collaboration platform to the user identification for determining whether the first shard database or the second shard database stores the one or more items. - View Dependent Claims (28)
-
Specification