public class ConnectorTablePartitioning extends Object
This class was previously name ConnectorNodePartitioning.
The new semantics is more flexible.
It enables expression of more sophisticated table organization.
Node partitioning is a form of partitioning between split groups,
where each split group contains all splits on a Node
.
Unless the connector declares itself as supporting grouped scheduling in
ConnectorSplitManager
, Presto engine treats all splits on a node
as a single split group.
As a result, the connector does not need to provide additional guarantee
as a result of this change for previously-declared node partitioning.
Therefore, this change in SPI is backward compatible.
For now, all splits in each split group must be assigned the same Node
by ConnectorNodePartitioningProvider
.
With future changes to the engine, connectors will no longer be required
to declare a mapping from split groups to nodes.
Artificially requiring such a mapping regardless of whether the engine can
take advantage of the TablePartitioning negatively affects performance.
Constructor and Description |
---|
ConnectorTablePartitioning(ConnectorPartitioningHandle partitioningHandle,
List<ColumnHandle> partitioningColumns) |
Modifier and Type | Method and Description |
---|---|
boolean |
equals(Object o) |
List<ColumnHandle> |
getPartitioningColumns()
The columns used to partition the table across the worker nodes.
|
ConnectorPartitioningHandle |
getPartitioningHandle()
A handle to the partitioning scheme used to divide the table across worker nodes.
|
int |
hashCode() |
public ConnectorTablePartitioning(ConnectorPartitioningHandle partitioningHandle, List<ColumnHandle> partitioningColumns)
public ConnectorPartitioningHandle getPartitioningHandle()
public List<ColumnHandle> getPartitioningColumns()
If the table is node partitioned, the connector guarantees that each combination of values for the distributed columns will be contained within a single worker.
Copyright © 2012–2018. All rights reserved.