Abstract:
Systems, methods, and computer-readable storage media for ensuring data consistency and concurrency for globally unique identifiers (GUIDs) and associated content items via locking. A content management system configured to practice the method can receive, from a client device, a request to perform a content item operation in a storage environment that affects a GUID. Then the content management system can acquire a first mutex for a namespace associated with the content item operation, such as an application-level lock, and acquire a second mutex for the GUID, such as a row-level lock in a database table. After acquiring the locks, the content management system can perform the content item operation according the request, and update the GUID based on the content item operation. Then the content management system can release the mutexes and provide a confirmation to the client device in response to the request.
Abstract:
Systems, methods, and computer-readable storage media for ensuring data consistency and concurrency for globally unique identifiers (GUIDs) and associated content items via locking. A content management system configured to practice the method can receive, from a client device, a request to perform a content item operation in a storage environment that affects a GUID. Then the content management system can acquire a first mutex for a namespace associated with the content item operation, such as an application-level lock, and acquire a second mutex for the GUID, such as a row-level lock in a database table. After acquiring the locks, the content management system can perform the content item operation according the request, and update the GUID based on the content item operation. Then the content management system can release the mutexes and provide a confirmation to the client device in response to the request.
Abstract:
Systems, methods, and computer-readable storage media for maintaining consistent globally unique identifiers (GUIDs) for content items accessible via an asynchronous interface in a multi-user network-based content management environment (storage environment). The example content management system can make a content item within a data storage available to an authorized user via the asynchronous interface, and receive, from a client device, content item change information derived from data generated by an operating system function at the client device. Then the content management system can analyze the content item change information to determine a corresponding action at the content management system, and implement the corresponding action on the server side. The content management system can optionally provide a confirmation of the corresponding action to the client device.
Abstract:
A notes system is presented with a content management system. The notes system manages creation and distribution of edits to notes to users sharing the notes. The notes are stored as a series of edits at the notes system. When an edit to a note is received, the edit is propagated to users subscribed to a note by a backend server responsible for managing the note. The sharing users are notified through application servers associated with each sharing user. The notes server includes various indices for searching the notes and allows notes to be searched quickly to organize viewing by a user of notes and identification of relevant material in the notes. The stored edits are used to display edits to a note to a user by replaying the accessed note to the user.
Abstract:
Systems, methods, and computer-readable storage media for ordering editing operations in collaborative editing of shared content items. The content management system can receive an edit operation from a first client for a content item that is shared for collaborative editing between the first client and a second client. In response to receiving the operation, the system can send an update to the first client including a previous operation received from the second client prior to receiving the operation from the first client, wherein the update can instruct the first client to perform a transform operation to transform a parameter of the operation according to an effect of the previous operation received from the second client. The system can then receive a result of the transform operation from the first client and update the shared content item based on the previous operation and the result of the transform operation.
Abstract:
Systems, methods, and computer-readable storage media for maintaining consistent globally unique identifiers (GUIDs) for content items accessible via an asynchronous interface in a multi-user network-based content management environment (storage environment). The example content management system can make a content item within a data storage available to an authorized user via the asynchronous interface, and receive, from a client device, content item change information derived from data generated by an operating system function at the client device. Then the content management system can analyze the content item change information to determine a corresponding action at the content management system, and implement the corresponding action on the server side. The content management system can optionally provide a confirmation of the corresponding action to the client device.
Abstract:
Systems, methods, and computer-readable storage media for ensuring data consistency and concurrency for globally unique identifiers (GUIDs) and associated content items via locking. A content management system configured to practice the method can receive, from a client device, a request to perform a content item operation in a storage environment that affects a GUID. Then the content management system can acquire a first mutex for a namespace associated with the content item operation, such as an application-level lock, and acquire a second mutex for the GUID, such as a row-level lock in a database table. After acquiring the locks, the content management system can perform the content item operation according the request, and update the GUID based on the content item operation. Then the content management system can release the mutexes and provide a confirmation to the client device in response to the request.
Abstract:
A method and system for automatically rotating image files and preventing duplicate uploads in a remote file storage system is described. The system receives an image file. The system calculates a hash value associated with newly uploaded files. The system then automatically rotates the images based on orientation data associated with the files (if included). The system then compares the hash value(s) associated with the new file(s) with the hash values from the existing files stored on the remote file storage system. If the hash values of any of the new files to be uploaded match a hash value on the hash value list, then the system prevents the new files from being uploaded to the remote file storage system.
Abstract:
A notes system is presented with a content management system. The notes system manages creation and distribution of edits to notes to users sharing the notes. The notes are stored as a series of edits at the notes system. When an edit to a note is received, the edit is propagated to users subscribed to a note by a backend server responsible for managing the note. The shared users are notified through application servers associated with each shared user. The notes server includes various indices for searching the notes and allows notes to be searched quickly to organize viewing by a user of notes and identification of relevant material in the notes. The stored edits are used to display edits to a note to a user by replaying the accessed note to the user.
Abstract:
A notes system is presented with a content management system. The notes system manages creation and distribution of edits to notes to users sharing the notes. The notes are stored as a series of edits at the notes system. When an edit to a note is received, the edit is propagated to users subscribed to a note by a backend server responsible for managing the note. The shared users are notified through application servers associated with each shared user. The notes server includes various indices for searching the notes and allows notes to be searched quickly to organize viewing by a user of notes and identification of relevant material in the notes. The stored edits are used to display edits to a note to a user by replaying the accessed note to the user.