diff --git a/skywalking-server/src/main/java/com/ai/cloud/skywalking/reciever/peresistent/PersistenceThread.java b/skywalking-server/src/main/java/com/ai/cloud/skywalking/reciever/peresistent/PersistenceThread.java index cfc6ea5bb..dc88d939f 100644 --- a/skywalking-server/src/main/java/com/ai/cloud/skywalking/reciever/peresistent/PersistenceThread.java +++ b/skywalking-server/src/main/java/com/ai/cloud/skywalking/reciever/peresistent/PersistenceThread.java @@ -12,10 +12,12 @@ import org.apache.logging.log4j.Logger; import java.io.File; import java.io.IOException; +import java.util.ArrayList; +import java.util.HashMap; import java.util.List; import java.util.Map; -public class PersistenceThread extends Thread { +public class PersistenceThread extends Thread { private Logger logger = LogManager.getLogger(PersistenceThread.class); private File bufferFile = null; @@ -43,7 +45,7 @@ public class PersistenceThread extends Thread { BufferFileReader bufferReader = new BufferFileReader(bufferFile, offset); while (bufferReader.hasNext()) { List serializableDataList = bufferReader.next(); - //handleSpans(spans); + handleSpans(categorySerializableData(serializableDataList)); } try { @@ -61,6 +63,21 @@ public class PersistenceThread extends Thread { } } + private Map> categorySerializableData(List serializableDataList) { + Map> result = new HashMap>(); + for (AbstractDataSerializable serializableData : serializableDataList){ + List specialTypeSerializableData = result.get(serializableData.getDataType()); + if (specialTypeSerializableData == null){ + specialTypeSerializableData = new ArrayList(); + result.put(serializableData.getDataType(), specialTypeSerializableData); + } + + specialTypeSerializableData.add(serializableData); + } + + return result; + } + private int acquireOffset() { int offset; offset = MemoryRegister.instance().getOffSet(bufferFile.getName());