Package com.sleepycat.je

Examples of com.sleepycat.je.Cursor


        }
        dupSort = db.getConfig().getSortedDuplicates();

        printHeader(outputFile, dupSort, formatUsingPrintable);

        Cursor cursor = db.openCursor(null, null);
        while (cursor.getNext(foundKey, foundData, LockMode.DEFAULT) ==
               OperationStatus.SUCCESS) {
            dumpOne(outputFile, foundKey.getData(), formatUsingPrintable);
            dumpOne(outputFile, foundData.getData(), formatUsingPrintable);
        }
        cursor.close();
        db.close();
        outputFile.println("DATA=END");

        LoggerUtils.envLogMsg(Level.INFO, DbInternal.getEnvironmentImpl(env),
                              "DbDump.dump of " + dbName + " ending");
View Full Code Here


                throw new IllegalStateException(status.toString());
            }
        }

        /* Position a cursor to the first record. */
        final Cursor cursor = db.openCursor(null, null);
        OperationStatus status = cursor.getFirst(keyEntry, dataEntry, null);
        assert status == OperationStatus.SUCCESS;

        /*
         * Calculate BIN size including LNs/data. The recalcKeyPrefix and
         * compactMemory methods are called to simulate normal operation.
         * Normally prefixes are recalculated when a IN is split, and
         * compactMemory is called after fetching a IN or evicting an LN.
         */
        final BIN bin = DbInternal.getCursorImpl(cursor).getBIN();
        bin.recalcKeyPrefix();
        bin.compactMemory();
        minBinSizeWithData = bin.getInMemorySize();

        /* Evict all LNs. */
        for (int i = 0; i < nodeAvg; i += 1) {
            assert status == OperationStatus.SUCCESS;
            final CursorImpl cursorImpl = DbInternal.getCursorImpl(cursor);
            assert bin == cursorImpl.getBIN();
            assert duplicates ?
                (bin.getTarget(i) == null) :
                (bin.getTarget(i) != null);
            if (!duplicates) {
                cursorImpl.evict();
            }
            status = cursor.getNext(keyEntry, dataEntry, null);
        }
        assert status == OperationStatus.NOTFOUND;
        cursor.close();

        /*
         * Calculate BIN size without LNs/data. The clearLsnCompaction method
         * is called to artificially remove LSN compaction savings.  The amount
         * saved by LSN compaction is currently the only difference between the
View Full Code Here

            }
            Collections.shuffle(rndKeys, new Random(123));
        }

        final Transaction txn = env.beginTransaction(null, null);
        final Cursor cursor = db.openCursor(txn, null);
        boolean success = false;
        try {
            cursor.setCacheMode(CacheMode.EVICT_LN);
            for (int i = 0; i <= lastKey; i += 1) {
                final int keyVal = orderedInsertion ? i : rndKeys.get(i);
                byte[] keyBytes = padLeft
                    (BigInteger.valueOf(keyVal).toByteArray(), maxKeyBytes);
                setKeyData(keyBytes, keyOffset, keyEntry, dataEntry);

                final OperationStatus status;
                if (duplicates) {
                    status = cursor.putNoDupData(keyEntry, dataEntry);
                } else {
                    status = cursor.putNoOverwrite(keyEntry, dataEntry);
                }
                if (status == OperationStatus.KEYEXIST && !orderedInsertion) {
                    i -= 1;
                    continue;
                }
                if (status != OperationStatus.SUCCESS) {
                    throw new IllegalStateException("Could not insert: " +
                                                    status);
                }

                if (i % 10000 == 0) {
                    final EnvironmentStats stats = env.getStats(null);
                    if (stats.getNNodesScanned() > 0) {
                        throw new IllegalStateException
                            ("*** Ran out of cache memory at record " + i +
                             " -- try increasing Java heap size ***");
                    }
                    if (out != null) {
                        out.print(".");
                        out.flush();
                    }
                }
            }
            success = true;
        } finally {
            cursor.close();
            if (success) {
                txn.commit();
            } else {
                txn.abort();
            }
View Full Code Here

      String namePart = "";
      int namePartIndex = name.size();
      Set<String> set = null;

      Cursor cursor = cacheDb.openCursor(null, null);
      try
      {
         while (true)
         {
            DatabaseEntry keyEntry = makeKeyEntry(prefixEntry, namePart);
            OperationStatus status =
                  cursor.getSearchKeyRange(keyEntry, dataEntry, null);
            if (status != OperationStatus.SUCCESS ||
                  !startsWith(keyEntry, prefixEntry))
            {
               break;
            }
            if (set == null)
            {
               set = new HashSet<String>();
            }
            Fqn childName = makeKeyObject(keyEntry);
            namePart = childName.get(namePartIndex).toString();
            set.add(namePart);
            namePart += LOWEST_UTF_CHAR;
         }
      }
      finally
      {
         cursor.close();
      }
      if (set != null)
      {
         return Collections.unmodifiableSet(set);
      }
View Full Code Here

      /* To update-or-insert, try putNoOverwrite first, then a RMW cycle. */
      Map<Object, Object> map = new HashMap<Object, Object>();
      map.put(key, value);
      DatabaseEntry dataEntry = makeDataEntry(map);
      DatabaseEntry keyEntry = makeKeyEntry(name);
      Cursor cursor = cacheDb.openCursor(txn, null);
      try
      {
         OperationStatus status = cursor.putNoOverwrite(keyEntry, dataEntry);
         if (status == OperationStatus.SUCCESS)
         {
            createParentNodes(cursor, name);
         }
         else
         {
            DatabaseEntry foundData = new DatabaseEntry();
            status = cursor.getSearchKey(keyEntry, foundData, LockMode.RMW);
            if (status == OperationStatus.SUCCESS)
            {
               map = makeDataObject(foundData);
               oldVal = map.put(key, value);
               cursor.putCurrent(makeDataEntry(map));
            }
         }
      }
      finally
      {
         cursor.close();
      }
      return oldVal;
   }
