#1180 new defect

put more DYHBs into flight at once when K is larger

Reported by: zooko Owned by:
Priority: major Milestone: soon
Component: code-network Version: 1.8β
Keywords: easy immutable download performance regression Cc:
Launchpad Bug:

Description (last modified by zooko)

As mentioned in comment:8:ticket:448, the new downloader code in v1.8.0 will put at most 10 DYHBs into flight at once. This is perfect when K=3, but as K gets larger it is increasingly likely that the hardcoded limit of 10 will induce delay at the beginning of a download or cause the downloader to overlook a better-performing server. As Brian suggested on #448, a better limit would be something like K * 3.

(Note: everyone that I know of uses the default settings of K=3, M=10. The theoretical maximum value of K is 256. Since nobody has tried it, we don't know if there are other problems with using K greater than about 100.)

Change History (4)

comment:1 follow-up: Changed at 2010-10-22T13:28:43Z by zooko

Hm, did I mark this as "regression" because this makes v1.8.0 perform noticeably worse than v1.7.1 for cases when K >> 3? Because that case is increasingly interesting to me nowadays since (as mentioned in this mail to tahoe-dev), I think people should probably start setting K at least as large as the number of servers on their grid. Perhaps we should even make the default value of K be 30 in future releases of Tahoe-LAFS instead of 3, and make the default value of M be 100. Oh, but what would that mean for the default value of H?

In any case, nobody to my knowledge has measured v1.8.0 to see if it actually performs worse than v1.7.1 does due to this issue about v1.8.0 keeping at most 10 DYHB's in flight at once.

It would be great if someone would benchmark larger K's.

comment:2 in reply to: ↑ 1 Changed at 2010-10-22T14:57:32Z by swillden

Replying to zooko:

Because that case is increasingly interesting to me nowadays since (as mentioned in this mail to tahoe-dev), I think people should probably start setting K at least as large as the number of servers on their grid.

Set K to the number of servers in the grid? The e-mail you reference (and the analysis that I've done) recommends setting M to the number of servers in the grid and scaling K to achieve the desired level of redundancy.

Intuition says that setting K=N and M=K*3.33 should achieve roughly the same level of reliability for an expansion factor of 3.33 as setting M=N and K=M/3.33, but I haven't done the math to verify it.

In any case, I think larger values of K and M are definitely a good idea, and getting good performance with larger values is important if we want to encourage people to use them. I'd certainly use them if I had access to a large-enough grid to make it worthwhile.

comment:3 Changed at 2010-11-20T23:29:42Z by zooko

In comment:2:ticket1264 François posted that with 71 servers, raising the DYHB limit from 10 to 60 made only a 1-second difference in the total download speed. This may indicate that this ticket is not very important for downloading larger files but is important for downloading smaller files.

comment:4 Changed at 2011-04-11T17:01:59Z by zooko

  • Description modified (diff)
Note: See TracTickets for help on using tickets.