Author: challngr Date: Fri Jan 15 16:34:33 2016 New Revision: 1724848 URL: http://svn.apache.org/viewvc?rev=1724848&view=rev Log: UIMA-4577 Must update db when reassigning share under defrag.
Modified: uima/sandbox/uima-ducc/trunk/uima-ducc-rm/src/main/java/org/apache/uima/ducc/rm/scheduler/Machine.java uima/sandbox/uima-ducc/trunk/uima-ducc-rm/src/main/java/org/apache/uima/ducc/rm/scheduler/NodepoolScheduler.java Modified: uima/sandbox/uima-ducc/trunk/uima-ducc-rm/src/main/java/org/apache/uima/ducc/rm/scheduler/Machine.java URL: http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-rm/src/main/java/org/apache/uima/ducc/rm/scheduler/Machine.java?rev=1724848&r1=1724847&r2=1724848&view=diff ============================================================================== --- uima/sandbox/uima-ducc/trunk/uima-ducc-rm/src/main/java/org/apache/uima/ducc/rm/scheduler/Machine.java (original) +++ uima/sandbox/uima-ducc/trunk/uima-ducc-rm/src/main/java/org/apache/uima/ducc/rm/scheduler/Machine.java Fri Jan 15 16:34:33 2016 @@ -335,6 +335,13 @@ public class Machine this.virtual_share_order = share_order - blacklisted_shares; } + public void reassignShare(Share s, IRmJob newjob) + { + removeShare(s); + s.reassignJob(newjob); + assignShare(s); + } + public void assignShare(Share s) { String methodName = "assignShare"; @@ -345,9 +352,9 @@ public class Machine // Not transactional. If this turns into a problem we'll have to find a way persistence.setNodeProperties(id, RmNodes.Assignments, activeShares.size(), RmNodes.NPAssignments, countNpShares(), RmNodes.SharesLeft, shares_left); persistence.addAssignment(id, s.getJob().getId(), s, getQuantum(), s.getJob().getShortType()); // update jobs on machine and specific shares - logger.info(methodName, null, "Time to assign share in db", System.currentTimeMillis() - now); + logger.info(methodName, s.getJob().getId(), "Time to assign share", s.getId(), "in db", System.currentTimeMillis() - now); } catch (Exception e) { - logger.warn(methodName, null, "Cannot save state; shares_left", shares_left, e); + logger.warn(methodName, s.getJob().getId(), "Cannot save state for share", s.getId(), "shares_left", shares_left, e); } } @@ -364,9 +371,9 @@ public class Machine // Not transactional. If this turns into a problem we'll have to find a way persistence.setNodeProperties(id, RmNodes.Assignments, activeShares.size(), RmNodes.NPAssignments, countNpShares(), RmNodes.SharesLeft, shares_left); persistence.removeAssignment(id, s.getJob().getId(), s); // update jobs on machine and specific shares - logger.info(methodName, null, "Time to remove share in db", System.currentTimeMillis() - now); + logger.info(methodName, s.getJob().getId(), "Time to remove share", s.getId(), "in db", System.currentTimeMillis() - now); } catch (Exception e) { - logger.warn(methodName, null, "Cannot save state; shares_left", shares_left); + logger.warn(methodName, s.getJob().getId(), "Cannot save state for share", s.getId(), "shares_left", shares_left); } } Modified: uima/sandbox/uima-ducc/trunk/uima-ducc-rm/src/main/java/org/apache/uima/ducc/rm/scheduler/NodepoolScheduler.java URL: http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-rm/src/main/java/org/apache/uima/ducc/rm/scheduler/NodepoolScheduler.java?rev=1724848&r1=1724847&r2=1724848&view=diff ============================================================================== --- uima/sandbox/uima-ducc/trunk/uima-ducc-rm/src/main/java/org/apache/uima/ducc/rm/scheduler/NodepoolScheduler.java (original) +++ uima/sandbox/uima-ducc/trunk/uima-ducc-rm/src/main/java/org/apache/uima/ducc/rm/scheduler/NodepoolScheduler.java Fri Jan 15 16:34:33 2016 @@ -1872,7 +1872,8 @@ public class NodepoolScheduler if ( s.isPending() ) { if (s.getShareOrder() == nj.getShareOrder() ) { // same size, reassign it directly logger.debug(methodName, nj.getId(), "Reassign expanded share", s.toString(), "from", rich_j.getId()); - s.reassignJob(nj); + Machine m = s.getMachine(); + m.reassignShare(s, nj); rich_j.cancelPending(s); nj.assignShare(s); return false;