[Nix-dev] Re: Libre Software Meeting talk about NixOS
Ludovic Courtès
ludo at gnu.org
Sun Jul 11 12:26:01 CEST 2010
Hello,
Jeff Johnson <n3npq at mac.com> writes:
> On Jul 10, 2010, at 6:58 PM, Ludovic Courtès wrote:
>
>>
>>> The killer design issue is scripting with --rollback. Its extremely
>>> hard to permit general scripting side-effects whose effects can ALWAYS
>>> be reversed by --rollback.
>>
>> You’ve already partly answered. :-)
>>
>> Are you saying that RPM-based distros already allow ‘--rollback’? Or
>> that the RPM package manager has a ‘--rollback’ option that happens to
>> work *if* packages are side-effect-free, etc.? Are upgrades atomic?
[...]
> Its --rollback v2 that is sending SMS in Brazil. The major change there was
> to add doubly linked upgrade chains. Each upgraded package includes
> backward links to the package(s) that it erased, each erased package
> (re-rolled into a *.rpm with the content that was present at time of erasure)
> includes forward links to the package(s) that caused erasure.
OK.
[...]
> The latest version (presented briefly @FOSDEM 2010, you really
> can't say much in 45 minutes about --rollback) is
> Transactionally Protected Package Management
> aka TPPM or "RPM ACID". In a nut-shell, the side effects of
> package management are broken into 2 categories
> 1) databased ACID (yes the traditional technical term, fully implemented, level 2 isolation)
> 2) syscall ACID (i.e the set of operations to install package payloads
> on file systems like write(2) and mkdir(2) etc. Prototyped using the
> abstract log mechanism within Berkeley DB extended in simple ways so
> that, say, rmdir(2) reverses mkdir(2). Content goes into the log
> before it goes onto the file system which is a bit bloaty but
> eaxctly what is entailed with --rollback insturmentation).
> 3) scriptlet ACID this is the piece that Mancoosi WP3 is focussed
> on, modeling and simulating common debhelper-like scriptlet operations
> for transactional logging. Also presented @FOSDEM 2010 and actively being
> worked on).
OK, I wasn’t aware of this work.
[...]
> But the killer design flaw for --rollback is _STILL_ general scriptlet side-effects,
> which are highly non-trivial to reliably invert generally.
Yes, of course.
So, at this time, which RPM-based distro actually claims to support
rollback?
And which distro(s) does Mancoosi’s WP3 target?
Thanks,
Ludo’.
More information about the nix-dev
mailing list