Class PutDocumentMessage

java.lang.Object
com.yahoo.messagebus.Routable
com.yahoo.messagebus.Message

public class PutDocumentMessage extends TestAndSetMessage
Author:
Simon Thoresen Hult
  • Constructor Summary

    Constructors
    Constructor
    Description
    PutDocumentMessage(com.yahoo.document.DocumentPut put)
    Constructs a new document put message
    PutDocumentMessage(LazyDecoder decoder, com.yahoo.document.serialization.DocumentDeserializer buffer)
    Constructs a new message from a byte buffer.
  • Method Summary

    Modifier and Type
    Method
    Description
    Creates an empty PutDocumentMessage
    Creates and returns a reply to this message.
    int
     
    com.yahoo.document.TestAndSetCondition
     
    boolean
     
    com.yahoo.document.DocumentPut
    Returns the document put operation
    long
    When a visitor client receives a Put as part of the visiting operation, this timestamp represents the wall clock time in microseconds(*) of the last known mutating operation to the document.
    long
     
    long
    Returns the timestamp of the document to put.
    int
     
    boolean
     
    void
    setCondition(com.yahoo.document.TestAndSetCondition condition)
     
    void
    setCreateIfNonExistent(boolean value)
     
    void
    setDocumentPut(com.yahoo.document.DocumentPut put)
    Sets the document to put
    void
    Set the timestamp of the last known mutating operation to this document.
    void
    setTimestamp(long time)
    Sets the timestamp of the document to put.

    Methods inherited from class com.yahoo.documentapi.messagebus.protocol.DocumentMessage

    getPriority, getProtocol, setPriority, swapState

    Methods inherited from class com.yahoo.messagebus.Message

    getBucketSequence, getRetry, getRetryEnabled, getRoute, getTimeReceived, getTimeRemaining, getTimeRemainingNow, hasBucketSequence, isExpired, setRetry, setRetryEnabled, setRoute, setTimeReceived, setTimeReceivedNow, setTimeRemaining

    Methods inherited from class com.yahoo.messagebus.Routable

    discard, getCallStack, getContext, getTrace, popHandler, pushHandler, setContext

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Constructor Details

    • PutDocumentMessage

      public PutDocumentMessage(LazyDecoder decoder, com.yahoo.document.serialization.DocumentDeserializer buffer)
      Constructs a new message from a byte buffer.
      Parameters:
      decoder - The decoder to use for deserialization.
      buffer - A byte buffer that contains a serialized message.
    • PutDocumentMessage

      public PutDocumentMessage(com.yahoo.document.DocumentPut put)
      Constructs a new document put message
  • Method Details

    • createEmpty

      public static PutDocumentMessage createEmpty()
      Creates an empty PutDocumentMessage
    • getDocumentPut

      public com.yahoo.document.DocumentPut getDocumentPut()
      Returns the document put operation
    • setDocumentPut

      public void setDocumentPut(com.yahoo.document.DocumentPut put)
      Sets the document to put
    • getTimestamp

      public long getTimestamp()

      Returns the timestamp of the document to put.

      Only used by the feed pipeline; use getPersistedTimestamp() to get the persisted backend timestamp of the document as observed by the client of a running visitor operation.

    • setTimestamp

      public void setTimestamp(long time)

      Sets the timestamp of the document to put.

      Timestamp assignment should normally always be left to the content cluster, i.e. this method should not be called.

      Only use this if you have a very specific use case and are aware of the downsides of side-stepping the internal timestamp mechanisms.

    • setPersistedTimestamp

      public void setPersistedTimestamp(long time)

      Set the timestamp of the last known mutating operation to this document.

      This is normally only invoked by the backends as part of visiting.

    • getPersistedTimestamp

      public long getPersistedTimestamp()

      When a visitor client receives a Put as part of the visiting operation, this timestamp represents the wall clock time in microseconds(*) of the last known mutating operation to the document.

      If zero, the sending content node is too old to support this feature.

      This value is not guaranteed to be linearizable. During e.g. network partitions this value might not represent the latest acknowledged operation for the document.

      Unsupported (and ignored) for Puts sent by the client during feeding.

      (*) (wall clock seconds since UTC epoch * 1M) + synthetic intra-second microsecond counter.

    • createReply

      public DocumentReply createReply()
      Description copied from class: DocumentMessage
      Creates and returns a reply to this message.
      Specified by:
      createReply in class DocumentMessage
      Returns:
      The created reply.
    • getApproxSize

      public int getApproxSize()
      Overrides:
      getApproxSize in class DocumentMessage
    • hasSequenceId

      public boolean hasSequenceId()
      Overrides:
      hasSequenceId in class com.yahoo.messagebus.Message
    • getSequenceId

      public long getSequenceId()
      Overrides:
      getSequenceId in class com.yahoo.messagebus.Message
    • getType

      public int getType()
      Specified by:
      getType in class com.yahoo.messagebus.Routable
    • getCondition

      public com.yahoo.document.TestAndSetCondition getCondition()
      Specified by:
      getCondition in class TestAndSetMessage
    • setCondition

      public void setCondition(com.yahoo.document.TestAndSetCondition condition)
      Specified by:
      setCondition in class TestAndSetMessage
    • setCreateIfNonExistent

      public void setCreateIfNonExistent(boolean value)
    • getCreateIfNonExistent

      public boolean getCreateIfNonExistent()