NixOS Binary Cache Self-Hosting | 168 Members | |
| About how to host a very large-scale binary cache and more | 57 Servers |
| Sender | Message | Time |
|---|---|---|
| 5 Mar 2024 | ||
In reply to @edef1c:matrix.orgWill Fastly always chunk up the requests into small range requests, even if the user's Nix requests the whole NAR, or only if the end user requests a range? | 04:41:58 | |
| eg it is a humongous pain in the rear to collect the narinfos, we basically have custom tools to rapid-fire pipelined S3 fetches | 04:42:04 | |
In reply to @nh2:matrix.orgi don't recall right now, sorry | 04:42:13 | |
In reply to @edef1c:matrix.orgBecause that could indeed inflate the IOPS, though Ceph has readaheads of configurable size, so it could be worked around that way | 04:43:07 | |
| Fastly segmented caching docs (https://docs.fastly.com/en/guides/segmented-caching#how-segmented-caching-works)
| 04:43:09 | |
| critical part being the final sentence | 04:43:23 | |
In reply to @edef1c:matrix.org And the beginning of the paragraph:
This suggests "no range request by nix" => "no range request by Fastly to upstream" | 04:45:12 | |
| So it should be a quite rare case | 04:45:32 | |
| out of ~1B 2xx responses, ~25% are 206 Partial Content responses, ~75% are 200 OKs | 04:46:45 | |
| so not that rare | 04:47:06 | |
In reply to @nh2:matrix.orgSorry, I had misread that sentence: I thought you wrote "mean 16MiB, median 14MiB" for file size. But it was throughput. | 04:47:48 | |
In reply to @edef1c:matrix.orgInteresting, I wonder why it's that many, at least in my nix use it is very rare to interrupt downloads | 04:48:21 | |
| we have users like. everywhere | 04:48:35 | |
| edef: Do you know total number of files? | 04:48:39 | |
| i've seen countries i'd never even heard of in the fastly logs | 04:48:48 | |
| we have like ballpark a quarter billion store paths, and slightly fewer NARs than that (since complete NARs are semi content addressed) | 04:49:44 | |
| ~800M S3 objects total basically, ~190M NARs | 04:51:07 | |
| (and sorry for keeping you waiting on histograms, i'm just a bit far into my uptime and it involves poking more stuff than i have brain for rn, i'm running half on autopilot) | 04:59:15 | |
In reply to @edef1c:matrix.org This part will likely be the hardest / most annoying one operationally.
During that recovery time, only 1 more disk is allowed to fail with EC 6=4+2. | 05:00:10 | |
In reply to @edef1c:matrix.orgNo problem, is not urgent, I should also really go to bed. | 05:00:23 | |
In reply to @nh2:matrix.orgokay, that's terrifying | 05:00:30 | |
| but Glacier Deep Archive doesn't exactly break the bank, we can basically insure ourselves against data loss quite cheaply | 05:01:04 | |
| and, stupid question, but i assume you're keeping space for resilver capacity in your iops budget? | 05:01:59 | |
| O(objects) anything is kind of rough here | 05:02:23 | |
| like we're going to hit a billion objects pretty soon, the growth is slightly superlinear at minimum | 05:03:04 | |
In reply to @edef1c:matrix.orgYes, it's only really concerning availability. For write-mostly backups, one can use higher EC redundancy, or tar/zip the files, which gets rid of the problem of many small files / seeks. | 05:03:37 | |
| also note that if we start doing more serious dedup, i'll be spraying your stuff with small random I/O | 05:03:42 | |
In reply to @nh2:matrix.orgyeah, we have a similar problem with Glacier | 05:04:14 | |
| where objects are costly but size is cheap | 05:04:21 | |
| so i intend to do aggregation into larger objects | 05:04:53 | |