use of com.srotya.sidewinder.core.storage.ByteString.ByteStringCache in project sidewinder by srotya.
the class PersistentMeasurement method loadTimeseriesInMeasurements.
@Override
public void loadTimeseriesInMeasurements() throws IOException {
String fieldFilePath = getFieldMetadataPath();
File file = new File(fieldFilePath);
if (!file.exists()) {
logger.warning("Field file missing for measurement:" + measurementName);
return;
} else {
logger.fine("Field file exists:" + file.getAbsolutePath());
}
List<String> fieldEntries = MiscUtils.readAllLines(file);
loadFieldList(fieldEntries);
String mdFilePath = getMetadataPath();
file = new File(mdFilePath);
if (!file.exists()) {
logger.warning("Metadata file missing for measurement:" + measurementName);
return;
} else {
logger.fine("Metadata file exists:" + file.getAbsolutePath());
}
List<String> seriesEntries = MiscUtils.readAllLines(file);
try {
loadSeriesEntries(seriesEntries);
} catch (Exception e) {
e.printStackTrace();
throw new IOException(e);
}
ByteStringCache localCache = ByteStringCache.instance();
Map<ByteString, List<Entry<Integer, BufferObject>>> seriesBuffers = malloc.seriesBufferMap();
for (Entry<ByteString, List<Entry<Integer, BufferObject>>> entry : seriesBuffers.entrySet()) {
ByteString[] split = entry.getKey().split(SERIESID_SEPARATOR);
ByteString seriesId = localCache.get(split[0]);
Integer seriesIndex = seriesMap.get(seriesId);
Series series = seriesList.get(seriesIndex);
if (series.getSeriesId() != seriesId) {
seriesMap.put(seriesId, seriesIndex);
series.setSeriesId(seriesId);
}
List<Entry<Integer, BufferObject>> list = entry.getValue();
if (list != null) {
try {
String fieldName = split[1].toString();
series.loadBuffers(this, fieldName, list, this.getConf());
} catch (Exception e) {
logger.log(Level.SEVERE, "Failed to load bucket map for:" + entry.getKey() + ":" + measurementName, e);
}
}
}
if (compactOnStart) {
compact();
}
logger.info("Loaded measurement:" + measurementName);
}
Aggregations