[Haskell-cafe] Glasgow Distributed Haskell
szefirov at ot.ru
szefirov at ot.ru
Sun Jan 28 10:09:33 EST 2007
Paul Johnson пишет:
> Joel Reymont <joelr1 at gmail.com> wrote:
>
>> I'm after Erlang in Haskell, if you will, for fault-tolerance and
>> scalability.
>
>
>
> I think the way to do Erlang in Haskell is to build a middleware layer
> on top of the language, not try to make the language into something it
> is not. In this kind of environment you need to be able to upgrade
> components while the system is running. The careful Haskell habit of
> separating stateful operations from pure functions is useful here. I
> gather that the HAppS project is working along similar lines, and for
> similar reasons. Take a look at it.
I think I should point you to:
http://www.cs.umd.edu/~mwh/papers/neamtiu06dsu.html
---------------------------------------------------------------
*Practical Dynamic Software Updating for C*. Iulian Neamtiu, Michael
Hicks, Gareth Stoyle, and Manuel Oriol. In /Proceedings of the ACM
Conference on Programming Language Design and Implementation (PLDI)/,
pages 72-83, June 2006.
Software updates typically require stopping and restarting an
application, but many systems cannot afford to halt service, or would
prefer not to. /Dynamic software updating/ (DSU) addresses this
difficulty by permitting programs to be updated while they run. DSU is
appealing compared to other approaches for on-line upgrades because it
is quite general and requires no redundant hardware. The challenge is in
making DSU /practical/: it should be flexible, and yet safe, efficient,
and easy to use.
In this paper, we present Ginseng, a DSU implementation for C that aims
to meet this challenge. We compile programs specially so that they can
be dynamically patched, and generate most of a dynamic patch
automatically. Ginseng performs a series of analyses that when combined
with some simple runtime support ensure that an update will not violate
type-safety while guaranteeing that data is kept up-to-date. We have
used Ginseng to construct and dynamically apply patches to three
substantial open-source server programs-/Very Secure FTP daemon/,
/OpenSSH sshd daemon/, and /GNU Zebra/. In total, we dynamically patched
each program with three years' worth of releases. Though the programs
changed substantially, the majority of updates were easy to generate.
Performance experiments show that all patches could be applied in less
than 5 /ms/, and that the overhead on application throughput due to
updating support ranged from 0 to at most 32%.
---------------------------------------------------------------
So, it is not completely impossible for haskell being updated on-the-fly.
More information about the Haskell-Cafe
mailing list