[Nix-dev] hotswappable self managing services in nix

Graham Christensen graham at grahamc.com
Sun Nov 27 04:35:39 CET 2016


First: 9 9s means that for all 13(?) years NixOS has existed, there would
be just over 4 seconds of down time.

Any real system would use many redundant machines to accomplish this.

Google strives for 99.95%.

Second: I think more generally what you're looking for is graceful
restarting. NixOS has ~some~ support for this, but I believe it isn't
implemented too thoroughly and you would have to carefully read the
activation scripts to find it.

You lose the some of the determinism NixOS provides, since you are now
depending on erlang and all to implement it correctly.

I believe corner cases exist, like when the version of Erlang changes

Graham

On Sat, Nov 26, 2016 at 10:23 PM stewart mackenzie <setori88 at gmail.com>
wrote:

> Let me rephrase the question.
>
> Is it possible to build a highly available system on nix such that SLA
> uptimes of 9 9s. (99.9999999 % uptime) are achievable?
>
> If so what primitives does nix offer to allow this to happen?
>
> Such primitives should be: the ability for nix to invoke the
> hotswapping capabilities of a live running system.
>
> Now just connecting to Erlang and making changes isn't good enough.
> Why? - nix cannot see those "imperative" changes. Git vs svn, git
> takes the global view and svn the file view. Git got it right, you
> need to factor in the entire repo's changes. Nix gets it right too by
> looking at this from an entire system perspective, so I'm seeking a
> way to introduce change to a live fractalide system from a nix level,
> though it mustn't be a "connect to fractalide via ssh and change it
> there" approach. Making changes to Erlang via ssh under Nix management
> is like having a declarative system then introducing imperative
> mechanisms.
>
> I need a formalized method to ensure global determinism yet be able to
> make changes to a live running system from nix.
>
> Are there any Erlangers here who achieve huge uptimes on nix? If so
> how do you do it? How do you make use of Erlang's hotswapping
> mechanisms yet retain the lovely system wide determinism nix offers.
>
> kr/sjm
> _______________________________________________
> nix-dev mailing list
> nix-dev at lists.science.uu.nl
> http://lists.science.uu.nl/mailman/listinfo/nix-dev
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.science.uu.nl/pipermail/nix-dev/attachments/20161127/7dd1900c/attachment.html>


More information about the nix-dev mailing list