Patentable/Patents/US-10713218
US-10713218

System and method to optimally apply local retention in a remote repository

PublishedJuly 14, 2020
Assigneenot available in USPTO data we have
Inventorsnot available in USPTO data we have
Technical Abstract

An electronic-discovery system and method, wherein content items and hold anchors are stored in a repository, tracking objects and representational anchor objects are stored in a database system, and the tracking objects represent the content items and the representational anchor objects represent the hold anchors. A first hold anchor is used for placing a hold on the content items for a first defined period of time, and a first representational anchor object and one or more of the tracking objects are used for representing and tracking the holds for the first defined period of time. When the first defined period of time expires, a second hold anchor is used for placing the hold on the content items for a second defined period of time, and a second representational anchor object and the tracking objects are used for representing and tracking the holds for the second defined period of time.

Patent Claims
8 claims

Legal claims defining the scope of protection, as filed with the USPTO.

1

1. A system, comprising: one or more computers programmed for: storing one or more content items and one or more hold anchors in at least one repository; storing one or more tracking objects and one or more representational anchor objects in at least one database system, wherein each of the tracking objects represents one of the content items and each of the representational anchor objects represents one of the hold anchors; using a first one of the hold anchors for placing one or more holds on one or more of the content items in the repository for a first defined period of time, and representing and tracking the holds using a first one of the representational anchor objects and one or more of the tracking objects in the database system for the first defined period of time; when the first defined period of time expires, using a second one of the hold anchors for placing the holds on the one or more of the content items in the repository system for a second defined period of time, and representing and tracking the holds using a second one of the representational anchor objects and the one or more of the tracking objects in the database system for the second defined period of time; wherein each of the holds are placed only through the first or second one of the hold anchors and represented by the first or second one of the representational anchor objects; and recovering from a failure of the repository or database system by performing the steps of: (1) in the database system, locating one of the representational anchor objects with a latest start time; (2) in the repository, finding the hold anchors that have a timestamp later than the latest start time; (3) in the repository, finding the content items that have been placed on one of the holds for the hold anchors found in step (2); (4) in the database system finding the tracking objects that represent the content items found in step (3); (5) in the database system, performing a fixup on the representational anchor objects for the tracking objects found in step (4), if the tracking objects are associated with a different one of the representational anchor objects, wherein the fixup is applied so that the representational anchor objects on the database system agree with the hold anchors on the repository; (6) in the database system, adding the tracking objects found in step (4) to a set B, if the tracking objects represent the content items that have been placed on one of the holds; (7) in the repository, releasing or tracking the content items that have been placed on one of the holds, for the tracking objects found in step (4), if the tracking objects and the representational anchor objects indicate that the content items are not on one of the holds; (8) in the repository, optionally removing the hold anchors that do not have corresponding representational anchor objects in the database system; (9) in the database system, finding the tracking objects that represent the content items that have been placed on one of the holds due to any of the hold anchors found in step (2) and then adding the tracking objects to a set A; and (10) in the database system, determining the tracking objects in a set C, wherein the set C=set A−set B; and (11) in the repository, placing one of the holds on the content items represented by the tracking objects in the set C.

2

2. The system of claim 1 , wherein the using steps are repeated.

3

3. The system of claim 1 , wherein the holds for the first defined period of time are related to the first one of the hold anchors and represented by the first one of the representational anchor objects, and the holds for the second defined period of time are related to the second one of the hold anchors and represented by the second one of the representational anchor objects.

4

4. The system of claim 1 , wherein, whenever one of the content items is placed on one of the holds, a timestamp of the first or second one of the hold anchors and the first or second one of the representational anchor objects is updated.

5

5. The system of claim 1 , wherein recovering from a failure of the repository or database system further comprises restoring: (1) the repository, (2) the database system, or (3) both the repository and the database system, such that the repository's state is ahead, in time, of the database system's state.

6

6. The system of claim 1 , wherein only the content items placed on one of the holds after the latest start time are considered.

7

7. The system of claim 1 , wherein only the content items released from one of the holds after the latest start time are considered.

8

8. A computer program product, the computer program product comprising a computer readable storage medium having program instructions embodied therewith, the program instructions executable by one or more computers to cause the computers to perform a method comprising: storing one or more content items and one or more hold anchors in at least one repository; storing one or more tracking objects and one or more representational anchor objects in at least one database system, wherein each of the tracking objects represents one of the content items and each of the representational anchor objects represents one of the hold anchors; using a first one of the hold anchors for placing one or more holds on one or more of the content items in the repository for a first defined period of time, and representing and tracking the holds using a first one of the representational anchor objects and one or more of the tracking objects in the database system for the first defined period of time; when the first defined period of time expires, using a second one of the hold anchors for placing the holds on the one or more of the content items in the repository system for a second defined period of time, and representing and tracking the holds using a second one of the representational anchor objects and the one or more of the tracking objects in the database system for the second defined period of time; wherein each of the holds are placed only through the first or second one of the hold anchors and represented by the first or second one of the representational anchor objects; and recovering from a failure of the repository or database system by performing the steps of: (1) in the database system, locating one of the representational anchor objects with a latest start time; (2) in the repository, finding the hold anchors that have a timestamp later than the latest start time; (3) in the repository, finding the content items that have been placed on one of the holds for the hold anchors found in step (2); (4) in the database system finding the tracking objects that represent the content items found in step (3); (5) in the database system, performing a fixup on the representational anchor objects for the tracking objects found in step (4), if the tracking objects are associated with a different one of the representational anchor objects, wherein the fixup is applied so that the representational anchor objects on the database system agree with the hold anchors on the repository; (6) in the database system, adding the tracking objects found in step (4) to a set B, if the tracking objects represent the content items that have been placed on one of the holds; (7) in the repository, releasing or tracking the content items that have been placed on one of the holds, for the tracking objects found in step (4), if the tracking objects and the representational anchor objects indicate that the content items are not on one of the holds; (8) in the repository, optionally removing the hold anchors that do not have corresponding representational anchor objects in the database system; (9) in the database system, finding the tracking objects that represent the content items that have been placed on one of the holds due to any of the hold anchors found in step (2) and then adding the tracking objects to a set A; and (10) in the database system, determining the tracking objects in a set C, wherein the set C=set A−set B; and (11) in the repository, placing one of the holds on the content items represented by the tracking objects in the set C.

Classification Codes (CPC)

Cooperative Patent Classification codes for this invention. Click any code to explore related patents in that topic.

Patent Metadata

Filing Date

September 14, 2017

Publication Date

July 14, 2020

Want to explore more patents?

Browse 5M+ US patents with plain-English claim translations and AI-generated analysis.

Citation & reuse

Analysis on this page is generated by Patentable — an AI-powered patent intelligence platform. AI-generated summaries, explanations, and analysis may be reused with attribution and a visible link back to the canonical URL below. Patent abstracts and claims are USPTO public domain.

Cite as: Patentable. “System and method to optimally apply local retention in a remote repository” (US-10713218). https://patentable.app/patents/US-10713218

© 2026 Patentable. All rights reserved.

Patentable is a research and drafting-assistant tool, not a law firm, and does not provide legal advice. Documents we generate are drafts for review by a licensed patent attorney.