示例#1
0
def main():
    from kill_local import kill_local_gnrs

    kill_local_gnrs()
    config_file = join(gnrs_dir, "local/local_config")
    working_dir = join(gnrs_dir, "local/log_local/")
    print "Clearing old GNS logs .."
    if not os.path.exists(working_dir):
        os.system("mkdir -p " + working_dir)
    os.system("rm -rf " + working_dir + "/*")

    if exp_config.delete_paxos_log:
        print "Deleting paxos logs .."
        os.system("rm -rf " + exp_config.paxos_log_folder + "/*")
    else:
        print "NOT deleting paxos logs ..."
    os.system("./kill_mongodb_local.sh;./run_mongodb_local.sh")

    # generate config file

    # generate workloads

    # os.system('sleep 100')
    # os.system('pssh -h hosts.txt "killall -9 java"')
    f = open(config_file)
    first_lns = False
    for line in f:
        tokens = line.split()
        id = tokens[0]
        hostname = tokens[2]

        # if id == '0':
        #    print 'MESSAGE: Not running node with ID = ' + id
        #    continue;
        if tokens[1] == "yes":
            if is_failed_node(id):
                print "NODE FAILED = ", id
                continue
            run_name_server(id, working_dir, config_file)
        else:
            if first_lns == False:
                time.sleep(exp_config.ns_sleep)  # sleep for 10 sec after starting name servers
                first_lns = True
            run_local_name_server(id, working_dir, config_file)
    # not doing restart stuff right now
    sys.exit(2)
    restart_period = 20
    number_restarts = 1
    restart_node = "2"
    for i in range(number_restarts):
        time.sleep(restart_period)
        print "Restarting node " + restart_node
        run_name_server(restart_node, working_dir, config_file)
        print "Done"
示例#2
0
def main():
    from kill_local import kill_local_gnrs
    kill_local_gnrs()
    config_file = join(gnrs_dir, 'local/local_config')
    working_dir = join(gnrs_dir, 'local/log_local/')
    print 'Clearing old GNS logs ..'
    if not os.path.exists(working_dir):
        os.system('mkdir -p ' + working_dir)
    os.system('rm -rf ' + working_dir + '/*')

    if exp_config.delete_paxos_log:
        print 'Deleting paxos logs ..'
        os.system('rm -rf ' + exp_config.paxos_log_folder + '/*')
    else:
        print 'NOT deleting paxos logs ...'
    os.system('./kill_mongodb_local.sh;./run_mongodb_local.sh')

    # generate config file

    # generate workloads

    #os.system('sleep 100')
    #os.system('pssh -h hosts.txt "killall -9 java"')
    f = open(config_file)
    first_lns = False
    for line in f:
        tokens = line.split()
        id = tokens[0]
        hostname = tokens[2]

        #if id == '0':
        #    print 'MESSAGE: Not running node with ID = ' + id
        #    continue;
        if tokens[1] == 'yes':
            if is_failed_node(id):
                print 'NODE FAILED = ', id
                continue
            run_name_server(id, working_dir, config_file)
        else:
            if (first_lns == False):
                time.sleep(exp_config.ns_sleep
                           )  # sleep for 10 sec after starting name servers
                first_lns = True
            run_local_name_server(id, working_dir, config_file)
    # not doing restart stuff right now
    sys.exit(2)
    restart_period = 20
    number_restarts = 1
    restart_node = '2'
    for i in range(number_restarts):
        time.sleep(restart_period)
        print 'Restarting node ' + restart_node
        run_name_server(restart_node, working_dir, config_file)
        print 'Done'
示例#3
0
def run_exp():
    from kill_local import kill_local_gnrs
    kill_local_gnrs()
    node_config = exp_config.node_config
    # folder where GNS logs are output
    log_output_folder = os.path.join(exp_config.output_folder, exp_config.DEFAULT_GNS_OUTPUT_FOLDER)
    # folder where GNS stats are output
    stats_folder = os.path.join(exp_config.output_folder, exp_config.DEFAULT_STATS_FOLDER)

    print 'Clearing old GNS logs ..'
    if not os.path.exists(log_output_folder):
        os.system('mkdir -p ' + log_output_folder)
    os.system('rm -rf ' + log_output_folder + '/*')

    if exp_config.clean_start:
        print 'Doing clean start ...'
        os.system('rm -rf ' + exp_config.paxos_log_folder + '/*')
        os.system(script_folder + '/kill_mongodb_local.sh ' + exp_config.mongodb_data_folder)
        os.system(script_folder + '/run_mongodb_local.sh ' + exp_config.mongo_bin_folder + ' ' +
                  exp_config.mongodb_data_folder + ' ' + str(exp_config.mongo_port))
    else:
        print 'Resuming gns ...'

    # generate config file
    write_local_config_file(exp_config.node_config, exp_config.num_ns, exp_config.num_lns,
                            exp_config.const_latency_value, exp_config.random_node_ids)

    # generate workloads
    # todo move workload generation from here
    # generate_all_traces()

    #os.system('sleep 100')
    #os.system('pssh -h hosts.txt "killall -9 java"')
    f = open(node_config)
    first_lns = False
    for line in f:
        tokens = line.split()
        id = tokens[0]
        hostname = tokens[2]
        if tokens[1] == 'yes':
            if is_failed_node(id):
                print 'NODE FAILED = ', id
                continue
            name_server.run_name_server(id, log_output_folder)
        else:
            if first_lns is False:
                time.sleep(exp_config.ns_sleep)  # sleep so that name servers load name records into DB
                first_lns = True
            update_trace = None
            if exp_config.is_experiment_mode and exp_config.experiment_run_time >= 0:
                update_trace = get_update_trace(exp_config.trace_folder, id)
            local_name_server.run_local_name_server(id, log_output_folder, update_trace)

    # kill local
    if not exp_config.is_experiment_mode or exp_config.experiment_run_time < 0:
        print 'Not experiment mode. GNS running.'
        return
        
    print 'Sleeping until experiment finishes ...'
    time.sleep(exp_config.experiment_run_time + exp_config.extra_wait)

    kill_local_gnrs()

    # if exp_config.output_folder.endswith('/'):
    #     stats_folder = exp_config.output_folder[:-1] + '_stats'
    parse_log(log_output_folder, stats_folder)
    # parse logs and generate output

    # not doing restart stuff right now
    sys.exit(2)
    restart_period = 20
    number_restarts = 1
    restart_node = '2'
    for i in range(number_restarts):
        time.sleep(restart_period)
        print 'Restarting node ' + restart_node 
        run_name_server(restart_node, log_output_folder, node_config)
        print 'Done'