org.apache.accumulo.fate
Class ZooStore<T>

java.lang.Object
  extended by org.apache.accumulo.fate.ZooStore<T>
All Implemented Interfaces:
ReadOnlyTStore<T>, TStore<T>

public class ZooStore<T>
extends Object
implements TStore<T>


Nested Class Summary
 
Nested classes/interfaces inherited from interface org.apache.accumulo.fate.ReadOnlyTStore
ReadOnlyTStore.TStatus
 
Constructor Summary
ZooStore(String path, IZooReaderWriter zk)
           
 
Method Summary
 long create()
          Create a new transaction id
 void delete(long tid)
          Remove the transaction from the store.
 Serializable getProperty(long tid, String prop)
          Retrieve a transaction-specific property.
 ReadOnlyTStore.TStatus getStatus(long tid)
          Get the state of a given transaction.
 List<Long> list()
          list all transaction ids in store.
 void pop(long tid)
          Remove the last pushed operation from the given transaction.
 void push(long tid, Repo<T> repo)
          Update the given transaction with the next operation
 long reserve()
          Reserve a transaction that is IN_PROGRESS or FAILED_IN_PROGRESS.
 void reserve(long tid)
          Reserve the specific tid.
 void setProperty(long tid, String prop, Serializable so)
           
 void setStatus(long tid, ReadOnlyTStore.TStatus status)
          Update the state of a given transaction
 Repo<T> top(long tid)
          Get the current operation for the given transaction id.
 void unreserve(long tid, long deferTime)
          Return the given transaction to the store.
 ReadOnlyTStore.TStatus waitForStatusChange(long tid, EnumSet<ReadOnlyTStore.TStatus> expected)
          Wait for the satus of a transaction to change
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

ZooStore

public ZooStore(String path,
                IZooReaderWriter zk)
         throws org.apache.zookeeper.KeeperException,
                InterruptedException
Throws:
org.apache.zookeeper.KeeperException
InterruptedException
Method Detail

create

public long create()
Description copied from interface: TStore
Create a new transaction id

Specified by:
create in interface TStore<T>
Returns:
a transaction id

reserve

public long reserve()
Description copied from interface: ReadOnlyTStore
Reserve a transaction that is IN_PROGRESS or FAILED_IN_PROGRESS. Reserving a transaction id ensures that nothing else in-process interacting via the same instance will be operating on that transaction id.

Specified by:
reserve in interface ReadOnlyTStore<T>
Returns:
a transaction id that is safe to interact with, chosen by the store.

reserve

public void reserve(long tid)
Description copied from interface: ReadOnlyTStore
Reserve the specific tid. Reserving a transaction id ensures that nothing else in-process interacting via the same instance will be operating on that transaction id.

Specified by:
reserve in interface ReadOnlyTStore<T>

unreserve

public void unreserve(long tid,
                      long deferTime)
Description copied from interface: ReadOnlyTStore
Return the given transaction to the store. upon successful return the store now controls the referenced transaction id. caller should no longer interact with it.

Specified by:
unreserve in interface ReadOnlyTStore<T>
Parameters:
tid - transaction id, previously reserved.
deferTime - time in millis to keep this transaction out of the pool used in the reserve method. must be non-negative.

top

public Repo<T> top(long tid)
Description copied from interface: TStore
Get the current operation for the given transaction id.

Specified by:
top in interface ReadOnlyTStore<T>
Specified by:
top in interface TStore<T>
Parameters:
tid - transaction id
Returns:
the operation

push

public void push(long tid,
                 Repo<T> repo)
          throws StackOverflowException
Description copied from interface: TStore
Update the given transaction with the next operation

Specified by:
push in interface TStore<T>
Parameters:
tid - the transaction id
repo - the operation
Throws:
StackOverflowException

pop

public void pop(long tid)
Description copied from interface: TStore
Remove the last pushed operation from the given transaction.

Specified by:
pop in interface TStore<T>

getStatus

public ReadOnlyTStore.TStatus getStatus(long tid)
Description copied from interface: ReadOnlyTStore
Get the state of a given transaction. Caller must have already reserved tid.

Specified by:
getStatus in interface ReadOnlyTStore<T>
Parameters:
tid - transaction id, previously reserved.
Returns:
execution status

waitForStatusChange

public ReadOnlyTStore.TStatus waitForStatusChange(long tid,
                                                  EnumSet<ReadOnlyTStore.TStatus> expected)
Description copied from interface: ReadOnlyTStore
Wait for the satus of a transaction to change

Specified by:
waitForStatusChange in interface ReadOnlyTStore<T>
Parameters:
tid - transaction id, need not have been reserved.
expected - a set of possible statuses we are interested in being notified about. may not be null.
Returns:
execution status.

setStatus

public void setStatus(long tid,
                      ReadOnlyTStore.TStatus status)
Description copied from interface: TStore
Update the state of a given transaction

Specified by:
setStatus in interface TStore<T>
Parameters:
tid - transaction id
status - execution status

delete

public void delete(long tid)
Description copied from interface: TStore
Remove the transaction from the store.

Specified by:
delete in interface TStore<T>
Parameters:
tid - the transaction id

setProperty

public void setProperty(long tid,
                        String prop,
                        Serializable so)
Specified by:
setProperty in interface TStore<T>

getProperty

public Serializable getProperty(long tid,
                                String prop)
Description copied from interface: ReadOnlyTStore
Retrieve a transaction-specific property. Caller must have already reserved tid.

Specified by:
getProperty in interface ReadOnlyTStore<T>
Parameters:
tid - transaction id, previously reserved.
prop - name of property to retrieve.

list

public List<Long> list()
Description copied from interface: ReadOnlyTStore
list all transaction ids in store.

Specified by:
list in interface ReadOnlyTStore<T>
Returns:
all outstanding transactions, including those reserved by others.


Copyright © 2015 Apache Accumulo Project. All rights reserved.