From 43715cd85f1bc2dcc387f7227ca7ea15b9b8118e Mon Sep 17 00:00:00 2001 From: Lars Wirzenius Date: Thu, 22 Jun 2017 21:36:12 +0300 Subject: Add: test-cowtree for CowTree benchmarking --- test-cowtree | 63 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 63 insertions(+) create mode 100755 test-cowtree diff --git a/test-cowtree b/test-cowtree new file mode 100755 index 00000000..c59e531f --- /dev/null +++ b/test-cowtree @@ -0,0 +1,63 @@ +#!/usr/bin/python2 +# +# Copyright 2017 Lars Wirzenius + + +import logging +import random +import shutil +import tempfile +import time + + +import obnamlib + + +BAG_SIZE = 1024**2 +CACHE_SIZE = BAG_SIZE +NUM_KEYS = 10**4 + + +def measure(func): + tmpdir = tempfile.mkdtemp() + logging.debug('tmpdir %s', tmpdir) + fs = obnamlib.LocalFS(tmpdir) + + bagstore = obnamlib.BagStore() + bagstore.set_location(fs, '.') + + blobstore = obnamlib.BlobStore() + blobstore.set_bag_store(bagstore) + blobstore.set_max_bag_size(BAG_SIZE) + blobstore.set_max_cache_bytes(CACHE_SIZE) + + ls = obnamlib.LeafStore() + ls.set_blob_store(blobstore) + + cow = obnamlib.CowTree() + cow.set_leaf_store(ls) + + started = time.time() + func(cow) + cow.commit() + ended = time.time() + + shutil.rmtree(tmpdir) + + return ended - started + + +def insert_individually(cow): + for i in range(NUM_KEYS): + key, value = get_keyvalue(i) + cow.insert(key, value) + + +def get_keyvalue(i): + return str(random.randint(0, 2**63)), 'value-%d' % i + + + +logging.basicConfig(filename='test-cowtree.log', level=logging.DEBUG) + +print 'individually {:.2f}'.format(measure(insert_individually)) -- cgit v1.2.1