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

com.sleepycat.je.rep.NetworkRestoreConfig Maven / Gradle / Ivy

The newest version!
/*-
 * Copyright (C) 2002, 2018, Oracle and/or its affiliates. All rights reserved.
 *
 * This file was distributed by Oracle as part of a version of Oracle Berkeley
 * DB Java Edition made available at:
 *
 * http://www.oracle.com/technetwork/database/database-technologies/berkeleydb/downloads/index.html
 *
 * Please see the LICENSE file included in the top-level directory of the
 * appropriate version of Oracle Berkeley DB Java Edition for a copy of the
 * license and additional information.
 */

package com.sleepycat.je.rep;

import java.util.List;

/**
 * NetworkRestoreConfig defines the configuration parameters used to configure
 * a NetworkRestore operation.
 *
 * @see NetworkRestore
 */
public class NetworkRestoreConfig {
    /**
     * Determines whether obsolete log files must be renamed or deleted.
     */
    private boolean retainLogFiles = true;

    /**
     * The size of the network restore client socket's receive buffer.
     */
    private int receiveBufferSize = 0x200000; /* 2 MB */

    /**
     * List (in priority order) of the data nodes, either ELECTABLE or
     * SECONDARY members, that should be contacted for the the log files.
     */
    private List logProviders;

    /**
     * Returns a boolean indicating whether existing log files should be
     * retained or deleted.
     *
     * @return true if log files must be retained
     */
    public boolean getRetainLogFiles() {
        return retainLogFiles;
    }

    /**
     * If true retains obsolete log files, by renaming them instead of deleting
     * them. The default is "true".
     * 

* A renamed file has its .jdb suffix replaced by * .bup and an additional numeric monotonically increasing * numeric suffix. All files that were renamed as part of the same * NetworkRestore attempt will have the same numeric suffix. *

* For example, if files 00000001.jdb and files 00000002.jdb were rendered * obsolete, and 4 was the highest suffix in use for this environment when * the operation was initiated, then the files would be renamed as * 00000001.bup.5 and 00000002.bup.5. * * @param retainLogFiles if true retains obsolete log files * * @return this */ public NetworkRestoreConfig setRetainLogFiles(boolean retainLogFiles) { setRetainLogFilesVoid(retainLogFiles); return this; } /** * @hidden * The void return setter for use by Bean editors. */ public void setRetainLogFilesVoid(boolean retainLogFiles) { this.retainLogFiles = retainLogFiles; } /** * Returns the size of the receive buffer associated with the socket used * to transfer files during the NetworkRestore operation. */ public int getReceiveBufferSize() { return receiveBufferSize; } /** * Sets the size of the receive buffer associated with the socket used to * transfer files during the NetworkRestore operation. *

* Note that if the size specified is larger than the operating system * constrained maximum, it will be limited to this maximum value. For * example, on Linux you may need to set the kernel parameter: * net.core.rmem_max property using the command: sysctl -w * net.core.rmem_max=1048576 to increase the operating system imposed * limit. *

* @param receiveBufferSize the size of the receive buffer. If it's zero, * the operating system default value is used. */ public NetworkRestoreConfig setReceiveBufferSize(int receiveBufferSize) { if (receiveBufferSize < 0) { throw new IllegalArgumentException("receiveBufferSize:" + receiveBufferSize + " is negative."); } this.receiveBufferSize = receiveBufferSize; return this; } /** * @hidden * The void return setter for use by Bean editors. */ public void setReceiveBufferSizeVoid(int receiveBufferSize) { setReceiveBufferSize(receiveBufferSize); } /** * Returns the candidate list of data nodes, either ELECTABLE or SECONDARY * members, that may be used to obtain log files. * * @return the list of data nodes in priority order, or null */ public List getLogProviders() { return logProviders; } /** * Sets the prioritized list of data nodes, either ELECTABLE or SECONDARY * members, used to select a node from which to obtain log files for the * NetworkRestore operation. If a list is supplied, NetworkRestore will * only use nodes from this list, trying each one in order. * *

The default value is null. If a null value is configured for * NetworkRestore, it will choose the least busy data node with a current * set of logs, as the provider of log files. * * @param providers the list of data nodes in priority order, or null * * @return this */ public NetworkRestoreConfig setLogProviders(List providers) { setLogProvidersVoid(providers); return this; } /** * @hidden * The void return setter for use by Bean editors. */ public void setLogProvidersVoid(List providers) { logProviders = providers; } }





© 2015 - 2024 Weber Informatics LLC | Privacy Policy