Package com.orientechnologies.orient.core.db.record.ridbag.sbtree

Examples of com.orientechnologies.orient.core.db.record.ridbag.sbtree.OSBTreeCollectionManager


       }

       return true;
     } catch (RuntimeException e) {
       if (connection != null && connection.database != null) {
         final OSBTreeCollectionManager collectionManager = connection.database.getSbTreeCollectionManager();
         if (collectionManager != null)
           collectionManager.clearChangedIds();
       }

       throw e;
     }
   }
View Full Code Here


       } catch (Exception e) {
         if (connection != null && connection.database != null) {
           if (connection.database.getTransaction().isActive())
             connection.database.rollback(true);

           final OSBTreeCollectionManager collectionManager = connection.database.getSbTreeCollectionManager();
           if (collectionManager != null)
             collectionManager.clearChangedIds();
         }

         sendErrorOrDropConnection(clientTxId, e);
       }
     } catch (OTransactionAbortedException e) {
View Full Code Here

     setDataCommandInfo("RidBag get size");

     OBonsaiCollectionPointer collectionPointer = OCollectionNetworkSerializer.INSTANCE.readCollectionPointer(channel);
     final byte[] changeStream = channel.readBytes();

     final OSBTreeCollectionManager sbTreeCollectionManager = connection.database.getSbTreeCollectionManager();
     final OSBTreeBonsai<OIdentifiable, Integer> tree = sbTreeCollectionManager.loadSBTree(collectionPointer);
     try {
       final Map<OIdentifiable, OSBTreeRidBag.Change> changes = OSBTreeRidBag.ChangeSerializationHelper.INSTANCE.deserializeChanges(
           changeStream, 0);

       int realSize = tree.getRealBagSize(changes);

       beginResponse();
       try {
         sendOk(clientTxId);
         channel.writeInt(realSize);
       } finally {
         endResponse();
       }
     } finally {
       sbTreeCollectionManager.releaseSBTree(collectionPointer);
     }
   }
View Full Code Here

     int pageSize = 128;

     if (connection.data.protocolVersion >= 21)
       pageSize = channel.readInt();

     final OSBTreeCollectionManager sbTreeCollectionManager = connection.database.getSbTreeCollectionManager();
     final OSBTreeBonsai<OIdentifiable, Integer> tree = sbTreeCollectionManager.loadSBTree(collectionPointer);
     try {
       final OBinarySerializer<OIdentifiable> keySerializer = tree.getKeySerializer();
       OIdentifiable key = keySerializer.deserialize(keyStream, 0);

       final OBinarySerializer<Integer> valueSerializer = tree.getValueSerializer();

       OTreeInternal.AccumulativeListener<OIdentifiable, Integer> listener = new OTreeInternal.AccumulativeListener<OIdentifiable, Integer>(
           pageSize);
       tree.loadEntriesMajor(key, inclusive, true, listener);
       List<Entry<OIdentifiable, Integer>> result = listener.getResult();
       byte[] stream = serializeSBTreeEntryCollection(result, keySerializer, valueSerializer);

       beginResponse();
       try {
         sendOk(clientTxId);
         channel.writeBytes(stream);
       } finally {
         endResponse();
       }
     } finally {
       sbTreeCollectionManager.releaseSBTree(collectionPointer);
     }
   }
View Full Code Here

   private void sbTreeBonsaiFirstKey() throws IOException {
     setDataCommandInfo("SB-Tree bonsai get first key");

     OBonsaiCollectionPointer collectionPointer = OCollectionNetworkSerializer.INSTANCE.readCollectionPointer(channel);

     final OSBTreeCollectionManager sbTreeCollectionManager = connection.database.getSbTreeCollectionManager();
     final OSBTreeBonsai<OIdentifiable, Integer> tree = sbTreeCollectionManager.loadSBTree(collectionPointer);
     try {
       OIdentifiable result = tree.firstKey();
       final OBinarySerializer<? super OIdentifiable> keySerializer;
       if (result == null) {
         keySerializer = ONullSerializer.INSTANCE;
       } else {
         keySerializer = tree.getKeySerializer();
       }

       byte[] stream = new byte[OByteSerializer.BYTE_SIZE + keySerializer.getObjectSize(result)];
       OByteSerializer.INSTANCE.serialize(keySerializer.getId(), stream, 0);
       keySerializer.serialize(result, stream, OByteSerializer.BYTE_SIZE);

       beginResponse();
       try {
         sendOk(clientTxId);
         channel.writeBytes(stream);
       } finally {
         endResponse();
       }
     } finally {
       sbTreeCollectionManager.releaseSBTree(collectionPointer);
     }
   }
