]> Sergey Matveev's repositories - btrtrc.git/blobdiff - request-strategy/order.go
Use relative availabilities to determine piece request order
[btrtrc.git] / request-strategy / order.go
index 50c9838fa1c08530dfea60546b0ed8786c4f1a50..cb69d23d37d9ca800bc4fb63107ac62f026dc16c 100644 (file)
@@ -24,9 +24,12 @@ type (
 func pieceOrderLess(i, j *pieceRequestOrderItem) multiless.Computation {
        return multiless.New().Int(
                int(j.state.Priority), int(i.state.Priority),
+               // TODO: Should we match on complete here to prevent churn when availability changes?
        ).Bool(
                j.state.Partial, i.state.Partial,
-       ).Int64(
+       ).Int(
+               // If this is done with relative availability, do we lose some determinism? If completeness
+               // is used, would that push this far enough down?
                i.state.Availability, j.state.Availability,
        ).Int(
                i.key.Index, j.key.Index,