history-paging.md

This Kit feature is not available yet.

In docs/operations/At c3d562f

c3d562fHistory

Preview

Text21.8 KiB

History continuation paging measurements

The continuation_pages_complete_long_changing_histories_without_cursor_walk test completes every page of 201- and 302-commit changing histories, with new readers and sessions for each request, in owner/public views and denial OFF/ON. Canonical bytes and IDs match the fixture's commits in first-parent order. Every page performs exactly two raw range GETs per returned commit, with zero history/tree cursor walk. The independent continuation_selected_ref_overhead_is_bounded_independently_of_cursor_depth test measures six additional physical calls/rounds with denial OFF and seven with denial ON, in both views, relative to the selected-ref history primitive.

Reproduce from rust/:

CARGO_PROFILE_DEV_DEBUG=0 cargo test --locked -p mkit-server --all-features --lib continuation_pages_complete_long_changing_histories_without_cursor_walk -- --ignored --nocapture --test-threads=1

The default lane covers a 40-commit changing history over four/six pages, using the same canonical-byte, budget, fixed-expiry and no-cursor-walk assertions in all view/denial/latency configurations. The full fixture runs explicitly in the serial ignored-lane profile in GitHub Actions and Cloud Build. Its standalone debug measurement used 13.10 s CPU and 14.17 s wall time; parallel Cloud Build exceeded the default 60 s ceiling. The slow lane retains every assertion and a bounded 300 s timeout. No production allowance or general timeout changes.

These are bounded memory-store dispatch measurements with a fixed business clock. Reader units retain the 8,500-unit request allowance, including parsing, security reads and page work. Reader construction is included in physical calls; its separate authorization allowance is outside the session ledger. The 201-commit fixture has one real indexed pack per commit and distinct nested snapshots. The 302-commit fixture packs two commits per upload, with distinct files and trees, to remain within the existing fixture write quota. No reader or production write allowance is increased. The first paging request in a repository may perform one coordinator apply to activate its retained visibility revision; following visibility writes maintain that fence even without token issuance configured.

Physical calls are KV dispatches plus twice the ranged GET count, a conservative model covering stores that check metadata before fetching a range. The read ledger also charges two units. Paused Tokio time injects 30 ms and 130 ms RPC waits through the reader-batching latency probe. All continuation reads share the existing six-call I/O admission envelope. Blob delays include two sequential range RPCs. The fixture performs reader construction and guarded applies without delay; the reported wait adds their physical calls serially at the selected RPC latency. The table records virtual wait and its equivalent RPC rounds, including Tokio timer granularity. It does not assume a fixed number of denial waves.

The business clock stays fixed while virtual time measures storage waits. These figures are recorded without a latency gate and are not observed deployment latency or p95. Real expiry, deadlines, queues, CPU and nonempty denial directories can terminate slower requests. The measurements establish paging budget completion. Canonical windows and permission/denial caches are absent.

