[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