|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectcom.bigdata.service.AbstractService
com.bigdata.service.ClientService
public abstract class ClientService
A service for distributing application Callables across an
IBigdataFederation.
| Nested Class Summary | |
|---|---|
static class |
ClientService.ClientServiceFederationDelegate
Extended to attach the various performance counters reported by the DistributedTransactionService. |
static interface |
ClientService.Options
Configuration options. |
| Field Summary | |
|---|---|
protected static org.apache.log4j.Logger |
log
|
| Constructor Summary | |
|---|---|
ClientService(Properties properties)
|
|
| Method Summary | |
|---|---|
Class<? extends IClientService> |
getServiceIface()
Returns either IClientService. |
Session |
getSession()
A transient and dynamic property set (aka session). |
boolean |
isOpen()
|
void |
shutdown()
|
void |
shutdownNow()
|
AbstractService |
start()
Starts the AbstractService. |
Future<? extends Object> |
submit(Callable<? extends Object> task)
Note: When the ClientService is accessed via RMI the
Future MUST be a proxy. |
| Methods inherited from class com.bigdata.service.AbstractService |
|---|
clearLoggingContext, destroy, getFederation, getHostname, getServiceName, getServiceUUID, setServiceUUID, setupLoggingContext |
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Methods inherited from interface com.bigdata.service.IService |
|---|
destroy, getHostname, getServiceName, getServiceUUID |
| Field Detail |
|---|
protected static final org.apache.log4j.Logger log
| Constructor Detail |
|---|
public ClientService(Properties properties)
| Method Detail |
|---|
public Session getSession()
ISession
getSession in interface ISessionpublic void shutdown()
shutdown in class AbstractServicepublic void shutdownNow()
shutdownNow in class AbstractServicepublic final boolean isOpen()
public AbstractService start()
AbstractServiceAbstractService.
Note: A AbstractService.start() is required in order to give subclasses an
opportunity to be fully initialized before they are required to begin
operations. It is impossible to encapsulate the startup logic cleanly
without this ctor() + start() pattern. Those familiar with Objective-C
will recognized this.
start in class AbstractServicepublic Class<? extends IClientService> getServiceIface()
IClientService.
getServiceIface in interface IServicegetServiceIface in class AbstractServicepublic Future<? extends Object> submit(Callable<? extends Object> task)
ClientService is accessed via RMI the
Future MUST be a proxy. This gets handled by the concrete server
implementation.
submit in interface IRemoteExecutorFuture for that task.AbstractDistributedFederation.getProxy(Future)
Note that we have excellent locators for the best data service when
the map/reduce input is the scale-out repository since the task
should run on the data service that hosts the file block(s). When
failover is supported, the task can run on the service instance
with the least load. When the input is a networked file system,
then additional network topology smarts would be required to make
good choices., we should probably put the federation object in a sandbox in order
to prevent various operations by tasks running in the
DataService using the IDataServiceCallable
interface to gain access to the DataService's federation.
for example, if they use AbstractFederation.shutdownNow()
then the DataService itself would be shutdown.
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||