Package es.bsc.dataclay.storagelocation
Class StorageLocationService
- java.lang.Object
-
- es.bsc.dataclay.storagelocation.StorageLocationService
-
public final class StorageLocationService extends Object
This class is responsible to manage data of the objects stored in the system.
-
-
Constructor Summary
Constructors Constructor Description StorageLocationService(DBHandlerConf dbHandlerconf)
Constructor
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
associateExecutionEnvironment(ExecutionEnvironmentID executionEnvironmentID)
Associate execution environment id to this SLvoid
closeDbHandler(ExecutionEnvironmentID eeID)
Close DbHandlervoid
delete(ExecutionEnvironmentID eeID, ObjectID objectID)
Deletes and object from the database.boolean
exists(ExecutionEnvironmentID eeID, ObjectID objectID)
Check if object exists in DBboolean
exists(ObjectID objectID)
Check if the object exists in SL or in any EE memory associated to current SLbyte[]
get(ExecutionEnvironmentID eeID, ObjectID objectID)
Get from DBSet<ExecutionEnvironmentID>
getAssociateExecutionEnvironments()
Get associated execution environments id to this SLDBHandler
getDbHandler(ExecutionEnvironmentID eeID)
Get DbHandler.int
getNumObjects()
Return number of objects in current SL and associated EEsint
getNumReferencesTo(ObjectID objectID)
Return number of references pointing to object.void
initialize(DataServiceRuntime theruntime, ExecutionEnvironmentID associatedEEID)
Initializevoid
shutDownGarbageCollector()
Shutdown storage locationvoid
store(ExecutionEnvironmentID eeID, ObjectID objectID, byte[] bytes)
Store the object.void
update(ExecutionEnvironmentID eeID, ObjectID objectID, byte[] newbytes, boolean dirty)
Updates an object identified by the ID provided with the new values provided.void
updateRefs(Map<ObjectID,Integer> updateCounterRefs)
Update counters of references.void
vacuum(ExecutionEnvironmentID eeID)
Vacuum database.
-
-
-
Constructor Detail
-
StorageLocationService
public StorageLocationService(DBHandlerConf dbHandlerconf)
Constructor- Parameters:
dbHandlerconf
- Configuration for the db handler
-
-
Method Detail
-
initialize
public void initialize(DataServiceRuntime theruntime, ExecutionEnvironmentID associatedEEID)
Initialize- Parameters:
theruntime
- Runtime to be used in Storage Location.associatedEEID
- Associated EE ID.
-
store
public void store(ExecutionEnvironmentID eeID, ObjectID objectID, byte[] bytes)
Store the object.- Parameters:
eeID
- ID of the EE triggering the callobjectID
- ID of the objectbytes
- Bytes of the object
-
get
public byte[] get(ExecutionEnvironmentID eeID, ObjectID objectID)
Get from DB- Parameters:
eeID
- ID of the EE triggering the callobjectID
- ID of the object- Returns:
- Bytes of object
-
exists
public boolean exists(ExecutionEnvironmentID eeID, ObjectID objectID)
Check if object exists in DB- Parameters:
eeID
- ID of the EE triggering the callobjectID
- ID of the object- Returns:
- TRUE if object exists. FALSE otherwise.
-
update
public void update(ExecutionEnvironmentID eeID, ObjectID objectID, byte[] newbytes, boolean dirty)
Updates an object identified by the ID provided with the new values provided.- Parameters:
eeID
- ID of the EE triggering the callobjectID
- ID of the object.newbytes
- New byte valuesdirty
- Indicates object has been modified. If false, it means that bytes only contains reference counting information. DESIGN NOTE: in order to be able to find out which references where removed in complex objects (arrays, collections) GlobalGc decreases all pointed references in a Get procedure and increase them again (except removed ones) during update. While in EE, objects have memory references so they cannot be removed neither.
-
delete
public void delete(ExecutionEnvironmentID eeID, ObjectID objectID)
Deletes and object from the database.- Parameters:
eeID
- ID of the EE triggering the callobjectID
- ID of the object to delete
-
vacuum
public void vacuum(ExecutionEnvironmentID eeID)
Vacuum database.- Parameters:
eeID
- ID of the EE to vacuum
-
updateRefs
public void updateRefs(Map<ObjectID,Integer> updateCounterRefs)
Update counters of references.- Parameters:
updateCounterRefs
- Update counter of references.
-
getDbHandler
public DBHandler getDbHandler(ExecutionEnvironmentID eeID)
Get DbHandler. Used for testing purposes.- Parameters:
eeID
- ID of EE- Returns:
- DbHandler.
-
associateExecutionEnvironment
public void associateExecutionEnvironment(ExecutionEnvironmentID executionEnvironmentID)
Associate execution environment id to this SL- Parameters:
executionEnvironmentID
- ID to associate
-
getAssociateExecutionEnvironments
public Set<ExecutionEnvironmentID> getAssociateExecutionEnvironments()
Get associated execution environments id to this SL- Returns:
- associated execution environments
-
closeDbHandler
public void closeDbHandler(ExecutionEnvironmentID eeID)
Close DbHandler
-
shutDownGarbageCollector
public void shutDownGarbageCollector()
Shutdown storage location
-
getNumReferencesTo
public int getNumReferencesTo(ObjectID objectID)
Return number of references pointing to object.- Parameters:
objectID
- ID of object- Returns:
- Number of references pointing to object
-
getNumObjects
public int getNumObjects()
Return number of objects in current SL and associated EEs- Returns:
- Number of objects in current SL and associated EEs
-
exists
public boolean exists(ObjectID objectID)
Check if the object exists in SL or in any EE memory associated to current SL- Parameters:
objectID
- ID of the object to check- Returns:
- TRUE if the object either exists in SL disk or in EE memory.
-
-