Esempio n. 1
0
def RunBenchmark(iters, ops, r, w, out_prefix, pbs, branch, replicas=3,
        threads=50):
    for i in xrange(0, iters):
        # Checkout the right branch
        checkout_branch(branch)

        print "Restarting cassandra cluster"
        kill_cassandra("all-hosts")
        clean_cassandra("all-hosts")
        set_up_cassandra_ring("all-hosts")
        launch_cassandra_ring("all-hosts")

        # Set the right JMX value
        set_pbs_jmx(pbs)

        # Get the leader and run stress from there
        chosts = get_host_ips("all-hosts")
        leader = chosts[0]
        print "Using Cassandra leader ", leader

        out_insert = "./%s_insert_%d" % (out_prefix, i)
        out_read = "./%s_read_%d" % (out_prefix, i)

        f_out_insert = open(out_insert, "w")
        f_out_read = open(out_read, "w")

        # Run insert test
        run_process_single(leader, "cd cassandra; ./tools/bin/cassandra-stress"\
                           " -d %s -l %d -e %s -n %d -t %d -o insert" % (leader,
                               replicas, GetConsistencyLevel(w), ops, threads),
                           user="******", stdout=f_out_insert,
                           stderr=f_out_insert)

        # Run read test
        run_process_single(leader, "cd cassandra; ./tools/bin/cassandra-stress"\
                           " -d %s -l %d -e %s -n %d -t %d -o read" % (leader,
                               replicas, GetConsistencyLevel(r), ops, threads),
                           user="******", stdout=f_out_read, stderr=f_out_read)
                        help='Launch EC2 cluster')
    parser.add_argument('--terminate', '-t', action='store_true',
                        help='Terminate the EC2 cluster')
    parser.add_argument('--restart', '-r', action='store_true',
                        help='Restart cassandra cluster')
    parser.add_argument('--machines', '-n', dest='machines', nargs='?',
                        default=4, type=int,
                        help='Number of machines in cluster, default=4')
    args = parser.parse_args()

    if args.launch:
        print "Launching cassandra cluster"
        start_cluster(args.machines)
        setup_cluster()
        clone_cassandra_pbs()
        checkout_branch("for-cassandra")

    if args.restart:
        print "Restarting cassandra cluster"
        kill_cassandra("all-hosts")
        clean_cassandra("all-hosts")
        set_up_cassandra_ring("all-hosts")
        launch_cassandra_ring("all-hosts")

    if args.terminate:
        print "Terminating cassandra cluster"
        terminate_cluster()

    if not args.launch and not args.restart and not args.terminate:
        parser.print_help()