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)
Ejemplo n.º 2
0
    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
Ejemplo n.º 3
0
        ## 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: