Example #1
0
def processResults(args, partitions, output, workloads, results):
    data = hstore.parseJSONResults(output)
    for key in [ 'TXNTOTALPERSECOND' ]:
        if key in data:
            txnrate = float(data[key])
            break
    ## FOR
    assert not txnrate is None, \
        "Failed to extract throughput rate from output\n" + pformat(data)
    
    minTxnRate = float(data["MINTXNPERSECOND"]) if "MINTXNPERSECOND" in data else None
    maxTxnRate = float(data["MAXTXNPERSECOND"]) if "MAXTXNPERSECOND" in data else None
    stddevTxnRate = float(data["STDDEVTXNPERSECOND"]) if "STDDEVTXNPERSECOND" in data else None
    
    if int(txnrate) == 0: return
    LOG.info("Throughput: %.2f" % txnrate)
    
    results.append(txnrate)
    if args['workload_trace'] and not workloads is None:
        for f in workloads:
            LOG.info("Workload File: %s" % f)
        ## FOR
    ## IF
        
    # CODESPEED UPLOAD
    if args["codespeed_url"] and txnrate > 0:
        upload_url = args["codespeed_url"][0]
        
        if args["codespeed_revision"]:
            # FIXME
            last_changed_rev = args["codespeed_revision"][0]
            last_changed_rev, last_changed_date = svnInfo(env["hstore.svn"], last_changed_rev)
        else:
            last_changed_rev, last_changed_date = hstore.fabfile.get_version()
        LOG.info("last_changed_rev:", last_changed_rev)
        LOG.info("last_changed_date:", last_changed_date)
            
        codespeedBenchmark = benchmark
        if not args["codespeed_benchmark"] is None:
            codespeedBenchmark = args["codespeed_benchmark"]
        
        codespeedBranch = env["hstore.git_branch"]
        if not args["codespeed_branch"] is None:
            codespeedBranch = args["codespeed_branch"]
            
        LOG.info("Uploading %s results to CODESPEED at %s" % (benchmark, upload_url))
        result = hstore.codespeed.Result(
            commitid=last_changed_rev,
            branch=codespeedBranch,
            benchmark=codespeedBenchmark,
            project="H-Store",
            num_partitions=partitions,
            environment="ec2",
            result_value=txnrate,
            revision_date=last_changed_date,
            result_date=datetime.now(),
            min_result=minTxnRate,
            max_result=maxTxnRate,
            std_dev=stddevTxnRate
        )
        result.upload(upload_url)
    ## IF
    return
Example #2
0
def processResults(inst, fabric, args, partitions, output, workloads):
    data = hstore.parseJSONResults(output)
    
    txnrate = float(data['TXNTOTALPERSECOND'])
    if int(txnrate) == 0: return (data)
    LOG.info("Throughput: %.2f" % txnrate)
    
    txnlatency = float(data['TOTALAVGLATENCY'])
    LOG.info("Latency: %.2f" % txnlatency)
    
    dtxnPercent = float(data['DTXNTOTALCOUNT']) / float(data['TXNTOTALCOUNT'])
    LOG.info("DTXN Percentage: %.4f" % dtxnPercent)
    
    specPercent = float(data['SPECEXECTOTALCOUNT']) / float(data['TXNTOTALCOUNT'])
    LOG.info("Speculative Percentage: %.4f" % specPercent)
    
    minTxnRate = float(data["MINTXNPERSECOND"]) if "MINTXNPERSECOND" in data else None
    maxTxnRate = float(data["MAXTXNPERSECOND"]) if "MAXTXNPERSECOND" in data else None
    stddevTxnRate = float(data["STDDEVTXNPERSECOND"]) if "STDDEVTXNPERSECOND" in data else None
    
    if args['workload_trace'] and not workloads is None:
        for f in workloads:
            LOG.info("Workload File: %s" % f)
        ## FOR
    ## IF
        
    # CODESPEED UPLOAD
    if args["codespeed_url"] and txnrate > 0:
        upload_url = args["codespeed_url"][0]
        
        if args["codespeed_revision"]:
            # FIXME
            last_changed_rev = args["codespeed_revision"][0]
            last_changed_rev, last_changed_date = svnInfo(env["hstore.svn"], last_changed_rev)
        else:
            last_changed_rev, last_changed_date = fabric.get_version(inst)
        LOG.info("last_changed_rev:", last_changed_rev)
        LOG.info("last_changed_date:", last_changed_date)
            
        codespeedBenchmark = benchmark
        if not args["codespeed_benchmark"] is None:
            codespeedBenchmark = args["codespeed_benchmark"]
        
        codespeedBranch = fabric.env["hstore.git_branch"]
        if not args["codespeed_branch"] is None:
            codespeedBranch = args["codespeed_branch"]
            
        LOG.info("Uploading %s results to CODESPEED at %s" % (benchmark, upload_url))
        result = hstore.codespeed.Result(
            commitid=last_changed_rev,
            branch=codespeedBranch,
            benchmark=codespeedBenchmark,
            project="H-Store",
            num_partitions=partitions,
            environment="ec2",
            result_value=txnrate,
            revision_date=last_changed_date,
            result_date=datetime.now(),
            min_result=minTxnRate,
            max_result=maxTxnRate,
            std_dev=stddevTxnRate
        )
        result.upload(upload_url)
    ## IF
    return (data)
