Operational Remediation Reports
Atomic Guard Remediation Report
Turn the number of waiters behind a held guard into an enter, backoff, or page remediation action.
Atomic Guard Remediation Report
AtomicGuardRemediationReport.scala
object Main {
def main(args: Array[String]): Unit = {
val waiters =
val guardLimit = 2
val acquired = 1
var action = "enter"
if (waiters >= 1 && waiters <= guardLimit) {
action = "backoff"
}
if (waiters > guardLimit) {
action = "page"
}
println("waiters=" + waiters + " acquired=" + acquired + " " + action)
}
}
object Main {
def main(args: Array[String]): Unit = {
val waiters =
val guardLimit = 2
val acquired = 1
var action = "enter"
if (waiters >= 1 && waiters <= guardLimit) {
action = "backoff"
}
if (waiters > guardLimit) {
action = "page"
}
println("waiters=" + waiters + " acquired=" + acquired + " " + action)
}
}
object Main {
def main(args: Array[String]): Unit = {
val waiters =
val guardLimit = 2
val acquired = 1
var action = "enter"
if (waiters >= 1 && waiters <= guardLimit) {
action = "backoff"
}
if (waiters > guardLimit) {
action = "page"
}
println("waiters=" + waiters + " acquired=" + acquired + " " + action)
}
}
guard contention
The waiter count behind a held guard is kept as a scalar, so the remediation action stays deterministic and never depends on atomic identity or scheduler timing.