HistoryPage sizePageViewDenialRPC latency (ms)UnitsKVRange GETsPhysical callsEquivalent roundsVirtual wait (s)
201301publicOFF3061236960489379.0011.370
201302publicOFF3061136860488378.0011.340
201303publicOFF3061036760487378.0011.340
201304publicOFF3061036760487378.0011.340
201305publicOFF3061136860488378.0011.340
201306publicOFF3061136860488378.0011.340
201307publicOFF3043126042344267.008.010
201301publicOFF13061136860488378.0049.140
201302publicOFF13061136860488378.0049.140
201303publicOFF13061036760487378.0049.140
201304publicOFF13061036760487378.0049.140
201305publicOFF13061136860488378.0049.140
201306publicOFF13061136860488378.0049.140
201307publicOFF13043126042344267.0034.710
2011001publicOFF302007120420016041241.0037.230
2011002publicOFF302006120320016031241.0037.230
2011003publicOFF30312022421.000.630
2011001publicOFF1302007120420016041241.00161.330
2011002publicOFF1302006120320016031241.00161.330
2011003publicOFF130312022421.002.730
201301ownerOFF3061136960489379.0011.370
201302ownerOFF3061136960489379.0011.370
201303ownerOFF3061036860488379.0011.370
201304ownerOFF3061036860488379.0011.370
201305ownerOFF3061136960489379.0011.370
201306ownerOFF3061136960489379.0011.370
201307ownerOFF3043126142345268.008.040
201301ownerOFF13061136960489379.0049.270
201302ownerOFF13061136960489379.0049.270
201303ownerOFF13061036860488379.0049.270
201304ownerOFF13061036860488379.0049.270
201305ownerOFF13061136960489379.0049.270
201306ownerOFF13061136960489379.0049.270
201307ownerOFF13043126142345268.0034.840
2011001ownerOFF302007120520016051242.0037.260
2011002ownerOFF302006120420016041242.0037.260
2011003ownerOFF30312122522.000.660
2011001ownerOFF1302007120520016051242.00161.460
2011002ownerOFF1302006120420016041242.00161.460
2011003ownerOFF130312122522.002.860
201301publicON3012871044601164651.0019.530
201302publicON3012871044601164651.0019.530
201303publicON3012861043601163651.0019.530
201304publicON3012851042601162650.0019.500
201305publicON3012871044601164651.0019.530
201306publicON3012871044601164651.0019.530
201307publicON3090973842822459.0013.770
201301publicON13012871044601164651.0084.630
201302publicON13012871044601164651.0084.630
201303publicON13012861043601163651.0084.630
201304publicON13012851042601162650.0084.500
201305publicON13012871044601164651.0084.630
201306publicON13012871044601164651.0084.630
201307publicON13090973842822459.0059.670
2011001publicON304223342020038202144.0064.320
2011002publicON304221341820038182143.0064.290
2011003publicON30695826233.000.990
2011001publicON1304223342020038202144.00278.720
2011002publicON1304221341820038182143.00278.590
2011003publicON130695826233.004.290
201301ownerON3012871045601165652.0019.560
201302ownerON3012871045601165652.0019.560
201303ownerON3012861044601164652.0019.560
201304ownerON3012851043601163651.0019.530
201305ownerON3012871045601165652.0019.560
201306ownerON3012871045601165652.0019.560
201307ownerON3090973942823460.0013.800
201301ownerON13012871045601165652.0084.760
201302ownerON13012871045601165652.0084.760
201303ownerON13012861044601164652.0084.760
201304ownerON13012851043601163651.0084.630
201305ownerON13012871045601165652.0084.760
201306ownerON13012871045601165652.0084.760
201307ownerON13090973942823460.0059.800
2011001ownerON304223342120038212145.0064.350
2011002ownerON304221341920038192144.0064.320
2011003ownerON30695926334.001.020
2011001ownerON1304223342120038212145.00278.850
2011002ownerON1304221341920038192144.00278.720
2011003ownerON130695926334.004.420
302301publicOFF3059735460474377.0011.310
302302publicOFF3059535260472376.0011.280
302303publicOFF3059635360473376.0011.280
302304publicOFF3059635360473376.0011.280
302305publicOFF3059635360473376.0011.280
302306publicOFF3059635360473376.0011.280
302307publicOFF3059635360473376.0011.280
302308publicOFF3059635360473376.0011.280
302309publicOFF3059535260472376.0011.280
3023010publicOFF3059635360473376.0011.280
3023011publicOFF30503143933.000.990
302301publicOFF13059635360473376.0048.880
302302publicOFF13059535260472376.0048.880
302303publicOFF13059635360473376.0048.880
302304publicOFF13059635360473376.0048.880
302305publicOFF13059635360473376.0048.880
302306publicOFF13059635360473376.0048.880
302307publicOFF13059635360473376.0048.880
302308publicOFF13059635360473376.0048.880
302309publicOFF13059535260472376.0048.880
3023010publicOFF13059635360473376.0048.880
3023011publicOFF130503143933.004.290
3021001publicOFF301957115420015541233.0036.990
3021002publicOFF301959115620015561233.0036.990
3021003publicOFF301955115220015521232.0036.960
3021004publicOFF30503143933.000.990
3021001publicOFF1301957115420015541233.00160.290
3021002publicOFF1301959115620015561233.00160.290
3021003publicOFF1301955115220015521232.00160.160
3021004publicOFF130503143933.004.290
302301ownerOFF3059635460474377.0011.310
302302ownerOFF3059535360473377.0011.310
302303ownerOFF3059635460474377.0011.310
302304ownerOFF3059635460474377.0011.310
302305ownerOFF3059635460474377.0011.310
302306ownerOFF3059635460474377.0011.310
302307ownerOFF3059635460474377.0011.310
302308ownerOFF3059635460474377.0011.310
302309ownerOFF3059535360473377.0011.310
3023010ownerOFF3059635460474377.0011.310
3023011ownerOFF30503244034.001.020
302301ownerOFF13059635460474377.0049.010
302302ownerOFF13059535360473377.0049.010
302303ownerOFF13059635460474377.0049.010
302304ownerOFF13059635460474377.0049.010
302305ownerOFF13059635460474377.0049.010
302306ownerOFF13059635460474377.0049.010
302307ownerOFF13059635460474377.0049.010
302308ownerOFF13059635460474377.0049.010
302309ownerOFF13059535360473377.0049.010
3023010ownerOFF13059635460474377.0049.010
3023011ownerOFF130503244034.004.420
3021001ownerOFF301957115520015551234.0037.020
3021002ownerOFF301959115720015571234.0037.020
3021003ownerOFF301955115320015531233.0036.990
3021004ownerOFF30503244034.001.020
3021001ownerOFF1301957115520015551234.00160.420
3021002ownerOFF1301959115720015571234.00160.420
3021003ownerOFF1301955115320015531233.00160.290
3021004ownerOFF130503244034.004.420
302301publicON3012571014601134634.0019.020
302302publicON3012561013601133634.0019.020
302303publicON3012571014601134634.0019.020
302304publicON3012571014601134634.0019.020
302305publicON3012571014601134634.0019.020
302306publicON3012571014601134634.0019.020
302307publicON3012571014601134634.0019.020
302308publicON3012571014601134634.0019.020
302309publicON3012561013601133634.0019.020
3023010publicON3012571014601134634.0019.020
3023011publicON301099049853.001.590
302301publicON13012571014601134634.0082.420
302302publicON13012561013601133634.0082.420
302303publicON13012571014601134634.0082.420
302304publicON13012571014601134634.0082.420
302305publicON13012571014601134634.0082.420
302306publicON13012571014601134634.0082.420
302307publicON13012571014601134634.0082.420
302308publicON13012571014601134634.0082.420
302309publicON13012561013601133634.0082.420
3023010publicON13012571014601134634.0082.420
3023011publicON1301099049853.006.890
3021001publicON304123332020037202086.0062.580
3021002publicON304125332220037222086.0062.580
3021003publicON304121331820037182085.0062.550
3021004publicON301099049853.001.590
3021001publicON1304123332020037202086.00271.180
3021002publicON1304125332220037222086.00271.180
3021003publicON1304121331820037182085.00271.050
3021004publicON1301099049853.006.890
302301ownerON3012571015601135635.0019.050
302302ownerON3012561014601134635.0019.050
302303ownerON3012571015601135635.0019.050
302304ownerON3012571015601135635.0019.050
302305ownerON3012571015601135635.0019.050
302306ownerON3012571015601135635.0019.050
302307ownerON3012571015601135635.0019.050
302308ownerON3012571015601135635.0019.050
302309ownerON3012561014601134635.0019.050
3023010ownerON3012571015601135635.0019.050
3023011ownerON301099149954.001.620
302301ownerON13012571015601135635.0082.550
302302ownerON13012561014601134635.0082.550
302303ownerON13012571015601135635.0082.550
302304ownerON13012571015601135635.0082.550
302305ownerON13012571015601135635.0082.550
302306ownerON13012571015601135635.0082.550
302307ownerON13012571015601135635.0082.550
302308ownerON13012571015601135635.0082.550
302309ownerON13012561014601134635.0082.550
3023010ownerON13012571015601135635.0082.550
3023011ownerON1301099149954.007.020
3021001ownerON304123332120037212087.0062.610
3021002ownerON304125332320037232087.0062.610
3021003ownerON304121331920037192086.0062.580
3021004ownerON301099149954.001.620
3021001ownerON1304123332120037212087.00271.310
3021002ownerON1304125332320037232087.00271.310
3021003ownerON1304121331920037192086.00271.180
3021004ownerON1301099149954.007.020