View Full Code Here

     setDataCommandInfo("SB-Tree bonsai get");

     OBonsaiCollectionPointer collectionPointer = OCollectionNetworkSerializer.INSTANCE.readCollectionPointer(channel);
     final byte[] keyStream = channel.readBytes();

     final OSBTreeCollectionManager sbTreeCollectionManager = connection.database.getSbTreeCollectionManager();
     final OSBTreeBonsai<OIdentifiable, Integer> tree = sbTreeCollectionManager.loadSBTree(collectionPointer);
     try {
       final OIdentifiable key = tree.getKeySerializer().deserialize(keyStream, 0);

       Integer result = tree.get(key);
       final OBinarySerializer<? super Integer> valueSerializer;
       if (result == null) {
         valueSerializer = ONullSerializer.INSTANCE;
       } else {
         valueSerializer = tree.getValueSerializer();
       }

       byte[] stream = new byte[OByteSerializer.BYTE_SIZE + valueSerializer.getObjectSize(result)];
       OByteSerializer.INSTANCE.serialize(valueSerializer.getId(), stream, 0);
       valueSerializer.serialize(result, stream, OByteSerializer.BYTE_SIZE);

       beginResponse();
       try {
         sendOk(clientTxId);
         channel.writeBytes(stream);
       } finally {
         endResponse();
       }
     } finally {
       sbTreeCollectionManager.releaseSBTree(collectionPointer);
     }
   }
View Full Code Here

     }
     return true;
   }

   private void sendCollectionChanges() throws IOException {
     OSBTreeCollectionManager collectionManager = connection.database.getSbTreeCollectionManager();
     if (collectionManager != null) {
       Map<UUID, OBonsaiCollectionPointer> changedIds = collectionManager.changedIds();

       channel.writeInt(changedIds.size());

       for (Entry<UUID, OBonsaiCollectionPointer> entry : changedIds.entrySet()) {
         UUID id = entry.getKey();
         channel.writeLong(id.getMostSignificantBits());
         channel.writeLong(id.getLeastSignificantBits());

         OCollectionNetworkSerializer.INSTANCE.writeCollectionPointer(channel, entry.getValue());
       }
       collectionManager.clearChangedIds();
     }
   }
View Full Code Here

        oldDelegate.requestDelete();
      }
    }

    final UUID oldUuid = uuid;
    final OSBTreeCollectionManager sbTreeCollectionManager = ODatabaseRecordThreadLocal.INSTANCE.get().getSbTreeCollectionManager();
    if (sbTreeCollectionManager != null)
      uuid = sbTreeCollectionManager.listenForChanges(this);
    else
      uuid = null;

    boolean hasUuid = uuid != null;
View Full Code Here

        // TODO: I need a better message!
        throw new ODatabaseException("Persistent record serializer version is not support by the current implementation");

      componentsFactory = getStorage().getComponentsFactory();

      final OSBTreeCollectionManager sbTreeCM = getStorage().getResource(OSBTreeCollectionManager.class.getSimpleName(),
          new Callable<OSBTreeCollectionManager>() {
            @Override
            public OSBTreeCollectionManager call() throws Exception {
              Class<? extends OSBTreeCollectionManager> managerClass = getStorage().getCollectionManagerClass();
View Full Code Here

        case 1:
          // ASYNCHRONOUS
          if (iCallback != null) {
            final int sessionId = getSessionId();
            final OSBTreeCollectionManager collectionManager = ODatabaseRecordThreadLocal.INSTANCE.get()
                .getSbTreeCollectionManager();
            Callable<Object> response = new Callable<Object>() {
              public Object call() throws Exception {
                final OClusterPosition result;
View Full Code Here

TOP

Related Classes of com.orientechnologies.orient.core.db.record.ridbag.sbtree.OSBTreeCollectionManager

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.