prioritizedExperimentListOptional.get().getPrioritizedExperiments().forEach(exp -> prioritizedExperimentList.addPrioritizedExperiment(exp)); } else { LOGGER.debug("[cache] prioritizedExperimentList = {}", prioritizedExperimentList.getPrioritizedExperiments());
PrioritizedExperimentList prioritizedExperimentList = new PrioritizedExperimentList(); int priorityValue = 1; for (com.intuit.wasabi.repository.cassandra.pojo.Application priority : UninterruptibleUtil.getUninterruptibly(applicationFuture).all()) { Experiment exp = experimentMap.get(Experiment.ID.valueOf(uuid)); if (nonNull(exp)) { prioritizedExperimentList.addPrioritizedExperiment(PrioritizedExperiment.from(exp, priorityValue).build()); priorityValue += 1; } else { for (PrioritizedExperiment exp : prioritizedExperimentList.getPrioritizedExperiments()) { LOGGER.debug("prioritizedExperiment=> {} ", exp);
PrioritizedExperimentList appPriorities = new PrioritizedExperimentList(); Map<Experiment.ID, com.intuit.wasabi.experimentobjects.Experiment> experimentMap = new HashMap<>(); Table<Experiment.ID, Experiment.Label, String> userAssignments = HashBasedTable.create(); appPriorities.getPrioritizedExperiments() .stream() .filter(experiment -> (null != experiment.getIsRapidExperiment() && experiment.getIsRapidExperiment()) for (PrioritizedExperiment experiment : appPriorities.getPrioritizedExperiments()) { LOGGER.debug("Now processing: {}", experiment); List<Experiment.Label> pExpLables = appPriorities.getPrioritizedExperiments().stream().map(pExp -> pExp.getLabel()).collect(Collectors.toList()); experimentBatch.getLabels().forEach(iExpLabel -> { if (!pExpLables.contains(iExpLabel)) {
/** * {@inheritDoc} */ public Map<Experiment.ID, Integer> getPriorityPerID(Application.Name applicationName) { return getPriorities(applicationName, false) .getPrioritizedExperiments() .parallelStream() .collect(Collectors.toMap(PrioritizedExperiment::getID, PrioritizedExperiment::getPriority)); } }
PrioritizedExperimentList prioritizedExperimentList = new PrioritizedExperimentList(); for (com.intuit.wasabi.repository.cassandra.pojo.Experiment experimentPojo : experimentPojos) { prioritizedExperimentList .addPrioritizedExperiment(PrioritizedExperiment .from(ExperimentHelper .makeExperiment(experimentPojo),
/** * Get the experiment object for given application & experiment label. * <p> * If metadata cache is enabled then fetch from cache else fetch from database. * * @param applicationName * @param experimentLabel * @return experiment object */ protected Experiment getExperiment(Application.Name applicationName, Experiment.Label experimentLabel) { Experiment result = null; if (metadataCacheEnabled) { //First fetch experiment list sorted by priorities (contains non-deleted experiment-ids). //This experiment-priority list is the source of truth for ALL assignment flows while looking up experiment... Optional<PrioritizedExperimentList> prioritizedExperimentListOptional = metadataCache.getPrioritizedExperimentListMap(applicationName); if (prioritizedExperimentListOptional.isPresent()) { //Iterate as per experiment priority and look for the matching experiment by their label for (PrioritizedExperiment prioritizedExperiment : prioritizedExperimentListOptional.get().getPrioritizedExperiments()) { if (experimentLabel.equals(prioritizedExperiment.getLabel())) { //Upon match, get the complete experiment object from cache result = metadataCache.getExperimentById(prioritizedExperiment.getID()).orElse(null); break; } } } } else { result = repository.getExperiment(applicationName, experimentLabel); } return result; }
for (UUID uuid : priority.getPriorities()) { Experiment exp = experimentMap.get(Experiment.ID.valueOf(uuid)); prioritizedExperimentList.addPrioritizedExperiment(PrioritizedExperiment.from(exp, priorityValue).build()); priorityValue += 1; for (PrioritizedExperiment exp : prioritizedExperimentList.getPrioritizedExperiments()) { LOGGER.debug("prioritizedExperiment=> {} ", exp);
priorities.getPriorities(experiment.getApplicationName(), true); for (PrioritizedExperiment prioritizedExperiment : prioritizedExperiments.getPrioritizedExperiments()) { if (prioritizedExperiment.getID().equals(experiment.getID())) { experiment.setPriority(prioritizedExperiment.getPriority());