Timestamp-discovery continuation pages

The timestamp_pages_match_reducer_and_stay_bounded test pages a 52-commit linear history and a 52-commit merge-heavy history in canonical timestamp order (page size 10): the embedder drives page 1 with per-commit canonical reads and issues a version-2 continuation, then fresh readers and sessions redeem server pages until the walk completes. Concatenated IDs and canonical bytes match an in-memory TimestampDiscovery replay of the fixture graph. Pending keys are either all hydrated before issuance (hydrate=true) or left unknown for the redemption to hydrate in batches (hydrate=false). Each measured page is one fresh request with the reader-batching latency probe; blob loads equal emitted plus hydrated objects and no page performs a cursor walk, a ref-index or all-ref partition scan, or a reader_tips call. All rounds are far below the 400-round page budget.

Reproduce from rust/:

CARGO_PROFILE_DEV_DEBUG=0 cargo test --locked -p mkit-server --all-features --lib timestamp_pages_match_reducer_and_stay_bounded -- --nocapture
FixtureHydratedViewDenialPageKVBlob GETsModeled rounds
linearnopublicOFF21192092
linearnopublicOFF31182092
linearnoownerOFF21202093
linearnoownerOFF31192093
linearnopublicON234620176
linearnopublicON334520176
linearnoownerON234720177
linearnoownerON334620177
linearyespublicOFF21192092
linearyespublicOFF31182092
linearyesownerOFF21202093
linearyesownerOFF31192093
linearyespublicON234620176
linearyespublicON334520176
linearyesownerON234720177
linearyesownerON334620177
mergenopublicOFF21092076
mergenopublicOFF31132276
mergenoownerOFF21102077
mergenoownerOFF31142277
mergenopublicON230220152
mergenopublicON330822154
mergenoownerON230320153
mergenoownerON330922155
mergeyespublicOFF21092076
mergeyespublicOFF31132276
mergeyesownerOFF21102077
mergeyesownerOFF31142277
mergeyespublicON230220152
mergeyespublicON330822154
mergeyesownerON230320153
mergeyesownerON330922155

Files