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–2022. All rights reserved.