Skip to content

Commit

Permalink
Merge pull request #117 from jialinsun/0.3.3.0
Browse files Browse the repository at this point in the history
Fix issue #30
  • Loading branch information
ywang19 committed Sep 10, 2013
2 parents d8cbb95 + 3db13ca commit 9328ad7
Show file tree
Hide file tree
Showing 10 changed files with 66 additions and 8 deletions.
14 changes: 13 additions & 1 deletion dev/cosbench-controller-web/WEB-INF/freemarker/index.ftl
Original file line number Diff line number Diff line change
Expand Up @@ -155,6 +155,11 @@
<input type="button" onclick="cancelWorkloads();" value="Cancel">
</form>
<p><a href="submit.html">submit new workloads</a></p>
<#if loadArch == false>
<p><a href="index.html?loadArch=true">load archived workloads</p>
<#elseif loadArch == true>
<p><a href="index.html?loadArch=false">unload archived workloads</p>
</#if>
<p><a href="config.html">config workloads</a></p>

<div>
Expand Down Expand Up @@ -186,7 +191,7 @@
</tr>
</#list>
</table>

<#if loadArch == true>
<h3>Archived Workloads</h3>
<p><a href="matrix.html?type=arch&ops=read&ops=write&ops=delete&metrics=rt&rthisto=_95rt&metrics=t&metrics=succ">view performance matrix</a></p>
<table class="info-table">
Expand Down Expand Up @@ -219,6 +224,13 @@
<#if (hInfos?size + archInfos?size < 10) >
<p class="warn">There are ${hInfos?size + archInfos?size} Historical and Archived workloads.</p>
</#if>

<#else>
<#if (hInfos?size < 10) >
<p class="warn">There are ${hInfos?size} Historical workloads.</p>
</#if>
</#if>

<form id="resubmitForm" method="POST" action="index.html">
<input id="resubmitIds" type="hidden" name="resubmitIds" value="">
<input type="hidden" name="resubmit" value="yes">
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,7 @@ protected ModelAndView process(HttpServletRequest req,
String cancel = req.getParameter("cancel");
String resubmitIds = req.getParameter("resubmitIds");
String resubmit = req.getParameter("resubmit");
String loadArch = req.getParameter("loadArch");
if (!StringUtils.isEmpty(id) && !StringUtils.isEmpty(up)) {
boolean isUp = up.equalsIgnoreCase("yes") ? true : false;
boolean changeOrderOk = controller.changeOrder(id, neighId,
Expand All @@ -72,10 +73,16 @@ protected ModelAndView process(HttpServletRequest req,
controller.fire(newId);
}
}
if (!StringUtils.isEmpty(loadArch) && loadArch.equals("true"))
controller.setloadArch(true);
else if (!StringUtils.isEmpty(loadArch) && loadArch.equals("false"))
controller.setloadArch(false);

result.addObject("cInfo", controller.getControllerInfo());
result.addObject("aInfos", controller.getActiveWorkloads());
result.addObject("hInfos", controller.getHistoryWorkloads());
result.addObject("archInfos", controller.getArchivedWorkloads());
result.addObject("loadArch", controller.getloadArch());
return result;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,7 @@ protected ModelAndView process(String wid, String sid) {
StageInfo sInfo = wInfo.getStageInfo(sid);
if (sInfo == null)
throw new NotFoundException();
if (sInfo.getSnapshotRegistry().getSize() == 0)
if (controller.getloadArch() && sInfo.getSnapshotRegistry().getSize() == 0)
try {
controller.getWorkloadLoader().loadStagePageInfo(wInfo,
sInfo.getId());
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,7 @@ protected ModelAndView process(String id) {
WorkloadInfo info = controller.getWorkloadInfo(id);
if (info == null)
throw new NotFoundException();
if (info.getArchived() && info.getReport().getAllMetrics().length==0) {
if (controller.getloadArch() && info.getArchived() && info.getReport().getAllMetrics().length==0) {
try {
controller.getWorkloadLoader().loadWorkloadPageInfo(info);
} catch (IOException e) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -79,6 +79,11 @@ public synchronized void saveWorkload(WorkloadContext workload) {
LOGGER.debug("workload {} has been saved in RAM", workload.getId());
LOGGER.debug("{} workloads have been removed from RAM", removed.length);
}

@Override
public synchronized void removeWorkload(WorkloadContext workload) {
workloads.remove(workload);
}

@Override
public synchronized WorkloadContext getWorkload(String id) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -58,6 +58,11 @@ public WorkloadContext[] add(WorkloadContext workload) {
toBeRemoved.clear(); // end transaction
return result;
}

@Override
public void remove(WorkloadContext workload) {
list.remove(workload.getId());
}

private void shrinkListSize() {
Iterator<WorkloadContext> iter = list.values().iterator();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -31,4 +31,6 @@ interface WorkloadList {

public WorkloadContext[] add(WorkloadContext workload);

public void remove(WorkloadContext workload);

}
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,8 @@ public interface WorkloadRepository {
public int getSize();

public void saveWorkload(WorkloadContext workload);

public void removeWorkload(WorkloadContext workload);

public WorkloadContext getWorkload(String id);

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -55,6 +55,8 @@ class COSBControllerService implements ControllerService, WorkloadListener {
private WorkloadArchiver archiver = new SimpleWorkloadArchiver();
private WorkloadLoader loader = new SimpleWorkloadLoader();
private WorkloadRepository memRepo = new RAMWorkloadRepository();

private boolean loadArch = false;

public COSBControllerService() {
/* empty */
Expand All @@ -74,11 +76,6 @@ public void init() {
TimeUnit.MILLISECONDS, new PriorityBlockingQueue<Runnable>(
memRepo.getMaxCapacity(),
new OrderFutureComparator()));
try {
loadArchivedWorkload();
} catch (IOException e) {
e.printStackTrace();
}
}

public void loadArchivedWorkload() throws IOException {
Expand All @@ -89,6 +86,13 @@ public void loadArchivedWorkload() throws IOException {
memRepo.saveWorkload((WorkloadContext) workloadContext);
}

public void unloadArchivedWorkload() {
for(WorkloadContext workload : memRepo.getArchivedWorkloads()) {
memRepo.removeWorkload(workload);
workload = null;
}
}


@Override
public String submit(XmlConfig config) {
Expand Down Expand Up @@ -128,6 +132,23 @@ public WorkloadLoader getWorkloadLoader() {
return loader;
}

public boolean getloadArch() {
return loadArch;
}

public void setloadArch(boolean loadArch) {
this.loadArch = loadArch;
if(getloadArch() == true)
try {
loadArchivedWorkload();
} catch (IOException e) {
e.printStackTrace();
}
else if(getloadArch() == false) {
//
}
}

private String generateWorkloadId() {
return "w" + count.incrementAndGet();
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -56,5 +56,9 @@ public interface ControllerService {
public File getWorkloadConfig(WorkloadInfo info);

public WorkloadLoader getWorkloadLoader();

public boolean getloadArch();

public void setloadArch(boolean loadArch);

}

0 comments on commit 9328ad7

Please sign in to comment.