Example usage for org.apache.cassandra.db WindowsFailedSnapshotTracker deleteOldSnapshots

List of usage examples for org.apache.cassandra.db WindowsFailedSnapshotTracker deleteOldSnapshots

Introduction

In this page you can find the example usage for org.apache.cassandra.db WindowsFailedSnapshotTracker deleteOldSnapshots.

Prototype

public static void deleteOldSnapshots() 

Source Link

Usage

From source file:info.archinnov.achilles.embedded.AchillesCassandraDaemon.java

License:Apache License

/**
 * Override the default setup process to speed up bootstrap
 *
 * - disable JMX//from  w ww.j  a v a2  s  .  co m
 * - disable legacy schema migration
 * - no pre-3.0 hints migration
 * - no pre-3.0 batch entries migration
 * - disable auto compaction on all keyspaces (your test data should fit in memory!!!)
 * - disable metrics
 * - disable GCInspector
 * - disable mlock
 * - disable Thrift server
 * - disable startup checks (Jemalloc, validLaunchDate, JMXPorts, JvmOptions, JnaInitialization, initSigarLibrary, dataDirs, SSTablesFormat, SystemKeyspaceState, Datacenter, Rack)
 * - disable materialized view rebuild (you should clean data folder between each test anyway)
 * - disable the SizeEstimatesRecorder (estimate SSTable size, who cares for unit testing ?)
 */
@Override
protected void setup() {
    // Delete any failed snapshot deletions on Windows - see CASSANDRA-9658
    if (FBUtilities.isWindows())
        WindowsFailedSnapshotTracker.deleteOldSnapshots();

    ThreadAwareSecurityManager.install();

    Thread.setDefaultUncaughtExceptionHandler((t, e) -> {
        StorageMetrics.exceptions.inc();
        logger.error("Exception in thread {}", t, e);
        Tracing.trace("Exception in thread {}", t, e);
        for (Throwable e2 = e; e2 != null; e2 = e2.getCause()) {
            JVMStabilityInspector.inspectThrowable(e2);

            if (e2 instanceof FSError) {
                if (e2 != e) // make sure FSError gets logged exactly once.
                    logger.error("Exception in thread {}", t, e2);
                FileUtils.handleFSError((FSError) e2);
            }

            if (e2 instanceof CorruptSSTableException) {
                if (e2 != e)
                    logger.error("Exception in thread " + t, e2);
                FileUtils.handleCorruptSSTable((CorruptSSTableException) e2);
            }
        }
    });

    // Populate token metadata before flushing, for token-aware sstable partitioning (#6696)
    StorageService.instance.populateTokenMetadata();

    // load schema from disk
    Schema.instance.loadFromDisk();

    try {
        // clean up debris in the rest of the keyspaces
        for (String keyspaceName : Schema.instance.getKeyspaces()) {
            // Skip system as we've already cleaned it
            if (keyspaceName.equals(SystemKeyspace.NAME))
                continue;

            for (CFMetaData cfm : Schema.instance.getTablesAndViews(keyspaceName))
                ColumnFamilyStore.scrubDataDirectories(cfm);
        }
    } catch (StartupException startupEx) {
        logger.error("***** Startup exception : " + startupEx.getLocalizedMessage());
        throw new RuntimeException(startupEx);
    }

    Keyspace.setInitialized();

    // initialize keyspaces
    for (String keyspaceName : Schema.instance.getKeyspaces()) {
        if (logger.isDebugEnabled())
            logger.debug("opening keyspace {}", keyspaceName);
        // disable auto compaction until commit log replay ends
        for (ColumnFamilyStore cfs : Keyspace.open(keyspaceName).getColumnFamilyStores()) {
            for (ColumnFamilyStore store : cfs.concatWithIndexes()) {
                store.disableAutoCompaction();
            }
        }
    }

    try {
        loadRowAndKeyCacheAsync().get();
    } catch (Throwable t) {
        JVMStabilityInspector.inspectThrowable(t);
        logger.warn("Error loading key or row cache", t);
    }

    // replay the log if necessary
    try {
        CommitLog.instance.recover();
    } catch (IOException e) {
        throw new RuntimeException(e);
    }

    // Re-populate token metadata after commit log recover (new peers might be loaded onto system keyspace #10293)
    StorageService.instance.populateTokenMetadata();

    SystemKeyspace.finishStartup();

    // start server internals
    StorageService.instance.registerDaemon(this);
    try {
        StorageService.instance.initServer();
    } catch (ConfigurationException e) {
        System.err.println(e.getMessage()
                + "\nFatal configuration error; unable to start server.  See log for stacktrace.");
        exitOrFail(1, "Fatal configuration error", e);
    }

    // Native transport
    nativeTransportService = new NativeTransportService();

    completeSetup();
}