args.require(
ArgumentsParser.PARAM_CATALOG,
ArgumentsParser.PARAM_WORKLOAD,
ArgumentsParser.PARAM_MARKOV_OUTPUT
);
final PartitionEstimator p_estimator = new PartitionEstimator(args.catalogContext, args.hasher);
Class<? extends MarkovGraphsContainer> containerClass = MarkovGraphsContainer.class;
// Check whether we are generating the global graphs or the clustered versions
Boolean global = args.getBooleanParam(ArgumentsParser.PARAM_MARKOV_GLOBAL);
if (global != null && global == true) {
containerClass = GlobalMarkovGraphsContainer.class;
// TPCCMarkovGraphsContainer
} else if (args.catalog_type == ProjectType.TPCC) {
containerClass = TPCCMarkovGraphsContainer.class;
// SEATSMarkovGraphsContainer
} else if (args.catalog_type == ProjectType.SEATS) {
containerClass = SEATSMarkovGraphsContainer.class;
// AuctionMarkMarkovGraphsContainer
} else if (args.catalog_type == ProjectType.AUCTIONMARK) {
containerClass = AuctionMarkMarkovGraphsContainer.class;
}
assert(containerClass != null);
Map<Integer, MarkovGraphsContainer> markovs_map = null;
// Check whether we want to update an existing collection of MarkovGraphsContainers
if (args.hasParam(ArgumentsParser.PARAM_MARKOV)) {
File path = args.getFileParam(ArgumentsParser.PARAM_MARKOV);
markovs_map = MarkovGraphsContainerUtil.load(args.catalogContext, path);
MarkovGraphsContainerUtil.setHasher(markovs_map, p_estimator.getHasher());
}
if (markovs_map == null) {
markovs_map = MarkovGraphsContainerUtil.createMarkovGraphsContainers(args.catalogContext,
args.workload,