|
|
@ -5,6 +5,9 @@ |
|
|
|
|
|
|
|
|
|
|
|
package org.rocksdb; |
|
|
|
package org.rocksdb; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
import java.util.List; |
|
|
|
|
|
|
|
import java.util.Map; |
|
|
|
|
|
|
|
import java.util.HashMap; |
|
|
|
import java.io.Closeable; |
|
|
|
import java.io.Closeable; |
|
|
|
import java.io.IOException; |
|
|
|
import java.io.IOException; |
|
|
|
|
|
|
|
|
|
|
@ -142,6 +145,7 @@ public class RocksDB { |
|
|
|
* returned if the specified key is not found. |
|
|
|
* returned if the specified key is not found. |
|
|
|
* |
|
|
|
* |
|
|
|
* @param key the key retrieve the value. |
|
|
|
* @param key the key retrieve the value. |
|
|
|
|
|
|
|
* @param opt Read options. |
|
|
|
* @return a byte array storing the value associated with the input key if |
|
|
|
* @return a byte array storing the value associated with the input key if |
|
|
|
* any. null if it does not find the specified key. |
|
|
|
* any. null if it does not find the specified key. |
|
|
|
* |
|
|
|
* |
|
|
@ -151,6 +155,60 @@ public class RocksDB { |
|
|
|
return get(nativeHandle_, opt.nativeHandle_, key, key.length); |
|
|
|
return get(nativeHandle_, opt.nativeHandle_, key, key.length); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
|
|
|
* Returns a map of keys for which values were found in DB. |
|
|
|
|
|
|
|
* |
|
|
|
|
|
|
|
* @param keys List of keys for which values need to be retrieved. |
|
|
|
|
|
|
|
* @return Map where key of map is the key passed by user and value for map |
|
|
|
|
|
|
|
* entry is the corresponding value in DB. |
|
|
|
|
|
|
|
* |
|
|
|
|
|
|
|
* @see RocksDBException |
|
|
|
|
|
|
|
*/ |
|
|
|
|
|
|
|
public Map<byte[], byte[]> multiGet(List<byte[]> keys) |
|
|
|
|
|
|
|
throws RocksDBException { |
|
|
|
|
|
|
|
List<byte[]> values = multiGet( |
|
|
|
|
|
|
|
nativeHandle_, keys, keys.size()); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Map<byte[], byte[]> keyValueMap = new HashMap<byte[], byte[]>(); |
|
|
|
|
|
|
|
for(int i = 0; i < values.size(); i++) { |
|
|
|
|
|
|
|
if(values.get(i) == null) { |
|
|
|
|
|
|
|
continue; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
keyValueMap.put(keys.get(i), values.get(i)); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
return keyValueMap; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
|
|
|
* Returns a map of keys for which values were found in DB. |
|
|
|
|
|
|
|
* |
|
|
|
|
|
|
|
* @param List of keys for which values need to be retrieved. |
|
|
|
|
|
|
|
* @param opt Read options. |
|
|
|
|
|
|
|
* @return Map where key of map is the key passed by user and value for map |
|
|
|
|
|
|
|
* entry is the corresponding value in DB. |
|
|
|
|
|
|
|
* |
|
|
|
|
|
|
|
* @see RocksDBException |
|
|
|
|
|
|
|
*/ |
|
|
|
|
|
|
|
public Map<byte[], byte[]> multiGet(ReadOptions opt, List<byte[]> keys) |
|
|
|
|
|
|
|
throws RocksDBException { |
|
|
|
|
|
|
|
List<byte[]> values = multiGet( |
|
|
|
|
|
|
|
nativeHandle_, opt.nativeHandle_, keys, keys.size()); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Map<byte[], byte[]> keyValueMap = new HashMap<byte[], byte[]>(); |
|
|
|
|
|
|
|
for(int i = 0; i < values.size(); i++) { |
|
|
|
|
|
|
|
if(values.get(i) == null) { |
|
|
|
|
|
|
|
continue; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
keyValueMap.put(keys.get(i), values.get(i)); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
return keyValueMap; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
/** |
|
|
|
/** |
|
|
|
* Remove the database entry (if any) for "key". Returns OK on |
|
|
|
* Remove the database entry (if any) for "key". Returns OK on |
|
|
|
* success, and a non-OK status on error. It is not an error if "key" |
|
|
|
* success, and a non-OK status on error. It is not an error if "key" |
|
|
@ -213,6 +271,10 @@ public class RocksDB { |
|
|
|
protected native int get( |
|
|
|
protected native int get( |
|
|
|
long handle, long readOptHandle, byte[] key, int keyLen, |
|
|
|
long handle, long readOptHandle, byte[] key, int keyLen, |
|
|
|
byte[] value, int valueLen) throws RocksDBException; |
|
|
|
byte[] value, int valueLen) throws RocksDBException; |
|
|
|
|
|
|
|
protected native List<byte[]> multiGet( |
|
|
|
|
|
|
|
long dbHandle, List<byte[]> keys, int keysCount); |
|
|
|
|
|
|
|
protected native List<byte[]> multiGet( |
|
|
|
|
|
|
|
long dbHandle, long rOptHandle, List<byte[]> keys, int keysCount); |
|
|
|
protected native byte[] get( |
|
|
|
protected native byte[] get( |
|
|
|
long handle, byte[] key, int keyLen) throws RocksDBException; |
|
|
|
long handle, byte[] key, int keyLen) throws RocksDBException; |
|
|
|
protected native byte[] get( |
|
|
|
protected native byte[] get( |
|
|
|