org.rocksdb.RocksDB.get()方法的使用及代码示例

x33g5p2x  于2022-01-28 转载在 其他  
字(9.5k)|赞(0)|评价(0)|浏览(295)

本文整理了Java中org.rocksdb.RocksDB.get方法的一些代码示例,展示了RocksDB.get的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。RocksDB.get方法的具体详情如下:
包路径:org.rocksdb.RocksDB
类名称:RocksDB
方法名:get

RocksDB.get介绍

[英]The simplified version of get which returns a new byte array storing the value associated with the specified input key if any. null will be returned if the specified key is not found.
[中]get的简化版本,它返回一个新字节数组,存储与指定输入键(如果有)关联的值。如果找不到指定的密钥,则返回null。

代码示例

代码示例来源:origin: apache/flink

@Override
public boolean contains(UK userKey) throws IOException, RocksDBException {
  byte[] rawKeyBytes = serializeCurrentKeyWithGroupAndNamespacePlusUserKey(userKey, userKeySerializer);
  byte[] rawValueBytes = backend.db.get(columnFamily, rawKeyBytes);
  return (rawValueBytes != null);
}

代码示例来源:origin: Alluxio/alluxio

@Override
public Optional<Long> getChildId(Long inodeId, String name) {
 byte[] id;
 try {
  id = mDb.get(mEdgesColumn, RocksUtils.toByteArray(inodeId, name));
 } catch (RocksDBException e) {
  throw new RuntimeException(e);
 }
 if (id == null) {
  return Optional.empty();
 }
 return Optional.of(Longs.fromByteArray(id));
}

代码示例来源:origin: apache/flink

@Override
public UV get(UK userKey) throws IOException, RocksDBException {
  byte[] rawKeyBytes = serializeCurrentKeyWithGroupAndNamespacePlusUserKey(userKey, userKeySerializer);
  byte[] rawValueBytes = backend.db.get(columnFamily, rawKeyBytes);
  return (rawValueBytes == null ? null : deserializeUserValue(dataInputView, rawValueBytes, userValueSerializer));
}

代码示例来源:origin: Alluxio/alluxio

@Override
public Optional<BlockMeta> getBlock(long id) {
 byte[] meta;
 try {
  meta = mDb.get(mBlockMetaColumn, Longs.toByteArray(id));
 } catch (RocksDBException e) {
  throw new RuntimeException(e);
 }
 if (meta == null) {
  return Optional.empty();
 }
 try {
  return Optional.of(BlockMeta.parseFrom(meta));
 } catch (Exception e) {
  throw new RuntimeException(e);
 }
}

代码示例来源:origin: alibaba/jstorm

@Override
public V get(K key) throws IOException {
  try {
    V ret = null;
    if (key != null) {
      byte[] rawKey = serializer.serialize(key);
      byte[] rawData = rocksDb.get(columnFamily, rawKey);
      ret = rawData != null ? (V) serializer.deserialize(rawData) : null;
    }
    return ret;
  } catch (RocksDBException e) {
    throw new IOException(String.format("Failed to get value by key-%s", key), e);
  }
}

代码示例来源:origin: alibaba/jstorm

@Override
public Object get(String key) {
  try {
    byte[] data = db.get(key.getBytes());
    if (data != null) {
      try {
        return deserialize(data);
      } catch (Exception e) {
        LOG.error("Failed to deserialize obj of " + key, e);
        db.remove(key.getBytes());
        return null;
      }
    }
  } catch (Exception ignored) {
  }
  return null;
}

代码示例来源:origin: ethereum/ethereumj

@Override
public byte[] get(byte[] key) {
  resetDbLock.readLock().lock();
  try {
    if (logger.isTraceEnabled()) logger.trace("~> RocksDbDataSource.get(): " + name + ", key: " + toHexString(key));
    byte[] ret = db.get(readOpts, key);
    if (logger.isTraceEnabled()) logger.trace("<~ RocksDbDataSource.get(): " + name + ", key: " + toHexString(key) + ", " + (ret == null ? "null" : ret.length));
    return ret;
  } catch (RocksDBException e) {
    logger.error("Failed to get from db '{}'", name, e);
    hintOnTooManyOpenFiles(e);
    throw new RuntimeException(e);
  } finally {
    resetDbLock.readLock().unlock();
  }
}

代码示例来源:origin: Alluxio/alluxio

