Data model and data service for content management system

US11789976B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-11789976-B2
Application numberUS-202017129233-A
CountryUS
Kind codeB2
Filing dateDec 21, 2020
Priority dateDec 21, 2020
Publication dateOct 17, 2023
Grant dateOct 17, 2023

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

The disclosed technology addresses the need in the art for a content management system that can be highly flexible to the needs of its subjects. The present technology permits any object to be shared by providing a robust and flexible access control list mechanism. The present technology utilizes a data structure that is highly efficient that both minimizes the amount of information that needs to be written into any database, but also allows for fast reads and writes of information from authoritative tables that are a source of truth for the content management system, while allowing for maintenance of indexes containing more refined data that allow for efficient retrieval of certain information that would normally need to be calculated when it is needed.

First claim

Opening claim text (preview).

What is claimed is: 1. A method comprising: receiving, at a content management system, data descriptive of changed data occurring relative to objects stored in the content management system; maintaining a database including at least one table, wherein the at least one table includes immutable rows with fields for the data descriptive of changed data occurring relative to objects stored in the content management system, the fields including at least an object ID referencing a specific object for which data in a respective row in the at least one table pertains, and a clock value recording a system time in which the changed data relative to the specific object represented by the object ID occurred; maintaining at least one index in addition to the at least one table, wherein data is included in the at least one index when the changed data satisfies a condition for inclusion in the at least one index, wherein the at least one index includes a directory index where the condition for inclusion includes adding an object to a directory; determining that the changed data satisfies the condition for inclusion; and updating the directory index based on the changed data, wherein the update includes adding a new row to the directory index. 2. The method of claim 1 comprising: determining that an activity occurred that is associated with a first object ID by identifying the first object ID in the at least one index, wherein the condition for inclusion of the object ID in the at least one index is that the activity occurred; and retrieving, from the at least one index, a first system time in which the activity occurred. 3. The method of claim 2 comprising: querying the at least one table using the first object ID and the first system time to retrieve additional data pertaining to the first object ID at the first system time. 4. The method of claim 1 comprising: determining that an activity occurred that is associated with a first object ID; after determining that the activity occurred, updating the at least one table substantially synchronously; and after determining that the activity occurred, updating the at least one index asynchronously. 5. The method of claim 1 comprising: constructing a list of ancestors by recursively performing at least the following: retrieving a next ancestor object ID by looking up a query object ID in the at least one table, wherein the at least one table contains ancestor data; building the list of ancestors by adding the next ancestor object ID as an ancestor to the query object ID; and making the next ancestor object ID the query object ID. 6. The method of claim 1 , comprising: looking up an object ID in an access change simple object index, wherein if the object ID is located in the simple object index there has been an access change for the object ID. 7. The method of claim 1 , comprising: looking up a changed access control list (ACL) for the object ID having one or more changes at the system time in the at least one table, wherein the at least one table in includes ACL information for the object ID. 8. A non-transitory computer readable medium comprising instructions, the instructions, when executed by a computing system, cause the computing system to: receive, at a content management system, data descriptive of changed data occurring relative to objects stored in the content management system; maintain a database including at least one table, wherein the at least one table includes rows with fields for the data descriptive of changed data occurring relative to objects stored in the content management system, the fields including at least an object ID referencing a specific object for which data in a respective row in the at least one table pertains, and a clock value recording a system time in which the changed data relative to the specific object represented by the object ID occurred; maintain at least one index in addition to the at least one table, wherein data is included in the at least one index when the changed data satisfies a condition for inclusion in the at least one index, wherein the at least one index includes a directory index where the condition for inclusion includes adding an object to a directory; determine that the changed data satisfies the condition for inclusion; and update the directory index based on the changed data, wherein the update includes adding a new row to the directory index. 9. The computer readable medium of claim 8 , wherein the computer readable medium further comprises instructions that, when executed by the computing system, cause the computing system to: determine that an activity occurred that is associated with a first object ID by identify the first object ID in the at least one index, wherein the condition for inclusion of the object ID in the at least one index is that the activity occurred; and retrieve, from the at least one index, a first system time in which the activity occurred. 10. The computer readable medium of claim 9 , wherein the computer readable medium further comprises instructions that, when executed by the computing system, cause the computing system to: query the at least one table use the first object ID and the first system time to retrieve additional data pertaining to the first object ID at the first system time. 11. The computer readable medium of claim 8 , wherein the computer readable medium further comprises instructions that, when executed by the computing system, cause the computing system to: determine that an activity occurred that is associated with a first object ID; after the determination that the activity occurred update the at least one table substantially synchronously; and wherein after the determination that the activity occurred, update the at least one index asynchronously. 12. The computer readable medium of claim 8 , wherein the computer readable medium further comprises instructions that, when executed by the computing system, cause the computing system to: construct a list of ancestors by recursively performing at least the following: retrieve a next ancestor object ID by look up a query object ID in the at least one table, wherein the at least one table contains ancestor data; build the list of ancestors by add the next ancestor object ID as an ancestor to the query object ID; and make the next ancestor object ID the query object ID. 13. The computer readable medium of claim 8 , wherein the computer readable medium further comprises instructions that, when executed by the computing system, cause the computing system to: look up an object ID in an access change simple object index, wherein if the object ID is located in the simple object index there has been an access change for the object ID. 14. The computer readable medium of claim 8 , wherein the computer readable medium further comprises instructions that, when executed by the computing system, cause the computing system to: look up a changed access control list (ACL) for the object ID having one or more changes at the system time in the at least one table, wherein the at least one table in includes ACL information for the object ID. 15. A system comprising: at least one non-transitory computer readable medium storing instructions thereon; at least one processor configured to execute the instructions and cause the at least one processor to: receiving, at a content management system, data descriptive of changed data occurring relative to objects stored in the content management system; maintain a database including at least one table, wherein the at least one table includes rows with fiel

Assignees

Inventors

Classifications

  • G06F16/275Primary

    Synchronous replication · CPC title

  • Tablespace storage structures; Management thereof · CPC title

  • Updates performed during online database operations; commit processing · CPC title

  • Query processing · CPC title

  • Access control lists [ACL] · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US11789976B2 cover?
The disclosed technology addresses the need in the art for a content management system that can be highly flexible to the needs of its subjects. The present technology permits any object to be shared by providing a robust and flexible access control list mechanism. The present technology utilizes a data structure that is highly efficient that both minimizes the amount of information that needs …
Who is the assignee on this patent?
Dropbox Inc
What technology area does this patent fall under?
Primary CPC classification G06F16/275. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Oct 17 2023 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 12 related publications on this page (citations in our corpus or others sharing the same primary CPC).