Search in sources :

Example 1 with TimeSeriesArchivalObject

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;
}
Also used : TimeSeriesArchivalObject(com.srotya.sidewinder.core.storage.archival.TimeSeriesArchivalObject)

Example 2 with TimeSeriesArchivalObject

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);
        }
    });
}
Also used : AtomicInteger(java.util.concurrent.atomic.AtomicInteger) ArrayList(java.util.ArrayList) ArrayList(java.util.ArrayList) List(java.util.List) IOException(java.io.IOException) TimeSeriesArchivalObject(com.srotya.sidewinder.core.storage.archival.TimeSeriesArchivalObject) Writer(com.srotya.sidewinder.core.storage.compression.Writer)

Aggregations

TimeSeriesArchivalObject (com.srotya.sidewinder.core.storage.archival.TimeSeriesArchivalObject)2 Writer (com.srotya.sidewinder.core.storage.compression.Writer)1 IOException (java.io.IOException)1 ArrayList (java.util.ArrayList)1 List (java.util.List)1 AtomicInteger (java.util.concurrent.atomic.AtomicInteger)1