Mercurial > hg > blitz_stable
diff docs/blitz.html @ 0:3dc0c5604566
Initial checkin of blitz 2.0 fcs - no installer yet.
author | Dan Creswell <dan.creswell@gmail.com> |
---|---|
date | Sat, 21 Mar 2009 11:00:06 +0000 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/docs/blitz.html Sat Mar 21 11:00:06 2009 +0000 @@ -0,0 +1,376 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<html> +<head> + + + + <title>Blitz Overview</title> +</head> + + +<body> + + + + +<h1>Blitz - Javaspaces Made Simple</h1> + + + +<p>The <a href="http://www.dancres.org/blitz/index.html">Blitz</a> JavaSpaces<sup>TM</sup> +implementation aims to provide a rich set of features to make the +development & deployment of JavaSpaces technology easier, more +efficient and more fun to experiment with. +</p> + + +<p>The Blitz Project is the first <a href="http://www.jini.org/">Jini<sup>TM</sup></a> 2.x compliant JavaSpace to be made available under an <a href="http://www.opensource.org/">OpenSource</a> <a href="LICENSE.TXT">license</a>.</p> + + + +<h2>Key features</h2> + + + +<ul> + + + <li>Ease of installation.</li> + + + + <li>Jini 2.x enabled.</li> + + + + <li>Use of established VM principles.</li> + + + + <li>Smart indexing.</li> + + + + <li>Tuneable persistence.</li> + + + + <li>Tools.</li> + + + + <li>Entry Browsing.</li> + + + + <li>Embeddable Space support.</li> + + + + <li>Active/Passive/Manual lease cleanup.</li> + + + + <li>Built for experimentation and expansion.</li> + + + + <li>Easy integration with the Inca X IDE & Runtime Environment.</li> + + +</ul> + + + + +<h3>Ease of installation</h3> + +Blitz aims to make installation simpler by not relying on other visible +services such as RDBMS products (which tend to require significant +admininistration knowledge of both the RDBMS and the OS) and providing +default configurations which make it useful out of the box. + +<h3>JINI 2.x Enabled</h3> + + + +First-class support for a variety of security configurations and deployment environments. + +<h3>Use of established VM Principles</h3> + + + +<p>Blitz's central abstraction for Entry storage is based on the +classic Virtual Memory (VM) concept such that a set of Entry's are +cached in memory at any one time and then paged, as required, according +to an algorithm which typically bases it's decisions on usage patterns. + In addition, readahead can be supported such that we can fault in +a collection of potentially matching Entry's when the cache has +provided no suitable candidates. +</p> + + + +<p>This re-use of an OS concept allows Blitz to take advantage of a +huge body of existing research with respect to effective caching in the +face of varying application behaviour (some will have hotspots, some +will be random, some will reference things strictly in order).</p> + + + +<p>Different JavaSpace applications will have common sets of behaviour +from a cache usage perspective. Blitz architecture makes it possible to +support several different cache management strategies and allow an +astute user to pick the one most suited to their application behaviour. +</p> + + + +<h3>Smart Indexing</h3> + + + +<p>Blitz uses on disk and in-memory Entry storage, which is fully indexed automatically and keeps search times to a minimum. +</p> + + + +<h3>Tunable persistence</h3> + + + +<p>Disk space is now cheap & efficient both in speed and +reliability which reduces the motivation for developing a memory-only +JavaSpace. The basic performance limit for a persistent space is +related to guarenteeing consistency which is determined by the speed +with which a system can force log entries to disk. Blitz tackles these +problems by providing a range of profiles (Storage Models) giving +different tradeoffs between data-integrity and speed.</p> + + + +<ul> + + + <li>VM-style caching with full consistent logging to ensure all changes are durable - full persistence.</li> + + + + <li>VM-style caching with periodic flushing (after x seconds) - ensuring all changes x seconds ago are persistent.</li> + + + + <li>VM-style caching with no logging - if your cache is big enough to +hold the working-set of Entry's for your application, no paging occurs +so all work is performed in memory with no disk access required - +transient.</li> + + +</ul> + + + +<h3>Tools</h3> + + + +A selection of tools are provided to assist developers and administrators: + +<ol> + + + <li>Dashboard - GUI tool which displays useful information such as +the number of instances of each type, number of currently active +transactions, operation totals and memory consumption.</li> + + + <li>SyncAndShutdown - Flushes all updates to disk and shuts down a Blitz JavaSpaces instance.</li> + + + <li>DumpEntries - Displays the current contents of a Blitz JavaSpaces instance optionally unpacking and displaying each Entry.</li> + + + <li>Cleanup - Clears all Entry's from the Blitz JavaSpaces instance +and removes all schema information allowing for re-definition of Entry +structure with no restart required.</li> + + + <li>EntrySizer - assists in calculating Blitz JVM memory footprint</li> + + +</ol> + + + +<h3>Entry Browsing</h3> + + + +<p>Blitz JavaSpaces supports <code>com.sun.jini.outrigger.JavaSpaceAdmin</code> allowing appropriate Service Browsers (e.g. Inca X's community browser) to view and manipulate the Entry's within an instance.</p> + + + +<h3>Embeddable Space support</h3> + +Certain multi-threaded applications, running in a single JVM, can +benefit from the use of JavaSpaces. In these situations, having the +JavaSpace available as a remote service is undesirable. This feature +allows an application to run Blitz locally, within it's own JVM, +providing a performance boost. + +<h3>Active/Passive lease cleanup</h3> + + + +<p>In high-performance applications, the cost of tracking lease expiry +and clearing expired entries from disk may affect throughput +sufficiently that it is more economical to accept that some disk-space +will be lost to expired entries. Conversely, in environments where +disk-space is at a premium, it may be more appropriate to expend +processor and disk time doing full cleanup of expired entries.</p> + + + +<p>Blitz provides three options for handling lease expiry processing:</p> + + +<ol> + + + <li>When an expired entry is loaded into cache-memory, it will be +marked for deletion at the next cache flush. This has the effect of +cleaning up entries which are slowing down the speed of searches. +(passive cleanup)</li> + + + <li>Occasional background scans of disk storage to find and remove +expired entry's that never get into cache. This has the effect of +conserving disk space. (active cleanup)</li> + + + <li>User requested background scans of disk storage to find and remove expired entry's. (manual cleanup)</li> + + +</ol> + + + +<p><b>Note</b>: the active cleanup code by default, is turned <em>off</em>. It can be turned on by setting the <code>leaseReapInterval</code> variable in the configuration file to a non-zero value.</p> + + + +<p><b>Note</b>: the manual cleanup code by default, is turned <em>off</em>. It can be turned on by setting the <code>leaseReapInterval</code> variable in the configuration file to <code>org.dancres.blitz.lease.LeaseReaper.MANUAL_REAP</code>.</p> + + + +<h3>Built for experimentation and expansion</h3> + +Because Blitz is open-source, should the need arise, you can make +whatever changes you desire. The design is based on a small number of +generic abstractions making it easy (hopefully) to get to grips with +the code. + +<h3>Easy integration with the Inca X IDE & Runtime Environment</h3> + + + +The <a href="http://www.incax.com/">Inca X</a> team have been testing +Blitz and have built an installer to integrate it into all versions of +their IDE & Runtime Environment. + +<h2>Maturing with further development</h2> + + + +<p>Looking at RDBMS technology, one can see that it has reached +maturity - these are some of the defining characteristics of such a +market: +</p> + + + +<ul> + + + <li>A few dominant vendors.</li> + + + + <li>A large body of technical research.</li> + + + + <li>Established benchmarks.</li> + + + + <li>Large number of common features between vendors.</li> + + + + <li>A large body of knowledge with respect to application development and how to get appropriate performance.</li> + + + +</ul> + + + +<p>The maturity of the RDBMS market is in marked contrast to the +JavaSpaces technology where there's still a substantial amount of work +to be done. +</p> + + + +<p>Blitz is intended to be a vehicle for furthering the development of +JavaSpaces technology covering issues as diverse as internal +implementation, application development (usage patterns, frameworks +etc) and administration/deployment. +</p> + + + +<h2>About Blitz</h2> + + + +The Blitz project was started by Dan Creswell. + +<h3>Credits</h3> + + + +Blitz uses: + +<ol> + + + <li><a href="http://gee.cs.oswego.edu/dl/classes/EDU/oswego/cs/dl/util/concurrent/intro.html">Doug Lea's util.concurrent package</a></li> + + + <li><a href="http://teatrove.sourceforge.net/trove.html">TeaTrove</a></li> + + + <li><a href="http://www.prevayler.org/">Prevayler</a></li> + + + <li><a href="http://www.sleepycat.com/">Berkeley Db and Berkeley Db Java Edition</a></li> + + +</ol> + + + +<p></p> + +<div align="center"><a href="../index.html">Back to Documentation</a></div> + + + +<p><i>Java and all Java-based marks are trademarks or registered trademarks of Sun Microsystems, Inc. in the U. S. and other countries</i></p> + + + +</body> +</html>