diff --git a/pixels-daemon/src/main/java/io/pixelsdb/pixels/daemon/retina/RetinaServerImpl.java b/pixels-daemon/src/main/java/io/pixelsdb/pixels/daemon/retina/RetinaServerImpl.java index 6f5073ee57..5065b9c445 100644 --- a/pixels-daemon/src/main/java/io/pixelsdb/pixels/daemon/retina/RetinaServerImpl.java +++ b/pixels-daemon/src/main/java/io/pixelsdb/pixels/daemon/retina/RetinaServerImpl.java @@ -50,6 +50,7 @@ public class RetinaServerImpl extends RetinaWorkerServiceGrpc.RetinaWorkerServiceImplBase { private static final Logger logger = LogManager.getLogger(RetinaServerImpl.class); + private final MetadataService metadataService; private final IndexService indexService; private final RetinaResourceManager retinaResourceManager; diff --git a/pixels-daemon/src/main/resources/log4j2.properties b/pixels-daemon/src/main/resources/log4j2.properties index 6d18c246c9..ce9e04ec55 100644 --- a/pixels-daemon/src/main/resources/log4j2.properties +++ b/pixels-daemon/src/main/resources/log4j2.properties @@ -19,3 +19,15 @@ appender.rolling.layout.pattern = %-d{yyyy-MM-dd HH:mm:ss,SSS} [%c]-[%p] %m%n rootLogger.level = info rootLogger.appenderRef.stdout.ref = STDOUT rootLogger.appenderRef.log.ref = log + +appender.index.type = File +appender.index.name = INDEX_OUT +appender.index.fileName = ${env:PIXELS_HOME}/logs/index.trace +appender.index.append = true +appender.index.layout.type = PatternLayout +appender.index.layout.pattern = %m%n + +logger.index.name = index +logger.index.level = info +logger.index.additivity = false +logger.index.appenderRef.index.ref = INDEX_OUT \ No newline at end of file diff --git a/pixels-index/pixels-index-rocksdb/pom.xml b/pixels-index/pixels-index-rocksdb/pom.xml index b03f5d6562..ab8b626ed9 100644 --- a/pixels-index/pixels-index-rocksdb/pom.xml +++ b/pixels-index/pixels-index-rocksdb/pom.xml @@ -66,6 +66,19 @@ grpc-stub test + + + + org.apache.logging.log4j + log4j-slf4j-impl + true + + + + org.slf4j + log4j-over-slf4j + true + diff --git a/pixels-index/pixels-index-rocksdb/src/main/java/io/pixelsdb/pixels/index/rocksdb/RocksDBIndex.java b/pixels-index/pixels-index-rocksdb/src/main/java/io/pixelsdb/pixels/index/rocksdb/RocksDBIndex.java index 5710184232..e1b6b476aa 100644 --- a/pixels-index/pixels-index-rocksdb/src/main/java/io/pixelsdb/pixels/index/rocksdb/RocksDBIndex.java +++ b/pixels-index/pixels-index-rocksdb/src/main/java/io/pixelsdb/pixels/index/rocksdb/RocksDBIndex.java @@ -26,6 +26,8 @@ import io.pixelsdb.pixels.index.IndexProto; import org.apache.commons.io.FileUtils; import org.rocksdb.*; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import java.io.File; import java.io.IOException; @@ -40,6 +42,8 @@ */ public class RocksDBIndex implements SinglePointIndex { + private static final Logger indexLogger = LoggerFactory.getLogger("index"); + private final RocksDB rocksDB; private final String rocksDBPath; private final WriteOptions writeOptions; @@ -166,6 +170,12 @@ public boolean putEntry(IndexProto.IndexKey key, long rowId) throws SinglePointI ByteBuffer nonUniqueKeyBuffer = toNonUniqueKeyBuffer(key, rowId); rocksDB.put(writeOptions, nonUniqueKeyBuffer, EMPTY_VALUE_BUFFER); } + indexLogger.info("P\t{}\t{}\t{}\t{}\t{}", + tableId, + indexId, + key.getKey().asReadOnlyByteBuffer().getInt(), + key.getTimestamp(), + rowId); return true; } catch (RocksDBException e) @@ -187,6 +197,13 @@ public boolean putPrimaryEntries(List entries) thr ByteBuffer valueBuffer = RocksDBThreadResources.getValueBuffer(); valueBuffer.putLong(rowId).position(0); writeBatch.put(keyBuffer, valueBuffer); + indexLogger.info("P\t{}\t{}\t{}\t{}\t{}", + tableId, + indexId, + entry.getIndexKey().getKey().asReadOnlyByteBuffer().getInt(), + entry.getIndexKey().getTimestamp(), + entry.getRowId() + ); } rocksDB.write(writeOptions, writeBatch); return true; @@ -238,6 +255,13 @@ public long updatePrimaryEntry(IndexProto.IndexKey key, long rowId) throws Singl ByteBuffer valueBuffer = RocksDBThreadResources.getValueBuffer(); valueBuffer.putLong(rowId).position(0); rocksDB.put(writeOptions, keyBuffer, valueBuffer); + indexLogger.info("U\t{}\t{}\t{}\t{}\t{}", + tableId, + indexId, + key.getKey().asReadOnlyByteBuffer().getInt(), + key.getTimestamp(), + rowId + ); return prevRowId; } catch (RocksDBException e) @@ -289,6 +313,13 @@ public List updatePrimaryEntries(List entrie ByteBuffer valueBuffer = RocksDBThreadResources.getValueBuffer(); valueBuffer.putLong(rowId).position(0); writeBatch.put(keyBuffer, valueBuffer); + indexLogger.info("U\t{}\t{}\t{}\t{}\t{}", + tableId, + indexId, + key.getKey().asReadOnlyByteBuffer().getInt(), + key.getTimestamp(), + rowId + ); } rocksDB.write(writeOptions, writeBatch); return builder.build(); @@ -399,6 +430,11 @@ public List deleteEntries(List keys) throws SinglePoi // Delete single point index for(IndexProto.IndexKey key : keys) { + indexLogger.info("D\t{}\t{}\t{}\t{}", + tableId, + indexId, + key.getKey().asReadOnlyByteBuffer().getInt(), + key.getTimestamp()); if(unique) { long rowId = getUniqueRowId(key);