protected void setNextUpdateTime() { _nextUpdateTime = _scheduler.getNextRoll(); log.info("setNextUpdateTime: " + _scheduler.getFolderName(_nextUpdateTime)); } /**
public Calendar getTrimTime(Calendar now) { Calendar threshold = (Calendar) now.clone(); int trimUnit = 60 * 60 * 24; switch (getFreq()) { case MINUTELY: trimUnit = 60; break; case HOURLY: trimUnit = 60 * 60; break; case DAILY: trimUnit = 60 * 60 * 24; break; } threshold.add(Calendar.SECOND, -trimUnit * _trimThreshold); return threshold; }
String[] param = _schedule.split(" "); for (int i = 0; i < Math.min(_params.length, param.length); i++) { _params[i] = parseParam(param[i]);
long timenow = System.currentTimeMillis(); now.setTimeInMillis(timenow); Calendar threshold = _scheduler.getTrimTime(now); log.info("getAllArchivedDirectories loading time threshold: " + _scheduler.getFolderName(threshold));
hg = hourglass; _dirMgrFactory = dirMgrFactory; _appendOnly = _dirMgrFactory.getScheduler().isAppendOnly(); _decorator = decorator; this.listener = new CompositeHourglassListener(hourglassListeners); final int trimThreshold = hourglass._scheduler.getTrimThreshold();
private void clearFromArchives(Collection<DataEvent<D>> data) throws ZoieException { if (_dirMgrFactory.getScheduler().isAppendOnly()) return; if (data != null && data.size() > 0) { List<DataEvent<D>> deletes = new ArrayList<DataEvent<D>>(data.size()); for (DataEvent<D> event : data) { deletes.add(new DataEvent<D>(event.getData(), event.getVersion(), true)); } for (ZoieSystem<R, D> zoie : _readerMgr.getArchiveZoies()) { zoie.consume(deletes); } } }
Calendar now = Calendar.getInstance(); now.setTimeInMillis(timenow); Calendar threshold = hg._scheduler.getTrimTime(now);
Calendar getCurrentRoll() { Calendar current = getNextRoll(); switch (_freq) { case MINUTELY: current.add(Calendar.MINUTE, -1); break; case HOURLY: current.add(Calendar.HOUR_OF_DAY, -1); break; case DAILY: current.add(Calendar.DAY_OF_MONTH, -1); break; } return current; }
/** * @return true if the current index accepting updates is changed. * This method should be paired with clearRecentlyChanged() to clear the flag. * @see proj.zoie.hourglass.impl.HourglassDirectoryManagerFactory#clearRecentlyChanged() */ public boolean updateDirectoryManager() { Calendar now = Calendar.getInstance(); now.setTimeInMillis(System.currentTimeMillis()); if (now.before(_nextUpdateTime)) return false; String folderName; folderName = _scheduler.getFolderName(_nextUpdateTime); _location = new File(_root, folderName); try { log.info("rolling forward with new path: " + _location.getCanonicalPath()); } catch (IOException e) { log.error(e); } _currentDirMgr = new DefaultDirectoryManager(_location, _mode); isRecentlyChanged = true; setNextUpdateTime(); return isRecentlyChanged; }
@Override public Hourglass<BoboSegmentReader, T> getZoieInstance(int nodeId, int partitionId) { File partDir = getPath(nodeId, partitionId); if (!partDir.exists()) { partDir.mkdirs(); log.info("nodeId=" + nodeId + ", partition=" + partitionId + " does not exist, directory created."); } // format "ss mm hh" meaning at hh:mm:ss time of the day, we roll forward for DAILY rolling // if it is hourly rolling, it means at mm:ss time of the hour, we roll forward // if it is MINUTELY, it means at ss seond of the minute, we roll forward. HourGlassScheduler scheduler = new HourGlassScheduler(frequency, schedule, appendOnly, trimThreshold); HourglassDirectoryManagerFactory dirmgr = new HourglassDirectoryManagerFactory(partDir, scheduler, _dirMode); log.info("creating Hourglass for nodeId: " + nodeId + " partition: " + partitionId); return new Hourglass<BoboSegmentReader, T>(dirmgr, _interpreter, _indexReaderDecorator, _zoieConfig, hourglassListeners); }
long timenow = System.currentTimeMillis(); now.setTimeInMillis(timenow); Calendar threshold = _scheduler.getTrimTime(now); log.info("getAllArchivedDirectories loading time threshold: " + _scheduler.getFolderName(threshold));
hg = hourglass; _dirMgrFactory = dirMgrFactory; _appendOnly = _dirMgrFactory.getScheduler().isAppendOnly(); _decorator = decorator; this.listener = new CompositeHourglassListener(hourglassListeners); final int trimThreshold = hourglass._scheduler.getTrimThreshold();
private void clearFromArchives(Collection<DataEvent<D>> data) throws ZoieException { if (_dirMgrFactory.getScheduler().isAppendOnly()) return; if (data != null && data.size() > 0) { List<DataEvent<D>> deletes = new ArrayList<DataEvent<D>>(data.size()); for (DataEvent<D> event : data) { deletes.add(new DataEvent<D>(event.getData(), event.getVersion(), true)); } for (ZoieSystem<R, D> zoie : _readerMgr.getArchiveZoies()) { zoie.consume(deletes); } } }
Calendar now = Calendar.getInstance(); now.setTimeInMillis(timenow); Calendar threshold = hg._scheduler.getTrimTime(now);
Calendar getCurrentRoll() { Calendar current = getNextRoll(); switch (_freq) { case MINUTELY: current.add(Calendar.MINUTE, -1); break; case HOURLY: current.add(Calendar.HOUR_OF_DAY, -1); break; case DAILY: current.add(Calendar.DAY_OF_MONTH, -1); break; } return current; }
/** * @return true if the current index accepting updates is changed. * This method should be paired with clearRecentlyChanged() to clear the flag. * @see proj.zoie.hourglass.impl.HourglassDirectoryManagerFactory#clearRecentlyChanged() */ public boolean updateDirectoryManager() { Calendar now = Calendar.getInstance(); now.setTimeInMillis(System.currentTimeMillis()); if (now.before(_nextUpdateTime)) return false; String folderName; folderName = _scheduler.getFolderName(_nextUpdateTime); _location = new File(_root, folderName); try { log.info("rolling forward with new path: " + _location.getCanonicalPath()); } catch (IOException e) { log.error(e); } _currentDirMgr = new DefaultDirectoryManager(_location, _mode); isRecentlyChanged = true; setNextUpdateTime(); return isRecentlyChanged; }
protected void setNextUpdateTime() { _nextUpdateTime = _scheduler.getNextRoll(); log.info("setNextUpdateTime: " + _scheduler.getFolderName(_nextUpdateTime)); }
long timenow = System.currentTimeMillis(); now.setTimeInMillis(timenow); Calendar threshold = _scheduler.getTrimTime(now); log.info("getAllArchivedDirectories loading time threshold: " + _scheduler.getFolderName(threshold));
_appendOnly = _dirMgrFactory.getScheduler().isAppendOnly(); _decorator = decorator; this.listener = new CompositeHourglassListener((List<HourglassListener>)(List)hourglassListeners); final int trimThreshold = hourglass._scheduler.getTrimThreshold();
private void clearFromArchives(Collection<DataEvent<D>> data) throws ZoieException { if (_dirMgrFactory.getScheduler().isAppendOnly()) return; if (data != null && data.size() > 0) { List<DataEvent<D>> deletes = new ArrayList<DataEvent<D>>(data.size()); for (DataEvent<D> event : data) { if (event instanceof MarkerDataEvent) continue; deletes.add(new DataEvent<D>(event.getData(), event.getVersion(), true)); } for (ZoieSystem<R, D> zoie : _readerMgr.getArchiveZoies()) { zoie.consume(deletes); } } }