Package com.mongodb

Class TaggableReadPreference

java.lang.Object
com.mongodb.ReadPreference
com.mongodb.TaggableReadPreference

@Immutable public abstract class TaggableReadPreference extends ReadPreference
Abstract class for all preference which can be combined with tags
  • Method Details

    • withTagSet

      public abstract TaggableReadPreference withTagSet(TagSet tagSet)
      Description copied from class: ReadPreference
      Create a new ReadPreference instance with a new tag set.

      Note: this method is not supported for a primary read preference.

      Specified by:
      withTagSet in class ReadPreference
      Parameters:
      tagSet - the new tag set
      Returns:
      a new ReadPreference instance with a new tag set
    • withTagSetList

      public abstract TaggableReadPreference withTagSetList(List<TagSet> tagSet)
      Description copied from class: ReadPreference
      Create a new ReadPreference instance with a new tag set list.

      Note: this method is not supported for a primary read preference.

      Specified by:
      withTagSetList in class ReadPreference
      Parameters:
      tagSet - the new tag set list
      Returns:
      a new ReadPreference instance with a new tag set list
    • withMaxStalenessMS

      public abstract TaggableReadPreference withMaxStalenessMS(Long maxStalenessMS, TimeUnit timeUnit)
      Description copied from class: ReadPreference
      Create a new ReadPreference instance with the maximum acceptable staleness of a secondary in order to be considered for read operations.

      Note: this method is not supported for a primary read preference.

      Specified by:
      withMaxStalenessMS in class ReadPreference
      Parameters:
      maxStalenessMS - the max allowable staleness of secondaries. The minimum value is either 90 seconds, or the heartbeat frequency plus 10 seconds, whichever is greatest.
      timeUnit - the time unit of maxStaleness
      Returns:
      a new ReadPreference instance with a new maximum allowable staleness
    • withHedgeOptions

      public abstract TaggableReadPreference withHedgeOptions(ReadPreferenceHedgeOptions hedgeOptions)
      Description copied from class: ReadPreference
      Create a new ReadPreference instance with hedge options.

      Note: this method is not supported for a primary read preference.

      Specified by:
      withHedgeOptions in class ReadPreference
      Parameters:
      hedgeOptions - the hedge options
      Returns:
      a new ReadPreference instance with hedge options
    • isSlaveOk

      @Deprecated public boolean isSlaveOk()
      Deprecated.
      Description copied from class: ReadPreference
      True if this read preference allows reading from a secondary member of a replica set.
      Specified by:
      isSlaveOk in class ReadPreference
      Returns:
      if reading from a secondary is ok
    • isSecondaryOk

      public boolean isSecondaryOk()
      Description copied from class: ReadPreference
      True if this read preference allows reading from a secondary member of a replica set.
      Specified by:
      isSecondaryOk in class ReadPreference
      Returns:
      if reading from a secondary is ok
    • toDocument

      public BsonDocument toDocument()
      Description copied from class: ReadPreference
      Gets a document representing this read preference in the wire protocol.
      Specified by:
      toDocument in class ReadPreference
      Returns:
      the document
    • getTagSetList

      public List<TagSet> getTagSetList()
      Gets the list of tag sets as a list of TagSet instances.
      Returns:
      the list of tag sets
      Since:
      2.13
    • getMaxStaleness

      @Nullable public Long getMaxStaleness(TimeUnit timeUnit)
      Gets the maximum acceptable staleness of a secondary in order to be considered for read operations.

      The maximum staleness feature is designed to prevent badly-lagging servers from being selected. The staleness estimate is imprecise and shouldn't be used to try to select "up-to-date" secondaries.

      The driver estimates the staleness of each secondary, based on lastWriteDate values provided in server hello responses, and selects only those secondaries whose staleness is less than or equal to maxStaleness.

      Parameters:
      timeUnit - the time unit in which to return the value
      Returns:
      the maximum acceptable staleness in the given time unit, or null if the value is not set
      Since:
      3.4
      Since server release
      3.4
    • getHedgeOptions

      @Nullable public ReadPreferenceHedgeOptions getHedgeOptions()
      Gets the hedge options.
      Returns:
      the hedge options
      Since:
      4.1
      Since server release
      4.4
    • toString

      public String toString()
      Overrides:
      toString in class Object
    • equals

      public boolean equals(Object o)
      Overrides:
      equals in class Object
    • hashCode

      public int hashCode()
      Overrides:
      hashCode in class Object
    • chooseForNonReplicaSet

      protected List<ServerDescription> chooseForNonReplicaSet(ClusterDescription clusterDescription)
      Description copied from class: ReadPreference
      Choose for non-replica sets.
      Specified by:
      chooseForNonReplicaSet in class ReadPreference
      Parameters:
      clusterDescription - the cluster description
      Returns:
      the list of matching server descriptions