public class EmbeddedFederation<T> extends AbstractScaleOutFederation<T>
DataService
and MetadataService
implementations as a
distributed federation. All services reference the EmbeddedFederation
and use the same thread pool for most operations. However, the
EmbeddedFederation.EmbeddedDataServiceImpl
has its own WriteExecutorService
.
Unlike a distributed federation, an embedded federation starts and stops with
the client. An embedded federation may be used to assess or remove the
overhead of network operations, to simplify testing of client code, or to
deploy a scale-up (vs scale-out) solution.Modifier and Type | Class and Description |
---|---|
protected class |
EmbeddedFederation.EmbeddedDataServiceImpl
Concrete implementation.
|
protected class |
EmbeddedFederation.EmbeddedLoadBalancerServiceImpl |
protected class |
EmbeddedFederation.EmbeddedTransactionServiceImpl |
AbstractScaleOutFederation.ForceOverflowTask, AbstractScaleOutFederation.PurgeResourcesTask
AbstractFederation.ReportTask, AbstractFederation.StartDeferredTasksTask
metadataIndexCachePolicy
log
Modifier | Constructor and Description |
---|---|
protected |
EmbeddedFederation(EmbeddedClient<T> client)
Start or restart an embedded bigdata federation.
|
Modifier and Type | Method and Description |
---|---|
void |
destroy()
Destroys all discovered services belonging to the federation and their
persistent data and disconnects from the federation.
|
IDataService |
getAnyDataService()
Return ANY
IDataService which has been (or could be) discovered
and which is part of the connected federation. |
EmbeddedClient<T> |
getClient()
Return the client object that was used to connect to the federation.
|
File |
getDataDir()
The directory in which the data files will reside.
|
DataService |
getDataService(int index)
There are
getDataServiceCount() data services defined in the
federation. |
IDataService |
getDataService(UUID serviceUUID)
Return the (in process) data service given its service UUID.
|
IDataService |
getDataServiceByName(String name)
Return an
IDataService joined with this
IBigdataFederation and having the specified service name. |
int |
getDataServiceCount()
The #of configured data services in the embedded federation.
|
UUID[] |
getDataServiceUUIDs(int maxCount)
Return an array UUIDs for
IDataService s. |
long |
getLastCommitTime()
This scans the
DataService s and reports the most recent value. |
ILoadBalancerService |
getLoadBalancerService()
The (in process)
LoadBalancerService . |
IMetadataService |
getMetadataService()
The (in process)
MetadataService . |
IResourceLockService |
getResourceLockService()
The (in process)
IResourceLockService . |
ITransactionService |
getTransactionService()
The (in process)
ITransactionService . |
boolean |
isDistributed()
Return
false . |
boolean |
isJiniFederation()
Convenience method to return whether the Federation is a Jini Federation.
|
boolean |
isStable()
Return
true iff the federation is backed by "stable" (vs
transient) storage. |
boolean |
isTransient()
Return true if the federation is not backed by disk.
|
void |
shutdown()
Normal shutdown of the services in the federation.
|
void |
shutdownNow()
Immediate shutdown of the services in the embedded federation.
|
awaitServices, forceOverflow, getIndex, getIndexCache, getMetadataIndex, getMetadataIndexCache, isScaleOut, locatorScan
addScheduledTask, assertOpen, didStart, dropIndex, getCollectPlatformStatistics, getCollectQueueStatistics, getCounters, getDataServices, getExecutorService, getGangliaService, getGlobalFileSystem, getGlobalRowStore, getGlobalRowStore, getHostCounterSet, getHttpdPort, getHttpdURL, getIndexCounters, getResourceLocator, getScheduledExecutorService, getService, getServiceCounterPathPrefix, getServiceCounterPathPrefix, getServiceCounterSet, getServiceIface, getServiceName, getServiceUUID, getTaskCounters, getTempStore, indexNameScan, isGroupCommit, isOpen, isServiceReady, newHttpd, reattachDynamicCounters, registerIndex, registerIndex, registerIndex, reportCounters, sendEvent, serviceJoin, serviceLeave
protected EmbeddedFederation(EmbeddedClient<T> client)
client
- The client.public final File getDataDir()
UUID
- restart depends on this.public boolean isTransient()
public EmbeddedClient<T> getClient()
IBigdataFederation
getClient
in interface IBigdataFederation<T>
getClient
in class AbstractFederation<T>
public final ITransactionService getTransactionService()
ITransactionService
.null
if the service has not been
discovered.public final IResourceLockService getResourceLockService()
IResourceLockService
.public final ILoadBalancerService getLoadBalancerService()
LoadBalancerService
.null
if the service has not been discovered.public final IMetadataService getMetadataService()
MetadataService
.null
if the service has not been discovered.public final IDataService getDataService(UUID serviceUUID)
serviceUUID
- DataService
for that UUID or null
if
there is no data service instance with that service UUID.public final int getDataServiceCount()
public final DataService getDataService(int index)
getDataServiceCount()
data services defined in the
federation. This returns the data service with that index.index
- The index.public final UUID[] getDataServiceUUIDs(int maxCount)
IBigdataFederation
IDataService
s.maxCount
- The maximum #of data services whose UUIDs will be returned.
When zero (0) the UUID for all known data services will be
returned.UUID
s for data services.public final IDataService getAnyDataService()
IBigdataFederation
IDataService
which has been (or could be) discovered
and which is part of the connected federation.
Note: This method is here as a failsafe when the
ILoadBalancerService
is not available.
null
if there are NO known IDataService
s.public void shutdown()
shutdown
in class AbstractScaleOutFederation<T>
public void shutdownNow()
shutdownNow
in class AbstractScaleOutFederation<T>
public void destroy()
IBigdataFederation
destroy
in interface IIndexStore
destroy
in interface IBigdataFederation<T>
destroy
in class AbstractFederation<T>
public final boolean isDistributed()
false
.public final boolean isStable()
IBigdataFederation
true
iff the federation is backed by "stable" (vs
transient) storage. Most federation deployments are stable in this sense,
but it is possible to create federation instances backed solely by
transient storage and those instances will report false
here. This is most typically done for testing purposes using a
LocalDataServiceFederation
or an EmbeddedFederation
.public long getLastCommitTime()
DataService
s and reports the most recent value.IRootBlockView.getLastCommitTime()
public IDataService getDataServiceByName(String name)
IBigdataFederation
IDataService
joined with this
IBigdataFederation
and having the specified service name.
Services that are not joined will not be discovered.
Note: At least some service fabrics (such as jini) do not enforce a
uniqueness constraint on the service name(s). In such cases an arbitrary
IDataService
method the other requirements will be returned. It
is the responsibility of the administrator to ensure that each
IDataService
is assigned a distinct service name.
name
- The service name.null
if none is
joined with the IBigdataFederation
at this time.public boolean isJiniFederation()
IBigdataFederation
Copyright © 2006–2019 SYSTAP, LLC DBA Blazegraph. All rights reserved.