All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.jsimpledb.kv.raft.fallback.MergeStrategy Maven / Gradle / Ivy

Go to download

JSimpleDB distributed, linearizable ACID compliant key/value store implementation based on the Raft consensus algorithm.

There is a newer version: 3.6.1
Show newest version

/*
 * Copyright (C) 2015 Archie L. Cobbs. All rights reserved.
 */

package org.jsimpledb.kv.raft.fallback;

import java.util.Date;

import org.jsimpledb.kv.KVTransaction;

/**
 * Merge strategy used by a {@link FallbackKVDatabase} when migrating from one underlying database to another.
 */
public interface MergeStrategy {

    /**
     * Merge data from the source database being migrated away from into the destination database being migrated to.
     *
     * 

* This method should {@link KVTransaction#commit commit()} both transactions before returning; {@code src} * should be committed before {@code dst}. * *

* If an exception is thrown, {@link KVTransaction#rollback rollback()} will be invoked on both transactions * (a {@link KVTransaction#rollback rollback()} on an already-{@link KVTransaction#commit commit()}'ed * transaction does nothing). * * @param src read-only view into the database being migrated away from * @param dst read-write transaction open on the database being migrated to * @param lastActiveTime time that {@code dst} was last active, or null if never * @throws RuntimeException if the merge or either {@link KVTransaction#commit commit()} fails */ void mergeAndCommit(KVTransaction src, KVTransaction dst, Date lastActiveTime); }





© 2015 - 2025 Weber Informatics LLC | Privacy Policy