View Full Code Here

      }

      /* To update-or-insert, try putNoOverwrite first, then a RMW cycle. */
      DatabaseEntry dataEntry = makeDataEntry(values);
      DatabaseEntry keyEntry = makeKeyEntry(name);
      Cursor cursor = cacheDb.openCursor(txn, null);
      try
      {
         OperationStatus status = cursor.put(keyEntry, dataEntry);
         if (status == OperationStatus.SUCCESS)
         {
            createParentNodes(cursor, name);
         }
      }
      finally
      {
         cursor.close();
      }
   }
View Full Code Here

      // JBCACHE-769 -- make a defensive copy
      values = (values == null ? null : new HashMap<Object, Object>(values));

      DatabaseEntry dataEntry = makeDataEntry(values);
      DatabaseEntry keyEntry = makeKeyEntry(name);
      Cursor cursor = cacheDb.openCursor(txn, null);
      try
      {
         cursor.put(keyEntry, dataEntry);
         createParentNodes(cursor, name);
      }
      finally
      {
         cursor.close();
      }
   }
View Full Code Here

      {
         DatabaseEntry keyEntry = makeKeyEntry(name);
         DatabaseEntry foundKey = new DatabaseEntry();
         DatabaseEntry foundData = new DatabaseEntry();
         foundData.setPartial(0, 0, true);
         Cursor cursor = cacheDb.openCursor(txn, null);
         try
         {
            OperationStatus status =
                  cursor.getSearchKey(keyEntry, foundData, LockMode.RMW);
            while (status == OperationStatus.SUCCESS)
            {
               cursor.delete();
               status = cursor.getNext(foundKey, foundData, LockMode.RMW);
               if (status == OperationStatus.SUCCESS &&
                     !startsWith(foundKey, keyEntry))
               {
                  status = OperationStatus.NOTFOUND;
               }
            }
         }
         finally
         {
            cursor.close();
         }
      }
   }
View Full Code Here

   {

      Object oldVal = null;
      DatabaseEntry keyEntry = makeKeyEntry(name);
      DatabaseEntry foundData = new DatabaseEntry();
      Cursor cursor = cacheDb.openCursor(txn, null);
      try
      {
         OperationStatus status =
               cursor.getSearchKey(keyEntry, foundData, LockMode.RMW);
         if (status == OperationStatus.SUCCESS)
         {
            Map map = makeDataObject(foundData);
            oldVal = map.remove(key);
            cursor.putCurrent(makeDataEntry(map));
         }
      }
      finally
      {
         cursor.close();
      }
      return oldVal;
   }
View Full Code Here

   {

      DatabaseEntry dataEntry = new DatabaseEntry();
      dataEntry.setPartial(0, 0, true);
      DatabaseEntry keyEntry = makeKeyEntry(name);
      Cursor cursor = cacheDb.openCursor(txn, null);
      try
      {
         OperationStatus status =
               cursor.getSearchKey(keyEntry, dataEntry, LockMode.RMW);
         if (status == OperationStatus.SUCCESS)
         {
            cursor.putCurrent(makeDataEntry(null));
         }
      }
      finally
      {
         cursor.close();
      }
   }
View Full Code Here

TOP

Related Classes of com.sleepycat.je.Cursor

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.