All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.rocksdb.Checkpoint Maven / Gradle / Ivy

// Copyright (c) 2011-present, Facebook, Inc.  All rights reserved.
//  This source code is licensed under both the GPLv2 (found in the
//  COPYING file in the root directory) and Apache 2.0 License
//  (found in the LICENSE.Apache file in the root directory).

package org.rocksdb;

/**
 * Provides Checkpoint functionality. Checkpoints
 * provide persistent snapshots of RocksDB databases.
 */
public class Checkpoint extends RocksObject {

  /**
   * Creates a Checkpoint object to be used for creating open-able
   * snapshots.
   *
   * @param db {@link RocksDB} instance.
   * @return a Checkpoint instance.
   *
   * @throws java.lang.IllegalArgumentException if {@link RocksDB}
   *     instance is null.
   * @throws java.lang.IllegalStateException if {@link RocksDB}
   *     instance is not initialized.
   */
  public static Checkpoint create(final RocksDB db) {
    if (db == null) {
      throw new IllegalArgumentException(
          "RocksDB instance shall not be null.");
    } else if (!db.isOwningHandle()) {
      throw new IllegalStateException(
          "RocksDB instance must be initialized.");
    }
    Checkpoint checkpoint = new Checkpoint(db);
    return checkpoint;
  }

  /**
   * 

Builds an open-able snapshot of RocksDB on the same disk, which * accepts an output directory on the same disk, and under the directory * (1) hard-linked SST files pointing to existing live SST files * (2) a copied manifest files and other files

* * @param checkpointPath path to the folder where the snapshot is going * to be stored. * @throws RocksDBException thrown if an error occurs within the native * part of the library. */ public void createCheckpoint(final String checkpointPath) throws RocksDBException { createCheckpoint(nativeHandle_, checkpointPath); } private Checkpoint(final RocksDB db) { super(newCheckpoint(db.nativeHandle_)); this.db_ = db; } private final RocksDB db_; private static native long newCheckpoint(long dbHandle); @Override protected final native void disposeInternal(final long handle); private native void createCheckpoint(long handle, String checkpointPath) throws RocksDBException; }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy