public class Dispatcher
extends java.lang.Object
Modifier and Type | Field and Description |
---|---|
private WorkflowProcessor<Transmission.Chunk> |
indexingTransmissionProcessor |
private ConcurrentLog |
log |
private SeedDB |
seeds |
private Segment |
segment |
private Transmission |
transmission |
private java.util.Map<java.lang.String,Transmission.Chunk> |
transmissionBuffer
A transmission buffer is a write buffer for the rwi objects (indices) that wait to be transmitted.
|
Constructor and Description |
---|
Dispatcher(Segment segment,
SeedDB seeds,
boolean gzipBody,
int timeout) |
Modifier and Type | Method and Description |
---|---|
int |
bufferSize() |
void |
close() |
boolean |
dequeueContainer()
PROCESS(5)
take the largest container from the write buffer and put it into the 'next' array,
where it waits to be processed.
|
private void |
enqueueContainersToBuffer(byte[] wordhash,
ReferenceContainer<WordReference>[] containers)
PROCESS(3) and PROCESS(4)
put containers into the write buffer.
|
private java.util.ArrayList<ReferenceContainer<WordReference>> |
selectContainers(byte[] hash,
byte[] limitHash,
int maxContainerCount,
int maxReferenceCount,
int maxtime)
PROCESS(1)
Select a number of index containers from the RWI index.
|
private java.util.ArrayList<ReferenceContainer<WordReference>> |
selectContainers(byte[] hash,
byte[] limitHash,
int maxContainerCount,
int maxReferenceCount,
int maxtime,
boolean ram) |
boolean |
selectContainersEnqueueToBuffer(byte[] hash,
byte[] limitHash,
int maxContainerCount,
int maxReferenceCount,
int maxtime) |
private ReferenceContainer<WordReference>[] |
splitContainer(ReferenceContainer<WordReference> container)
PROCESS(2)
split a list of containers into partitions according to the vertical distribution scheme
|
Transmission.Chunk |
transferDocumentIndex(Transmission.Chunk chunk)
transfer job: this method is called using reflection from the switchboard
the method is called as a Workflow process.
|
int |
transmissionSize() |
private java.util.Map<java.lang.String,Transmission.Chunk> transmissionBuffer
private final Segment segment
private final SeedDB seeds
private final ConcurrentLog log
private WorkflowProcessor<Transmission.Chunk> indexingTransmissionProcessor
private final Transmission transmission
public int bufferSize()
public int transmissionSize()
private java.util.ArrayList<ReferenceContainer<WordReference>> selectContainers(byte[] hash, byte[] limitHash, int maxContainerCount, int maxReferenceCount, int maxtime) throws java.io.IOException
hash
- limitHash
- maxContainerCount
- maxtime
- java.io.IOException
private java.util.ArrayList<ReferenceContainer<WordReference>> selectContainers(byte[] hash, byte[] limitHash, int maxContainerCount, int maxReferenceCount, int maxtime, boolean ram) throws java.io.IOException
java.io.IOException
private ReferenceContainer<WordReference>[] splitContainer(ReferenceContainer<WordReference> container) throws SpaceExceededException
containers
- SpaceExceededException
private void enqueueContainersToBuffer(byte[] wordhash, ReferenceContainer<WordReference>[] containers)
containers
- a reference containers array, one container for each vertical positionpublic boolean selectContainersEnqueueToBuffer(byte[] hash, byte[] limitHash, int maxContainerCount, int maxReferenceCount, int maxtime)
public boolean dequeueContainer()
public Transmission.Chunk transferDocumentIndex(Transmission.Chunk chunk)
chunk
- public void close()