diff --git a/src/main/java/com/oath/halodb/HaloDB.java b/src/main/java/com/oath/halodb/HaloDB.java index cae6236..2424406 100644 --- a/src/main/java/com/oath/halodb/HaloDB.java +++ b/src/main/java/com/oath/halodb/HaloDB.java @@ -40,6 +40,10 @@ public byte[] get(byte[] key) throws HaloDBException { } } + public int size(byte[] key) { + return dbInternal.size(key); + } + public boolean put(byte[] key, byte[] value) throws HaloDBException { try { return dbInternal.put(key, value); diff --git a/src/main/java/com/oath/halodb/HaloDBInternal.java b/src/main/java/com/oath/halodb/HaloDBInternal.java index 8216db9..ee47597 100644 --- a/src/main/java/com/oath/halodb/HaloDBInternal.java +++ b/src/main/java/com/oath/halodb/HaloDBInternal.java @@ -414,6 +414,15 @@ long size() { return inMemoryIndex.size(); } + int size(byte[] key) { + InMemoryIndexMetaData metaData = inMemoryIndex.get(key); + if (metaData == null) { + return -1; + } + + return metaData.getValueSize(); + } + void setIOErrorFlag() throws IOException { DBMetaData metaData = new DBMetaData(dbDirectory); metaData.loadFromFileIfExists();