/** * Add fake partitions to the loaded catalog Assuming that there is one partition per site * * @param num_partitions */ protected void addPartitions(int num_partitions) throws Exception { // HACK! If we already have this many partitions in the catalog, then we won't recreate it // This fixes problems where we need to reference the same catalog objects in multiple test // cases if (CatalogUtil.getNumberOfPartitions(catalog_db) != num_partitions) { ClusterConfiguration cc = new ClusterConfiguration(); for (Integer i = 0; i < num_partitions; i++) { cc.addPartition("localhost", 0, i); // System.err.println("[" + i + "] " + Arrays.toString(triplets.lastElement())); } // FOR catalog = FixCatalog.addHostInfo(catalog, cc); this.init(this.last_type, catalog); } Cluster cluster = CatalogUtil.getCluster(catalog_db); assertEquals(num_partitions, cluster.getNum_partitions()); assertEquals(num_partitions, CatalogUtil.getNumberOfPartitions(cluster)); }
protected void initializeCluster(int num_hosts, int num_sites, int num_partitions) throws Exception { // HACK! If we already have this many partitions in the catalog, then we won't recreate it // This fixes problems where we need to reference the same catalog objects in multiple test // cases if (CatalogUtil.getNumberOfHosts(catalog_db) != num_hosts || CatalogUtil.getNumberOfSites(catalog_db) != (num_hosts * num_sites) || CatalogUtil.getNumberOfPartitions(catalog_db) != (num_hosts * num_sites * num_partitions)) { catalog = FixCatalog.addHostInfo(catalog, "localhost", num_hosts, num_sites, num_partitions); this.init(this.last_type, catalog); } Cluster cluster = CatalogUtil.getCluster(catalog_db); assertEquals(num_hosts, CatalogUtil.getNumberOfHosts(catalog_db)); assertEquals((num_hosts * num_sites), CatalogUtil.getNumberOfSites(catalog_db)); assertEquals( (num_hosts * num_sites * num_partitions), CatalogUtil.getNumberOfPartitions(cluster)); assertEquals((num_hosts * num_sites * num_partitions), cluster.getNum_partitions()); }
/** * Initialize TheHashinator * * @param catalog A pointer to the catalog data structure. */ public static void initialize(Catalog catalog) { Cluster cluster = catalog.getClusters().get("cluster"); partitionCount = cluster.getNum_partitions(); }
public CatalogContext(Catalog catalog, File pathToCatalogJar) { // check the heck out of the given params in this immutable class assert (catalog != null); if (catalog == null) { throw new RuntimeException("Can't create CatalogContext with null catalog."); } this.jarPath = pathToCatalogJar; this.catalog = catalog; this.cluster = CatalogUtil.getCluster(this.catalog); this.database = CatalogUtil.getDatabase(this.catalog); this.hosts = this.cluster.getHosts(); this.sites = this.cluster.getSites(); if (this.jarPath != null) { this.catalogClassLoader = new JarClassLoader(this.jarPath.getAbsolutePath()); this.paramMappings = ParametersUtil.getParameterMappingsSetFromJar(this.database, this.jarPath); } else { this.catalogClassLoader = null; this.paramMappings = null; } // ------------------------------------------------------------ // PROCEDURES // ------------------------------------------------------------ this.procedures = database.getProcedures(); this.proceduresArray = new Procedure[this.procedures.size() + 1]; for (Procedure proc : this.procedures) { this.proceduresArray[proc.getId()] = proc; if (proc.getSystemproc()) { this.sysProcedures.add(proc); } else if (proc.getMapreduce()) { this.mrProcedures.add(proc); } else { this.regularProcedures.add(proc); } } // FOR authSystem = new AuthSystem(database, cluster.getSecurityenabled()); siteTracker = null; // new SiteTracker(cluster.getSites()); // count nodes this.numberOfHosts = cluster.getHosts().size(); // count exec sites this.numberOfSites = cluster.getSites().size(); // ------------------------------------------------------------ // PARTITIONS // ------------------------------------------------------------ this.numberOfPartitions = cluster.getNum_partitions(); this.partitions = new Partition[this.numberOfPartitions]; this.partitionIdArray = new Integer[this.numberOfPartitions]; this.partitionSingletons = new PartitionSet[this.numberOfPartitions]; this.partitionSiteXref = new int[this.numberOfPartitions]; for (Partition part : CatalogUtil.getAllPartitions(catalog)) { int p = part.getId(); this.partitions[p] = part; this.partitionIdArray[p] = Integer.valueOf(p); this.partitionSingletons[p] = new PartitionSet(p); this.partitionIdCollection.add(this.partitionIdArray[p]); this.partitionSiteXref[part.getId()] = ((Site) part.getParent()).getId(); } // FOR // ------------------------------------------------------------ // TABLES // ------------------------------------------------------------ for (Table tbl : database.getTables()) { if (tbl.getSystable()) { sysTables.add(tbl); } else if (tbl.getMapreduce()) { mapReduceTables.add(tbl); } else if (tbl.getMaterializer() != null) { viewTables.add(tbl); } else { dataTables.add(tbl); if (tbl.getIsreplicated()) { replicatedTables.add(tbl); } if (tbl.getEvictable()) { evictableTables.add(tbl); } } } // FOR // PLANFRAGMENTS this.initPlanFragments(); }