com.continuent.tungsten.replicator.storage.parallel
Class HashPartitioner

java.lang.Object
  extended by com.continuent.tungsten.replicator.storage.parallel.HashPartitioner
All Implemented Interfaces:
Partitioner

public class HashPartitioner
extends java.lang.Object
implements Partitioner

Implements a simple shard partitioner that hashes on the shard name. #UNKNOWN shards are assumed to be critical, hence must be serialized.

Version:
1.0
Author:
Robert Hodges

Constructor Summary
HashPartitioner()
           
 
Method Summary
 PartitionerResponse partition(ReplDBMSHeader event, int taskId)
          Assign an event to a particular partition.
 void setContext(PluginContext context)
          Assigns the current runtime context in case the partitioner needs to refer to replicator state.
 void setPartitions(int availablePartitions)
          Sets the number of available partitions.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

HashPartitioner

public HashPartitioner()
Method Detail

setPartitions

public void setPartitions(int availablePartitions)
Sets the number of available partitions.

Specified by:
setPartitions in interface Partitioner
Parameters:
availablePartitions - Number of partitions available
See Also:
Partitioner.setPartitions(int)

setContext

public void setContext(PluginContext context)
Assigns the current runtime context in case the partitioner needs to refer to replicator state.

Specified by:
setContext in interface Partitioner
Parameters:
context - Replicator runtime context
See Also:
Partitioner.setContext(com.continuent.tungsten.replicator.plugin.PluginContext)

partition

public PartitionerResponse partition(ReplDBMSHeader event,
                                     int taskId)
                              throws ReplicatorException
Assign an event to a particular partition. All fragments of a particular sequence number must go to the same partition.

Specified by:
partition in interface Partitioner
Parameters:
event - Event to be assigned a partition
taskId - Task id of input thread
Returns:
Response containing partition ID and whether event requires a critical section
Throws:
ReplicatorException
See Also:
Partitioner.partition(com.continuent.tungsten.replicator.event.ReplDBMSHeader, int)