Package edu.brown.markov

Source Code of edu.brown.markov.EstimationThresholds

package edu.brown.markov;

import java.io.File;
import java.io.IOException;
import java.lang.reflect.Field;

import org.json.JSONException;
import org.json.JSONObject;
import org.json.JSONStringer;
import org.voltdb.catalog.Database;

import edu.brown.utils.ArgumentsParser;
import edu.brown.utils.JSONSerializable;
import edu.brown.utils.JSONUtil;

/**
* Represents a set of thresholds used when estimating transaction information
*/
public class EstimationThresholds implements JSONSerializable {
   
    private static final float DEFAULT_THRESHOLD = 0.80f;

    public enum Members {
        SINGLE_PARTITION,
        READ,
        WRITE,
        FINISHED,
        ABORT,
    };
   
    public float single_partition = DEFAULT_THRESHOLD;
    public float read = DEFAULT_THRESHOLD;
    public float write = DEFAULT_THRESHOLD;
    public float done = DEFAULT_THRESHOLD;
    public float abort = 0.0001f;
   
    public EstimationThresholds() {
        // Nothing to see here...
    }
   
    public EstimationThresholds(float default_value) {
        this.single_partition = default_value;
        this.read = default_value;
        this.write = default_value;
        this.done = default_value;
//        this.abort = default_value;
    }
   
    private static EstimationThresholds CACHED_DEFAULT;
    public static EstimationThresholds factory() {
        if (CACHED_DEFAULT == null) {
            synchronized (EstimationThresholds.class) {
                if (CACHED_DEFAULT == null) {
                    CACHED_DEFAULT = new EstimationThresholds();
                }
            } // SYNCH
        }
        return (CACHED_DEFAULT);
    }
   
    /**
     * @return the single_partition
     */
    public double getSinglePartitionThreshold() {
        return this.single_partition;
    }
    /**
     * @param single_partition the single_partition to set
     */
    public void setSinglePartitionThreshold(float single_partition) {
        this.single_partition = single_partition;
    }

    /**
     * @return the read
     */
    public float getReadThreshold() {
        return this.read;
    }
    /**
     * @param read the read to set
     */
    public void setReadThreshold(float read) {
        this.read = read;
    }

    /**
     * @return the write
     */
    public float getWriteThreshold() {
        return this.write;
    }
    /**
     * @param write the write to set
     */
    public void setWriteThreshold(float write) {
        this.write = write;
    }

    /**
     * @return the done
     */
    public float getDoneThreshold() {
        return this.done;
    }
    /**
     * @param done the done to set
     */
    public void setDoneThreshold(float done) {
        this.done = done;
    }

    /**
     * @return the abort
     */
    public float getAbortThreshold() {
        return this.abort;
    }
    /**
     * @param abort the abort to set
     */
    public void setAbortThreshold(float abort) {
        this.abort = abort;
    }
   
    @Override
    public String toString() {
        Class<?> confClass = this.getClass();
        StringBuilder sb = new StringBuilder();
        for (Field f : confClass.getFields()) {
            Object obj = null;
            try {
                obj = f.get(this);
            } catch (IllegalAccessException ex) {
                throw new RuntimeException(ex);
            }
            if (sb.length() > 0) sb.append(", ");
            sb.append(String.format("%s=%s", f.getName().toUpperCase(), obj));
        } // FOR
        return sb.toString();
    }
   
    // -----------------------------------------------------------------
    // SERIALIZATION
    // -----------------------------------------------------------------

    @Override
    public void load(File input_path, Database catalog_db) throws IOException {
        JSONUtil.load(this, catalog_db, input_path);
    }
   
    @Override
    public void save(File output_path) throws IOException {
        JSONUtil.save(this, output_path);
    }
   
    @Override
    public String toJSONString() {
        return (JSONUtil.toJSONString(this));
    }
   
    @Override
    public void toJSON(JSONStringer stringer) throws JSONException {
        JSONUtil.fieldsToJSON(stringer, this, EstimationThresholds.class, EstimationThresholds.Members.values());
    }
   
    @Override
    public void fromJSON(JSONObject json_object, Database catalog_db) throws JSONException {
        JSONUtil.fieldsFromJSON(json_object, catalog_db, this, EstimationThresholds.class, EstimationThresholds.Members.values());
    }
   
    public static void main(String[] vargs) throws Exception {
        ArgumentsParser args = ArgumentsParser.load(vargs);
        assert(args != null);
        EstimationThresholds et = new EstimationThresholds();
        System.out.println(et.toJSONString());
    }
}
TOP

Related Classes of edu.brown.markov.EstimationThresholds

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.