LebronAl commented on a change in pull request #1865:
URL: https://github.com/apache/iotdb/pull/1865#discussion_r514974862
##########
File path:
cluster/src/main/java/org/apache/iotdb/cluster/log/manage/serializable/SyncLogDequeSerializer.java
##########
@@ -50,82 +53,140 @@
import org.apache.iotdb.db.engine.version.SimpleFileVersionController;
import org.apache.iotdb.db.engine.version.VersionController;
import org.apache.iotdb.db.utils.TestOnly;
+import org.apache.iotdb.tsfile.utils.BytesUtils;
+import org.apache.iotdb.tsfile.utils.Pair;
import org.apache.iotdb.tsfile.utils.ReadWriteIOUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class SyncLogDequeSerializer implements StableEntryManager {
private static final Logger logger =
LoggerFactory.getLogger(SyncLogDequeSerializer.class);
- private static final String LOG_FILE_PREFIX = ".data";
+ private static final String LOG_DATA_FILE_SUFFIX = "data";
+ private static final String LOG_INDEX_FILE_SUFFIX = "idx";
+
+ /**
+ * the log data files
+ */
+ private List<File> logDataFileList;
+
+ /**
+ * the log index files
+ */
+ private List<File> logIndexFileList;
- List<File> logFileList;
private LogParser parser = LogParser.getINSTANCE();
private File metaFile;
- private FileOutputStream currentLogOutputStream;
- private Deque<Integer> logSizeDeque = new ArrayDeque<>();
+ private FileOutputStream currentLogDataOutputStream;
+ private FileOutputStream currentLogIndexOutputStream;
private LogManagerMeta meta;
private HardState state;
- // mark first log position
- private long firstLogPosition = 0;
- // removed log size
- private long removedLogSize = 0;
- // when the removedLogSize larger than this, we actually delete logs
- private long maxRemovedLogSize = ClusterDescriptor.getInstance().getConfig()
- .getMaxUnsnapshotLogSize();
- // min version of available log
+
+ /**
+ * min version of available log
+ */
private long minAvailableVersion = 0;
- // max version of available log
+
+ /**
+ * max version of available log
+ */
private long maxAvailableVersion = Long.MAX_VALUE;
- // log dir
+
private String logDir;
- // version controller
+
private VersionController versionController;
- private ByteBuffer logBuffer = ByteBuffer
+ private ByteBuffer logDataBuffer = ByteBuffer
.allocate(ClusterDescriptor.getInstance().getConfig().getRaftLogBufferSize());
+ private ByteBuffer logIndexBuffer = ByteBuffer
Review comment:
As you have used `logIndexOffsetList` to record offset in `putLog`, I
doubt whether it's necessary to maintain this buffer in `putLog`.Maybe You can
generate index buffer in `flushLogBuffer `.
----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
For queries about this service, please contact Infrastructure at:
[email protected]