oracle.kv

## Class Durability

- java.lang.Object
- - oracle.kv.Durability

- All Implemented Interfaces:
    oracle.kv.impl.util.FastExternalizable

      public class Durability
      extends Object
      implements oracle.kv.impl.util.FastExternalizable

  Defines the durability characteristics associated with a standalone write (put or update) operation, or in the case of `KVStore.execute` with a set of operations performed in a single transaction.

  The overall durability is a function of the `Durability.SyncPolicy` and `Durability.ReplicaAckPolicy` in effect for the Master, and the `Durability.SyncPolicy` in effect for each Replica.

- - ### Nested Class Summary

    Nested Classes
    Modifier and Type | Class and Description
    --- | ---
    `static class` | `Durability.ReplicaAckPolicy` A replicated environment makes it possible to increase an application's transaction commit guarantees by committing changes to its replicas on the network.
    `static class` | `Durability.SyncPolicy` Defines the synchronization policy to be used when committing a transaction.

  - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `static Durability` | `COMMIT_NO_SYNC` A convenience constant that defines a durability policy with COMMIT_NO_SYNC for Master commit synchronization.
    `static Durability` | `COMMIT_SYNC` A convenience constant that defines a durability policy with COMMIT_SYNC for Master commit synchronization.
    `static Durability` | `COMMIT_WRITE_NO_SYNC` A convenience constant that defines a durability policy with COMMIT_WRITE_NO_SYNC for Master commit synchronization.

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `Durability(Durability.SyncPolicy masterSync, Durability.SyncPolicy replicaSync, Durability.ReplicaAckPolicy replicaAck)` Creates an instance of a Durability specification.

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `boolean` | `equals(Object obj)`
    `static Durability` | `fromByteArray(byte[] keyBytes)` Deserializes the given bytes that were returned earlier by `toByteArray()` and returns the resulting Durability.
    `Durability.SyncPolicy` | `getMasterSync()` Returns the transaction synchronization policy to be used on the Master when committing a transaction.
    `Durability.ReplicaAckPolicy` | `getReplicaAck()` Returns the replica acknowledgment policy used by the master when committing changes to a replicated environment.
    `Durability.SyncPolicy` | `getReplicaSync()` Returns the transaction synchronization policy to be used by the replica as it replays a transaction that needs an acknowledgment.
    `int` | `hashCode()`
    `byte[]` | `toByteArray()` Returns this Durability as a serialized byte array, such that `fromByteArray(byte[])` may be used to reconstitute the Durability.
    `String` | `toString()`

    - ### Methods inherited from class java.lang.Object

      `clone, finalize, getClass, notify, notifyAll, wait, wait, wait`

    - ### Methods inherited from interface oracle.kv.impl.util.FastExternalizable

      `writeFastExternal`

- - ### Field Detail

    - #### COMMIT_SYNC

          public static final Durability COMMIT_SYNC

      A convenience constant that defines a durability policy with COMMIT_SYNC for Master commit synchronization. The policies default to COMMIT_NO_SYNC for commits of replicated transactions that need acknowledgment and SIMPLE_MAJORITY for the acknowledgment policy.

    - #### COMMIT_NO_SYNC

          public static final Durability COMMIT_NO_SYNC

      A convenience constant that defines a durability policy with COMMIT_NO_SYNC for Master commit synchronization. The policies default to COMMIT_NO_SYNC for commits of replicated transactions that need acknowledgment and SIMPLE_MAJORITY for the acknowledgment policy.

    - #### COMMIT_WRITE_NO_SYNC

          public static final Durability COMMIT_WRITE_NO_SYNC

      A convenience constant that defines a durability policy with COMMIT_WRITE_NO_SYNC for Master commit synchronization. The policies default to COMMIT_NO_SYNC for commits of replicated transactions that need acknowledgment and SIMPLE_MAJORITY for the acknowledgment policy.

  - ### Constructor Detail

    - #### Durability

          public Durability(Durability.SyncPolicy masterSync,
                    Durability.SyncPolicy replicaSync,
                    Durability.ReplicaAckPolicy replicaAck)

      Creates an instance of a Durability specification.
      Parameters:
        `masterSync` - the SyncPolicy to be used when committing the transaction on the Master.
        `replicaSync` - the SyncPolicy to be used remotely, as part of a transaction acknowledgment, at a Replica node.
        `replicaAck` - the acknowledgment policy used when obtaining transaction acknowledgments from Replicas.

  - ### Method Detail

    - #### toByteArray

          public byte[] toByteArray()

      Returns this Durability as a serialized byte array, such that `fromByteArray(byte[])` may be used to reconstitute the Durability.

    - #### fromByteArray

          public static Durability fromByteArray(byte[] keyBytes)

      Deserializes the given bytes that were returned earlier by `toByteArray()` and returns the resulting Durability.

    - #### toString

          public String toString()

      Overrides:
        `toString` in class `Object`

    - #### getMasterSync

          public Durability.SyncPolicy getMasterSync()

      Returns the transaction synchronization policy to be used on the Master when committing a transaction.

    - #### getReplicaSync

          public Durability.SyncPolicy getReplicaSync()

      Returns the transaction synchronization policy to be used by the replica as it replays a transaction that needs an acknowledgment.

    - #### getReplicaAck

          public Durability.ReplicaAckPolicy getReplicaAck()

      Returns the replica acknowledgment policy used by the master when committing changes to a replicated environment.

    - #### hashCode

          public int hashCode()

      Overrides:
        `hashCode` in class `Object`

    - #### equals

          public boolean equals(Object obj)

      Overrides:
        `equals` in class `Object`

Copyright (c) 2011, 2014 Oracle and/or its affiliates. All rights reserved.