diff --git a/noblogsmv/state.py b/noblogsmv/state.py
index 88df33d6ba4198b548ef8cc5f8338c63c435c2ae..c52cf4c110ceebbbb717301cbaa59e24220f1e0d 100644
--- a/noblogsmv/state.py
+++ b/noblogsmv/state.py
@@ -99,7 +99,9 @@ class StateDatabase(object):
     """Simple key-value database that encodes data with a codec."""
 
     def __init__(self, path, codec=json):
-        self.db = leveldb.LevelDB(path)
+        self.db = leveldb.LevelDB(
+            path,
+            block_cache_size=256 * (1 << 20))
         self.codec = codec
 
     def session(self):
@@ -157,17 +159,7 @@ def transaction(db):
     finally:
         session.close()
 
-
-@contextlib.contextmanager
-def readonly_transaction(db):
-    for i in xrange(3):
-        try:
-            with transaction(db) as session:
-                yield session
-        except leveldb.LevelDBError:
-            time.sleep(0.01)
-            continue
-        break
+readonly_transaction = transaction
 
 
 @contextlib.contextmanager