Package oracle.kv

Class Consistency

  • All Implemented Interfaces:
    java.io.Serializable, oracle.kv.impl.util.FastExternalizable
    Direct Known Subclasses:
    Consistency.Time, Consistency.Version

    public abstract class Consistency
    extends java.lang.Object
    implements oracle.kv.impl.util.FastExternalizable, java.io.Serializable
    Used to provide consistency guarantees for read operations.

    In general, read operations may be serviced either at a Master or Replica node. When serviced at the Master node, consistency is always absolute. If absolute consistency is required, ABSOLUTE may be specified to force the operation to be serviced at the Master. For other types of consistency, when the operation is serviced at a Replica node, the transaction will not begin until the consistency policy is satisfied.

    The Consistency is specified as an argument to all read operations, for example, get.

    See Also:
    Serialized Form
    • Nested Class Summary

      Nested Classes 
      Modifier and Type Class Description
      static class  Consistency.Time
      A consistency policy which describes the amount of time the Replica is allowed to lag the Master.
      static class  Consistency.Version
      A consistency policy which ensures that the environment on a Replica node is at least as current as denoted by the specified Key-Value pair Consistency.Version.
    • Field Summary

      Fields 
      Modifier and Type Field Description
      static Consistency ABSOLUTE
      A consistency policy that requires that a transaction be serviced on the Master so that consistency is absolute.
      static Consistency NONE_REQUIRED
      A consistency policy that lets a transaction on a replica using this policy proceed regardless of the state of the Replica relative to the Master.
      static Consistency NONE_REQUIRED_NO_MASTER
      Deprecated.
      as of 4.3, use NONE_REQUIRED or read zones instead
    • Method Summary

      All Methods Static Methods Instance Methods Abstract Methods Concrete Methods 
      Modifier and Type Method Description
      static Consistency fromByteArray​(byte[] keyBytes)
      Deserializes the given bytes that were returned earlier by toByteArray() and returns the resulting Consistency.
      abstract java.lang.String getName()
      Returns the name used to identify the policy.
      byte[] toByteArray()
      Returns this Consistency as a serialized byte array, such that fromByteArray(byte[]) may be used to reconstitute the Consistency.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
      • Methods inherited from interface oracle.kv.impl.util.FastExternalizable

        deserializedForm, writeFastExternal
    • Field Detail

      • NONE_REQUIRED

        public static final Consistency NONE_REQUIRED
        A consistency policy that lets a transaction on a replica using this policy proceed regardless of the state of the Replica relative to the Master.
      • ABSOLUTE

        public static final Consistency ABSOLUTE
        A consistency policy that requires that a transaction be serviced on the Master so that consistency is absolute.
      • NONE_REQUIRED_NO_MASTER

        @Deprecated
        public static final Consistency NONE_REQUIRED_NO_MASTER
        Deprecated.
        as of 4.3, use NONE_REQUIRED or read zones instead
        A consistency policy that requires that a read operation be serviced on a replica; never the Master. When this consistency policy is used, the read operation will not be performed if the only node available is the Master.

        For read-heavy applications (ex. analytics), it may be desirable to reduce the load on the master by restricting the read requests to only the replicas in the store. It is important to note however, that the secondary zones feature is preferred over this consistency policy as the mechanism for achieving this sort of read isolation. But for cases where the use of secondary zones is either impractical or not desired, this consistency policy can be used to achieve a similar effect; without employing the additional resources that secondary zones may require.

    • Method Detail

      • toByteArray

        public byte[] toByteArray()
        Returns this Consistency as a serialized byte array, such that fromByteArray(byte[]) may be used to reconstitute the Consistency. Values returned by calls to this method can be used with current and newer releases, but are not guaranteed to be compatible with earlier releases.
      • fromByteArray

        public static Consistency fromByteArray​(byte[] keyBytes)
        Deserializes the given bytes that were returned earlier by toByteArray() and returns the resulting Consistency. Values created with either the current or earlier releases can be used with this method, but values created by later releases are not guaranteed to be compatible.
      • getName

        public abstract java.lang.String getName()
        Returns the name used to identify the policy.