public class Vertex extends Object implements IdentifiedDataSerializable
edges
and pushes
data items to its outbound edges. Practically, a single vertex is represented
by a set of instances of Processor
. The localParallelism
property
determines the number of processor instances running on each cluster member.
Each processor is assigned a set of partition IDs it is responsible for. When an inbound edge is partitioned, the processor will receive only those data items whose partition ID it is responsible for. For data traveling over a partitioned edge which is also distributed, the whole cluster contains a single unique processor instance responsible for any given partition ID. For non-distributed edges, the processor is unique only within a member and each member has its own processor for any given partition ID. Finally, there is a guarantee of collation across all the partitioned edges impinging on a vertex: within each member, all the data with a given partition ID is received by the same processor.
A vertex is uniquely identified in a DAG by its name.
Modifier and Type | Field and Description |
---|---|
static int |
LOCAL_PARALLELISM_USE_DEFAULT
The value of
localParallelism(int) with the meaning
"use the default local parallelism". |
Constructor and Description |
---|
Vertex(String name,
ProcessorMetaSupplier metaSupplier)
Creates a vertex from a
ProcessorMetaSupplier . |
Vertex(String name,
ProcessorSupplier processorSupplier)
Creates a vertex from a
ProcessorSupplier . |
Vertex(String name,
SupplierEx<? extends Processor> processorSupplier)
Creates a vertex from a
Supplier<Processor> . |
Modifier and Type | Method and Description |
---|---|
static int |
checkLocalParallelism(int parallelism)
Says whether the given integer is valid as the value of
localParallelism . |
int |
determineLocalParallelism(int defaultParallelism)
Determines the local parallelism value for the vertex by looking at
its local parallelism and meta supplier's preferred local parallelism.
|
int |
getClassId()
Returns type identifier for this class.
|
int |
getFactoryId()
Returns DataSerializableFactory factory ID for this class.
|
int |
getLocalParallelism()
Returns the number of processors corresponding to this vertex that will
be created on each member.
|
ProcessorMetaSupplier |
getMetaSupplier()
Returns this vertex's meta-supplier of processors.
|
String |
getName()
Returns the name of this vertex.
|
Vertex |
localParallelism(int localParallelism)
Sets the number of processors corresponding to this vertex that will be
created on each member.
|
void |
readData(ObjectDataInput in)
Reads fields from the input stream
|
String |
toString() |
void |
updateMetaSupplier(UnaryOperator<ProcessorMetaSupplier> updateFn)
Applies the provided operator function to the current processor
meta-supplier and replaces it with the one it returns.
|
void |
writeData(ObjectDataOutput out)
Writes object fields to output stream
|
public static final int LOCAL_PARALLELISM_USE_DEFAULT
localParallelism(int)
with the meaning
"use the default local parallelism".public Vertex(@Nonnull String name, @Nonnull SupplierEx<? extends Processor> processorSupplier)
Supplier<Processor>
.
This is useful for vertices where all the Processor
instances
will be instantiated the same way.
NOTE: this constructor should not be abused with a stateful
implementation which produces a different processor each time. In such a
case the full ProcessorSupplier
type should be implemented.
name
- the unique name of the vertex. This name identifies the vertex in the snapshotprocessorSupplier
- the simple, parameterless supplier of Processor
instancespublic Vertex(@Nonnull String name, @Nonnull ProcessorSupplier processorSupplier)
ProcessorSupplier
.name
- the unique name of the vertex. This name identifies the vertex in the snapshotprocessorSupplier
- the supplier of Processor
instances which will be used on all memberspublic Vertex(@Nonnull String name, @Nonnull ProcessorMetaSupplier metaSupplier)
ProcessorMetaSupplier
.name
- the unique name of the vertex. This name identifies the vertex in the snapshotmetaSupplier
- the meta-supplier of ProcessorSupplier
s for each memberpublic static int checkLocalParallelism(int parallelism)
localParallelism
.public int determineLocalParallelism(int defaultParallelism)
If none of them is set, returns the provided default parallelism
@Nonnull public Vertex localParallelism(int localParallelism)
If the value is -1, Jet will determine the vertex's local parallelism during job initialization from the global default and processor meta-supplier's preferred value.
public int getLocalParallelism()
-1
means that this
property is not set; in that case the default configured on the Jet
instance will be used.@Nonnull public ProcessorMetaSupplier getMetaSupplier()
public void updateMetaSupplier(@Nonnull UnaryOperator<ProcessorMetaSupplier> updateFn)
public void writeData(@Nonnull ObjectDataOutput out) throws IOException
DataSerializable
writeData
in interface DataSerializable
out
- outputIOException
- if an I/O error occurs. In particular,
an IOException
may be thrown if the
output stream has been closed.public void readData(@Nonnull ObjectDataInput in) throws IOException
DataSerializable
readData
in interface DataSerializable
in
- inputIOException
- if an I/O error occurs. In particular,
an IOException
may be thrown if the
input stream has been closed.public int getFactoryId()
IdentifiedDataSerializable
getFactoryId
in interface IdentifiedDataSerializable
public int getClassId()
IdentifiedDataSerializable
getClassId
in interface IdentifiedDataSerializable
Copyright © 2023 Hazelcast, Inc.. All rights reserved.