@Override
public Optional<MutableInode<?>> getMutable(long id) {
 byte[] inode;
 try {
  inode = mDb.get(mInodesColumn, Longs.toByteArray(id));
 } catch (RocksDBException e) {
  throw new RuntimeException(e);
 }
 if (inode == null) {
  return Optional.empty();
 }
 try {
  return Optional.of(MutableInode.fromProto(InodeMeta.Inode.parseFrom(inode)));
 } catch (Exception e) {
  throw new RuntimeException(e);
 }
}

代码示例来源:origin: apache/flink

SV getInternal(byte[] key) {
  try {
    byte[] valueBytes = backend.db.get(columnFamily, key);
    if (valueBytes == null) {
      return null;
    }
    dataInputView.setBuffer(valueBytes);
    return valueSerializer.deserialize(dataInputView);
  } catch (IOException | RocksDBException e) {
    throw new FlinkRuntimeException("Error while retrieving data from RocksDB", e);
  }
}

代码示例来源:origin: apache/flink

@Override
public List<V> getInternal() {
  try {
    byte[] key = serializeCurrentKeyWithGroupAndNamespace();
    byte[] valueBytes = backend.db.get(columnFamily, key);
    return deserializeList(valueBytes);
  } catch (RocksDBException e) {
    throw new FlinkRuntimeException("Error while retrieving data from RocksDB", e);
  }
}

代码示例来源:origin: apache/kylin

@Override
public String[] getRow(Array<String> key) {
  byte[] encodeKey = rowEncoder.encodeStringsWithLenPfx(key.data, false);
  try {
    byte[] value = rocksDB.get(encodeKey);
    if (value == null) {
      return null;
    }
    return rowEncoder.decode(new KV(encodeKey, value));
  } catch (RocksDBException e) {
    throw new IllegalStateException("error when get key from rocksdb", e);
  }
}

代码示例来源:origin: apache/storm

boolean populateFromKey(RocksDbKey key, Metric metric) throws MetricException {
  try {
    byte[] value = db.get(key.getRaw());
    if (value == null) {
      return false;
    }
    RocksDbValue rdbValue = new RocksDbValue(value);
    rdbValue.populateMetric(metric);
  } catch (Exception e) {
    String message = "Failed to populate metric";
    LOG.error(message, e);
    if (this.failureMeter != null) {
      this.failureMeter.mark();
    }
    throw new MetricException(message, e);
  }
  return true;
}

代码示例来源:origin: brianfrankcooper/YCSB

@Override
public Status read(final String table, final String key, final Set<String> fields,
  final Map<String, ByteIterator> result) {
 try {
  if (!COLUMN_FAMILIES.containsKey(table)) {
   createColumnFamily(table);
  }
  final ColumnFamilyHandle cf = COLUMN_FAMILIES.get(table).getHandle();
  final byte[] values = rocksDb.get(cf, key.getBytes(UTF_8));
  if(values == null) {
   return Status.NOT_FOUND;
  }
  deserializeValues(values, fields, result);
  return Status.OK;
 } catch(final RocksDBException e) {
  LOGGER.error(e.getMessage(), e);
  return Status.ERROR;
 }
}

代码示例来源:origin: brianfrankcooper/YCSB

@Override
public Status update(final String table, final String key, final Map<String, ByteIterator> values) {
 //TODO(AR) consider if this would be faster with merge operator
 try {
  if (!COLUMN_FAMILIES.containsKey(table)) {
   createColumnFamily(table);
  }
  final ColumnFamilyHandle cf = COLUMN_FAMILIES.get(table).getHandle();
  final Map<String, ByteIterator> result = new HashMap<>();
  final byte[] currentValues = rocksDb.get(cf, key.getBytes(UTF_8));
  if(currentValues == null) {
   return Status.NOT_FOUND;
  }
  deserializeValues(currentValues, null, result);
  //update
  result.putAll(values);
  //store
  rocksDb.put(cf, key.getBytes(UTF_8), serializeValues(result));
  return Status.OK;
 } catch(final RocksDBException | IOException e) {
  LOGGER.error(e.getMessage(), e);
  return Status.ERROR;
 }
}

代码示例来源:origin: apache/flink

