package edu.brown.designer.placement; import java.io.IOException; import java.util.Iterator; import java.util.Map; import java.util.TreeMap; import org.apache.log4j.Logger; import org.voltdb.catalog.Cluster; import org.voltdb.catalog.Database; import org.voltdb.catalog.Host; import org.voltdb.catalog.Site; import edu.brown.catalog.CatalogUtil; import edu.brown.utils.FileUtil; public class TransformCatalog { private static final Logger LOG = Logger.getLogger(TransformTransactionTraces.class); /** * Processes the catalog information and writes it File format like the * following: # of sites site # : host # * * @param host_site */ public static void transform(Database catalogDb) { StringBuilder sb = new StringBuilder(); sb.append(CatalogUtil.getNumberOfPartitions(catalogDb) + " " + CatalogUtil.getNumberOfSites(catalogDb) + "\n"); TreeMap<Integer, Integer> site_host = new TreeMap<Integer, Integer>(); Iterator<Cluster> cluster_it = catalogDb.getCatalog().getClusters().iterator(); int total_sites = 0; int host = 0; while (cluster_it.hasNext()) { Cluster c = cluster_it.next(); Iterator<Host> host_it = c.getHosts().iterator(); while (host_it.hasNext()) { Host h = host_it.next(); Iterator<Site> site_it = CatalogUtil.getSitesForHost(h).iterator(); while (site_it.hasNext()) { site_host.put(site_it.next().getId(), host); total_sites++; } host++; } } for (Map.Entry<Integer, Integer> site : site_host.entrySet()) { sb.append(site.getValue() + ":" + site.getKey() + "\n"); } assert (total_sites > 0) : "No sites!!!!"; try { FileUtil.writeStringToFile("/home/sw47/Desktop/system.info", sb.toString()); // FIXME } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } }