Class VersionGCSupport

    • Constructor Detail

      • VersionGCSupport

        public VersionGCSupport​(DocumentStore store)
    • Method Detail

      • getPossiblyDeletedDocs

        public Iterable<NodeDocument> getPossiblyDeletedDocs​(long fromModified,
                                                             long toModified)
        Returns documents that have a NodeDocument.MODIFIED_IN_SECS value within the given range and the NodeDocument.DELETED set to true. The two passed modified timestamps are in milliseconds since the epoch and the implementation will convert them to seconds at the granularity of the NodeDocument.MODIFIED_IN_SECS field and then perform the comparison.
        Parameters:
        fromModified - the lower bound modified timestamp (inclusive)
        toModified - the upper bound modified timestamp (exclusive)
        Returns:
        matching documents.
      • getModifiedDocs

        public Iterable<NodeDocument> getModifiedDocs​(long fromModified,
                                                      long toModified,
                                                      int limit,
                                                      @NotNull
                                                      @NotNull String fromId,
                                                      @NotNull
                                                      @NotNull Set<String> includePaths,
                                                      @NotNull
                                                      @NotNull Set<String> excludePaths)
        Returns documents that have a NodeDocument.MODIFIED_IN_SECS value within the given range and are greater than given @Document.ID.

        The two passed modified timestamps are in milliseconds since the epoch and the implementation will convert them to seconds at the granularity of the NodeDocument.MODIFIED_IN_SECS field and then perform the comparison.

        Parameters:
        fromModified - the lower bound modified timestamp (inclusive)
        toModified - the upper bound modified timestamp (exclusive)
        limit - the limit of documents to return
        fromId - the lower bound Document.ID
        Returns:
        matching documents.
      • getDocumentStore

        @NotNull
        public @NotNull DocumentStore getDocumentStore()
        Returns the underlying document store.
        Returns:
        the underlying document store.
      • getOldestDeletedOnceTimestamp

        public long getOldestDeletedOnceTimestamp​(Clock clock,
                                                  long precisionMs)
        Retrieve the time of the oldest document marked as 'deletedOnce'.
        Parameters:
        precisionMs - the exact time may vary by given precision
        Returns:
        the timestamp of the oldest document marked with 'deletecOnce', module given prevision. If no such document exists, returns the max time inspected (close to current time).
      • getOldestModifiedDoc

        public Optional<NodeDocument> getOldestModifiedDoc​(Clock clock)
        Retrieve the oldest modified document.
        Returns:
        the oldest modified document.
      • getDocument

        public Optional<NodeDocument> getDocument​(String id,
                                                  List<String> fields)
        Retrieves a document with the given id from the DocumentStore. If a list of fields is provided, only these fields are included in the returned document.
        Parameters:
        id - the id of the document to retrieve
        fields - the list of fields to include in the returned document. If null or empty, all fields are returned.
        Returns:
        an Optional that contains the requested NodeDocument if it exists, or an empty Optional if it does not.