| 28 Jan 2025 |
Sami Liedes | Ah, so tests. | 15:38:44 |
Sami Liedes | Well, I guess there's no reason why that same couldn't be used for test-runners? Unless I still misunderstand gravely where the bottleneck is. | 15:39:04 |
K900 | No, tests are just particularly expensive to evaluate because they contain nested nixpkgs instantiations | 15:39:15 |
K900 | Evaluation needs to happen on a single machine | 15:39:24 |
K900 | Which is the coordinator | 15:39:27 |
K900 | And it has to be the coordinator unless Hydra is majorly rewritten | 15:39:40 |
Sami Liedes | Ah, I see. And it runs those in a single thread? Or, one evaluation at a time? | 15:40:22 |
Sami Liedes | Because it wants to guarantee that whatever gets out there passes. | 15:41:00 |
Vladimír Čunát | I think it might do more, but it's very expensive in RAM even without that. | 15:41:05 |
Sami Liedes | Ok. | 15:41:17 |
Vladimír Čunát | And afterwards adding the quarter-million of jobs into the DB in a single transaction - that's also noticeable. | 15:42:15 |
Sami Liedes | Yet... correct me if I'm wrong, but isn't evaluation something where one could almost write a silly bash (ugh) wrapper for nix that spawns it to a remote machine? And then you could run 5000 of those on one coordinator. | 15:42:50 |
Sami Liedes | What I know you cannot do easily is split an evaluation. | 15:43:40 |
K900 | No | 15:43:47 |
Vladimír Čunát | Probably. No idea about the amount of work involved. | 15:43:47 |
K900 | Well kinda | 15:43:52 |
K900 | But Hydra currently does not do that | 15:43:58 |
Vladimír Čunát | * Probably. No idea about the amount of human work involved. | 15:44:05 |
K900 | And it's not trivial to actually do that | 15:44:08 |
K900 | Because it's not calling Nix commands | 15:44:12 |
Sami Liedes | Yeah, the devil is always in the details. | 15:44:17 |
K900 | It's calling libstore and friends directly | 15:44:30 |
K900 | And if you're going to rewrite half of Hydra, eval time isn't even the most valuable thing to fix | 15:45:08 |
Sami Liedes | And I hope nobody writes a bash wrapper for libstore. Actually I already hope nobody writes a bash wrapper for nix CLI. | 15:45:10 |
Sami Liedes | What is? | 15:45:16 |
Sami Liedes | (Subjective opinions welcome :) | 15:45:25 |
Vladimír Čunát | The queue runner, probably. | 15:45:41 |
K900 | Detached signatures would be the biggest effect to complexity ratio probably | 15:45:54 |
K900 | But I can't even explain what that is without explaining the other half of Hydra | 15:46:17 |
Sami Liedes | Right. | 15:46:24 |