Exemple #1
0
def main():
    nprocs = (int(sys.argv[1]) if (len(sys.argv) > 1) else 10)
    nrequests = (int(sys.argv[2]) if (len(sys.argv) > 2) else 1)
    da.config(channel='fifo', clock='Lamport')
    ps = da.new(P, num=nprocs)
    for p in ps:
        da.setup(p, ((ps - {p}), nrequests))
    da.start(ps)
Exemple #2
0
def main():
    init = da.new(Init)
    da.setup(init, ())
    da.start(init)
    try:
        while True:
            pass
    except KeyboardInterrupt:
        self.output('SYSTEM EXITING')
        sys.exit((-1))
Exemple #3
0
def main():
    conf_file = (sys.argv[1] if (len(sys.argv) > 1) else '../tests/test/conf2.json')
    policy_file = (sys.argv[2] if (len(sys.argv) > 2) else '../tests/policy/policy2.xml')
    data_file = (sys.argv[3] if (len(sys.argv) > 3) else '../tests/data/data2.json')
    attr_file = (sys.argv[4] if (len(sys.argv) > 4) else '../tests/attr/attr2.json')
    random_input = (sys.argv[5] if (len(sys.argv) > 5) else False)
    print(random_input)
    m = da.new(Main)
    da.setup(m, (conf_file, policy_file, data_file, attr_file, random_input))
    da.start(m)
Exemple #4
0
def main():
    nprocs = (int(sys.argv[1]) if (len(sys.argv) > 1) else 10)
    nrounds = (int(sys.argv[2]) if (len(sys.argv) > 2) else 1)
    da.config(clock='Lamport')
    ps = da.new(P, num=nprocs)
    mainProc = da.new(X, num=1)
    for p in mainProc:
        da.setup({p}, (nprocs, {}, mainProc))
    da.start(mainProc)
    for p in ps:
        da.setup({p}, ((ps - {p}), nrounds, {}, mainProc))
    da.start(ps)
Exemple #5
0
 def setup(self, config, coord_list, worker_count, data, work_list):
     self.config = config
     self.coord_list = coord_list
     self.worker_count = worker_count
     self.data = data
     self.work_list = work_list
     self.subj_attr_dict = {}
     self.res_attr_dict = {}
     self.tentative_dict = {}
     work = da.new(w.Worker, num=self.config.num_workers)
     self.work_list = list(work)
     da.setup(work, (self.coord_list, self.config.policy_file, self.data))
     da.start(work)
 def setup(self, config, coord_list, worker_count, data, work_list, sta):
     self.config = config
     self.coord_list = coord_list
     self.worker_count = worker_count
     self.data = data
     self.work_list = work_list
     self.sta = sta
     work = da.new(w.Worker, num=self.config.num_workers)
     da.setup(work, (self.coord_list, self.config))
     da.start(work)
     self.work_list = list(work)
     self.attrVersionDict = {}
     self.pendingReadReq = {}
     self.currRunningWriteReq = {}
     self.sta = staticAnalysis.StaticAnalysis(self.config.attr_file, self.coord_list)
     self.common = None
Exemple #7
0
 def setup(self, numWorkers, coordinators, database, objectCoordMap):
     self.numWorkers = numWorkers
     self.coordinators = coordinators
     self.database = database
     self.objectCoordMap = objectCoordMap
     workers = da.new(worker.Worker, num=self.numWorkers)
     da.setup(workers,
              (self.coordinators, self.database, '../config/policy.xml'))
     da.start(workers)
     self.versionMap = dict()
     self.cachedUpdates = dict()
     self.readQueue = list()
     self.writeQueue = list()
     self.objectCoordMap = self.objectCoordMap
     self.workers = list(workers)
     self.workerNumber = 0
     self.numWorkers = self.numWorkers
Exemple #8
0
 def initProcesses(self, numCoordinator, numWorkerPerCoordinator):
     try:
         coordinators = da.new(coordinator.Coordinator, num=numCoordinator)
         clients = da.new(client.Client)
         db = da.new(database.Database)
         if (len(sys.argv) < 3):
             self.output('Improper Arguments')
             return (-1)
         objectCoordMap = dict()
         objectCoordMap['movieA'] = random.randint(0, (numCoordinator - 1))
         objectCoordMap['customerA'] = random.randint(
             0, (numCoordinator - 1))
         dbLoad = sys.argv[1]
         args = []
         args.append(dbLoad)
         da.setup(db, args)
         self.output('DbEmulator process set up')
         da.setup(coordinators, (numWorkerPerCoordinator,
                                 list(coordinators), db, objectCoordMap))
         self.output('Coordinators have been setup')
         da.setup(clients,
                  (list(coordinators), sys.argv[2], objectCoordMap))
         self.output('Client process has been set up')
         da.start(clients)
         da.start(coordinators)
         da.start(db)
         self.output('Started all processes')
         return 0
     except:
         self.output('STACK TRACE')
         self.output(traceback.print_exc())
         return (-1)
Exemple #9
0
 def init_all_processes(self, config):
     try:
         cl = da.import_da('client')
         co = da.import_da('coordinator')
         d = da.import_da('database')
     except ImportError:
         self.output('Error in import', sep='|')
     try:
         coord = da.new(co.Coordinator, num=config.num_coordinator)
         data = da.new(d.Database, num=1)
         clie = da.new(cl.Client, num=config.num_client)
     except:
         self.output('Error in process creation')
     try:
         coord_list = list(coord)
         data_list = list(data)
         counter = 0
         for a in clie:
             da.setup(a, (config, coord_list, counter))
             counter += 1
         da.setup(coord, (config, coord_list, 0, data, None, None))
         m = list()
         m.append(self.data_file)
         da.setup(data, m)
     except:
         self.output('Error in setup')
     try:
         da.start(clie)
         da.start(coord)
         da.start(data)
     except:
         self.output('Error in starting processes')
Exemple #10
0
def main():
    nprocs = (int(sys.argv[1]) if (len(sys.argv) > 1) else 10)
    nrounds = (int(sys.argv[2]) if (len(sys.argv) > 2) else 1)
    central = da.new(X, num=1)
    for p in central:
        da.setup({p}, (nrounds, nprocs, central))
    da.start(central)
    ps = da.new(P, num=nprocs)
    lucky = ps.pop()
    da.setup(ps, ((ps | {lucky}), False, nrounds, central))
    da.setup({lucky}, ((ps | {lucky}), True, nrounds, central))
    da.start((ps | {lucky}))
 def run(self):
     sub_co = da.new(Sub_Co, num=1)
     app = da.new(Application, num=3)
     da.setup(app, sub_co)
     da.start(sub_co)
     da.start(app)