Search in sources :

Example 1 with ByteStringCache

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);
}
Also used : ByteStringCache(com.srotya.sidewinder.core.storage.ByteString.ByteStringCache) BufferObject(com.srotya.sidewinder.core.storage.BufferObject) ByteString(com.srotya.sidewinder.core.storage.ByteString) ByteString(com.srotya.sidewinder.core.storage.ByteString) IOException(java.io.IOException) IOException(java.io.IOException) AtomicInteger(java.util.concurrent.atomic.AtomicInteger) Series(com.srotya.sidewinder.core.storage.Series) Entry(java.util.Map.Entry) ArrayList(java.util.ArrayList) List(java.util.List) File(java.io.File)

Aggregations

BufferObject (com.srotya.sidewinder.core.storage.BufferObject)1 ByteString (com.srotya.sidewinder.core.storage.ByteString)1 ByteStringCache (com.srotya.sidewinder.core.storage.ByteString.ByteStringCache)1 Series (com.srotya.sidewinder.core.storage.Series)1 File (java.io.File)1 IOException (java.io.IOException)1 ArrayList (java.util.ArrayList)1 List (java.util.List)1 Entry (java.util.Map.Entry)1 AtomicInteger (java.util.concurrent.atomic.AtomicInteger)1