@Override public void resumeCheckpoints() { Checkpointer c = mCheckpointer; if (c != null) { c.resume(); } }
@Override public void suspendCheckpoints() { Checkpointer c = mCheckpointer; if (c != null) { c.suspend(); } }
/** * @param initialCheckpoint true to perform an initial checkpoint in the new thread */ void start(boolean initialCheckpoint) { if (!initialCheckpoint) { mState = STATE_RUNNING; } mThread = newThread(this); mThread.start(); }
Checkpointer c = new Checkpointer(this, config); mCheckpointer = c; c.register(mRedoWriter); c.register(mTempFileManager); c.register(new ShutdownPrimer(this)); c.start(initialCheckpoint);
/** * @param config base file is set as a side-effect */ static Tree openTemp(TempFileManager tfm, DatabaseConfig config) throws IOException { File file = tfm.createTempFile(); config.baseFile(file); config.dataFile(file); config.createFilePath(false); config.durabilityMode(DurabilityMode.NO_FLUSH); LocalDatabase db = new LocalDatabase(config, OPEN_TEMP); tfm.register(file, db); db.mCheckpointer = new Checkpointer(db, config); db.mCheckpointer.start(false); return db.mRegistry; }
Thread hook = new Thread(() -> Checkpointer.this.close(null)); try { Runtime.getRuntime().addShutdownHook(hook);
/** * @param config base file is set as a side-effect */ static Tree openTemp(TempFileManager tfm, DatabaseConfig config) throws IOException { File file = tfm.createTempFile(); config.baseFile(file); config.dataFile(file); config.createFilePath(false); config.durabilityMode(DurabilityMode.NO_FLUSH); LocalDatabase db = new LocalDatabase(config, OPEN_TEMP); tfm.register(file, db); db.mCheckpointer.start(false); return db.mRegistry; }
mCheckpointer.flushDirty(mNodeContexts, stateToFlush);
Checkpointer c = new Checkpointer(this, config); mCheckpointer = c; c.register(mRedoWriter); c.register(mTempFileManager); c.register(new ShutdownPrimer(this)); c.start(initialCheckpoint);
/** * @param config base file is set as a side-effect */ static _Tree openTemp(TempFileManager tfm, DatabaseConfig config) throws IOException { File file = tfm.createTempFile(); config.baseFile(file); config.dataFile(file); config.createFilePath(false); config.durabilityMode(DurabilityMode.NO_FLUSH); _LocalDatabase db = new _LocalDatabase(config, OPEN_TEMP); tfm.register(file, db); db.mCheckpointer = new Checkpointer(db, config); db.mCheckpointer.start(false); return db.mRegistry; }
Thread hook = new Thread(() -> Checkpointer.this.close(null)); try { Runtime.getRuntime().addShutdownHook(hook);
/** * @param config base file is set as a side-effect */ static _Tree openTemp(TempFileManager tfm, DatabaseConfig config) throws IOException { File file = tfm.createTempFile(); config.baseFile(file); config.dataFile(file); config.createFilePath(false); config.durabilityMode(DurabilityMode.NO_FLUSH); _LocalDatabase db = new _LocalDatabase(config, OPEN_TEMP); tfm.register(file, db); db.mCheckpointer.start(false); return db.mRegistry; }
mCheckpointer.flushDirty(mNodeContexts, stateToFlush);
Checkpointer c = new Checkpointer(this, config); mCheckpointer = c; c.register(new RedoClose(this)); c.register(mTempFileManager); c.register(new ShutdownPrimer(this)); c.start(initialCheckpoint);
/** * @param config base file is set as a side-effect */ static _Tree openTemp(TempFileManager tfm, DatabaseConfig config) throws IOException { File file = tfm.createTempFile(); config.baseFile(file); config.dataFile(file); config.createFilePath(false); config.durabilityMode(DurabilityMode.NO_FLUSH); _LocalDatabase db = new _LocalDatabase(config, OPEN_TEMP); tfm.register(file, db); db.mCheckpointer = new Checkpointer(db, config); db.mCheckpointer.start(false); return db.mRegistry; }
@Override public void suspendCheckpoints() { Checkpointer c = mCheckpointer; if (c != null) { c.suspend(); } }