Package org.pentaho.di.partition
Class PartitionSchema
java.lang.Object
org.pentaho.di.core.changed.ChangedFlag
org.pentaho.di.partition.PartitionSchema
- All Implemented Interfaces:
Cloneable,ChangedFlagInterface,org.pentaho.di.core.xml.XMLInterface,org.pentaho.di.repository.RepositoryElementInterface,org.pentaho.di.repository.RepositoryObjectInterface,ResourceHolderInterface,org.pentaho.di.shared.SharedObjectInterface
public class PartitionSchema
extends ChangedFlag
implements Cloneable, org.pentaho.di.shared.SharedObjectInterface, ResourceHolderInterface, org.pentaho.di.repository.RepositoryElementInterface, org.pentaho.di.core.xml.XMLInterface
A partition schema allow you to partition a step according into a number of partitions that run independendly. It
allows us to "map"
- Author:
- Matt
-
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final org.pentaho.di.repository.RepositoryObjectTypestatic final String -
Constructor Summary
ConstructorsConstructorDescriptionPartitionSchema(String name, List<String> partitionIDs) PartitionSchema(Node partitionSchemaNode) -
Method Summary
Modifier and TypeMethodDescriptionclone()booleanvoidexpandPartitionsDynamically(int nrSlaves, org.pentaho.di.core.variables.VariableSpace space) Gets the high-level type of resource holder.getName()org.pentaho.di.repository.ObjectIdorg.pentaho.di.repository.ObjectRevisionorg.pentaho.di.repository.RepositoryDirectoryInterfaceNot supported for Partition schema, return the root.org.pentaho.di.repository.RepositoryObjectTypegetXML()inthashCode()booleanbooleanisShared()voidreplaceMeta(PartitionSchema partitionSchema) voidretainPartitionsForSlaveServer(int slaveCount, int slaveNumber) Slaves don't need ALL the partitions, they just need a few.
So we should only retain those partitions that are of interest to the slave server.
Divide the number of partitions (6) through the number of slaves (2)
That gives you 0, 1, 2, 3, 4, 5
Slave 0 : 0, 2, 4
Slave 1 : 1, 3, 5
--> slaveNumber == partitionNr % slaveCountvoidsetChangedDate(Date changedDate) voidsetDescription(String description) voidsetDynamicallyDefined(boolean dynamicallyDefined) voidvoidsetNumberOfPartitionsPerSlave(String numberOfPartitionsPerSlave) voidsetObjectId(org.pentaho.di.repository.ObjectId id) voidsetObjectRevision(org.pentaho.di.repository.ObjectRevision objectRevision) voidsetPartitionIDs(List<String> partitionIDs) voidsetRepositoryDirectory(org.pentaho.di.repository.RepositoryDirectoryInterface repositoryDirectory) voidsetShared(boolean shared) toString()Methods inherited from class org.pentaho.di.core.changed.ChangedFlag
addObserver, clearChanged, deleteObserver, hasChanged, notifyObservers, setChanged, setChanged
-
Field Details
-
XML_TAG
- See Also:
-
REPOSITORY_ELEMENT_TYPE
public static final org.pentaho.di.repository.RepositoryObjectType REPOSITORY_ELEMENT_TYPE
-
-
Constructor Details
-
PartitionSchema
public PartitionSchema() -
PartitionSchema
- Parameters:
name-partitionIDs-
-
PartitionSchema
-
-
Method Details
-
clone
-
replaceMeta
-
toString
-
equals
-
hashCode
public int hashCode() -
getName
- Specified by:
getNamein interfaceorg.pentaho.di.repository.RepositoryElementInterface- Specified by:
getNamein interfaceorg.pentaho.di.repository.RepositoryObjectInterface- Specified by:
getNamein interfaceResourceHolderInterface- Specified by:
getNamein interfaceorg.pentaho.di.shared.SharedObjectInterface- Returns:
- the name
-
setName
- Specified by:
setNamein interfaceorg.pentaho.di.repository.RepositoryElementInterface- Parameters:
name- the name to set
-
getPartitionIDs
- Returns:
- the partitionIDs
-
setPartitionIDs
- Parameters:
partitionIDs- the partitionIDs to set
-
getXML
- Specified by:
getXMLin interfaceorg.pentaho.di.shared.SharedObjectInterface- Specified by:
getXMLin interfaceorg.pentaho.di.core.xml.XMLInterface
-
getObjectId
public org.pentaho.di.repository.ObjectId getObjectId()- Specified by:
getObjectIdin interfaceorg.pentaho.di.repository.RepositoryElementInterface- Specified by:
getObjectIdin interfaceorg.pentaho.di.repository.RepositoryObjectInterface- Specified by:
getObjectIdin interfaceResourceHolderInterface- Returns:
- the id
-
getDescription
- Specified by:
getDescriptionin interfaceorg.pentaho.di.repository.RepositoryElementInterface- Specified by:
getDescriptionin interfaceResourceHolderInterface- Returns:
- The description of the holder of the resource
-
getHolderType
Description copied from interface:ResourceHolderInterfaceGets the high-level type of resource holder.- Specified by:
getHolderTypein interfaceResourceHolderInterface- Returns:
- JOBENTRY, STEP, etc.
-
getTypeId
- Specified by:
getTypeIdin interfaceResourceHolderInterface- Returns:
- The Type ID of the resource holder. The Type ID is the system-defined type identifier (like TRANS or SORT).
-
isDynamicallyDefined
public boolean isDynamicallyDefined()- Returns:
- the dynamicallyDefined
-
setDynamicallyDefined
public void setDynamicallyDefined(boolean dynamicallyDefined) - Parameters:
dynamicallyDefined- the dynamicallyDefined to set
-
getNumberOfPartitionsPerSlave
- Returns:
- the numberOfStepCopiesPerSlave
-
setNumberOfPartitionsPerSlave
- Parameters:
numberOfPartitionsPerSlave- the number of partitions per slave to set...
-
expandPartitionsDynamically
public void expandPartitionsDynamically(int nrSlaves, org.pentaho.di.core.variables.VariableSpace space) -
retainPartitionsForSlaveServer
public void retainPartitionsForSlaveServer(int slaveCount, int slaveNumber) Slaves don't need ALL the partitions, they just need a few.
So we should only retain those partitions that are of interest to the slave server.
Divide the number of partitions (6) through the number of slaves (2)
That gives you 0, 1, 2, 3, 4, 5
Slave 0 : 0, 2, 4
Slave 1 : 1, 3, 5
--> slaveNumber == partitionNr % slaveCount- Parameters:
slaveCount-slaveNumber-
-
getRepositoryDirectory
public org.pentaho.di.repository.RepositoryDirectoryInterface getRepositoryDirectory()Not supported for Partition schema, return the root.- Specified by:
getRepositoryDirectoryin interfaceorg.pentaho.di.repository.RepositoryElementInterface
-
setRepositoryDirectory
public void setRepositoryDirectory(org.pentaho.di.repository.RepositoryDirectoryInterface repositoryDirectory) - Specified by:
setRepositoryDirectoryin interfaceorg.pentaho.di.repository.RepositoryElementInterface
-
getRepositoryElementType
public org.pentaho.di.repository.RepositoryObjectType getRepositoryElementType()- Specified by:
getRepositoryElementTypein interfaceorg.pentaho.di.repository.RepositoryElementInterface
-
setObjectId
public void setObjectId(org.pentaho.di.repository.ObjectId id) - Specified by:
setObjectIdin interfaceorg.pentaho.di.repository.RepositoryElementInterface
-
getObjectRevision
public org.pentaho.di.repository.ObjectRevision getObjectRevision()- Specified by:
getObjectRevisionin interfaceorg.pentaho.di.repository.RepositoryElementInterface
-
setObjectRevision
public void setObjectRevision(org.pentaho.di.repository.ObjectRevision objectRevision) - Specified by:
setObjectRevisionin interfaceorg.pentaho.di.repository.RepositoryElementInterface
-
setDescription
- Specified by:
setDescriptionin interfaceorg.pentaho.di.repository.RepositoryElementInterface
-
getChangedDate
- Specified by:
getChangedDatein interfaceorg.pentaho.di.shared.SharedObjectInterface- Returns:
- the changedDate
-
setChangedDate
- Parameters:
changedDate- the changedDate to set
-