public abstract class BulkbuilderBase extends java.lang.Object implements BulkTrackerCallback
| Constructor and Description |
|---|
BulkbuilderBase(ObjectStoreService objectStore,
BulkbuilderTaskProvider taskProvider,
MicroBulkbuilder microBulkbuilder)
Creates a new BulkBuilder instance.
|
| Modifier and Type | Method and Description |
|---|---|
WorkflowRunInfo |
addRecord(java.lang.String jobName,
Record record)
Write record to add bulk.
|
protected void |
addResultCounters(java.util.Map<java.lang.String,java.lang.Number> counters,
BulkOutput bulk,
java.lang.String slotName)
add bulk counters to result description counters from performance counter.
|
WorkflowRunInfo |
addToMicroBulk(java.lang.String jobName,
Record record,
java.lang.String microBulkId)
Add record to micro bulk.
|
void |
checkBulks()
check bulks.
|
WorkflowRunInfo |
commitBulk(java.lang.String jobName)
Commits active bulks for given job name.
|
protected BulkOutput |
createBulk(java.lang.String jobName,
BulkInfo bulkInfo,
BulkType bulkType,
AnyMap taskParameters)
create an BulkOutput for the bulk.
|
WorkflowRunInfo |
deleteRecord(java.lang.String jobName,
Record record)
Write record to delete bulk.
|
WorkflowRunInfo |
finishMicroBulk(java.lang.String jobName,
java.lang.String microBulkId)
Finishes the micro bulk.
|
protected BulkOutput |
getActiveBulk(java.lang.String jobName,
BulkType bulkType)
Get active bulk data for given job name and bulk type.
|
protected BulkInfo |
getBulkInfo(java.lang.String jobName,
java.util.Map<java.lang.String,java.util.List<BulkInfo>> outputBulks,
BulkType bulkType)
gets the bulk info from the output bulks for the output slots connected to this worker.
|
protected abstract long |
getBulkSizeLimit(BulkType bulkType,
AnyMap taskParameters) |
protected abstract long |
getCommitTimeoutMillis(AnyMap taskParameters) |
protected MicroBulkbuilder |
getMicroBulkbuilder()
get reference to microbulk helper.
|
protected ObjectStoreService |
getObjectStore()
get reference to object store service.
|
protected java.util.Map<java.lang.String,java.lang.Number> |
getResultCounters(java.lang.String jobName,
BulkOutput... bulkDatas)
create taskmanager result description counters from performance counters.
|
protected BulkbuilderTaskProvider |
getTaskProvider()
get reference to task provider helper.
|
protected void |
releaseBulk(BulkOutput currBulk)
Release active bulk.
|
void |
removeMicroBulk(java.lang.String microBulkId)
Removes the micro bulk with the given id.
|
protected void |
setActiveBulk(java.lang.String jobName,
BulkOutput bulkData)
set active bulk data for given job name and bulk type.
|
void |
shutdown()
Shutdown builder and close all open bulks.
|
protected WorkflowRunInfo |
writeMicroBulkWithRetry(java.lang.String jobName,
byte[] microBulk,
java.lang.Integer numberOfRecords,
Task task)
Adds microbulk with retry if something goes wrong.
|
protected WorkflowRunInfo |
writeRecordWithRetry(java.lang.String jobName,
Record record,
Task task,
BulkType bulkType)
Adds record with retry if something goes wrong.
|
public BulkbuilderBase(ObjectStoreService objectStore, BulkbuilderTaskProvider taskProvider, MicroBulkbuilder microBulkbuilder) throws BlackboardAccessException
objectStore - a reference to the objectStore the object store service.taskProvider - the task provider that generates tasks for the bulkbuildermicroBulkbuilder - helper class for constructing in-memory micro bulk that can be appended to the objectstore bulk in one
atomic append step.BlackboardAccessException - cannot access blackboard.public WorkflowRunInfo addRecord(java.lang.String jobName, Record record) throws BulkbuilderException
jobName - The job namerecord - The record to storeBulkbuilderException - error writing to object storepublic WorkflowRunInfo deleteRecord(java.lang.String jobName, Record record) throws BulkbuilderException
jobName - The job namerecord - The record to storeBulkbuilderException - error writing to object storepublic WorkflowRunInfo commitBulk(java.lang.String jobName) throws BulkbuilderException
jobName - The job nameBulkbuilderException - An exception if something goes wrongpublic WorkflowRunInfo addToMicroBulk(java.lang.String jobName, Record record, java.lang.String microBulkId) throws BulkbuilderException
jobName - The job namerecord - The record to storemicroBulkId - The id of the micro bulkBulkbuilderException - error writing to object storepublic WorkflowRunInfo finishMicroBulk(java.lang.String jobName, java.lang.String microBulkId) throws BulkbuilderException
jobName - The job namemicroBulkId - The id of the micro bulkBulkbuilderException - error writing to object storepublic void removeMicroBulk(java.lang.String microBulkId)
microBulkId - The id of the micro bulkpublic void checkBulks()
throws BulkbuilderException
checkBulks in interface BulkTrackerCallbackBulkbuilderException - error checking or committing bulks.public void shutdown()
protected abstract long getCommitTimeoutMillis(AnyMap taskParameters)
protected abstract long getBulkSizeLimit(BulkType bulkType, AnyMap taskParameters)
protected ObjectStoreService getObjectStore()
protected BulkbuilderTaskProvider getTaskProvider()
protected MicroBulkbuilder getMicroBulkbuilder()
protected BulkOutput getActiveBulk(java.lang.String jobName, BulkType bulkType)
jobName - The job name.bulkType - bulk typenull if none exists.protected void setActiveBulk(java.lang.String jobName,
BulkOutput bulkData)
jobName - The job name.bulkData - bulk data to setprotected WorkflowRunInfo writeRecordWithRetry(java.lang.String jobName, Record record, Task task, BulkType bulkType) throws BulkbuilderException
jobName - The job namerecord - The record to storetask - The taskBulkbuilderException - error writing to object storeprotected WorkflowRunInfo writeMicroBulkWithRetry(java.lang.String jobName, byte[] microBulk, java.lang.Integer numberOfRecords, Task task) throws BulkbuilderException
jobName - The job namemicroBulk - The microbulk to storenumberOfRecords - number of records in this bulk.task - The taskBulkbuilderException - error writing to object storeprotected BulkInfo getBulkInfo(java.lang.String jobName, java.util.Map<java.lang.String,java.util.List<BulkInfo>> outputBulks, BulkType bulkType) throws BulkbuilderException
jobName - job namebulkType - bulk type (add or delete)BulkbuilderException - task does not have the slot connectedprotected BulkOutput createBulk(java.lang.String jobName, BulkInfo bulkInfo, BulkType bulkType, AnyMap taskParameters)
jobName - the name of the current jobbulkInfo - the bulk info for the curent bulkbulkType - the bulk's typetaskParameters - task parametersBulkOutput for the bulk.protected void releaseBulk(BulkOutput currBulk)
currBulk - current bulk for index.protected java.util.Map<java.lang.String,java.lang.Number> getResultCounters(java.lang.String jobName,
BulkOutput... bulkDatas)
protected void addResultCounters(java.util.Map<java.lang.String,java.lang.Number> counters,
BulkOutput bulk,
java.lang.String slotName)