top | item 44664307

(no title)

RustyRussell | 7 months ago

Andrew Tridgell's KnightCap did this differently: it's a network chess server, and it would dump its data to a file and re-exec. The trick here is that it would keep the (network) fds open for zero downtime. IIRC he used a Perl script called datadumper to gen the code marshal/demarshal the structures.

This has the advantage that reboots can be handled fairly seemlessly too (though there will be reconnections then of).

discuss

order

o11c|7 months ago

The main disadvantage of this is that most encryption libraries don't support serializing their state.

fao_|7 months ago

Eh, you could probably get away with it if you use BearSSL[0]. The only difficulty would be:

    These elements can be allocated anywhere in (writable) memory, e.g.
    heap, data segment or stack. They must not be moved while in use
    (they may contain pointers to each other and to themselves).
Which you could probably get around with by just keeping track of offsets and using mmap

[0]: https://www.bearssl.org/api1.html