use of com.srotya.sidewinder.core.storage.archival.TimeSeriesArchivalObject in project sidewinder by srotya.
the class Archiver method deserializeFromStream.
public static TimeSeriesArchivalObject deserializeFromStream(DataInputStream bis) throws IOException {
TimeSeriesArchivalObject bucketWraper = new TimeSeriesArchivalObject();
bucketWraper.setDb(bis.readUTF());
bucketWraper.setMeasurement(bis.readUTF());
bucketWraper.setSeriesKey(bis.readUTF());
bucketWraper.setTsBucket(bis.readUTF());
byte[] buf = new byte[bis.readInt()];
bis.read(buf);
bucketWraper.setData(buf);
return bucketWraper;
}
use of com.srotya.sidewinder.core.storage.archival.TimeSeriesArchivalObject in project sidewinder by srotya.
the class Measurement method collectGarbage.
public default Set<String> collectGarbage(Archiver archiver) throws IOException {
return runCleanupOperation("garbage collection", series -> {
try {
Map<Integer, List<Writer>> collectedGarbage = series.collectGarbage(this);
List<Writer> output = new ArrayList<>();
if (collectedGarbage.size() > 0) {
getLogger().fine("Collected garbage:" + collectedGarbage.size() + " series:" + series.getSeriesId());
}
if (collectedGarbage != null) {
for (Entry<Integer, List<Writer>> entry : collectedGarbage.entrySet()) {
for (Writer writer : entry.getValue()) {
if (archiver != null) {
byte[] buf = Archiver.writerToByteArray(writer);
TimeSeriesArchivalObject archivalObject = new TimeSeriesArchivalObject(getDbName(), getMeasurementName(), series.getSeriesId(), entry.getKey(), buf);
try {
archiver.archive(archivalObject);
} catch (ArchiveException e) {
getLogger().log(Level.SEVERE, "Series failed to archive, series:" + series.getSeriesId() + " db:" + getDbName() + " m:" + getMeasurementName(), e);
}
}
output.add(writer);
}
}
}
return output;
} catch (IOException e) {
throw new RuntimeException(e);
}
});
}
Aggregations