com.bigdata.service
Class MetadataService.DropScaleOutIndexTask

java.lang.Object
  extended by com.bigdata.journal.AbstractTask
      extended by com.bigdata.service.MetadataService.DropScaleOutIndexTask
All Implemented Interfaces:
ITask, Callable
Enclosing class:
MetadataService

public static class MetadataService.DropScaleOutIndexTask
extends AbstractTask

Drops a scale-out index.

Since this task is unisolated, it basically has a lock on the writable version of the metadata index. It drops each index partition and finally drops the metadata index itself.

Historical reads against the metadata index will continue to succeed both during and after this operation has completed successfully. However, ITx.READ_COMMITTED operations will succeed only until this operation completes at which point the scale-out index will no longer be visible.

The data comprising the scale-out index will remain available for historical reads until it is released by whatever policy is in effect for the ResourceManagers for the DataServices on which that data resides.

TODO:
This does not try to handle errors gracefully. E.g., if there is a problem with one of the data services hosting an index partition it does not fail over to the next data service for that index partition.

Nested Class Summary
 
Nested classes/interfaces inherited from class com.bigdata.journal.AbstractTask
AbstractTask.DelegateTask<T>, AbstractTask.InnerReadWriteTxServiceCallable, AbstractTask.InnerWriteServiceCallable<T>, AbstractTask.ResubmitException
 
Field Summary
 
Fields inherited from class com.bigdata.journal.AbstractTask
checkpointNanoTime, concurrencyManager, DEBUG, INFO, isReadWriteTx, log, nanoTime_assignedWorker, nanoTime_beginWork, nanoTime_finishedWork, nanoTime_submitTask, readOnly, resourceManager, taskCounters, timestamp, transactionManager, tx
 
Constructor Summary
protected MetadataService.DropScaleOutIndexTask(IBigdataFederation fed, ConcurrencyManager concurrencyManager, String name)
           
 
Method Summary
protected  Object doTask()
          Drops the index partitions and then drops the metadata index as well.
 
Methods inherited from class com.bigdata.journal.AbstractTask
assertResource, assertRunning, assertUnisolated, call, clearLoggingContext, dropIndex, getCommitTime, getIndex, getJournal, getOnlyResource, getResource, getResourceManager, getTaskCounters, getTaskName, getTimestamp, isResource, registerIndex, setupLoggingContext, toString
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

MetadataService.DropScaleOutIndexTask

protected MetadataService.DropScaleOutIndexTask(IBigdataFederation fed,
                                                ConcurrencyManager concurrencyManager,
                                                String name)
Parameters:
journal -
name - The name of the metadata index for some scale-out index.
Method Detail

doTask

protected Object doTask()
                 throws Exception
Drops the index partitions and then drops the metadata index as well.

Specified by:
doTask in class AbstractTask
Returns:
The Integer #of index partitions that were dropped.
Throws:
Exception - The exception that will be thrown by AbstractTask.call() iff the operation fails.
InterruptedException - This exception SHOULD be thrown if Thread.interrupted() becomes true during execution.


Copyright © 2006-2011 SYSTAP, LLC. All Rights Reserved.