List of usage examples for org.apache.cassandra.service NativeTransportService NativeTransportService
NativeTransportService
From source file:info.archinnov.achilles.embedded.AchillesCassandraDaemon.java
License:Apache License
/** * Override the default setup process to speed up bootstrap * * - disable JMX//from www.j a v a 2 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(); }