From 538813b40e162f7d8cd0c8078da40517b6c12468 Mon Sep 17 00:00:00 2001 From: ticktock Date: Mon, 1 Nov 2010 20:26:28 -0400 Subject: [PATCH 01/15] Memcached Storage Backend --- .../src/main/scala/MemcachedStorage.scala | 51 ++++++++++ .../main/scala/MemcachedStorageBackend.scala | 94 ++++++++++++++++++ ...achedStorageBackendCompatibilityTest.scala | 49 +++++++++ .../MemcachedTicket343TestIntegration.scala | 23 +++++ .../spy/memcached/2.5/memcached-2.5.jar | Bin 0 -> 267121 bytes project/build/AkkaProject.scala | 14 +++ 6 files changed, 231 insertions(+) create mode 100644 akka-persistence/akka-persistence-memcached/src/main/scala/MemcachedStorage.scala create mode 100644 akka-persistence/akka-persistence-memcached/src/main/scala/MemcachedStorageBackend.scala create mode 100644 akka-persistence/akka-persistence-memcached/src/test/scala/MemcachedStorageBackendCompatibilityTest.scala create mode 100644 akka-persistence/akka-persistence-memcached/src/test/scala/MemcachedTicket343TestIntegration.scala create mode 100644 embedded-repo/spy/memcached/2.5/memcached-2.5.jar diff --git a/akka-persistence/akka-persistence-memcached/src/main/scala/MemcachedStorage.scala b/akka-persistence/akka-persistence-memcached/src/main/scala/MemcachedStorage.scala new file mode 100644 index 0000000000..3289a33f12 --- /dev/null +++ b/akka-persistence/akka-persistence-memcached/src/main/scala/MemcachedStorage.scala @@ -0,0 +1,51 @@ +/** + * Copyright (C) 2009-2010 Scalable Solutions AB + */ + +package akka.persistence.memcached + +import akka.actor.{newUuid} +import akka.stm._ +import akka.persistence.common._ + + +object MemcachedStorage extends Storage { + + type ElementType = Array[Byte] + def newMap: PersistentMap[ElementType, ElementType] = newMap(newUuid.toString) + def newVector: PersistentVector[ElementType] = newVector(newUuid.toString) + def newRef: PersistentRef[ElementType] = newRef(newUuid.toString) + override def newQueue: PersistentQueue[ElementType] = newQueue(newUuid.toString) + + def getMap(id: String): PersistentMap[ElementType, ElementType] = newMap(id) + def getVector(id: String): PersistentVector[ElementType] = newVector(id) + def getRef(id: String): PersistentRef[ElementType] = newRef(id) + override def getQueue(id: String): PersistentQueue[ElementType] = newQueue(id) + + def newMap(id: String): PersistentMap[ElementType, ElementType] = new MemcachedPersistentMap(id) + def newVector(id: String): PersistentVector[ElementType] = new MemcachedPersistentVector(id) + def newRef(id: String): PersistentRef[ElementType] = new MemcachedPersistentRef(id) + override def newQueue(id:String): PersistentQueue[ElementType] = new MemcachedPersistentQueue(id) +} + + +class MemcachedPersistentMap(id: String) extends PersistentMapBinary { + val uuid = id + val storage = MemcachedStorageBackend +} + + +class MemcachedPersistentVector(id: String) extends PersistentVector[Array[Byte]] { + val uuid = id + val storage = MemcachedStorageBackend +} + +class MemcachedPersistentRef(id: String) extends PersistentRef[Array[Byte]] { + val uuid = id + val storage = MemcachedStorageBackend +} + +class MemcachedPersistentQueue(id: String) extends PersistentQueue[Array[Byte]] { + val uuid = id + val storage = MemcachedStorageBackend +} diff --git a/akka-persistence/akka-persistence-memcached/src/main/scala/MemcachedStorageBackend.scala b/akka-persistence/akka-persistence-memcached/src/main/scala/MemcachedStorageBackend.scala new file mode 100644 index 0000000000..c05f710e8c --- /dev/null +++ b/akka-persistence/akka-persistence-memcached/src/main/scala/MemcachedStorageBackend.scala @@ -0,0 +1,94 @@ +/** + * Copyright (C) 2009-2010 Scalable Solutions AB + */ + +package akka.persistence.memcached + +import akka.persistence.common._ +import akka.config.Config.config +import net.spy.memcached._ +import net.spy.memcached.transcoders._ +import collection.JavaConversions +import java.lang.String +import collection.immutable.{TreeMap, Iterable} +import java.util.concurrent.TimeUnit + +private[akka] object MemcachedStorageBackend extends CommonStorageBackend { + + import CommonStorageBackendAccess._ + import CommonStorageBackend._ + import KVStorageBackend._ + import org.apache.commons.codec.binary.Base64 + + val clientAddresses = config.getString("akka.storage.memcached.client.addresses", "localhost:11211") + val factory = new ConnectionFactoryBuilder().setTranscoder(new SerializingTranscoder()).setProtocol(ConnectionFactoryBuilder.Protocol.BINARY).build + val client = new MemcachedClient(factory, AddrUtil.getAddresses(clientAddresses)) + val base64 = new Base64(76, Array.empty[Byte], true) + + def queueAccess = new MemcachedAccess("que") + + def mapAccess = new MemcachedAccess("map") + + def vectorAccess = new MemcachedAccess("vec") + + def refAccess = new MemcachedAccess("ref") + + private[akka] class MemcachedAccess(val accessType: String) extends KVStorageBackendAccess { + + val typeBytes = stringToByteArray(accessType) + + private def encodeKey(key: Array[Byte]): Array[Byte] = { + val newkey = new Array[Byte](key.length + typeBytes.length) + System.arraycopy(key, 0, newkey, 0, key.length) + System.arraycopy(typeBytes, 0, newkey, key.length, typeBytes.length) + newkey + } + + private def keyStr(key: Array[Byte]): String = { + base64.encodeToString(key) + } + + override def decodeKey(owner: String, key: Array[Byte]) = { + val newkey = new Array[Byte](key.length - typeBytes.length) + System.arraycopy(key, 0, newkey, 0, newkey.length) + super.decodeKey(owner, newkey) + } + + def drop() = client.flush() + + def delete(key: Array[Byte]) = { + val deleted = client.delete(keyStr(encodeKey(key))).get(5L, TimeUnit.SECONDS); + () + } + + def getAll(keys: Iterable[Array[Byte]]) = { + val jmap = client.getBulk(JavaConversions.asList(keys.map{ + k: Array[Byte] => + keyStr(encodeKey(k)) + }.toList)) + JavaConversions.asMap(jmap).map{ + kv => kv match { + case (key, value) => (base64.decode(key) -> value.asInstanceOf[Array[Byte]]) + } + } + } + + def getValue(key: Array[Byte], default: Array[Byte]) = { + Option(client.get(keyStr(encodeKey(key)))) match { + case Some(value) => value.asInstanceOf[Array[Byte]] + case None => default + } + } + + def getValue(key: Array[Byte]) = getValue(key, null) + + + def put(key: Array[Byte], value: Array[Byte]) = { + client.set(keyStr(encodeKey(key)), Integer.MAX_VALUE, value).get(5L, TimeUnit.SECONDS); + () + } + + } + + +} \ No newline at end of file diff --git a/akka-persistence/akka-persistence-memcached/src/test/scala/MemcachedStorageBackendCompatibilityTest.scala b/akka-persistence/akka-persistence-memcached/src/test/scala/MemcachedStorageBackendCompatibilityTest.scala new file mode 100644 index 0000000000..6881d25c20 --- /dev/null +++ b/akka-persistence/akka-persistence-memcached/src/test/scala/MemcachedStorageBackendCompatibilityTest.scala @@ -0,0 +1,49 @@ +package akka.persistence.memcached + + +import org.junit.runner.RunWith +import org.scalatest.junit.JUnitRunner +import akka.persistence.common.{QueueStorageBackendTest, VectorStorageBackendTest, MapStorageBackendTest, RefStorageBackendTest} + +@RunWith(classOf[JUnitRunner]) +class MemcachedRefStorageBackendTestIntegration extends RefStorageBackendTest { + def dropRefs = { + MemcachedStorageBackend.refAccess.drop + } + + + def storage = MemcachedStorageBackend +} + +@RunWith(classOf[JUnitRunner]) +class MemcachedMapStorageBackendTestIntegration extends MapStorageBackendTest { + def dropMaps = { + MemcachedStorageBackend.mapAccess.drop + } + + + def storage = MemcachedStorageBackend +} + +@RunWith(classOf[JUnitRunner]) +class MemcachedVectorStorageBackendTestIntegration extends VectorStorageBackendTest { + def dropVectors = { + MemcachedStorageBackend.vectorAccess.drop + } + + + def storage = MemcachedStorageBackend +} + + +@RunWith(classOf[JUnitRunner]) +class MemcachedQueueStorageBackendTestIntegration extends QueueStorageBackendTest { + def dropQueues = { + MemcachedStorageBackend.queueAccess.drop + } + + + def storage = MemcachedStorageBackend +} + + diff --git a/akka-persistence/akka-persistence-memcached/src/test/scala/MemcachedTicket343TestIntegration.scala b/akka-persistence/akka-persistence-memcached/src/test/scala/MemcachedTicket343TestIntegration.scala new file mode 100644 index 0000000000..3a5da2241f --- /dev/null +++ b/akka-persistence/akka-persistence-memcached/src/test/scala/MemcachedTicket343TestIntegration.scala @@ -0,0 +1,23 @@ +/** + * Copyright (C) 2009-2010 Scalable Solutions AB + */ + +package akka.persistence.memcached + + +import org.junit.runner.RunWith +import org.scalatest.junit.JUnitRunner +import akka.persistence.common._ + +@RunWith(classOf[JUnitRunner]) +class MemcachedTicket343TestIntegration extends Ticket343Test { + def dropMapsAndVectors: Unit = { + MemcachedStorageBackend.vectorAccess.drop + MemcachedStorageBackend.mapAccess.drop + } + + def getVector: (String) => PersistentVector[Array[Byte]] = MemcachedStorage.getVector + + def getMap: (String) => PersistentMap[Array[Byte], Array[Byte]] = MemcachedStorage.getMap + +} diff --git a/embedded-repo/spy/memcached/2.5/memcached-2.5.jar b/embedded-repo/spy/memcached/2.5/memcached-2.5.jar new file mode 100644 index 0000000000000000000000000000000000000000..87072eaaa004433fe4d33f5a3a4ff26dd83927e4 GIT binary patch literal 267121 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%0Ddzuc3LLW957Ai0Bp3!Es*SB-UuAuLRR^pP4 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 z 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�DXe{fPYal6Pc2Qb$&XZ|VSGZgheEqdmUp2gw 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%0DUoV-@SbyZ4*wX2j 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 literal 0 HcmV?d00001 diff --git a/project/build/AkkaProject.scala b/project/build/AkkaProject.scala index 960d1ac892..44bfaf1197 100644 --- a/project/build/AkkaProject.scala +++ b/project/build/AkkaProject.scala @@ -279,6 +279,9 @@ class AkkaParentProject(info: ProjectInfo) extends DefaultProject(info) { lazy val vold_jetty = "org.mortbay.jetty" % "jetty" % "6.1.18" % "test" lazy val velocity = "org.apache.velocity" % "velocity" % "1.6.2" % "test" lazy val dbcp = "commons-dbcp" % "commons-dbcp" % "1.2.2" % "test" + + //memcached + lazy val spymemcached = "spy" % "memcached" % "2.5" % "compile" } // ------------------------------------------------------------------------------------------------------------------- @@ -540,6 +543,8 @@ class AkkaParentProject(info: ProjectInfo) extends DefaultProject(info) { new AkkaRiakProject(_), akka_persistence_common) lazy val akka_persistence_couchdb = project("akka-persistence-couchdb", "akka-persistence-couchdb", new AkkaCouchDBProject(_), akka_persistence_common) + lazy val akka_persistence_memcached= project("akka-persistence-memcached", "akka-persistence-memcached", + new AkkaMemcachedProject(_), akka_persistence_common) } // ------------------------------------------------------------------------------------------------------------------- @@ -660,6 +665,15 @@ class AkkaParentProject(info: ProjectInfo) extends DefaultProject(info) { override def testOptions = createTestFilter( _.endsWith("Test")) } + class AkkaMemcachedProject(info: ProjectInfo) extends AkkaDefaultProject(info, distPath) { + val memcached = Dependencies.spymemcached + val commons_codec = Dependencies.commons_codec + + val scalatest = Dependencies.scalatest + + override def testOptions = createTestFilter( _.endsWith("Test")) + } + // ------------------------------------------------------------------------------------------------------------------- // akka-kernel subproject // ------------------------------------------------------------------------------------------------------------------- From 1c76e4a68d2d60459c5917b0c6735681b109a70a Mon Sep 17 00:00:00 2001 From: ticktock Date: Wed, 3 Nov 2010 20:27:56 -0400 Subject: [PATCH 02/15] Cleanup and wait/retry on futures returned from spymemcached appropriately --- .../main/scala/MemcachedStorageBackend.scala | 33 ++++++++++++++++--- 1 file changed, 28 insertions(+), 5 deletions(-) diff --git a/akka-persistence/akka-persistence-memcached/src/main/scala/MemcachedStorageBackend.scala b/akka-persistence/akka-persistence-memcached/src/main/scala/MemcachedStorageBackend.scala index c05f710e8c..a387836547 100644 --- a/akka-persistence/akka-persistence-memcached/src/main/scala/MemcachedStorageBackend.scala +++ b/akka-persistence/akka-persistence-memcached/src/main/scala/MemcachedStorageBackend.scala @@ -11,7 +11,7 @@ import net.spy.memcached.transcoders._ import collection.JavaConversions import java.lang.String import collection.immutable.{TreeMap, Iterable} -import java.util.concurrent.TimeUnit +import java.util.concurrent.{TimeoutException, Future, TimeUnit} private[akka] object MemcachedStorageBackend extends CommonStorageBackend { @@ -57,8 +57,9 @@ private[akka] object MemcachedStorageBackend extends CommonStorageBackend { def drop() = client.flush() def delete(key: Array[Byte]) = { - val deleted = client.delete(keyStr(encodeKey(key))).get(5L, TimeUnit.SECONDS); - () + retry(5, (1L, TimeUnit.SECONDS), false) { + client.delete(keyStr(encodeKey(key))) + } } def getAll(keys: Iterable[Array[Byte]]) = { @@ -84,8 +85,30 @@ private[akka] object MemcachedStorageBackend extends CommonStorageBackend { def put(key: Array[Byte], value: Array[Byte]) = { - client.set(keyStr(encodeKey(key)), Integer.MAX_VALUE, value).get(5L, TimeUnit.SECONDS); - () + retry(5, (1L, TimeUnit.SECONDS), true) { + client.set(keyStr(encodeKey(key)), Integer.MAX_VALUE, value) + } + + } + + private def retry(tries: Int, waitFor: (Long, TimeUnit), tillTrue: Boolean)(action: => Future[java.lang.Boolean]): Unit = { + if (tries == 0) { + throw new TimeoutException("Exahusted all retries performing an operation on memcached") + } else { + val future = action + try + { + if (future.get(waitFor._1, waitFor._2).equals(false) && tillTrue) { + log.debug("memcached future returned false, operation failed. retrying") + retry(tries - 1, waitFor, tillTrue)(action) + } + } catch { + case te: TimeoutException => { + log.debug("memcached future timed out. retrying") + retry(tries - 1, waitFor, tillTrue)(action) + } + } + } } } From bd70f74930b375063e1766b63ee500fb76f46ff8 Mon Sep 17 00:00:00 2001 From: ticktock Date: Wed, 3 Nov 2010 20:37:19 -0400 Subject: [PATCH 03/15] merged master --- project/build/AkkaProject.scala | 2 ++ 1 file changed, 2 insertions(+) diff --git a/project/build/AkkaProject.scala b/project/build/AkkaProject.scala index 4684b1bb2b..5d2f3dd4ab 100644 --- a/project/build/AkkaProject.scala +++ b/project/build/AkkaProject.scala @@ -544,6 +544,8 @@ class AkkaParentProject(info: ProjectInfo) extends DefaultProject(info) { new AkkaRiakProject(_), akka_persistence_common) lazy val akka_persistence_couchdb = project("akka-persistence-couchdb", "akka-persistence-couchdb", new AkkaCouchDBProject(_), akka_persistence_common) + lazy val akka_persistence_memcached= project("akka-persistence-memcached", "akka-persistence-memcached", + new AkkaMemcachedProject(_), akka_persistence_common) } // ------------------------------------------------------------------------------------------------------------------- From 1c2c0b2e5dd4b7dac1602d77c2602790307fd99e Mon Sep 17 00:00:00 2001 From: Viktor Klang Date: Thu, 4 Nov 2010 12:51:20 +0100 Subject: [PATCH 04/15] Fixing issue with turning off secure cookies --- akka-remote/src/main/scala/remote/RemoteServer.scala | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/akka-remote/src/main/scala/remote/RemoteServer.scala b/akka-remote/src/main/scala/remote/RemoteServer.scala index bc50ebb781..95b70cacfe 100644 --- a/akka-remote/src/main/scala/remote/RemoteServer.scala +++ b/akka-remote/src/main/scala/remote/RemoteServer.scala @@ -76,7 +76,7 @@ object RemoteServer { } val REQUIRE_COOKIE = { val requireCookie = config.getBool("akka.remote.server.require-cookie", true) - if (RemoteServer.SECURE_COOKIE.isEmpty) throw new ConfigurationException( + if (requireCookie && RemoteServer.SECURE_COOKIE.isEmpty) throw new ConfigurationException( "Configuration option 'akka.remote.server.require-cookie' is turned on but no secure cookie is defined in 'akka.remote.secure-cookie'.") requireCookie } From f466afba586f88b1a3c2217d00d9fd87641bd4db Mon Sep 17 00:00:00 2001 From: Debasish Ghosh Date: Fri, 5 Nov 2010 02:36:22 +0530 Subject: [PATCH 05/15] changed implementation of PersistentQueue so that it's now thread-safe --- .../src/main/scala/Storage.scala | 109 +++++++----------- 1 file changed, 43 insertions(+), 66 deletions(-) diff --git a/akka-persistence/akka-persistence-common/src/main/scala/Storage.scala b/akka-persistence/akka-persistence-common/src/main/scala/Storage.scala index b9e7c3195d..7d74496936 100644 --- a/akka-persistence/akka-persistence-common/src/main/scala/Storage.scala +++ b/akka-persistence/akka-persistence-common/src/main/scala/Storage.scala @@ -446,7 +446,7 @@ trait PersistentVector[T] extends IndexedSeq[T] with Transactional with Committa case class LogEntry(index: Option[Int], value: Option[T], op: Op) // need to override in subclasses e.g. "sameElements" for Array[Byte] - def equal(v1: T, v2: T): Boolean = v1 == v2 + // def equal(v1: T, v2: T): Boolean = v1 == v2 val storage: VectorStorageBackend[T] @@ -614,90 +614,67 @@ trait PersistentQueue[A] extends scala.collection.mutable.Queue[A] //Import Ops import PersistentQueue._ - import scala.collection.immutable.Queue + + case class LogEntry(value: Option[A], op: QueueOp) // current trail that will be played on commit to the underlying store - protected val enqueuedNDequeuedEntries = TransactionalVector[(Option[A], QueueOp)]() - protected val shouldClearOnCommit = Ref[Boolean]() - - // local queue that will record all enqueues and dequeues in the current txn - protected val localQ = Ref[Queue[A]]() - - // keeps a pointer to the underlying storage for the enxt candidate to be dequeued - protected val pickMeForDQ = Ref[Int]() - - localQ.swap(Queue.empty) - pickMeForDQ.swap(0) + protected val appendOnlyTxLog = TransactionalVector[LogEntry]() // to be concretized in subclasses val storage: QueueStorageBackend[A] - def commit = { - enqueuedNDequeuedEntries.toList.foreach { - e => - e._2 match { - case ENQ => storage.enqueue(uuid, e._1.get) - case DEQ => storage.dequeue(uuid) - } + def commit = synchronized { + for (entry <- appendOnlyTxLog) { + (entry: @unchecked) match { + case LogEntry(Some(v), ENQ) => storage.enqueue(uuid, v) + case LogEntry(_, DEQ) => storage.dequeue(uuid) + } } - if (shouldClearOnCommit.isDefined && shouldClearOnCommit.get) { - storage.remove(uuid) + appendOnlyTxLog.clear + } + + def abort = synchronized { + appendOnlyTxLog.clear + } + + override def toList = replay + + override def enqueue(elems: A*) = synchronized { + register + elems.foreach(e => appendOnlyTxLog.add(LogEntry(Some(e), ENQ))) + } + + private def replay: List[A] = synchronized { + import scala.collection.mutable.ListBuffer + var elemsStorage = ListBuffer(storage.peek(uuid, 0, storage.size(uuid)): _*) + + for (entry <- appendOnlyTxLog) { + (entry: @unchecked) match { + case LogEntry(Some(v), ENQ) => elemsStorage += v + case LogEntry(_, DEQ) => elemsStorage = elemsStorage.drop(1) + } } - enqueuedNDequeuedEntries.clear - localQ.swap(Queue.empty) - pickMeForDQ.swap(0) - shouldClearOnCommit.swap(false) + elemsStorage.toList } - def abort = { - enqueuedNDequeuedEntries.clear - shouldClearOnCommit.swap(false) - localQ.swap(Queue.empty) - pickMeForDQ.swap(0) - } - - - override def enqueue(elems: A*) { + override def dequeue: A = synchronized { register - elems.foreach(e => { - enqueuedNDequeuedEntries.add((Some(e), ENQ)) - localQ.get.enqueue(e) - }) + val l = replay + if (l.isEmpty) throw new NoSuchElementException("trying to dequeue from empty queue") + appendOnlyTxLog.add(LogEntry(None, DEQ)) + l.head } - override def dequeue: A = { + override def clear = synchronized { register - // record for later playback - enqueuedNDequeuedEntries.add((None, DEQ)) - - val i = pickMeForDQ.get - if (i < storage.size(uuid)) { - // still we can DQ from storage - pickMeForDQ.swap(i + 1) - storage.peek(uuid, i, 1)(0) - } else { - // check we have transient candidates in localQ for DQ - if (!localQ.get.isEmpty) { - val (a, q) = localQ.get.dequeue - localQ.swap(q) - a - } else throw new NoSuchElementException("trying to dequeue from empty queue") - } - } - - override def clear = { - register - shouldClearOnCommit.swap(true) - localQ.swap(Queue.empty) - pickMeForDQ.swap(0) + appendOnlyTxLog.clear } override def size: Int = try { - storage.size(uuid) + localQ.get.length + replay.size } catch {case e: Exception => 0} - override def isEmpty: Boolean = - size == 0 + override def isEmpty: Boolean = size == 0 override def +=(elem: A) = { enqueue(elem) From 752a26108af57d21e8e42386b4b60a9d91bc1a55 Mon Sep 17 00:00:00 2001 From: Debasish Ghosh Date: Fri, 5 Nov 2010 02:54:12 +0530 Subject: [PATCH 06/15] refactored test - lazy persistent vector doesn't seem to work anymore --- .../test/scala/RedisPersistentActorSpec.scala | 61 ++++++++----------- 1 file changed, 24 insertions(+), 37 deletions(-) diff --git a/akka-persistence/akka-persistence-redis/src/test/scala/RedisPersistentActorSpec.scala b/akka-persistence/akka-persistence-redis/src/test/scala/RedisPersistentActorSpec.scala index e0ab63abe8..c487741ea6 100644 --- a/akka-persistence/akka-persistence-redis/src/test/scala/RedisPersistentActorSpec.scala +++ b/akka-persistence/akka-persistence-redis/src/test/scala/RedisPersistentActorSpec.scala @@ -22,74 +22,61 @@ import akka.actor.Actor._ */ case class Balance(accountNo: String) -case class Debit(accountNo: String, amount: BigInt, failer: ActorRef) -case class MultiDebit(accountNo: String, amounts: List[BigInt], failer: ActorRef) -case class Credit(accountNo: String, amount: BigInt) +case class Debit(accountNo: String, amount: Int, failer: ActorRef) +case class MultiDebit(accountNo: String, amounts: List[Int], failer: ActorRef) +case class Credit(accountNo: String, amount: Int) case object LogSize class AccountActor extends Transactor { - import self._ private lazy val accountState = RedisStorage.newMap - private lazy val txnLog = RedisStorage.newVector - //timeout = 5000 + private val txnLog = RedisStorage.newVector + self.timeout = 100000 def receive = { // check balance case Balance(accountNo) => txnLog.add("Balance:%s".format(accountNo).getBytes) - reply(BigInt(new String(accountState.get(accountNo.getBytes).get))) + self.reply(new String(accountState.get(accountNo.getBytes).get).toInt) // debit amount: can fail case Debit(accountNo, amount, failer) => txnLog.add("Debit:%s %s".format(accountNo, amount.toString).getBytes) - val m: BigInt = - accountState.get(accountNo.getBytes) match { - case Some(bytes) => BigInt(new String(bytes)) - case None => 0 - } + val Some(m) = accountState.get(accountNo.getBytes).map(x => (new String(x)).toInt) orElse Some(0) accountState.put(accountNo.getBytes, (m - amount).toString.getBytes) if (amount > m) failer !! "Failure" - reply(m - amount) + self.reply(m - amount) // many debits: can fail // demonstrates true rollback even if multiple puts have been done case MultiDebit(accountNo, amounts, failer) => txnLog.add("MultiDebit:%s %s".format(accountNo, amounts.map(_.intValue).foldLeft(0)(_ + _).toString).getBytes) - val m: BigInt = - accountState.get(accountNo.getBytes) match { - case Some(bytes) => BigInt(new String(bytes)) - case None => 0 - } - var bal: BigInt = 0 + val Some(m) = accountState.get(accountNo.getBytes).map(x => (new String(x)).toInt) orElse Some(0) + var bal = 0 amounts.foreach {amount => bal = bal + amount accountState.put(accountNo.getBytes, (m - bal).toString.getBytes) } if (bal > m) failer !! "Failure" - reply(m - bal) + self.reply(m - bal) // credit amount case Credit(accountNo, amount) => txnLog.add("Credit:%s %s".format(accountNo, amount.toString).getBytes) - val m: BigInt = - accountState.get(accountNo.getBytes) match { - case Some(bytes) => BigInt(new String(bytes)) - case None => 0 - } + val Some(m) = accountState.get(accountNo.getBytes).map(x => (new String(x)).toInt) orElse Some(0) accountState.put(accountNo.getBytes, (m + amount).toString.getBytes) - reply(m + amount) + self.reply(m + amount) case LogSize => - reply(txnLog.length.asInstanceOf[AnyRef]) + self.reply(txnLog.length.asInstanceOf[AnyRef]) } } @serializable class PersistentFailerActor extends Transactor { - // timeout = 5000 + self.timeout = 5000 def receive = { case "Failure" => throw new RuntimeException("Expected exception; to test fault-tolerance") @@ -99,19 +86,19 @@ class AccountActor extends Transactor { class RedisPersistentActorSpec extends JUnitSuite { @Test def testSuccessfulDebit = { - val bactor = actorOf[AccountActor] + val bactor = actorOf(new AccountActor) bactor.start - val failer = actorOf[PersistentFailerActor] + val failer = actorOf(new PersistentFailerActor) failer.start bactor !! Credit("a-123", 5000) bactor !! Debit("a-123", 3000, failer) - assertEquals(BigInt(2000), (bactor !! Balance("a-123")).get) + assertEquals(2000, (bactor !! Balance("a-123")).get) bactor !! Credit("a-123", 7000) - assertEquals(BigInt(9000), (bactor !! Balance("a-123")).get) + assertEquals(9000, (bactor !! Balance("a-123")).get) bactor !! Debit("a-123", 8000, failer) - assertEquals(BigInt(1000), (bactor !! Balance("a-123")).get) + assertEquals(1000, (bactor !! Balance("a-123")).get) val c = (bactor !! LogSize).as[Int].get assertTrue(7 == c) @@ -122,7 +109,7 @@ class RedisPersistentActorSpec extends JUnitSuite { val bactor = actorOf[AccountActor] bactor.start bactor !! Credit("a-123", 5000) - assertEquals(BigInt(5000), (bactor !! Balance("a-123")).get) + assertEquals(5000, (bactor !! Balance("a-123")).get) val failer = actorOf[PersistentFailerActor] failer.start @@ -131,7 +118,7 @@ class RedisPersistentActorSpec extends JUnitSuite { fail("should throw exception") } catch { case e: RuntimeException => {}} - assertEquals(BigInt(5000), (bactor !! Balance("a-123")).get) + assertEquals(5000, (bactor !! Balance("a-123")).get) // should not count the failed one val c = (bactor !! LogSize).as[Int].get @@ -144,7 +131,7 @@ class RedisPersistentActorSpec extends JUnitSuite { bactor.start bactor !! Credit("a-123", 5000) - assertEquals(BigInt(5000), (bactor !! (Balance("a-123"), 5000)).get) + assertEquals(5000, (bactor !! (Balance("a-123"), 5000)).get) val failer = actorOf[PersistentFailerActor] failer.start @@ -153,7 +140,7 @@ class RedisPersistentActorSpec extends JUnitSuite { fail("should throw exception") } catch { case e: RuntimeException => {}} - assertEquals(BigInt(5000), (bactor !! (Balance("a-123"), 5000)).get) + assertEquals(5000, (bactor !! (Balance("a-123"), 5000)).get) // should not count the failed one val c = (bactor !! LogSize).as[Int].get From e88bfcde110b559a0f4d808f4de320d3c6a553cf Mon Sep 17 00:00:00 2001 From: ticktock Date: Fri, 5 Nov 2010 19:24:07 -0400 Subject: [PATCH 07/15] updating akka-reference.conf and switching to KetamaConnectionFactory for spymemcached --- .../src/main/scala/MemcachedStorageBackend.scala | 2 +- config/akka-reference.conf | 6 ++++++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/akka-persistence/akka-persistence-memcached/src/main/scala/MemcachedStorageBackend.scala b/akka-persistence/akka-persistence-memcached/src/main/scala/MemcachedStorageBackend.scala index a387836547..83e056900f 100644 --- a/akka-persistence/akka-persistence-memcached/src/main/scala/MemcachedStorageBackend.scala +++ b/akka-persistence/akka-persistence-memcached/src/main/scala/MemcachedStorageBackend.scala @@ -21,7 +21,7 @@ private[akka] object MemcachedStorageBackend extends CommonStorageBackend { import org.apache.commons.codec.binary.Base64 val clientAddresses = config.getString("akka.storage.memcached.client.addresses", "localhost:11211") - val factory = new ConnectionFactoryBuilder().setTranscoder(new SerializingTranscoder()).setProtocol(ConnectionFactoryBuilder.Protocol.BINARY).build + val factory = new KetamaConnectionFactory val client = new MemcachedClient(factory, AddrUtil.getAddresses(clientAddresses)) val base64 = new Base64(76, Array.empty[Byte], true) diff --git a/config/akka-reference.conf b/config/akka-reference.conf index d05382bfa8..eba042e704 100644 --- a/config/akka-reference.conf +++ b/config/akka-reference.conf @@ -206,6 +206,12 @@ akka { port = 8087 #Default Riak Protobuf port } } + + memcached { + client{ + addresses = "localhost:11211" #Formatted according to spymemcached "localhost:11211 otherhost:11211" etc.. + } + } } camel { From 9d6a0931c0d3a89c8d612cf387497b2884c04f79 Mon Sep 17 00:00:00 2001 From: ticktock Date: Sat, 6 Nov 2010 11:15:55 -0400 Subject: [PATCH 08/15] freeing up a few more bytes for memcached keys, reserving a slightly less common key to hold map keysets --- .../src/main/scala/CommonStorageBackend.scala | 2 +- .../src/main/scala/MemcachedStorageBackend.scala | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/akka-persistence/akka-persistence-common/src/main/scala/CommonStorageBackend.scala b/akka-persistence/akka-persistence-common/src/main/scala/CommonStorageBackend.scala index 17502903f0..42e5fa8819 100644 --- a/akka-persistence/akka-persistence-common/src/main/scala/CommonStorageBackend.scala +++ b/akka-persistence/akka-persistence-common/src/main/scala/CommonStorageBackend.scala @@ -215,7 +215,7 @@ private[akka] object KVStorageBackend { private[akka] trait CommonStorageBackend extends MapStorageBackend[Array[Byte], Array[Byte]] with VectorStorageBackend[Array[Byte]] with RefStorageBackend[Array[Byte]] with QueueStorageBackend[Array[Byte]] with Logging { import CommonStorageBackend._ - val mapKeysIndex = IntSerializer.toBytes(-1) + val mapKeysIndex:Array[Byte] = new Array[Byte](1).padTo(1,1.asInstanceOf[Byte]) val vectorHeadIndex = IntSerializer.toBytes(-1) val vectorTailIndex = IntSerializer.toBytes(-2) val queueHeadIndex = IntSerializer.toBytes(-1) diff --git a/akka-persistence/akka-persistence-memcached/src/main/scala/MemcachedStorageBackend.scala b/akka-persistence/akka-persistence-memcached/src/main/scala/MemcachedStorageBackend.scala index 83e056900f..b84b99adbd 100644 --- a/akka-persistence/akka-persistence-memcached/src/main/scala/MemcachedStorageBackend.scala +++ b/akka-persistence/akka-persistence-memcached/src/main/scala/MemcachedStorageBackend.scala @@ -25,13 +25,13 @@ private[akka] object MemcachedStorageBackend extends CommonStorageBackend { val client = new MemcachedClient(factory, AddrUtil.getAddresses(clientAddresses)) val base64 = new Base64(76, Array.empty[Byte], true) - def queueAccess = new MemcachedAccess("que") + def queueAccess = new MemcachedAccess("Q") - def mapAccess = new MemcachedAccess("map") + def mapAccess = new MemcachedAccess("M") - def vectorAccess = new MemcachedAccess("vec") + def vectorAccess = new MemcachedAccess("V") - def refAccess = new MemcachedAccess("ref") + def refAccess = new MemcachedAccess("R") private[akka] class MemcachedAccess(val accessType: String) extends KVStorageBackendAccess { From e9e64f8a48ab01b0c7d6005edc232be3824fa9ea Mon Sep 17 00:00:00 2001 From: ticktock Date: Sat, 6 Nov 2010 11:30:58 -0400 Subject: [PATCH 09/15] commenting out memcached support pending license question --- project/build/AkkaProject.scala | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/project/build/AkkaProject.scala b/project/build/AkkaProject.scala index 5d2f3dd4ab..0d0a95d2eb 100644 --- a/project/build/AkkaProject.scala +++ b/project/build/AkkaProject.scala @@ -544,8 +544,8 @@ class AkkaParentProject(info: ProjectInfo) extends DefaultProject(info) { new AkkaRiakProject(_), akka_persistence_common) lazy val akka_persistence_couchdb = project("akka-persistence-couchdb", "akka-persistence-couchdb", new AkkaCouchDBProject(_), akka_persistence_common) - lazy val akka_persistence_memcached= project("akka-persistence-memcached", "akka-persistence-memcached", - new AkkaMemcachedProject(_), akka_persistence_common) + /* lazy val akka_persistence_memcached= project("akka-persistence-memcached", "akka-persistence-memcached", + new AkkaMemcachedProject(_), akka_persistence_common) */ } // ------------------------------------------------------------------------------------------------------------------- @@ -666,14 +666,14 @@ class AkkaParentProject(info: ProjectInfo) extends DefaultProject(info) { override def testOptions = createTestFilter( _.endsWith("Test")) } - class AkkaMemcachedProject(info: ProjectInfo) extends AkkaDefaultProject(info, distPath) { + /* class AkkaMemcachedProject(info: ProjectInfo) extends AkkaDefaultProject(info, distPath) { val memcached = Dependencies.spymemcached val commons_codec = Dependencies.commons_codec val scalatest = Dependencies.scalatest override def testOptions = createTestFilter( _.endsWith("Test")) - } + } */ // ------------------------------------------------------------------------------------------------------------------- // akka-kernel subproject From 1381ac702d3cf0070724e9e74170e004a39890ae Mon Sep 17 00:00:00 2001 From: ticktock Date: Sat, 6 Nov 2010 11:33:44 -0400 Subject: [PATCH 10/15] realized that there are other MIT deps in akka, re-enabling --- project/build/AkkaProject.scala | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/project/build/AkkaProject.scala b/project/build/AkkaProject.scala index 0d0a95d2eb..8a74ba9f1b 100644 --- a/project/build/AkkaProject.scala +++ b/project/build/AkkaProject.scala @@ -544,8 +544,8 @@ class AkkaParentProject(info: ProjectInfo) extends DefaultProject(info) { new AkkaRiakProject(_), akka_persistence_common) lazy val akka_persistence_couchdb = project("akka-persistence-couchdb", "akka-persistence-couchdb", new AkkaCouchDBProject(_), akka_persistence_common) - /* lazy val akka_persistence_memcached= project("akka-persistence-memcached", "akka-persistence-memcached", - new AkkaMemcachedProject(_), akka_persistence_common) */ + lazy val akka_persistence_memcached= project("akka-persistence-memcached", "akka-persistence-memcached", + new AkkaMemcachedProject(_), akka_persistence_common) } // ------------------------------------------------------------------------------------------------------------------- @@ -666,14 +666,14 @@ class AkkaParentProject(info: ProjectInfo) extends DefaultProject(info) { override def testOptions = createTestFilter( _.endsWith("Test")) } - /* class AkkaMemcachedProject(info: ProjectInfo) extends AkkaDefaultProject(info, distPath) { + class AkkaMemcachedProject(info: ProjectInfo) extends AkkaDefaultProject(info, distPath) { val memcached = Dependencies.spymemcached val commons_codec = Dependencies.commons_codec val scalatest = Dependencies.scalatest override def testOptions = createTestFilter( _.endsWith("Test")) - } */ + } // ------------------------------------------------------------------------------------------------------------------- // akka-kernel subproject From 96419d661e5f8318bca2be4213a9f79a6c59004b Mon Sep 17 00:00:00 2001 From: ticktock Date: Sat, 6 Nov 2010 12:00:07 -0400 Subject: [PATCH 11/15] formatting --- config/akka-reference.conf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config/akka-reference.conf b/config/akka-reference.conf index eba042e704..16aecf6bc9 100644 --- a/config/akka-reference.conf +++ b/config/akka-reference.conf @@ -209,7 +209,7 @@ akka { memcached { client{ - addresses = "localhost:11211" #Formatted according to spymemcached "localhost:11211 otherhost:11211" etc.. + addresses = "localhost:11211" #Formatted according to spymemcached "localhost:11211 otherhost:11211" etc.. } } } From 75e52667b6f6ed393624709549f3b336e7cd5540 Mon Sep 17 00:00:00 2001 From: Viktor Klang Date: Sun, 7 Nov 2010 14:33:34 +0100 Subject: [PATCH 12/15] Adding support for user-controlled action for unmatched messages --- akka-actor/src/main/scala/actor/Actor.scala | 40 ++++++++++++++++++++- 1 file changed, 39 insertions(+), 1 deletion(-) diff --git a/akka-actor/src/main/scala/actor/Actor.scala b/akka-actor/src/main/scala/actor/Actor.scala index bbb51aff34..46297d32d0 100644 --- a/akka-actor/src/main/scala/actor/Actor.scala +++ b/akka-actor/src/main/scala/actor/Actor.scala @@ -76,6 +76,14 @@ class ActorKilledException private[akka](message: String) extends AkkaException( class ActorInitializationException private[akka](message: String) extends AkkaException(message) class ActorTimeoutException private[akka](message: String) extends AkkaException(message) +/** + * This message is thrown by default when an Actors behavior doesn't match a message + */ +case class UnhandledMessageException(msg: Any, ref: ActorRef) extends Exception { + override def getMessage() = "Actor %s does not handle [%s]".format(ref,msg) + override def fillInStackTrace() = this //Don't waste cycles generating stack trace +} + /** * Actor factory module with factory methods for creating various kinds of Actors. * @@ -387,6 +395,16 @@ trait Actor extends Logging { */ def postRestart(reason: Throwable) {} + /** + * User overridable callback. + *

+ * Is called when a message isn't handled by the current behavior of the actor + * by default it throws an UnhandledMessageException + */ + def unhandled(msg: Any){ + throw new UnhandledMessageException(msg,self) + } + /** * Is the actor able to handle the message passed in as arguments? */ @@ -407,8 +425,9 @@ trait Actor extends Logging { // ==== INTERNAL IMPLEMENTATION DETAILS ==== // ========================================= - private[akka] def apply(msg: Any) = processingBehavior(msg) + private[akka] def apply(msg: Any) = fullBehavior(msg) + /*Processingbehavior and fullBehavior are duplicates so make sure changes are done to both */ private lazy val processingBehavior: Receive = { lazy val defaultBehavior = receive val actorBehavior: Receive = { @@ -426,6 +445,25 @@ trait Actor extends Logging { } actorBehavior } + + private lazy val fullBehavior: Receive = { + lazy val defaultBehavior = receive + val actorBehavior: Receive = { + case HotSwap(code) => become(code) + case RevertHotSwap => unbecome + case Exit(dead, reason) => self.handleTrapExit(dead, reason) + case Link(child) => self.link(child) + case Unlink(child) => self.unlink(child) + case UnlinkAndStop(child) => self.unlink(child); child.stop + case Restart(reason) => throw reason + case msg if !self.hotswap.isEmpty && + self.hotswap.head.isDefinedAt(msg) => self.hotswap.head.apply(msg) + case msg if self.hotswap.isEmpty && + defaultBehavior.isDefinedAt(msg) => defaultBehavior.apply(msg) + case unknown => unhandled(unknown) //This is the only line that differs from processingbehavior + } + actorBehavior + } } private[actor] class AnyOptionAsTypedOption(anyOption: Option[Any]) { From ced628a9be8b94f5f2f90c6bac3755ae1ba0223e Mon Sep 17 00:00:00 2001 From: Peter Vlugter Date: Mon, 8 Nov 2010 13:02:49 +1300 Subject: [PATCH 13/15] Update sbt plugin --- akka-sbt-plugin/project/build.properties | 3 ++- .../src/main/scala/AkkaProject.scala | 27 +++++++++++++------ 2 files changed, 21 insertions(+), 9 deletions(-) diff --git a/akka-sbt-plugin/project/build.properties b/akka-sbt-plugin/project/build.properties index 984cdaa83b..fcf840b5f1 100644 --- a/akka-sbt-plugin/project/build.properties +++ b/akka-sbt-plugin/project/build.properties @@ -1,5 +1,6 @@ project.name=Akka SBT Plugin -project.organization=akka +# need full domain name for publishing to scala-tools +project.organization=se.scalablesolutions.akka # mirrors akka version project.version=1.0-SNAPSHOT sbt.version=0.7.4 diff --git a/akka-sbt-plugin/src/main/scala/AkkaProject.scala b/akka-sbt-plugin/src/main/scala/AkkaProject.scala index b89b159c41..2bdc47f2a8 100644 --- a/akka-sbt-plugin/src/main/scala/AkkaProject.scala +++ b/akka-sbt-plugin/src/main/scala/AkkaProject.scala @@ -1,13 +1,17 @@ import sbt._ object AkkaRepositories { - val AkkaRepo = MavenRepository("Akka Repository", "http://scalablesolutions.se/akka/repository") - val CodehausRepo = MavenRepository("Codehaus Repo", "http://repository.codehaus.org") - val GuiceyFruitRepo = MavenRepository("GuiceyFruit Repo", "http://guiceyfruit.googlecode.com/svn/repo/releases/") - val JBossRepo = MavenRepository("JBoss Repo", "http://repository.jboss.org/nexus/content/groups/public/") - val JavaNetRepo = MavenRepository("java.net Repo", "http://download.java.net/maven/2") - val SonatypeSnapshotRepo = MavenRepository("Sonatype OSS Repo", "http://oss.sonatype.org/content/repositories/releases") - val SunJDMKRepo = MavenRepository("Sun JDMK Repo", "http://wp5.e-taxonomy.eu/cdmlib/mavenrepo") + val AkkaRepo = MavenRepository("Akka Repository", "http://scalablesolutions.se/akka/repository") + val CasbahRepo = MavenRepository("Casbah Repo", "http://repo.bumnetworks.com/releases") + val CasbahSnapshotRepo = MavenRepository("Casbah Snapshots", "http://repo.bumnetworks.com/snapshots") + val ClojarsRepo = MavenRepository("Clojars Repo", "http://clojars.org/repo") + val CodehausRepo = MavenRepository("Codehaus Repo", "http://repository.codehaus.org") + val GuiceyFruitRepo = MavenRepository("GuiceyFruit Repo", "http://guiceyfruit.googlecode.com/svn/repo/releases/") + val JBossRepo = MavenRepository("JBoss Repo", "http://repository.jboss.org/nexus/content/groups/public/") + val JavaNetRepo = MavenRepository("java.net Repo", "http://download.java.net/maven/2") + val SonatypeSnapshotRepo = MavenRepository("Sonatype OSS Repo", "http://oss.sonatype.org/content/repositories/releases") + val SunJDMKRepo = MavenRepository("Sun JDMK Repo", "http://wp5.e-taxonomy.eu/cdmlib/mavenrepo") + val ZookeeperRepo = MavenRepository("Zookeeper Repo", "http://lilycms.org/maven/maven2/deploy/") } trait AkkaBaseProject extends BasicScalaProject { @@ -21,16 +25,20 @@ trait AkkaBaseProject extends BasicScalaProject { val aspectwerkzModuleConfig = ModuleConfiguration("org.codehaus.aspectwerkz", AkkaRepo) val cassandraModuleConfig = ModuleConfiguration("org.apache.cassandra", AkkaRepo) + val eaioModuleConfig = ModuleConfiguration("com.eaio", AkkaRepo) val facebookModuleConfig = ModuleConfiguration("com.facebook", AkkaRepo) + val h2lzfModuleConfig = ModuleConfiguration("voldemort.store.compress", AkkaRepo) + val hbaseModuleConfig = ModuleConfiguration("org.apache.hbase", AkkaRepo) val jsr166xModuleConfig = ModuleConfiguration("jsr166x", AkkaRepo) val netLagModuleConfig = ModuleConfiguration("net.lag", AkkaRepo) val redisModuleConfig = ModuleConfiguration("com.redis", AkkaRepo) val sbinaryModuleConfig = ModuleConfiguration("sbinary", AkkaRepo) val sjsonModuleConfig = ModuleConfiguration("sjson.json", AkkaRepo) - val voldemortModuleConfig = ModuleConfiguration("voldemort.store.compress", AkkaRepo) + val triforkModuleConfig = ModuleConfiguration("com.trifork", AkkaRepo) val vscaladocModuleConfig = ModuleConfiguration("org.scala-tools", "vscaladoc", "1.1-md-3", AkkaRepo) val atmosphereModuleConfig = ModuleConfiguration("org.atmosphere", SonatypeSnapshotRepo) + val casbahModuleConfig = ModuleConfiguration("com.novus", CasbahRepo) val grizzlyModuleConfig = ModuleConfiguration("com.sun.grizzly", JavaNetRepo) val guiceyFruitModuleConfig = ModuleConfiguration("org.guiceyfruit", GuiceyFruitRepo) val jbossModuleConfig = ModuleConfiguration("org.jboss", JBossRepo) @@ -42,6 +50,9 @@ trait AkkaBaseProject extends BasicScalaProject { val jgroupsModuleConfig = ModuleConfiguration("jgroups", JBossRepo) val multiverseModuleConfig = ModuleConfiguration("org.multiverse", CodehausRepo) val nettyModuleConfig = ModuleConfiguration("org.jboss.netty", JBossRepo) + val timeModuleConfig = ModuleConfiguration("org.scala-tools", "time", CasbahSnapshotRepo) + val voldemortModuleConfig = ModuleConfiguration("voldemort", ClojarsRepo) + val zookeeperModuleConfig = ModuleConfiguration("org.apache.hadoop.zookeeper", ZookeeperRepo) } trait AkkaProject extends AkkaBaseProject { From 2944ca584509fa5b5dc7c995ca581a114a391214 Mon Sep 17 00:00:00 2001 From: ticktock Date: Sun, 7 Nov 2010 19:20:39 -0500 Subject: [PATCH 14/15] Tweaking the encoding of map keys so that there is no possibility of stomping on the key used to hold the maps keyset --- .../src/main/scala/CommonStorageBackend.scala | 74 +++++++++++++------ .../test/scala/MapStorageBackendTest.scala | 28 +++++-- 2 files changed, 73 insertions(+), 29 deletions(-) diff --git a/akka-persistence/akka-persistence-common/src/main/scala/CommonStorageBackend.scala b/akka-persistence/akka-persistence-common/src/main/scala/CommonStorageBackend.scala index 42e5fa8819..2dd9147d74 100644 --- a/akka-persistence/akka-persistence-common/src/main/scala/CommonStorageBackend.scala +++ b/akka-persistence/akka-persistence-common/src/main/scala/CommonStorageBackend.scala @@ -14,9 +14,11 @@ import collection.immutable._ private[akka] trait CommonStorageBackendAccess { + import CommonStorageBackend._ /*abstract*/ + def getValue(owner: String, key: Array[Byte], default: Array[Byte]): Array[Byte] def put(owner: String, key: Array[Byte], value: Array[Byte]): Unit @@ -28,6 +30,7 @@ private[akka] trait CommonStorageBackendAccess { def drop(): Unit /*concrete*/ + def decodeKey(owner: String, key: Array[Byte]) = key def delete(owner: String, index: Int): Unit = delete(owner, IntSerializer.toBytes(index)) @@ -40,6 +43,7 @@ private[akka] trait CommonStorageBackendAccess { } private[akka] trait KVStorageBackendAccess extends CommonStorageBackendAccess { + import CommonStorageBackend._ import KVStorageBackend._ @@ -85,7 +89,7 @@ private[akka] trait KVStorageBackendAccess extends CommonStorageBackendAccess { override def getAll(owner: String, keys: Iterable[Array[Byte]]): Map[Array[Byte], Array[Byte]] = { - getAll(keys.map { + getAll(keys.map{ getKey(owner, _) }) } @@ -109,8 +113,25 @@ private[akka] object CommonStorageBackend { val nullMapValueHeader = 0x00.byteValue val nullMapValue: Array[Byte] = Array(nullMapValueHeader) val notNullMapValueHeader: Byte = 0xff.byteValue + val mapKeySetKeyHeader = 0x00.byteValue + val mapKeyHeader = 0xff.byteValue + val mapKeysIndex: Array[Byte] = new Array[Byte](1).padTo(1, mapKeySetKeyHeader) + val mapKeysWrapperPad: Array[Byte] = new Array[Byte](1).padTo(1, mapKeyHeader) - def getStoredMapValue(value: Array[Byte]): Array[Byte] = { + def wrapMapKey(key: Array[Byte]): Array[Byte] = { + val wrapped = new Array[Byte](key.length + mapKeysWrapperPad.length) + System.arraycopy(mapKeysWrapperPad, 0, wrapped, 0, mapKeysWrapperPad.length) + System.arraycopy(key, 0, wrapped, mapKeysWrapperPad.length, key.length) + wrapped + } + + def unwrapMapKey(key: Array[Byte]): Array[Byte] = { + val unwrapped = new Array[Byte](key.length - mapKeysWrapperPad.length) + System.arraycopy(key, mapKeysWrapperPad.length, unwrapped, 0, unwrapped.length) + unwrapped + } + + def getStoredMapValue(value: Array[Byte]): Array[Byte] = { value match { case null => nullMapValue case value => { @@ -190,7 +211,9 @@ private[akka] object CommonStorageBackend { } private[akka] object KVStorageBackend { - import CommonStorageBackend._ + + import CommonStorageBackend._ + /** * Concat the ownerlenght+owner+key+ of owner so owned data will be colocated * Store the length of owner as first byte to work around the rare case @@ -214,8 +237,9 @@ private[akka] object KVStorageBackend { } private[akka] trait CommonStorageBackend extends MapStorageBackend[Array[Byte], Array[Byte]] with VectorStorageBackend[Array[Byte]] with RefStorageBackend[Array[Byte]] with QueueStorageBackend[Array[Byte]] with Logging { + import CommonStorageBackend._ - val mapKeysIndex:Array[Byte] = new Array[Byte](1).padTo(1,1.asInstanceOf[Byte]) + val vectorHeadIndex = IntSerializer.toBytes(-1) val vectorTailIndex = IntSerializer.toBytes(-2) val queueHeadIndex = IntSerializer.toBytes(-1) @@ -261,15 +285,15 @@ private[akka] trait CommonStorageBackend extends MapStorageBackend[Array[Byte], private def getKeyValues(name: String, keys: SortedSet[Array[Byte]]): List[(Array[Byte], Array[Byte])] = { val all: Map[Array[Byte], Array[Byte]] = - mapAccess.getAll(name, keys) + mapAccess.getAll(name, keys) var returned = new TreeMap[Array[Byte], Array[Byte]]()(ordering) - all.foreach { + all.foreach{ (entry) => { entry match { case (namePlusKey: Array[Byte], value: Array[Byte]) => { //need to fix here - returned += mapAccess.decodeKey(name, namePlusKey) -> getMapValueFromStored(value) + returned += mapAccess.decodeKey(name, unwrapMapKey(namePlusKey)) -> getMapValueFromStored(value) } } } @@ -283,7 +307,7 @@ private[akka] trait CommonStorageBackend extends MapStorageBackend[Array[Byte], } def getMapStorageEntryFor(name: String, key: Array[Byte]): Option[Array[Byte]] = { - val result: Array[Byte] = mapAccess.getValue(name, key) + val result: Array[Byte] = mapAccess.getValue(name, wrapMapKey(key)) result match { case null => None case _ => Some(getMapValueFromStored(result)) @@ -291,15 +315,16 @@ private[akka] trait CommonStorageBackend extends MapStorageBackend[Array[Byte], } def removeMapStorageFor(name: String, key: Array[Byte]) = { + val wrapped = wrapMapKey(key) var keys = getMapKeys(name) - keys -= key + keys -= wrapped putMapKeys(name, keys) - mapAccess.delete(name, key) + mapAccess.delete(name, wrapped) } def removeMapStorageFor(name: String) = { val keys = getMapKeys(name) - keys.foreach { + keys.foreach{ key => mapAccess.delete(name, key) log.debug("deleted key %s for %s", key, name) @@ -308,17 +333,19 @@ private[akka] trait CommonStorageBackend extends MapStorageBackend[Array[Byte], } def insertMapStorageEntryFor(name: String, key: Array[Byte], value: Array[Byte]) = { - mapAccess.put(name, key, getStoredMapValue(value)) + val wrapped = wrapMapKey(key) + mapAccess.put(name, wrapped, getStoredMapValue(value)) var keys = getMapKeys(name) - keys += key + keys += wrapped putMapKeys(name, keys) } def insertMapStorageEntriesFor(name: String, entries: List[(Array[Byte], Array[Byte])]) = { - val newKeys = entries.map { + val newKeys = entries.map{ case (key, value) => { - mapAccess.put(name, key, getStoredMapValue(value)) - key + val wrapped = wrapMapKey(key) + mapAccess.put(name, wrapped, getStoredMapValue(value)) + wrapped } } var keys = getMapKeys(name) @@ -334,6 +361,7 @@ private[akka] trait CommonStorageBackend extends MapStorageBackend[Array[Byte], SortedSetSerializer.fromBytes(mapAccess.getValue(name, mapKeysIndex, Array.empty[Byte])) } + def getVectorStorageSizeFor(name: String): Int = { getVectorMetadata(name).size } @@ -343,12 +371,12 @@ private[akka] trait CommonStorageBackend extends MapStorageBackend[Array[Byte], val st = start.getOrElse(0) var cnt = - if (finish.isDefined) { - val f = finish.get - if (f >= st) (f - st) else count - } else { - count - } + if (finish.isDefined) { + val f = finish.get + if (f >= st) (f - st) else count + } else { + count + } if (cnt > (mdata.size - st)) { cnt = mdata.size - st } @@ -384,7 +412,7 @@ private[akka] trait CommonStorageBackend extends MapStorageBackend[Array[Byte], } def insertVectorStorageEntriesFor(name: String, elements: List[Array[Byte]]) = { - elements.foreach { + elements.foreach{ insertVectorStorageEntryFor(name, _) } diff --git a/akka-persistence/akka-persistence-common/src/test/scala/MapStorageBackendTest.scala b/akka-persistence/akka-persistence-common/src/test/scala/MapStorageBackendTest.scala index 51f3de40d0..4900ea7695 100644 --- a/akka-persistence/akka-persistence-common/src/test/scala/MapStorageBackendTest.scala +++ b/akka-persistence/akka-persistence-common/src/test/scala/MapStorageBackendTest.scala @@ -69,7 +69,7 @@ trait MapStorageBackendTest extends Spec with ShouldMatchers with BeforeAndAfter it("should insert multiple map storage elements properly") { val mapName = "insertMultipleTest" val rand = new Random(3).nextInt(100) - val entries = (1 to rand).toList.map { + val entries = (1 to rand).toList.map{ index => (("insertMultipleTestKey" + index).getBytes -> ("insertMutlipleTestValue" + index).getBytes) } @@ -97,7 +97,7 @@ trait MapStorageBackendTest extends Spec with ShouldMatchers with BeforeAndAfter it("should accurately track the number of key value pairs in a map") { val mapName = "sizeTest" val rand = new Random(3).nextInt(100) - val entries = (1 to rand).toList.map { + val entries = (1 to rand).toList.map{ index => (("sizeTestKey" + index).getBytes -> ("sizeTestValue" + index).getBytes) } @@ -112,7 +112,7 @@ trait MapStorageBackendTest extends Spec with ShouldMatchers with BeforeAndAfter val mapName = "allTest" val rand = new Random(3).nextInt(100) var entries = new TreeMap[Array[Byte], Array[Byte]]()(ArrayOrdering) - (1 to rand).foreach { + (1 to rand).foreach{ index => entries += (("allTestKey" + index).getBytes -> ("allTestValue" + index).getBytes) } @@ -124,12 +124,20 @@ trait MapStorageBackendTest extends Spec with ShouldMatchers with BeforeAndAfter - val entryMap = new HashMap[String, String] ++ entries.map {_ match {case (k, v) => (new String(k), new String(v))}} - val retrievedMap = new HashMap[String, String] ++ entries.map {_ match {case (k, v) => (new String(k), new String(v))}} + val entryMap = new HashMap[String, String] ++ entries.map{ + _ match { + case (k, v) => (new String(k), new String(v)) + } + } + val retrievedMap = new HashMap[String, String] ++ entries.map{ + _ match { + case (k, v) => (new String(k), new String(v)) + } + } entryMap should equal(retrievedMap) - (0 until rand).foreach { + (0 until rand).foreach{ i: Int => { new String(entries.toList(i)._1) should be(new String(retrieved(i)._1)) } @@ -155,6 +163,14 @@ trait MapStorageBackendTest extends Spec with ShouldMatchers with BeforeAndAfter storage.getMapStorageSizeFor("nonExistent") should be(0) } + it("should not stomp on the map keyset when a map key of 0xff is used") { + val mapName = "keySetStomp" + val key = CommonStorageBackend.mapKeysIndex + storage.insertMapStorageEntryFor(mapName, key, key) + storage.getMapStorageSizeFor(mapName) should be(1) + storage.getMapStorageEntryFor(mapName,key).get should be (key) + } + } From 5b1dc6277889c1369856c46fb64c0deae246fb06 Mon Sep 17 00:00:00 2001 From: Viktor Klang Date: Mon, 8 Nov 2010 15:15:09 +0100 Subject: [PATCH 15/15] Fixing optimistic sleep in actor model spec --- .../test/scala/dispatch/ActorModelSpec.scala | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/akka-actor/src/test/scala/dispatch/ActorModelSpec.scala b/akka-actor/src/test/scala/dispatch/ActorModelSpec.scala index bd0f359398..6cd57c15fe 100644 --- a/akka-actor/src/test/scala/dispatch/ActorModelSpec.scala +++ b/akka-actor/src/test/scala/dispatch/ActorModelSpec.scala @@ -12,6 +12,7 @@ import akka.actor.Actor._ import java.util.concurrent.atomic.AtomicLong import java.util.concurrent. {ConcurrentHashMap, CountDownLatch, TimeUnit} import akka.actor.dispatch.ActorModelSpec.MessageDispatcherInterceptor +import akka.util.Duration object ActorModelSpec { @@ -164,6 +165,18 @@ object ActorModelSpec { assert(stats.restarts.get() === restarts, "Restarts") } + def await(condition: => Boolean)(withinMs: Long, intervalMs: Long = 25): Boolean = try { + val until = System.currentTimeMillis() + withinMs + while(System.currentTimeMillis() <= until) { + try { + if (condition) return true + + Thread.sleep(intervalMs) + } catch { case e: InterruptedException => } + } + false + } + def newTestActor(implicit d: MessageDispatcherInterceptor) = actorOf(new DispatcherActor(d)) } @@ -179,7 +192,7 @@ abstract class ActorModelSpec extends JUnitSuite { a.start assertDispatcher(dispatcher)(starts = 1, stops = 0) a.stop - Thread.sleep(dispatcher.timeoutMs + 100) + await(dispatcher.stops.get == 1)(withinMs = 10000) assertDispatcher(dispatcher)(starts = 1, stops = 1) assertRef(a,dispatcher)( suspensions = 0, @@ -279,7 +292,7 @@ abstract class ActorModelSpec extends JUnitSuite { } for(run <- 1 to 3) { flood(10000) - Thread.sleep(dispatcher.timeoutMs * 2) + await(dispatcher.stops.get == run)(withinMs = 10000) assertDispatcher(dispatcher)(starts = run, stops = run) } }