public class BdbDB extends ObjectDB
ObjectDB.PendingTransaction, ObjectDB.UpdateModename, pendingByTid, rwLocks| Constructor and Description |
|---|
BdbDB(java.lang.String name,
java.security.PrivateKey privateKey)
Creates a new BdbStore for the store specified.
|
| Modifier and Type | Method and Description |
|---|---|
void |
close()
Clean up and close database.
|
void |
commit(long tid,
RemoteIdentity<RemoteWorker> workerIdentity,
SubscriptionManager sm)
Causes the objects prepared in transaction [tid] to be committed.
|
boolean |
exists(long onum)
Checks whether an object with the corresponding onum exists, in either
prepared or committed form.
|
void |
finishPrepare(long tid,
Principal worker)
Notifies the database that the given transaction is finished preparing.
|
int |
getVersion(long onum)
Returns the version number on the object stored at a particular onum.
|
boolean |
isInitialized()
Determines whether the object database has been initialized.
|
static void |
main(java.lang.String[] args)
Dumps the contents of a BDB object database to stdout.
|
long[] |
newOnums(int num)
Returns a set of onums that aren't currently occupied.
|
SerializedObject |
read(long onum)
Returns the object stored at a particular onum.
|
void |
rollback(long tid,
Principal worker)
Causes the objects prepared in transaction [tid] to be discarded.
|
void |
setInitialized()
Sets a flag to indicate that the object database has been initialized.
|
abortPrepare, beginTransaction, ensureInit, getName, isPrepared, isWritten, notifyCommittedUpdate, prepareRead, prepareUpdate, readGroup, unpinpublic BdbDB(java.lang.String name,
java.security.PrivateKey privateKey)
name - name of store to create store for.public void finishPrepare(long tid,
Principal worker)
ObjectDBNotifies the database that the given transaction is finished preparing. The transaction is not considered to be prepared until this is called. After calling this method, there should not be any further calls to registerRead() or registerUpdate() for the given transaction. This method MUST be called before calling commit().
Upon receiving this call, the object database should save the prepared transaction to stable storage so that it can be recovered in case of failure.
finishPrepare in class ObjectDBpublic void commit(long tid,
RemoteIdentity<RemoteWorker> workerIdentity,
SubscriptionManager sm)
ObjectDBpublic void rollback(long tid,
Principal worker)
ObjectDBpublic SerializedObject read(long onum)
ObjectDBpublic int getVersion(long onum)
throws AccessException
ObjectDBgetVersion in class ObjectDBAccessException - if no object exists at the given onum.public boolean exists(long onum)
ObjectDBpublic long[] newOnums(int num)
ObjectDBReturns a set of onums that aren't currently occupied. The ObjectDB may return the same onum more than once from this method, althogh doing so would encourage collisions. There is no assumption of unpredictability or randomness about the returned ids.
The returned onums should be packed in the lower 48 bits. We assume that the object database is never full, and can always provide new onums
public boolean isInitialized()
ObjectDBisInitialized in class ObjectDBpublic void setInitialized()
ObjectDBsetInitialized in class ObjectDBpublic static void main(java.lang.String[] args)