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

org.rocksdb.AbstractComparator Maven / Gradle / Ivy

Go to download

RocksDB fat jar to use with Apache Flink that contains .so files for linux32 and linux64, jnilib files for Mac OSX, and a .dll for Windows x64.

There is a newer version: 5.17.2-artisans-2.0
Show newest version
// Copyright (c) 2011-present, Facebook, Inc.  All rights reserved.
// This source code is licensed under the BSD-style license found in the
// LICENSE file in the root directory of this source tree. An additional grant
// of patent rights can be found in the PATENTS file in the same directory.

package org.rocksdb;

/**
 * Comparators are used by RocksDB to determine
 * the ordering of keys.
 *
 * This class is package private, implementers
 * should extend either of the public abstract classes:
 *   @see org.rocksdb.Comparator
 *   @see org.rocksdb.DirectComparator
 */
public abstract class AbstractComparator>
    extends AbstractImmutableNativeReference {

  protected AbstractComparator() {
    super(true);
  }

  /**
   * The name of the comparator.  Used to check for comparator
   * mismatches (i.e., a DB created with one comparator is
   * accessed using a different comparator).
   *
   * A new name should be used whenever
   * the comparator implementation changes in a way that will cause
   * the relative ordering of any two keys to change.
   *
   * Names starting with "rocksdb." are reserved and should not be used.
   *
   * @return The name of this comparator implementation
   */
  public abstract String name();

  /**
   * Three-way key comparison
   *
   *  @param a Slice access to first key
   *  @param b Slice access to second key
   *
   *  @return Should return either:
   *    1) < 0 if "a" < "b"
   *    2) == 0 if "a" == "b"
   *    3) > 0 if "a" > "b"
   */
  public abstract int compare(final T a, final T b);

  /**
   * 

Used to reduce the space requirements * for internal data structures like index blocks.

* *

If start < limit, you may return a new start which is a * shorter string in [start, limit).

* *

Simple comparator implementations may return null if they * wish to use start unchanged. i.e., an implementation of * this method that does nothing is correct.

* * @param start String * @param limit of type T * * @return a shorter start, or null */ public String findShortestSeparator(final String start, final T limit) { return null; } /** *

Used to reduce the space requirements * for internal data structures like index blocks.

* *

You may return a new short key (key1) where * key1 ≥ key.

* *

Simple comparator implementations may return null if they * wish to leave the key unchanged. i.e., an implementation of * this method that does nothing is correct.

* * @param key String * * @return a shorter key, or null */ public String findShortSuccessor(final String key) { return null; } /** * Deletes underlying C++ comparator pointer. * * Note that this function should be called only after all * RocksDB instances referencing the comparator are closed. * Otherwise an undefined behavior will occur. */ @Override protected void disposeInternal() { disposeInternal(getNativeHandle()); } protected abstract long getNativeHandle(); private native void disposeInternal(final long handle); }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy