You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@samza.apache.org by cr...@apache.org on 2014/08/26 21:07:35 UTC
git commit: SAMZA-162; remove scala 2.8 cludge in kv store
Repository: incubator-samza
Updated Branches:
refs/heads/master d733ed961 -> 4246137f6
SAMZA-162; remove scala 2.8 cludge in kv store
Project: http://git-wip-us.apache.org/repos/asf/incubator-samza/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-samza/commit/4246137f
Tree: http://git-wip-us.apache.org/repos/asf/incubator-samza/tree/4246137f
Diff: http://git-wip-us.apache.org/repos/asf/incubator-samza/diff/4246137f
Branch: refs/heads/master
Commit: 4246137f68b006016b7d23b5355ea64adb4d895d
Parents: d733ed9
Author: David Chen <dc...@linkedin.com>
Authored: Tue Aug 26 12:07:25 2014 -0700
Committer: Chris Riccomini <cr...@criccomi-mn.linkedin.biz>
Committed: Tue Aug 26 12:07:25 2014 -0700
----------------------------------------------------------------------
.../samza/storage/kv/TestKeyValueStores.scala | 2 +-
.../apache/samza/storage/kv/CachedStore.scala | 21 +++++++++-----------
2 files changed, 10 insertions(+), 13 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-samza/blob/4246137f/samza-kv-leveldb/src/test/scala/org/apache/samza/storage/kv/TestKeyValueStores.scala
----------------------------------------------------------------------
diff --git a/samza-kv-leveldb/src/test/scala/org/apache/samza/storage/kv/TestKeyValueStores.scala b/samza-kv-leveldb/src/test/scala/org/apache/samza/storage/kv/TestKeyValueStores.scala
index d6d437a..1f09ae5 100644
--- a/samza-kv-leveldb/src/test/scala/org/apache/samza/storage/kv/TestKeyValueStores.scala
+++ b/samza-kv-leveldb/src/test/scala/org/apache/samza/storage/kv/TestKeyValueStores.scala
@@ -202,7 +202,7 @@ class TestKeyValueStores(typeOfStore: String, storeConfig: String) {
* implementation. The issue is that it doesn't work. More specifically,
* creating a DoubleLinkedList from an existing list does not update the
* "prev" field of the existing list's head to point to the new head. As a
- * result, in Scala 2.8.1, every DoulbeLinkedList node's prev field is null.
+ * result, in Scala 2.8.1, every DoubleLinkedList node's prev field is null.
* Samza gets around this by manually updating the field itself. See SAMZA-80
* for details.
*
http://git-wip-us.apache.org/repos/asf/incubator-samza/blob/4246137f/samza-kv/src/main/scala/org/apache/samza/storage/kv/CachedStore.scala
----------------------------------------------------------------------
diff --git a/samza-kv/src/main/scala/org/apache/samza/storage/kv/CachedStore.scala b/samza-kv/src/main/scala/org/apache/samza/storage/kv/CachedStore.scala
index 7a5e510..1fa96ba 100644
--- a/samza-kv/src/main/scala/org/apache/samza/storage/kv/CachedStore.scala
+++ b/samza-kv/src/main/scala/org/apache/samza/storage/kv/CachedStore.scala
@@ -72,8 +72,8 @@ class CachedStore[K, V](
}
}
- // Use counters here, rather than directly accessing variables using .size
- // since metrics can be accessed in other threads, and cache.size is not
+ // Use counters here, rather than directly accessing variables using .size
+ // since metrics can be accessed in other threads, and cache.size is not
// thread safe since we're using a LinkedHashMap, and dirty.size is slow
// since it requires a full traversal of the linked list.
metrics.setDirtyCount(() => dirtyCount)
@@ -109,12 +109,13 @@ class CachedStore[K, V](
def put(key: K, value: V) {
metrics.puts.inc
- // add the key to the front of the dirty list (and remove any prior occurrences to dedupe)
+ // Add the key to the front of the dirty list (and remove any prior
+ // occurrences to dedupe).
val found = cache.get(key)
if (found == null || found.dirty == null) {
this.dirtyCount += 1
} else {
- // If we are removing the head of the list, move the head to the next
+ // If we are removing the head of the list, move the head to the next
// element. See SAMZA-45 for details.
if (found.dirty.prev == null) {
this.dirty = found.dirty.next
@@ -123,14 +124,10 @@ class CachedStore[K, V](
found.dirty.remove
}
}
+ this.dirty = new mutable.DoubleLinkedList(key, this.dirty)
- // We have to manually manage the prev value because Scala 2.8 is totally
- // broken. See SAMZA-80 for details.
- val oldDirtyList = this.dirty
- this.dirty = new mutable.DoubleLinkedList(key, oldDirtyList)
- oldDirtyList.prev = this.dirty
-
- // add the key to the cache (but don't allocate a new cache entry if we already have one)
+ // Add the key to the cache (but don't allocate a new cache entry if we
+ // already have one).
if (found == null) {
cache.put(key, new CacheEntry(value, this.dirty))
cacheCount = cache.size
@@ -139,7 +136,7 @@ class CachedStore[K, V](
found.dirty = this.dirty
}
- // flush the dirty values if the write list is full
+ // Flush the dirty values if the write list is full.
if (dirtyCount >= writeBatchSize) {
debug("Dirty count %s >= write batch size %s. Flushing." format (dirtyCount, writeBatchSize))