public class SingleThreadDatasetCache extends DynamicDatasetCache
DatasetContext that allows to dynamically load datasets
into a started TransactionContext. Datasets acquired from this context are distinct from any
Datasets instantiated outside this class.DynamicDatasetCache.DatasetCacheKeyinstantiator, metricsContext, namespace, runtimeArguments, txClient| Constructor and Description |
|---|
SingleThreadDatasetCache(SystemDatasetInstantiator instantiator,
co.cask.tephra.TransactionSystemClient txClient,
NamespaceId namespace,
Map<String,String> runtimeArguments,
MetricsContext metricsContext,
Map<String,Map<String,String>> staticDatasets)
See
DynamicDatasetCache. |
| Modifier and Type | Method and Description |
|---|---|
void |
addExtraTransactionAware(co.cask.tephra.TransactionAware txAware)
Add an extra transaction aware to the static datasets.
|
void |
close()
Close and dismiss all datasets that were obtained through this factory, and destroy the factory.
|
void |
discardDataset(co.cask.cdap.api.dataset.Dataset dataset) |
void |
discardSafely(Object dataset)
Discard a dataset when it is known that no transaction is going on.
|
void |
dismissTransactionContext()
Dismiss the current transaction context.
|
<T extends co.cask.cdap.api.dataset.Dataset> |
getDataset(DynamicDatasetCache.DatasetCacheKey key,
boolean bypass)
To be implemented by subclasses.
|
Iterable<co.cask.tephra.TransactionAware> |
getStaticTransactionAwares() |
Iterable<co.cask.tephra.TransactionAware> |
getTransactionAwares() |
void |
invalidate()
Close and dismiss all datasets that were obtained through this factory.
|
co.cask.tephra.TransactionContext |
newTransactionContext()
Return a new transaction context for the current thread.
|
void |
removeExtraTransactionAware(co.cask.tephra.TransactionAware txAware)
Remove a transaction-aware that was added via
DynamicDatasetCache.addExtraTransactionAware(TransactionAware). |
get, getDataset, getDataset, getDataset, releaseDatasetpublic SingleThreadDatasetCache(SystemDatasetInstantiator instantiator, co.cask.tephra.TransactionSystemClient txClient, NamespaceId namespace, Map<String,String> runtimeArguments, @Nullable MetricsContext metricsContext, @Nullable Map<String,Map<String,String>> staticDatasets)
DynamicDatasetCache.staticDatasets - if non-null, a map from dataset name to runtime arguments. These datasets will be
instantiated immediately, and they will participate in every transaction started
through newTransactionContext().public <T extends co.cask.cdap.api.dataset.Dataset> T getDataset(DynamicDatasetCache.DatasetCacheKey key, boolean bypass) throws co.cask.cdap.api.data.DatasetInstantiationException
DynamicDatasetCachegetDataset in class DynamicDatasetCachebypass - if true, bypass the dataset cache, and do not add this to the transaction.co.cask.cdap.api.data.DatasetInstantiationExceptionpublic void discardDataset(co.cask.cdap.api.dataset.Dataset dataset)
public void discardSafely(Object dataset)
dataset - this is an Object because we need to pass in TransactionAware or Datasetpublic co.cask.tephra.TransactionContext newTransactionContext()
DynamicDatasetCacheDynamicDatasetCache.getTransactionAwares().newTransactionContext in class DynamicDatasetCachepublic void dismissTransactionContext()
DynamicDatasetCacheDynamicDatasetCache.newTransactionContext()).dismissTransactionContext in class DynamicDatasetCachepublic Iterable<co.cask.tephra.TransactionAware> getStaticTransactionAwares()
getStaticTransactionAwares in class DynamicDatasetCacheDynamicDatasetCache.newTransactionContext().public Iterable<co.cask.tephra.TransactionAware> getTransactionAwares()
getTransactionAwares in class DynamicDatasetCacheDynamicDatasetCache.newTransactionContext() has not been called (or DynamicDatasetCache.dismissTransactionContext() has been
called), then there is no transaction and this will return an empty iterable.public void addExtraTransactionAware(co.cask.tephra.TransactionAware txAware)
DynamicDatasetCacheaddExtraTransactionAware in class DynamicDatasetCachepublic void removeExtraTransactionAware(co.cask.tephra.TransactionAware txAware)
DynamicDatasetCacheDynamicDatasetCache.addExtraTransactionAware(TransactionAware).
Note that if a transaction is in progress, then this transaction aware will leave that transaction.removeExtraTransactionAware in class DynamicDatasetCachepublic void invalidate()
DynamicDatasetCacheinvalidate in class DynamicDatasetCachepublic void close()
DynamicDatasetCacheclose in class DynamicDatasetCacheCopyright © 2016 Cask Data, Inc. Licensed under the Apache License, Version 2.0.