Enum Class NodeKind

java.lang.Object
java.lang.Enum<NodeKind>
com.apple.foundationdb.async.hnsw.NodeKind
All Implemented Interfaces:
Serializable, Comparable<NodeKind>, Constable

public enum NodeKind extends Enum<NodeKind>
Represents the different kinds of nodes, each associated with a unique byte value for serialization and deserialization.
  • Enum Constant Details

    • COMPACT

      public static final NodeKind COMPACT
      Compact node. Serialization and deserialization is implemented in CompactNode.

      Compact nodes store their own vector and their neighbors-list only contain the primary key for each neighbor.

    • INLINING

      public static final NodeKind INLINING
      Inlining node. Serialization and deserialization is implemented in InliningNode.

      Inlining nodes do not store their own vector and their neighbors-list contain the both the primary key and the neighbor vector for each neighbor. Each neighbor is stored in its own key/value pair.

    • COMPACT_APPENDABLE

      public static final NodeKind COMPACT_APPENDABLE
      Appendable compact node. This is a storage format marker for CompactNodes; the in-memory node of this kind reports COMPACT as its kind and is indistinguishable from any other compact node. It differs from COMPACT in that the neighbors are written as trailing elements of the stored tuple. This allows new neighbors to be appended to the end.

      Compatibility: Support for this option was added after the other versions. As such, using this node is incompatible with certain software rollback operations. Note that once all processes have been upgraded to a library version that supports this node kind, existing HNSWs can be upgraded from COMPACT to this format without rebuilding.

  • Method Details

    • values

      public static NodeKind[] values()
      Returns an array containing the constants of this enum class, in the order they are declared.
      Returns:
      an array containing the constants of this enum class, in the order they are declared
    • valueOf

      public static NodeKind valueOf(String name)
      Returns the enum constant of this class with the specified name. The string must match exactly an identifier used to declare an enum constant in this class. (Extraneous whitespace characters are not permitted.)
      Parameters:
      name - the name of the enum constant to be returned.
      Returns:
      the enum constant with the specified name
      Throws:
      IllegalArgumentException - if this enum class has no constant with the specified name
      NullPointerException - if the argument is null
    • isCompact

      public boolean isCompact()
      Whether this kind is a storage format of CompactNodes, i.e. COMPACT or COMPACT_APPENDABLE.
      Returns:
      true iff nodes of this kind are compact nodes
    • getSerialized

      public byte getSerialized()
      Returns the serialized byte value.
      Returns:
      the serialized byte value