mirror of https://github.com/OpenIdentityPlatform/OpenDJ.git

Jean-Noel Rouvignac
16.34.2014 7c8bfd4e360385432ea8d6e0e7ff94f4d80d79dc
OPENDJ-1602 (CR-5566) New pluggable storage based backend

BackendImpl.java:
Moved openTree() from Storage to WriteableOperation to make it transactional.
Removed unused remove(TreeName, ByteSequence key, ByteSequence value).

DatabaseContainer.java:
Now call WriteableOperation.openTree().
In read(), implemented using getRMW() for read-modify-write.
2 files modified
10 ■■■■■ changed files
opendj3-server-dev/src/server/org/opends/server/backends/pluggable/BackendImpl.java 6 ●●●●● patch | view | raw | blame | history
opendj3-server-dev/src/server/org/opends/server/backends/pluggable/DatabaseContainer.java 4 ●●●● patch | view | raw | blame | history
opendj3-server-dev/src/server/org/opends/server/backends/pluggable/BackendImpl.java
@@ -134,8 +134,6 @@
    void open() throws Exception;
    void openTree(TreeName name);
    <T> T read(ReadOperation<T> readTransaction) throws Exception;
    void write(WriteOperation updateTransaction) throws Exception;
@@ -264,13 +262,13 @@
  public interface WriteableStorage extends ReadableStorage
  {
    void openTree(TreeName name);
    void put(TreeName name, ByteSequence key, ByteSequence value);
    boolean putIfAbsent(TreeName treeName, ByteSequence key, ByteSequence value);
    boolean remove(TreeName name, ByteSequence key);
    boolean remove(TreeName name, ByteSequence key, ByteSequence value);
  }
  /** The configuration of this JE backend. */
opendj3-server-dev/src/server/org/opends/server/backends/pluggable/DatabaseContainer.java
@@ -80,7 +80,7 @@
   */
  public void open(WriteableStorage txn) throws StorageRuntimeException
  {
    storage.openTree(treeName);
    txn.openTree(treeName);
    if (logger.isTraceEnabled())
    {
      logger.trace("JE database %s opened. txnid=%d", treeName, txn.getId());
@@ -146,7 +146,7 @@
   */
  protected ByteString read(ReadableStorage txn, ByteSequence key, boolean isRMW) throws StorageRuntimeException
  {
    ByteString value = txn.get(treeName, key);
    ByteString value = isRMW ? txn.get(treeName, key) : txn.getRMW(treeName, key);
    if (logger.isTraceEnabled())
    {
      logger.trace(messageToLog(value != null, treeName, txn, key, value));