Class BlobStoreIndexShardSnapshots

java.lang.Object
org.elasticsearch.index.snapshots.blobstore.BlobStoreIndexShardSnapshots
All Implemented Interfaces:
Iterable<SnapshotFiles>, org.elasticsearch.xcontent.ToXContent, org.elasticsearch.xcontent.ToXContentFragment

public class BlobStoreIndexShardSnapshots extends Object implements Iterable<SnapshotFiles>, org.elasticsearch.xcontent.ToXContentFragment
Contains information about all snapshots for the given shard in repository

This class is used to find files that were already snapshotted and clear out files that no longer referenced by any snapshots.

  • Field Details

  • Constructor Details

    • BlobStoreIndexShardSnapshots

      public BlobStoreIndexShardSnapshots(List<SnapshotFiles> shardSnapshots)
  • Method Details

    • withClone

      public BlobStoreIndexShardSnapshots withClone(String source, String target)
      Create a new instance that has a new snapshot by name target added which shares all files with the snapshot of name source.
      Parameters:
      source - source snapshot name
      target - target snapshot name
      Returns:
      new instance with added cloned snapshot
    • snapshots

      public List<SnapshotFiles> snapshots()
      Returns list of snapshots
      Returns:
      list of snapshots
    • findPhysicalIndexFiles

      public List<BlobStoreIndexShardSnapshot.FileInfo> findPhysicalIndexFiles(String physicalName)
      Finds reference to a snapshotted file by its original name
      Parameters:
      physicalName - original name
      Returns:
      a list of file infos that match specified physical file or null if the file is not present in any of snapshots
    • findNameFile

      public BlobStoreIndexShardSnapshot.FileInfo findNameFile(String name)
      Finds reference to a snapshotted file by its snapshot name
      Parameters:
      name - file name
      Returns:
      file info or null if file is not present in any of snapshots
    • iterator

      public Iterator<SnapshotFiles> iterator()
      Specified by:
      iterator in interface Iterable<SnapshotFiles>
    • toXContent

      public org.elasticsearch.xcontent.XContentBuilder toXContent(org.elasticsearch.xcontent.XContentBuilder builder, org.elasticsearch.xcontent.ToXContent.Params params) throws IOException
      Writes index file for the shard in the following format.
       
       {
           "files": [{
               "name": "__3",
               "physical_name": "_0.si",
               "length": 310,
               "checksum": "1tpsg3p",
               "written_by": "5.1.0",
               "meta_hash": "P9dsFxNMdWNlb......"
           }, {
               "name": "__2",
               "physical_name": "segments_2",
               "length": 150,
               "checksum": "11qjpz6",
               "written_by": "5.1.0",
               "meta_hash": "P9dsFwhzZWdtZ......."
           }, {
               "name": "__1",
               "physical_name": "_0.cfe",
               "length": 363,
               "checksum": "er9r9g",
               "written_by": "5.1.0"
           }, {
               "name": "__0",
               "physical_name": "_0.cfs",
               "length": 3354,
               "checksum": "491liz",
               "written_by": "5.1.0"
           }, {
               "name": "__4",
               "physical_name": "segments_3",
               "length": 150,
               "checksum": "134567",
               "written_by": "5.1.0",
               "meta_hash": "P9dsFwhzZWdtZ......."
           }],
           "snapshots": {
               "snapshot_1": {
                   "files": ["__0", "__1", "__2", "__3"]
               },
               "snapshot_2": {
                   "files": ["__0", "__1", "__2", "__4"]
               }
           }
       }
       }
       
       
      Specified by:
      toXContent in interface org.elasticsearch.xcontent.ToXContent
      Throws:
      IOException
    • fromXContent

      public static BlobStoreIndexShardSnapshots fromXContent(org.elasticsearch.xcontent.XContentParser parser) throws IOException
      Throws:
      IOException