Re: Something about the insides of Javaspace?
Dan Creswell <[email protected]> Thu, 21 Sep 2006 14:29:29 +0100
| Newsgroups | gmane.comp.java.sun.javaspaces |
|---|---|
| Message-ID | <[email protected]> |
Hi, Christian Hager wrote: > Hello all, > > I'm new to Javaspaces and would be interested in about some details of > the insides of Javaspace. For example such as if the Javaspace is > located only on one machine or if it is spread over the network. What > about if the machine with the Javaspace fails? Is there any way to reach > redundancy or will the whole distrbuted application crash if the > Javaspace crashes? You seem to be confining your "reliable solution" to something that the JavaSpaces implementation provides you - why? There are, in fact, two basic ways to go about creating a "reliable solution" using JavaSpaces/Jini. One is relying on the JavaSpace itself to handle all possible forms of failure such that it always provides service. Many are tempted by this route but I can assure you (because I am the implementer of Blitz JavaSpaces) that there are a number of circumstances under which this approach is not viable or doesn't work. The alternative, as exemplified by google systems design is to build reliable systems out of multiple simple pieces each of which is deployed multiple times to achieve resilience. This second approach has all sorts of advantages in terms of simplicity of management, predictable failure response and so on. An interesting line of thinking comes from considering the following: Assume the JavaSpace never fails and then consider: (1) What happens if the network between client and JavaSpace fails in some fashion e.g. dropped packets. (2) What if the network between components of the resilient JavaSpace fails e.g. dropped packets. Note I deliberately didn't pick the straightforward case of complete network failure but you might wish to consider that aspect too. Realize also, that according to recent google papers, in spite of failures such as the above, they can continue to process information. But of course, they don't attempt to build the equivalent of a resilient JavaSpace. It's worth mentioning that many JavaSpaces applications can be made relatively straightforwardly resilient by having appropriate algorithms implemented in the clients - something that Google know/do well. I can imagine that you don't want to consider this option as it's "too complex" and you'd like the convenience of having it all dealt with magically within the JavaSpace - that's okay but not the silver bullet you might imagine (though many will tell you it is). Hope that helps, Dan. =========================================================================== To unsubscribe, send email to [email protected] and include in the body of the message "signoff JAVASPACES-USERS". For general help, send email to [email protected] and include in the body of the message "help". To view past JAVASPACES-USERS postings, please see: http://archives.java.sun.com/archives/javaspaces-users.html