def main(): num_requests = 5000 global num_started global num_finished global num_clients global cv global all_latencies clients = [] for i in range(num_clients): clients.append(client.Client('128.84.167.101', 2002)) threads = [] print "starting requests" for i in range(num_clients): thr = threading.Thread(target=exec_work, args=(i, clients[i], num_requests)) thr.start() threads.append(thr) start_time = time.time() with cv: num_started = num_clients cv.notify_all() while num_finished < num_clients: cv.wait() end_time = time.time() total_time = end_time - start_time print 'Total time = ' + str(total_time) throughput = (num_requests * num_clients) / total_time print 'Throughput = ' + str(throughput) for thr in threads: thr.join() lat_file = open('latencies', 'w') for t in all_latencies: lat_file.write(str(t) + '\n')
def logCount(): global eventTime global eventInterval if not finished: threading.Timer(1.0, logCount).start() data.append((eventTime, eventInterval)) eventInterval = 0 eventTime += 1 if __name__ == '__main__': weaver = client.Client('127.0.0.1', 2002) host = '0.0.0.0' port = int(sys.argv[1]) aggregation = int(sys.argv[2]) print('waiting for connection...') mySocket = socket.socket() mySocket.bind((host, port)) mySocket.listen(1) conn, addr = mySocket.accept() print('Connection from: ' + str(addr)) logCount()
import sys import time try: import weaver.client as client except ImportError: import client config_file = '' if len(sys.argv) > 1: config_file = sys.argv[1] coord_id = 0 c = client.Client('127.0.0.1', 2002, config_file) # adding node properites c.begin_tx() node = c.create_node() c.set_node_property('color', 'blue', node) c.set_node_property('size', '27', node) c.end_tx() # reading node properites read_props = c.get_node_properties(node) assert len(read_props) == 2 assert read_props['color'] == ['blue'] assert read_props['size'] == ['27'] c.begin_tx()
# Created: 11/11/2013 03:17:55 PM # # Author: Ayush Dubey, [email protected] # # Copyright (C) 2013, Cornell University, see the LICENSE file # for licensing agreement # =============================================================== # import sys import weaver.client as client # create graph from file coord_id = 0 c = client.Client('127.0.0.1', 2002) use_cache = True num_nodes = 200 star_nodes = [] #[num_nodes]; star_edges = [] #[num_nodes*2]; edges_per_node = 6 #ring_edges = [] #[num_nodes*edges_per_node]; tx_id = c.begin_tx() central_node = c.create_node(tx_id) for i in range(num_nodes): star_nodes.append(c.create_node(tx_id)) c.end_tx(tx_id) tx_id = c.begin_tx()
# exec lots of get node requests def flood_get_node(c, num_reqs, idx): for i in range(num_reqs): n = c.get_node('ayush') assert n.properties['type'] == ['user'] num_clients = 500 num_requests = 100 clients = [] # create clients for i in range(num_clients): clients.append(client.Client('127.0.0.1', 2002, config_file)) print 'created clients' # create node for user ayush clients[0].begin_tx() clients[0].create_node('ayush') clients[0].set_node_properties({'type': 'user', 'age': '25'}, 'ayush') clients[0].end_tx() print 'created node ayush' threads = [] for i in range(num_clients): t = threading.Thread(target=flood_get_node, args=(clients[i], num_requests, i)) t.start()
create_edges(c, 100) delete_edges(c, 100) with pmutex: print str(tid) + ': Done write loop ' + str(i) def read_loop(c, tid): for i in range(rd_loops): reach_requests(c, 20) with pmutex: print str(tid) + ': Read loop ' + str(i) print 'Going to create clients' for i in range(num_clients): clients.append(client.Client(client._CLIENT_ID + i, i % num_vts)) print 'Created clients' init_graph(clients[0]) print 'Created graph' threads = [] for i in range(num_clients / 2): t = threading.Thread(target=write_loop, args=(clients[i], i)) t.start() threads.append(t) for i in range(num_clients / 2, num_clients): t = threading.Thread(target=read_loop, args=(clients[i], i)) t.start() threads.append(t) for t in threads: t.join()
import sys import weaver.client as client import time # creating star graph, tests one source many destinations with disjoint paths (aka max cache size) nodes = [] num_nodes = 2000 coord_id = 0 c = client.Client(client._CLIENT_ID, coord_id) tx_id = c.begin_tx() center = c.create_node(tx_id) for i in range(num_nodes): nodes.append(c.create_node(tx_id)) #print 'Created node ' + str(i) c.end_tx(tx_id) tx_id = c.begin_tx() for i in range(num_nodes): c.create_edge(tx_id, center, nodes[i]) #print 'Created edge ' + str(i) c.end_tx(tx_id) print 'Created graph' start = time.time() print('Running rechability to node: '), for i in range(num_nodes): rp = client.ReachParams(dest=nodes[i], caching=False) prog_args = [(center, rp)] response = c.run_reach_program(prog_args) print(str(i) + ','),
# import sys try: import weaver.client as client except ImportError: import client config_file='' if len(sys.argv) > 1: config_file = sys.argv[1] # create client object c = client.Client('128.84.167.220', 2002, config_file) # check aux index assert c.aux_index() # 1. create node for user ayush c.begin_tx() c.create_node('ayush') c.set_node_properties({'type': 'user', 'age': '25'}, 'ayush') c.end_tx() # 2. create node for user egs c.begin_tx() c.create_node('egs') c.set_node_property('type', 'user', 'egs') c.end_tx()
for r in reqs: cnt += 1 prog_args = [(r, rp)] response = cl.read_node_props(prog_args) #if cnt % 1000 == 0: # print 'done ' + str(cnt) + ' by client ' + str(idx) end = time.time() with cv: num_finished += 1 cv.notify_all() exec_time[idx] = end - start clients = [] for i in range(num_clients): clients.append(client.Client('128.84.167.101', 2002)) # randomly write node props # with p = 0.50 nodes have 0 props # with p = 0.25 nodes have 1 props # with p = 0.25 nodes have 2 props if len(sys.argv) > 1: write_nodes = (num_nodes / 1000) * 1000 tx_id = 0 c = clients[0] tx_sz = 1000 for n in range(write_nodes): if n % tx_sz == 0: tx_id = c.begin_tx() coin_toss = random.random() if coin_toss > 0.50:
# Author: Ayush Dubey, [email protected] # # Copyright (C) 2013, Cornell University, see the LICENSE file # for licensing agreement # =============================================================== # import sys import weaver.client as client import time from test_base import test_graph # creating line graph nodes = [] num_nodes = 2000 num_clients = 1 clients = [] for i in range(num_clients): clients.append(client.Client(client._CLIENT_ID + i, i % client._NUM_VTS)) print 'Created client' start = time.time() tg = test_graph(clients, num_nodes, 2 * num_nodes) print 'Node = ' + str(tg.nodes[0]) print 'Edge to del = ' + str(tg.edge_handles[tg.nodes[0]][0]) tx_id = clients[0].begin_tx() clients[0].delete_edge(tx_id, tg.edge_handles[tg.nodes[0]][0], tg.nodes[0]) clients[0].end_tx(tx_id) end = time.time() print 'Created graph in ' + str(end - start) + ' seconds'
src = min(n1, n2) dst = max(n1, n2) traverse_ring(c, str(src), str(dst)) if i % 100 == 0: print 'read loop progress ' + str(i) config_file = '' if len(sys.argv) > 1: config_file = sys.argv[1] num_readers = 20 readers = [] for i in range(num_readers): readers.append(client.Client('127.0.0.1', 2002, config_file)) writer = client.Client('127.0.0.1', 2002, config_file) writer.begin_tx() for i in range(num_nodes): writer.create_node(str(i)) writer.end_tx() edges = [] writer.begin_tx() for i in range(num_nodes - 1): edges.append(writer.create_edge(str(i), str(i + 1))) writer.end_tx() threads = [] read_loops = 3000
print 'done ' + str(cnt) + ' by client ' + str(idx) end = time.time() with cv: num_finished += 1 cv.notify_all() exec_time[idx] = end - start num_requests = 50 num_nodes = 81306 # snap twitter-combined # node handles are range(0, num_nodes) num_vts = 1 clients = [] for i in range(num_clients): clients.append(client.Client('127.0.0.1', 2002)) reqs = [] random.seed(42) for i in range(num_clients): cl_reqs = [] for numr in range(num_requests): cl_reqs.append((str(random.randint(0, num_nodes - 1)), str(random.randint(0, num_nodes - 1)))) reqs.append(cl_reqs) # run before exec_time = [0] * num_clients threads = [] print 'Starting first set of requests' for i in range(num_clients):
if (reachable): print str(dest) + " REACHable from " + str(source) else: print str(dest) + " not reachable from " + str(source) end = time.time() with cv: num_finished += 1 cv.notify_all() exec_time[idx] = end - start clients = [] for i in range(num_clients): clients.append( simple_client.simple_client( client.Client(client._CLIENT_ID + i, i % num_vts))) reqs = [] random.seed(42) for i in range(num_clients): cl_reqs = [] for _ in range(dests_per_client): dest = random.randint(0, num_nodes - 1) for _ in range(requests_per_dest): cl_reqs.append((random.randint(0, num_nodes - 1), dest)) reqs.append(cl_reqs) exec_time = [0] * num_clients threads = [] print "starting requests"