Operational Remediation Reports
Atomic Claim Remediation Report
Contend for a single claim slot and turn the rejected count into a grant, queue, or reject remediation action.
claim contention
The single claim slot and request count are scalars, so the claimed and rejected counts that drive the remediation action stay deterministic and free of atomic identity.
Atomic Claim Remediation Report
AtomicClaimRemediationReport.scala
Replay: real traced execution (multi-file project)
object Main {
def main(args: Array[String]): Unit = {
val requests = 1
val slotCapacity = 1
var claimed = 0
var rejected = 0
for (i <- 1 to requests) {
if (claimed < slotCapacity) {
claimed = claimed + 1
} else {
rejected = rejected + 1
}
}
var action = "grant"
if (rejected == 1) {
action = "queue"
}
if (rejected >= 2) {
action = "reject"
}
println("requests=" + requests + " claimed=" + claimed + " rejected=" + rejected + " " + action)
}
}
object Main {
def main(args: Array[String]): Unit = {
val requests = 2
val slotCapacity = 1
var claimed = 0
var rejected = 0
for (i <- 1 to requests) {
if (claimed < slotCapacity) {
claimed = claimed + 1
} else {
rejected = rejected + 1
}
}
var action = "grant"
if (rejected == 1) {
action = "queue"
}
if (rejected >= 2) {
action = "reject"
}
println("requests=" + requests + " claimed=" + claimed + " rejected=" + rejected + " " + action)
}
}
object Main {
def main(args: Array[String]): Unit = {
val requests = 3
val slotCapacity = 1
var claimed = 0
var rejected = 0
for (i <- 1 to requests) {
if (claimed < slotCapacity) {
claimed = claimed + 1
} else {
rejected = rejected + 1
}
}
var action = "grant"
if (rejected == 1) {
action = "queue"
}
if (rejected >= 2) {
action = "reject"
}
println("requests=" + requests + " claimed=" + claimed + " rejected=" + rejected + " " + action)
}
}
requests ← 1, slotCapacity ← 1, claimed ← 0, rejected ← 0
1object Main {2 def main(args: Array[String]): Unit = {3 val requests→ 1 = 1 //@requests=2, 34 val slotCapacity→ 1 = 15 var claimed→ 0 = 06 var rejected→ 0 = 07 for (i <- 1 to requests) {8 if (claimed < slotCapacity) {for (i <- 1 to requests)
6var rejected = 07for (i1 <- 1 to requests1) {8 if (claimed < slotCapacity) {claimed ← 1
7for (i <- 1 to requests) {8 if (claimed0 < slotCapacity1) {9 claimed→ 1 = claimed + 110 } else {11 rejected = rejected + 1action ← grant
15 var action→ grant = "grant"16 if (rejected == 1) {17 action = "queue"18 }19 if (rejected >= 2) {20 action = "reject"21 }2223 println("requests=" + requests1 + " claimed=" + claimed1 + " rejected=" + rejected0 + " " + actiongrant)24 }25}outputrequests=1 claimed=1 rejected=0 grant
requests ← 2, slotCapacity ← 1, claimed ← 0, rejected ← 0
1object Main {2 def main(args: Array[String]): Unit = {3 val requests→ 2 = 24 val slotCapacity→ 1 = 15 var claimed→ 0 = 06 var rejected→ 0 = 07 for (i <- 1 to requests) {8 if (claimed < slotCapacity) {for (i <- 1 to requests)
pass 1 of 26var rejected = 07for (i1 <- 1 to requests2) {8 if (claimed < slotCapacity) {claimed ← 1
7for (i <- 1 to requests) {8 if (claimed0 < slotCapacity1) {9 claimed→ 1 = claimed + 110 } else {11 rejected = rejected + 1for (i <- 1 to requests)
pass 2 of 26var rejected = 07for (i2 <- 1 to requests2) {8 if (claimed < slotCapacity) {rejected ← 1
9 claimed = claimed + 110 } else {11 rejected→ 1 = rejected + 112 }13}action ← grant
15var action→ grant = "grant"16if (rejected == 1) {17 action = "queue"action ← queue
15var action = "grant"16if (rejected1 == 1) {17 action→ queue = "queue"18}19if (rejected >= 2) {println("requests=" + requests + " claimed=" + claimed + " rejected=" …
23 println("requests=" + requests2 + " claimed=" + claimed1 + " rejected=" + rejected1 + " " + actionqueue)24 }25}outputrequests=2 claimed=1 rejected=1 queue
requests ← 3, slotCapacity ← 1, claimed ← 0, rejected ← 0
1object Main {2 def main(args: Array[String]): Unit = {3 val requests→ 3 = 34 val slotCapacity→ 1 = 15 var claimed→ 0 = 06 var rejected→ 0 = 07 for (i <- 1 to requests) {8 if (claimed < slotCapacity) {for (i <- 1 to requests)
pass 1 of 36var rejected = 07for (i1 <- 1 to requests3) {8 if (claimed < slotCapacity) {All 3 passes — pass 1 is the card above pass islotCapacityclaimedrejected1 1 1 0 → 1 — 2 2 — — 0 → 1 3 3 — — 1 → 2 claimed ← 1
7for (i <- 1 to requests) {8 if (claimed0 < slotCapacity1) {9 claimed→ 1 = claimed + 110 } else {11 rejected = rejected + 1rejected ← 1
pass 1 of 29 claimed = claimed + 110 } else {11 rejected→ 1 = rejected + 112 }13}rejected ← 2
pass 2 of 29 claimed = claimed + 110 } else {11 rejected→ 2 = rejected + 112 }13}action ← grant
15var action→ grant = "grant"16if (rejected == 1) {17 action = "queue"action ← reject
18}19if (rejected2 >= 2) {20 action→ reject = "reject"21}println("requests=" + requests + " claimed=" + claimed + " rejected=" …
23 println("requests=" + requests3 + " claimed=" + claimed1 + " rejected=" + rejected2 + " " + actionreject)24 }25}outputrequests=3 claimed=1 rejected=2 reject