#!/usr/bin/env python # Copyright 2010-2015 RethinkDB, all rights reserved. import os, sys sys.path.append(os.path.abspath(os.path.join(os.path.dirname(__file__), os.path.pardir, 'common'))) import rdb_workload_common from vcoptparse import * op = rdb_workload_common.option_parser_for_connect() op["n_appends"] = IntFlag("--num-appends", 20000) opts = op.parse(sys.argv) with rdb_workload_common.make_table_and_connection(opts) as (table, conn): key = 'fizz' val_chunks = ['buzzBUZZZ', 'baazBAAZ', 'bozoBOZO'] table.insert({'id': key, 'val': val_chunks[0]}).run(conn) for i in xrange(1, opts["n_appends"]): response = table.get(key).update(lambda row: {'val': row['val'].add(val_chunks[i % 3])}, durability="soft").run(conn) # Read the reply from the last command. if (response['replaced'] != 1): raise ValueError("Expecting { replaced: 1 } in reply.") expected_val = ''.join([val_chunks[i % 3] for i in xrange(opts["n_appends"])]) actual_val = table.get(key)['val'].run(conn)
def make_memcache_connection(opts): with rdb_workload_common.make_table_and_connection(opts) as (table, conn): yield MemcacheRdbShim(table, conn)
return prefix + value_padding + str(num).zfill(6) def check_results(res, expected_count): count = len(res) if count < expected_count: raise ValueError("received less results than expected (expected: %d, got: %d)" % (expected_count, count)) if count > expected_count: raise ValueError("received more results than expected (expected: %d, got: %d)" % (expected_count, count)) op = rdb_workload_common.option_parser_for_connect() opts = op.parse(sys.argv) foo_count = 100 fop_count = 1000 with rdb_workload_common.make_table_and_connection(opts) as (table, conn): print "Creating test data" data = [{'id':gen_key('foo', i), 'val':gen_value('foo', i)} for i in range(0,foo_count)] data += [{'id':gen_key('fop', i), 'val':gen_value('fop', i)} for i in range(0,fop_count)] res = table.insert(data).run(conn) assert res['inserted'] == foo_count + fop_count with rdb_workload_common.make_table_and_connection(opts) as (table, conn): print "Testing between" print "Checking simple between requests with open/closed boundaries" res = list(table.between(gen_key('foo', 0), gen_key('fop', 0)).run(conn)) check_results(res, foo_count) res = list(table.between(gen_key('foo', 0), gen_key('fop', 0), left_bound='open', right_bound='closed').run(conn))