Example #3
0
def processResults(inst, fabric, args, partitions, output, workloads):
    data = hstore.parseJSONResults(output)

    txnrate = float(data['TXNTOTALPERSECOND'])
    if int(txnrate) == 0: return (data)
    LOG.info("Throughput: %.2f" % txnrate)

    txnlatency = float(data['TOTALAVGLATENCY'])
    LOG.info("Latency: %.2f" % txnlatency)

    dtxnPercent = float(data['DTXNTOTALCOUNT']) / float(data['TXNTOTALCOUNT'])
    LOG.info("DTXN Percentage: %.4f" % dtxnPercent)

    specPercent = float(data['SPECEXECTOTALCOUNT']) / float(
        data['TXNTOTALCOUNT'])
    LOG.info("Speculative Percentage: %.4f" % specPercent)

    minTxnRate = float(
        data["MINTXNPERSECOND"]) if "MINTXNPERSECOND" in data else None
    maxTxnRate = float(
        data["MAXTXNPERSECOND"]) if "MAXTXNPERSECOND" in data else None
    stddevTxnRate = float(
        data["STDDEVTXNPERSECOND"]) if "STDDEVTXNPERSECOND" in data else None

    if args['workload_trace'] and not workloads is None:
        for f in workloads:
            LOG.info("Workload File: %s" % f)
        ## FOR
    ## IF

    # CODESPEED UPLOAD
    if args["codespeed_url"] and txnrate > 0:
        upload_url = args["codespeed_url"][0]

        if args["codespeed_revision"]:
            # FIXME
            last_changed_rev = args["codespeed_revision"][0]
            last_changed_rev, last_changed_date = svnInfo(
                env["hstore.svn"], last_changed_rev)
        else:
            last_changed_rev, last_changed_date = fabric.get_version(inst)
        LOG.info("last_changed_rev:", last_changed_rev)
        LOG.info("last_changed_date:", last_changed_date)

        codespeedBenchmark = benchmark
        if not args["codespeed_benchmark"] is None:
            codespeedBenchmark = args["codespeed_benchmark"]

        codespeedBranch = fabric.env["hstore.git_branch"]
        if not args["codespeed_branch"] is None:
            codespeedBranch = args["codespeed_branch"]

        LOG.info("Uploading %s results to CODESPEED at %s" %
                 (benchmark, upload_url))
        result = hstore.codespeed.Result(commitid=last_changed_rev,
                                         branch=codespeedBranch,
                                         benchmark=codespeedBenchmark,
                                         project="H-Store",
                                         num_partitions=partitions,
                                         environment="ec2",
                                         result_value=txnrate,
                                         revision_date=last_changed_date,
                                         result_date=datetime.now(),
                                         min_result=minTxnRate,
                                         max_result=maxTxnRate,
                                         std_dev=stddevTxnRate)
        result.upload(upload_url)
    ## IF
    return (data)
def processResults(args, partitions, output, workloads, results):
    data = hstore.parseJSONResults(output)
    for key in ['TXNTOTALPERSECOND']:
        if key in data:
            txnrate = float(data[key])
            break
    ## FOR
    assert not txnrate is None, \
        "Failed to extract throughput rate from output\n" + pformat(data)

    minTxnRate = float(
        data["MINTXNPERSECOND"]) if "MINTXNPERSECOND" in data else None
    maxTxnRate = float(
        data["MAXTXNPERSECOND"]) if "MAXTXNPERSECOND" in data else None
    stddevTxnRate = float(
        data["STDDEVTXNPERSECOND"]) if "STDDEVTXNPERSECOND" in data else None

    if int(txnrate) == 0: return
    LOG.info("Throughput: %.2f" % txnrate)

    results.append(txnrate)
    if args['workload_trace'] and not workloads is None:
        for f in workloads:
            LOG.info("Workload File: %s" % f)
        ## FOR
    ## IF

    # CODESPEED UPLOAD
    if args["codespeed_url"] and txnrate > 0:
        upload_url = args["codespeed_url"][0]

        if args["codespeed_revision"]:
            # FIXME
            last_changed_rev = args["codespeed_revision"][0]
            last_changed_rev, last_changed_date = svnInfo(
                env["hstore.svn"], last_changed_rev)
        else:
            last_changed_rev, last_changed_date = hstore.fabfile.get_version()
        LOG.info("last_changed_rev:", last_changed_rev)
        LOG.info("last_changed_date:", last_changed_date)

        codespeedBenchmark = benchmark
        if not args["codespeed_benchmark"] is None:
            codespeedBenchmark = args["codespeed_benchmark"]

        codespeedBranch = env["hstore.git_branch"]
        if not args["codespeed_branch"] is None:
            codespeedBranch = args["codespeed_branch"]

        LOG.info("Uploading %s results to CODESPEED at %s" %
                 (benchmark, upload_url))
        result = hstore.codespeed.Result(commitid=last_changed_rev,
                                         branch=codespeedBranch,
                                         benchmark=codespeedBenchmark,
                                         project="H-Store",
                                         num_partitions=partitions,
                                         environment="ec2",
                                         result_value=txnrate,
                                         revision_date=last_changed_date,
                                         result_date=datetime.now(),
                                         min_result=minTxnRate,
                                         max_result=maxTxnRate,
                                         std_dev=stddevTxnRate)
        result.upload(upload_url)
    ## IF
    return