@Override
public V value() {
  try {
    byte[] valueBytes = backend.db.get(columnFamily,
      serializeCurrentKeyWithGroupAndNamespace());
    if (valueBytes == null) {
      return getDefaultValue();
    }
    dataInputView.setBuffer(valueBytes);
    return valueSerializer.deserialize(dataInputView);
  } catch (IOException | RocksDBException e) {
    throw new FlinkRuntimeException("Error while retrieving data from RocksDB.", e);
  }
}

代码示例来源:origin: apache/storm

private String metadataIdToString(KeyType type, int id, Map<Integer, String> lookupCache) throws MetricException {
  String s = readOnlyStringMetadataCache.getMetadataString(id);
  if (s != null) {
    return s;
  }
  s = lookupCache.get(id);
  if (s != null) {
    return s;
  }
  // get from DB and add to lookup cache
  RocksDbKey key = new RocksDbKey(type, id);
  try {
    byte[] value = db.get(key.getRaw());
    if (value == null) {
      throw new MetricException("Failed to find metadata string for id " + id + " of type " + type);
    }
    RocksDbValue rdbValue = new RocksDbValue(value);
    s = rdbValue.getMetdataString();
    lookupCache.put(id, s);
    return s;
  } catch (RocksDBException e) {
    if (this.failureMeter != null) {
      this.failureMeter.mark();
    }
    throw new MetricException("Failed to get from RocksDb", e);
  }
}

代码示例来源:origin: apache/flink

@Override
public void mergeNamespaces(N target, Collection<N> sources) {
  if (sources == null || sources.isEmpty()) {
    return;
  }
  try {
    // create the target full-binary-key
    setCurrentNamespace(target);
    final byte[] targetKey = serializeCurrentKeyWithGroupAndNamespace();
    // merge the sources to the target
    for (N source : sources) {
      if (source != null) {
        setCurrentNamespace(source);
        final byte[] sourceKey = serializeCurrentKeyWithGroupAndNamespace();
        byte[] valueBytes = backend.db.get(columnFamily, sourceKey);
        backend.db.delete(columnFamily, writeOptions, sourceKey);
        if (valueBytes != null) {
          backend.db.merge(columnFamily, writeOptions, targetKey, valueBytes);
        }
      }
    }
  }
  catch (Exception e) {
    throw new FlinkRuntimeException("Error while merging state in RocksDB", e);
  }
}

代码示例来源:origin: apache/flink

@Override
public byte[] getSerializedValue(
    final byte[] serializedKeyAndNamespace,
    final TypeSerializer<K> safeKeySerializer,
    final TypeSerializer<N> safeNamespaceSerializer,
    final TypeSerializer<V> safeValueSerializer) throws Exception {
  //TODO make KvStateSerializer key-group aware to save this round trip and key-group computation
  Tuple2<K, N> keyAndNamespace = KvStateSerializer.deserializeKeyAndNamespace(
      serializedKeyAndNamespace, safeKeySerializer, safeNamespaceSerializer);
  int keyGroup = KeyGroupRangeAssignment.assignToKeyGroup(keyAndNamespace.f0, backend.getNumberOfKeyGroups());
  RocksDBSerializedCompositeKeyBuilder<K> keyBuilder =
          new RocksDBSerializedCompositeKeyBuilder<>(
            safeKeySerializer,
            backend.getKeyGroupPrefixBytes(),
            32
          );
  keyBuilder.setKeyAndKeyGroup(keyAndNamespace.f0, keyGroup);
  byte[] key = keyBuilder.buildCompositeKeyNamespace(keyAndNamespace.f1, namespaceSerializer);
  return backend.db.get(columnFamily, key);
}

代码示例来源:origin: apache/flink

setCurrentNamespace(source);
  final byte[] sourceKey = serializeCurrentKeyWithGroupAndNamespace();
  final byte[] valueBytes = backend.db.get(columnFamily, sourceKey);
  backend.db.delete(columnFamily, writeOptions, sourceKey);
final byte[] targetValueBytes = backend.db.get(columnFamily, targetKey);

代码示例来源:origin: apache/flink

setCurrentNamespace(source);
  final byte[] sourceKey = serializeCurrentKeyWithGroupAndNamespace();
  final byte[] valueBytes = backend.db.get(columnFamily, sourceKey);
  backend.db.delete(columnFamily, writeOptions, sourceKey);
final byte[] targetValueBytes = backend.db.get(columnFamily, targetKey);

相关文章