Re: Loose type checking in E
Chip Morningstar (chip@communities.com)
Mon, 12 Oct 1998 11:02:10 -0700 (PDT)
Tyler Close <tyler@lfw.org> writes:
>>No. Between vats we only have asynchronous sends. Otherwise E wouldn't be
>>deadlock-free.
>
>You have much more experience than I do at writing concurrent software;
>however, it would seem to me that being deadlock-free is small consolation
>for not being able to make atomic operations and thus create serializable
>transactions.
Remember that the motivation for E was to create not merely concurrent
systems but distributed systems. Distributed systems have a degree of
inherent, uncontrollable asynchrony that means atomicity is achievable
only at the most extreme cost in performance and complexity. So we
gave that up as a losing cause. Giving it up, however, means that
deadlock something is we can now live happily without.
And don't discount just how difficult a problem creating deadlock free
software is in a threaded environment. Ancedotally, the majority of
the really nasty debugging problems we had in developing EC Habitats
-- in particular, in developing the underpinnings of what is now the E
runtime library itself -- were deadlock problems in those few areas
where we couldn't avoid threading. (We couldn't avoid threading when
building on top of Java libraries for, e.g., I/O, that were
blocking). One of our mantras became "Threads Are Evil".
Note that one of the problems with deadlock bugs is way you are
vulnerable to them even (or especially) when they are in other
people's software. For example, we had to concoct some truly horrific
workarounds to deal with the fact that the Javasoft JVM garbage
collector and storage allocator can deadlock against each other (!).
Creating reliable software is hard enough by itself.
Chip
Chip Morningstar Electric Communities
chip@communities.com 10101 N.DeAnza Blvd, Cupertino CA 95014
http://www.communities.com/people/chip 408-342-9522
"It's now safe to turn off your computer."
----------------------------------------------------------------------------