Package edu.brown.markov.containers

Source Code of edu.brown.markov.containers.SEATSMarkovGraphsContainer

package edu.brown.markov.containers;

import java.util.Collection;

import org.apache.log4j.Logger;
import org.voltdb.VoltType;
import org.voltdb.catalog.Procedure;

import edu.brown.markov.MarkovGraph;

public class SEATSMarkovGraphsContainer extends MarkovGraphsContainer {
    private static final Logger LOG = Logger.getLogger(SEATSMarkovGraphsContainer.class);
    private static final boolean d = LOG.isDebugEnabled();

    public SEATSMarkovGraphsContainer(Collection<Procedure> procedures) {
        super(procedures);
    }

    @Override
    public MarkovGraph getFromParams(Long txn_id, int base_partition, Object[] params, Procedure catalog_proc) {
        assert(this.hasher != null) : "Missing hasher!";
        MarkovGraph ret = null;
       
        String proc_name = catalog_proc.getName();
        int id = -1;
       
        // NewReservation
        if (proc_name.equals("NewReservation")) {
            if (d) LOG.debug(String.format("Selecting MarkovGraph using decision tree for %s txn #%d", proc_name, txn_id));
            id = this.processNewReservation(txn_id, base_partition, params, catalog_proc);
           
        // DEFAULT
        } else {
            if (d) LOG.debug(String.format("Using default MarkovGraph for %s txn #%d", proc_name, txn_id));
            id = base_partition;
        }
        ret = this.getOrCreate(id, catalog_proc, true);
        assert(ret != null);
       
        return (ret);
    }
   
    public int processDeleteReservation(long txn_id, int base_partition, Object[] params, Procedure catalog_proc) {
        int use_c_id_str = 0;
        int use_ff_c_id_str = 0;
       
        // C_ID == NULL
        long c_id = ((Long)params[1]).longValue();
        if (c_id == VoltType.NULL_BIGINT) {
            if (params[2] != null) {
                use_c_id_str = 1;
            } else {
                use_ff_c_id_str = 1;
            }
        }
       
        return (use_c_id_str | use_ff_c_id_str<<8);
    }
   
    private int processNewReservation(long txn_id, int base_partition, Object[] params, Procedure catalog_proc) {
        // HASHVALUE(F_ID)
        int id = base_partition;
       
        // UPDATE CUSTOMER
        if (((Long)params[1]).longValue() == VoltType.NULL_BIGINT) {
            id |= 1<<31;
        }
       
        return (id);
    }
}
TOP

Related Classes of edu.brown.markov.containers.SEATSMarkovGraphsContainer

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.