def testfindExpectedDesign(self): """Perform the actual search for a design""" # Generate all the design candidates # Instantiate cost model cmConfig = { 'weight_network': 4, 'weight_disk': 1, 'weight_skew': 1, 'nodes': 10, 'max_memory': 1024, 'skew_intervals': 10, 'address_size': 64, 'window_size': 500 } cm = CostModel(self.collections, self.workload, cmConfig) d0 = self.getManMadeDesign() print d0 output_design = d0.toJSON() cost0 = cm.overallCost(d0) ds = Deserializer(output_design) d1 = ds.Deserialize() print d1 cost1 = cm.overallCost(d1) self.assertEqual(cost1, cost0)
def getDesign(self, design_path): assert design_path, "design path is empty" deserializer = Deserializer(design_path) design = deserializer.Deserialize() LOG.info("current design \n%s" % design) return design ## DEF ## CLASS
## FOR ## IF # This designer is only used for input processing designer = Designer(config, metadata_db, dataset_db) designer.setOptionsFromArguments(args) if args['init_design']: designer.load(False, None, True) exit("Initial Design done") ## IF if args['input_design']: # evaluate the input design and then quit ds = Deserializer() ds.loadDesignFile(args['input_design']) replay_design = ds.Deserialize() LOG.info("Read in design\n%s", replay_design) designer.load(True, replay_design) exit("Design evaluation done") ## IF start = time.time() try: ## ---------------------------------------------- ## STEP 1: INPUT PROCESSING ## ---------------------------------------------- if not (args['no_load'] or args['no_post_process']): if not args['mysql']: # If the user passed in '-', then we'll read from stdin inputFile = args['mongo'] if not inputFile: