Beispiel #1
0
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()
Beispiel #3
0
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()
Beispiel #4
0
#        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()
Beispiel #6
0
        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:
Beispiel #10
0
#         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'
Beispiel #11
0
        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"