Class DataStream

java.lang.Object
org.elasticsearch.cluster.AbstractDiffable<DataStream>
org.elasticsearch.cluster.metadata.DataStream
All Implemented Interfaces:
Diffable<DataStream>, Writeable, ToXContent, ToXContentObject

public final class DataStream extends AbstractDiffable<DataStream> implements ToXContentObject
  • Field Details

    • BACKING_INDEX_PREFIX

      public static final String BACKING_INDEX_PREFIX
      See Also:
    • DATE_FORMATTER

      public static final DateFormatter DATE_FORMATTER
    • TIMESERIES_LEAF_READERS_SORTER

      public static Comparator<org.apache.lucene.index.LeafReader> TIMESERIES_LEAF_READERS_SORTER
    • NEW_FEATURES_VERSION

      public static final Version NEW_FEATURES_VERSION
      The version when data stream metadata, hidden and replicated data streams, and dates in backing index names was introduced.
    • NAME_FIELD

      public static final ParseField NAME_FIELD
    • TIMESTAMP_FIELD_FIELD

      public static final ParseField TIMESTAMP_FIELD_FIELD
    • INDICES_FIELD

      public static final ParseField INDICES_FIELD
    • GENERATION_FIELD

      public static final ParseField GENERATION_FIELD
    • METADATA_FIELD

      public static final ParseField METADATA_FIELD
    • HIDDEN_FIELD

      public static final ParseField HIDDEN_FIELD
    • REPLICATED_FIELD

      public static final ParseField REPLICATED_FIELD
    • SYSTEM_FIELD

      public static final ParseField SYSTEM_FIELD
  • Constructor Details

  • Method Details

    • getName

      public String getName()
    • getTimeStampField

      public DataStream.TimestampField getTimeStampField()
    • getIndices

      public List<Index> getIndices()
    • getGeneration

      public long getGeneration()
    • getWriteIndex

      public Index getWriteIndex()
    • getMetadata

      @Nullable public Map<String,Object> getMetadata()
    • isHidden

      public boolean isHidden()
    • isReplicated

      public boolean isReplicated()
      Determines whether this data stream is replicated from elsewhere, for example a remote cluster.
      Returns:
      Whether this data stream is replicated.
    • isSystem

      public boolean isSystem()
    • rollover

      public DataStream rollover(Index writeIndex, long generation)
      Performs a rollover on a DataStream instance and returns a new instance containing the updated list of backing indices and incremented generation.
      Parameters:
      writeIndex - new write index
      generation - new generation
      Returns:
      new DataStream instance with the rollover operation applied
    • unsafeRollover

      public DataStream unsafeRollover(Index writeIndex, long generation)
      Like rollover(Index, long), but does no validation, use with care only.
    • nextWriteIndexAndGeneration

      public Tuple<String,Long> nextWriteIndexAndGeneration(Metadata clusterMetadata, Version minNodeVersion)
      Performs a dummy rollover on a DataStream instance and returns the tuple of the next write index name and next generation that this DataStream should roll over to using rollover(Index, long).
      Parameters:
      clusterMetadata - Cluster metadata
      Returns:
      new DataStream instance with the dummy rollover operation applied
    • unsafeNextWriteIndexAndGeneration

      public Tuple<String,Long> unsafeNextWriteIndexAndGeneration(Metadata clusterMetadata, Version minNodeVersion)
      Like nextWriteIndexAndGeneration(Metadata, Version), but does no validation, use with care only.
    • removeBackingIndex

      public DataStream removeBackingIndex(Index index)
      Removes the specified backing index and returns a new DataStream instance with the remaining backing indices.
      Parameters:
      index - the backing index to remove
      Returns:
      new DataStream instance with the remaining backing indices
      Throws:
      IllegalArgumentException - if index is not a backing index or is the current write index of the data stream
    • replaceBackingIndex

      public DataStream replaceBackingIndex(Index existingBackingIndex, Index newBackingIndex)
      Replaces the specified backing index with a new index and returns a new DataStream instance with the modified backing indices. An IllegalArgumentException is thrown if the index to be replaced is not a backing index for this data stream or if it is the DataStream's write index.
      Parameters:
      existingBackingIndex - the backing index to be replaced
      newBackingIndex - the new index that will be part of the DataStream
      Returns:
      new DataStream instance with backing indices that contain replacement index instead of the specified existing index.
    • addBackingIndex

      public DataStream addBackingIndex(Metadata clusterMetadata, Index index)
      Adds the specified index as a backing index and returns a new DataStream instance with the new combination of backing indices.
      Parameters:
      index - index to add to the data stream
      Returns:
      new DataStream instance with the added backing index
      Throws:
      IllegalArgumentException - if index is ineligible to be a backing index for the data stream
    • promoteDataStream

      public DataStream promoteDataStream()
    • snapshot

      @Nullable public DataStream snapshot(Collection<String> indicesInSnapshot)
      Reconciles this data stream with a list of indices available in a snapshot. Allows snapshots to store accurate data stream definitions that do not reference backing indices not contained in the snapshot.
      Parameters:
      indicesInSnapshot - List of indices in the snapshot
      Returns:
      Reconciled DataStream instance or null if no reconciled version of this data stream could be built from the given indices
    • getDefaultBackingIndexName

      public static String getDefaultBackingIndexName(String dataStreamName, long generation)
      Generates the name of the index that conforms to the default naming convention for backing indices on data streams given the specified data stream name and generation and the current system time.
      Parameters:
      dataStreamName - name of the data stream
      generation - generation of the data stream
      Returns:
      backing index name
    • getDefaultBackingIndexName

      public static String getDefaultBackingIndexName(String dataStreamName, long generation, Version minNodeVersion)
    • getDefaultBackingIndexName

      public static String getDefaultBackingIndexName(String dataStreamName, long generation, long epochMillis)
      Generates the name of the index that conforms to the default naming convention for backing indices on data streams given the specified data stream name, generation, and time.
      Parameters:
      dataStreamName - name of the data stream
      generation - generation of the data stream
      epochMillis - creation time for the backing index
      Returns:
      backing index name
    • getDefaultBackingIndexName

      public static String getDefaultBackingIndexName(String dataStreamName, long generation, long epochMillis, Version minNodeVersion)
    • getLegacyDefaultBackingIndexName

      public static String getLegacyDefaultBackingIndexName(String dataStreamName, long generation)
    • readDiffFrom

      public static Diff<DataStream> readDiffFrom(StreamInput in) throws IOException
      Throws:
      IOException
    • writeTo

      public void writeTo(StreamOutput out) throws IOException
      Description copied from interface: Writeable
      Write this into the StreamOutput.
      Specified by:
      writeTo in interface Writeable
      Throws:
      IOException
    • fromXContent

      public static DataStream fromXContent(XContentParser parser) throws IOException
      Throws:
      IOException
    • toXContent

      public XContentBuilder toXContent(XContentBuilder builder, ToXContent.Params params) throws IOException
      Specified by:
      toXContent in interface ToXContent
      Throws:
      IOException
    • equals

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

      public int hashCode()
      Overrides:
      hashCode in class Object