Theme

The thread: Measured, not assumed — page 15

Page 15 of 15, continuing the same thread in the same order.
80100120140160queries between jumps of the destinationcells a query1,0002,5005,00010,000the watchoff under 1,200, 3 endsoff under 1,000, 5 endscornersoverride, 3 endsfour maps, 30,000 querieslower is better Two parameters

A gap between off and on

A landmark watch switched to the corners whenever a count of the traffic's last stretch ends read under 1,600 queries, and back on when a silence of 1,600 overruled the count. A count that only decides when traffic is fast need not use the silence's threshold, so a second, lower one was given it: keep the corners only once the count reads under 1,200. At one jump of the destination in 2,500 queries, on three stretch ends, that saves 3.5 cells a query — 117.8 against the override's 121.3 — but keeps the corners 13% of the time, not under 5%, and stays 1.4 cells above the watch rather than within one. At one jump in 1,000, where the corners are right, the gap costs 1.7 cells; on five stretch ends it saves nothing anywhere; and at slower paces, on traffic that changes pace and on drift, it changes nothing. The two jobs do want two numbers, but only one count length wants them.

-20%-10%10%20%buffer 1/16buffer 1/32buffer 1/64buffer 1/128buffer 1/256buffer 1/1024buffer 1/4096published table (one draw a cell)pair table, as proposedmean of 16 draws a cellreach a fifth, first rounddashed: ±6% What the libraries do

A table with one draw in each cell

A rule that prices every number of merging rounds for a library merge sort's late tail was right within 6% everywhere except the first round, which it priced 15% to 25% wrong at the three smallest buffers, with the sign changing between buffers. A second calibration table made of exactly what the first round produces — two sorted pieces merged into a run of twice the buffer — was predicted to bring that error under 6%. It does not: priced from the pair table the first round is still 4.5% to 24.1% off, because two sorted pieces merged are a sorted run of twice the buffer, the object the first table already held. The error was the table's single draw per cell. A run of twice the buffer crosses the head with a coefficient of variation of 0.21, ten times a run of one buffer's; averaged over sixteen draws, every round at every buffer is priced within 5.6%. A smaller, systematic error at the long rounds of short reaches survives the averaging, and so does the one partway miss.

118120122142144146148cells a query, one jump in 1,000cells a query, one jump in 2,500override, 3 endsoverride, 5 ends1 standard errors, 3 endsoverride, 10 ends2 standard errors, 3 endsdown and left is betterringed: the fixed gap Two parameters

A margin the count sets itself

A landmark watch switched to the corners when a count of the traffic's stretch ends read fast saved 3.5 cells a query at a moderate pace once given a second, lower threshold for switching off — but only on a count of three, and at a cost at the fast pace. A fixed gap is the same at every count, so the gap was set by the count instead: switch off only when the reading plus Z of its own standard errors is under 1,600. At one standard error on three stretch ends it makes exactly the fixed gap's choices, 117.8 cells a query at one jump in 2,500 and 144.5 at one in 1,000 — losing 1.9 to the override at the fast pace where under one was predicted, because fast spacings are bunched, not similar. Averaged over six streams every switch on three or five stretch ends lies within about a cell and a half of the best, 113.8: the off threshold, however it is chosen, trades the moderate pace against the fast one, and the count's length decides more than its margin.

share of kicks a bit guidedreads an insertion spent on bitscap of 239.9%0.567cap of 811.8%0.478cap of 323.6%0.44895% loadguided kicks · reads for bits What the machine does

A bit that remembers room

A cuckoo table that kicks each full bucket's oldest resident keeps its newest keys at home, but at long caps it fails because age is a stand-in for crowding: the oldest resident's other bucket has room 7% of the time. One bit beside each resident, saying whether its other bucket had room when last read, was proposed as a way to steer by room at no cost, and predicted to leave under 1% of keys in overflow at a cap of 32 for under five reads an insertion. The bit is not free. A blind chain reads only the bucket it kicks into, so the only bit it learns is that of the key it just moved — whose other bucket is the one it was just kicked out of, and full. A bit that says room has to be bought with a read of a fresh key's second bucket, about half a read an insertion. When the bit chooses, it is right three times in five; but it chooses for 40% of kicks at a cap of two and 4% at 32, where it leaves 5.2% of keys in overflow for 6.8 reads.

tolerance 3one jump in 1,000one jump in 2,500slowingspeeding-60-3003060corners' cost less the placement's, cells a querydark: confirmed · light: refusedprices at proposals Two parameters

The count asks and the price answers

A landmark watch on a weighted maze returns to its four corner landmarks when a count of the traffic's stretch ends reads fast, and every rule for when to switch off has traded the moderate pace against the fast one. The count reads the traffic and never the money, while the watch already prices placements on a sample of the queries it has served. Letting the count propose a return to the corners and the watch's last price confirm it was predicted to keep the margin rule's 117.8 cells a query at the moderate pace and recover the override's 142.6 at the fast pace. It costs 118.8 and 145.1. The price agrees with the count three times in four, a quarter of those because the watch had not yet left the corners; the tolerance, swept from nought to thirty cells, changes nothing; and pricing the corners at every look costs about a cell a query on every stream, including the slow ones where the count never asks.

All threads