Package org.apache.lucene.replicator.nrt

# Class Node

java.lang.Object
org.apache.lucene.replicator.nrt.Node

All Implemented Interfaces:
  `Closeable`, `AutoCloseable`

Direct Known Subclasses:
  `PrimaryNode`, `ReplicaNode`

public abstract class Node extends Object implements Closeable
Common base class for `PrimaryNode` and `ReplicaNode`.

WARNING: This API is experimental and might change in incompatible ways in the next release.

## Field Summary

Fields
Modifier and Type
Field
Description
`protected final Directory`
`dir`
`static long`
`globalStartNS`
Startup time of original test, carefully propagated to all nodes to produce consistent "seconds since start time" in messages
`protected final int`
`id`
Compact ordinal for this node
`protected Map<String,FileMetaData>`
`lastFileMetaData`
File metadata for last sync that succeeded; we use this as a cache
`static final long`
`localStartNS`
When this node was started
`protected ReferenceManager<IndexSearcher>`
`mgr`
`static String`
`PRIMARY_GEN_KEY`
Key to store the primary gen in the commit data, which increments every time we promote a new primary, so replicas can detect when the primary they were talking to is changed
`protected final PrintStream`
`printStream`
For debug logging
`protected final SearcherFactory`
`searcherFactory`
`static boolean`
`VERBOSE_CONNECTIONS`
`static boolean`
`VERBOSE_FILES`
`static String`
`VERSION_KEY`
Key to store the version in the commit data, which increments every time we open a new NRT reader

## Constructor Summary

Constructors
Constructor
Description
`Node(int id, Directory dir, SearcherFactory searcherFactory, PrintStream printStream)`

## Method Summary

Modifier and Type
Method
Description
`static String`
`bytesToString(long bytes)`
`abstract void`
`commit()`
`long`
`getCurrentSearchingVersion()`
`Directory`
`getDirectory()`
Returns the `Directory` this node is writing to
`ReferenceManager<IndexSearcher>`
`getSearcherManager()`
Returns the `ReferenceManager` to use for acquiring and releasing searchers
`abstract boolean`
`isClosed()`
`void`
`message(String message)`
`String`
`name()`
`static void`
`nodeMessage(PrintStream printStream, int id, String message)`
`static void`
`nodeMessage(PrintStream printStream, String message)`
`FileMetaData`
`readLocalFileMetaData(String fileName)`
Opens the specified file, reads its identifying information, including file length, full index header (includes the unique segment ID) and the full footer (includes checksum), and returns the resulting `FileMetaData`.
`String`
`toString()`

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

### Methods inherited from interface java.io.Closeable

`close`

## Field Details

### VERBOSE_FILES

public static boolean VERBOSE_FILES

### VERBOSE_CONNECTIONS

public static boolean VERBOSE_CONNECTIONS

### PRIMARY_GEN_KEY

public static String PRIMARY_GEN_KEY
Key to store the primary gen in the commit data, which increments every time we promote a new primary, so replicas can detect when the primary they were talking to is changed

### VERSION_KEY

public static String VERSION_KEY
Key to store the version in the commit data, which increments every time we open a new NRT reader

### id

protected final int id
Compact ordinal for this node

### dir

protected final Directory dir

### searcherFactory

protected final SearcherFactory searcherFactory

### mgr

protected ReferenceManager<IndexSearcher> mgr

### globalStartNS

public static long globalStartNS
Startup time of original test, carefully propagated to all nodes to produce consistent "seconds since start time" in messages

### localStartNS

public static final long localStartNS
When this node was started

### printStream

protected final PrintStream printStream
For debug logging

### lastFileMetaData

protected volatile Map<String,FileMetaData> lastFileMetaData
File metadata for last sync that succeeded; we use this as a cache

## Constructor Details

### Node

public Node(int id, Directory dir, SearcherFactory searcherFactory, PrintStream printStream)

## Method Details

### getSearcherManager

public ReferenceManager<IndexSearcher> getSearcherManager()
Returns the `ReferenceManager` to use for acquiring and releasing searchers

### getDirectory

public Directory getDirectory()
Returns the `Directory` this node is writing to

### toString

public String toString()

Overrides:
  `toString` in class `Object`

### commit

public abstract void commit() throws IOException

Throws:
  `IOException`

### nodeMessage

public static void nodeMessage(PrintStream printStream, String message)

### nodeMessage

public static void nodeMessage(PrintStream printStream, int id, String message)

### message

public void message(String message)

### name

public String name()

### isClosed

public abstract boolean isClosed()

### getCurrentSearchingVersion

public long getCurrentSearchingVersion() throws IOException

Throws:
  `IOException`

### bytesToString

public static String bytesToString(long bytes)

### readLocalFileMetaData

public FileMetaData readLocalFileMetaData(String fileName) throws IOException
Opens the specified file, reads its identifying information, including file length, full index header (includes the unique segment ID) and the full footer (includes checksum), and returns the resulting `FileMetaData`.

This returns null, logging a message, if there are any problems (the file does not exist, is corrupt, truncated, etc.).

Throws:
  `IOException`