diff --git a/akka-kernel/src/main/scala/Kernel.scala b/akka-kernel/src/main/scala/Kernel.scala index 8514198bc1..aaf1246995 100644 --- a/akka-kernel/src/main/scala/Kernel.scala +++ b/akka-kernel/src/main/scala/Kernel.scala @@ -16,6 +16,8 @@ import se.scalablesolutions.akka.nio.RemoteNode import se.scalablesolutions.akka.util.Logging /** + * The Akka Kernel. + * * @author Jonas Bonér */ object Kernel extends Logging { @@ -36,9 +38,18 @@ object Kernel extends Logging { def main(args: Array[String]) = boot - def boot = synchronized { + /** + * Boots up the Kernel. + */ + def boot: Unit = boot(true) + + /** + * Boots up the Kernel. + * If you pass in false as parameter then the Akka banner is not printed out. + */ + def boot(withBanner: Boolean): Unit = synchronized { if (!hasBooted) { - printBanner + if (withBanner) printBanner log.info("Starting Akka...") runApplicationBootClasses @@ -50,7 +61,7 @@ object Kernel extends Logging { hasBooted = true } } - + def startRemoteService = { // FIXME manage remote serve thread for graceful shutdown val remoteServerThread = new Thread(new Runnable() { @@ -112,125 +123,16 @@ object Kernel extends Logging { private def printBanner = { log.info( -"""============================== - __ __ - _____ | | _| | _______ - \__ \ | |/ / |/ /\__ \ - / __ \| <| < / __ \_ - (____ /__|_ \__|_ \(____ / - \/ \/ \/ \/ +""" +============================== + __ __ + _____ | | _| | _______ + \__ \ | |/ / |/ /\__ \ + / __ \| <| < / __ \_ + (____ /__|_ \__|_ \(____ / + \/ \/ \/ \/ """) log.info(" Running version " + VERSION) log.info("==============================") } - - private def cassandraBenchmark = { - import se.scalablesolutions.akka.state.CassandraStorage - val NR_ENTRIES = 100000 - - println("=================================================") - var start = System.currentTimeMillis - for (i <- 1 to NR_ENTRIES) CassandraStorage.insertMapStorageEntryFor("test", i.toString, "data") - var end = System.currentTimeMillis - println("Writes per second: " + NR_ENTRIES / ((end - start).toDouble / 1000)) - - println("=================================================") - start = System.currentTimeMillis - val entries = new scala.collection.mutable.ArrayBuffer[Tuple2[String, String]] - for (i <- 1 to NR_ENTRIES) entries += (i.toString, "data") - CassandraStorage.insertMapStorageEntriesFor("test", entries.toList) - end = System.currentTimeMillis - println("Writes per second - batch: " + NR_ENTRIES / ((end - start).toDouble / 1000)) - - println("=================================================") - start = System.currentTimeMillis - for (i <- 1 to NR_ENTRIES) CassandraStorage.getMapStorageEntryFor("test", i.toString) - end = System.currentTimeMillis - println("Reads per second: " + NR_ENTRIES / ((end - start).toDouble / 1000)) - - System.exit(0) - } -} - - - - -/* -//import voldemort.client.{SocketStoreClientFactory, StoreClient, StoreClientFactory} -//import voldemort.server.{VoldemortConfig, VoldemortServer} -//import voldemort.versioning.Versioned - - private[this] var storageFactory: StoreClientFactory = _ - private[this] var storageServer: VoldemortServer = _ -*/ - -// private[akka] def startVoldemort = { -// val VOLDEMORT_SERVER_URL = "tcp://" + SERVER_URL -// val VOLDEMORT_SERVER_PORT = 6666 -// val VOLDEMORT_BOOTSTRAP_URL = VOLDEMORT_SERVER_URL + ":" + VOLDEMORT_SERVER_PORT -// // Start Voldemort server -// val config = VoldemortConfig.loadFromVoldemortHome(Boot.HOME) -// storageServer = new VoldemortServer(config) -// storageServer.start -// log.info("Replicated persistent storage server started at %s", VOLDEMORT_BOOTSTRAP_URL) -// -// // Create Voldemort client factory -// val numThreads = 10 -// val maxQueuedRequests = 10 -// val maxConnectionsPerNode = 10 -// val maxTotalConnections = 100 -// storageFactory = new SocketStoreClientFactory( -// numThreads, -// numThreads, -// maxQueuedRequests, -// maxConnectionsPerNode, -// maxTotalConnections, -// VOLDEMORT_BOOTSTRAP_URL) -// -// val name = this.getClass.getName -// val storage = getStorageFor("actors") -//// val value = storage.get(name) -// val value = new Versioned("state") -// //value.setObject("state") -// storage.put(name, value) -// } -// -// private[akka] def getStorageFor(storageName: String): StoreClient[String, String] = -// storageFactory.getStoreClient(storageName) - -// private[akka] def startZooKeeper = { -//import org.apache.zookeeper.jmx.ManagedUtil -//import org.apache.zookeeper.server.persistence.FileTxnSnapLog -//import org.apache.zookeeper.server.ServerConfig -//import org.apache.zookeeper.server.NIOServerCnxn -// val ZOO_KEEPER_SERVER_URL = SERVER_URL -// val ZOO_KEEPER_SERVER_PORT = 9898 -// try { -// ManagedUtil.registerLog4jMBeans -// ServerConfig.parse(args) -// } catch { -// case e: JMException => log.warning("Unable to register log4j JMX control: s%", e) -// case e => log.fatal("Error in ZooKeeper config: s%", e) -// } -// val factory = new ZooKeeperServer.Factory() { -// override def createConnectionFactory = new NIOServerCnxn.Factory(ServerConfig.getClientPort) -// override def createServer = { -// val server = new ZooKeeperServer -// val txLog = new FileTxnSnapLog( -// new File(ServerConfig.getDataLogDir), -// new File(ServerConfig.getDataDir)) -// server.setTxnLogFactory(txLog) -// server -// } -// } -// try { -// val zooKeeper = factory.createServer -// zooKeeper.startup -// log.info("ZooKeeper started") -// // TODO: handle clean shutdown as below in separate thread -// // val cnxnFactory = serverFactory.createConnectionFactory -// // cnxnFactory.setZooKeeperServer(zooKeeper) -// // cnxnFactory.join -// // if (zooKeeper.isRunning) zooKeeper.shutdown -// } catch { case e => log.fatal("Unexpected exception: s%",e) } -// } +} \ No newline at end of file diff --git a/changes.xml b/changes.xml index 658b8ab550..dd7514bbec 100644 --- a/changes.xml +++ b/changes.xml @@ -62,6 +62,7 @@ see http://maven.apache.org/plugins/maven-changes-plugin/usage.html for full gui New URL: http://akkasource.org Enhanced trapping of failures: 'trapExit = List(classOf[..], classOf[..])' Upgraded to Netty 3.2, Protobuf 2.2, ScalaTest 1.0, Jersey 1.1.3, Atmosphere 0.4.1, Cassandra 0.4.1, Configgy 1.4 + Lowered actor memory footprint; now an actor consumes ~625 bytes, which mean that you can create 6.5 million on 4 G RAM Concurrent mode is now per actor basis Remote actors are now defined by their UUID (not class name) Fixed dispatcher bug diff --git a/embedded-repo/com/facebook/fb303/1.0/fb303-1.0.jar b/embedded-repo/com/facebook/fb303/1.0/fb303-1.0.jar deleted file mode 100644 index 129328deff..0000000000 Binary files a/embedded-repo/com/facebook/fb303/1.0/fb303-1.0.jar and /dev/null differ diff --git a/embedded-repo/com/facebook/fb303/1.0/fb303-1.0.pom b/embedded-repo/com/facebook/fb303/1.0/fb303-1.0.pom deleted file mode 100644 index dc99125995..0000000000 --- a/embedded-repo/com/facebook/fb303/1.0/fb303-1.0.pom +++ /dev/null @@ -1,8 +0,0 @@ - - - 4.0.0 - com.facebook - fb303 - 1.0 - jar - \ No newline at end of file diff --git a/embedded-repo/com/twitter/scala-stats/1.0/scala-stats-1.0.jar b/embedded-repo/com/twitter/scala-stats/1.0/scala-stats-1.0.jar deleted file mode 100755 index 6b1b43bf7b..0000000000 Binary files a/embedded-repo/com/twitter/scala-stats/1.0/scala-stats-1.0.jar and /dev/null differ diff --git a/embedded-repo/com/twitter/scala-stats/1.0/scala-stats-1.0.pom b/embedded-repo/com/twitter/scala-stats/1.0/scala-stats-1.0.pom deleted file mode 100755 index d35560379a..0000000000 --- a/embedded-repo/com/twitter/scala-stats/1.0/scala-stats-1.0.pom +++ /dev/null @@ -1,8 +0,0 @@ - - - 4.0.0 - com.twitter - scala-stats - 1.0 - jar - \ No newline at end of file