/[gzz]/manuscripts/storm/article.rst
ViewVC logotype

Diff of /manuscripts/storm/article.rst

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.164 by antont, Sat Feb 15 15:19:06 2003 UTC revision 1.165 by benja, Sat Feb 15 15:23:42 2003 UTC
# Line 413  operations are on *spans*, i.e. ranges o Line 413  operations are on *spans*, i.e. ranges o
413  (``...:4-6``).  (``...:4-6``).
414    
415  Our current implementation shows only links between documents  Our current implementation shows only links between documents
416  that are in memory at the same time [screenshot of xupdf, perhaps ref too  that are in memory at the same time (Fig. [ref-buoyframe]_,
417  (submitted) antont: was thinking the same, it would illustrate this well].  discussed in [lukka03xupdf-submitted]_).
418  In the future, we will implement a global distributed index on top of  In the future, we will implement a global distributed index on top of
419  a distributed hashtable (Section 5).  a distributed hashtable (Section 5).
420  To find the transclusions of a span, the system will retrieve  To find the transclusions of a span, the system will retrieve
421  all transclusions of any span with the same prefix (``...:``), then  all transclusions of any span with the same prefix (``...:``), then
422  sort out those that do not overlap the span in question.  sort out those that do not overlap the span in question.
423    
424    .. figure:: buoyframe0.ps
425       :label: buoyframe
426    
427       Our current implementation showing a PDF file with links
428       and transclusions.
429    
430  Since the problem is to search for overlapping ranges,  Since the problem is to search for overlapping ranges,
431  the spans themselves can not be used as hashtable keys.  the spans themselves can not be used as hashtable keys.
432  However, we keep the number of spans with the same prefix  However, we keep the number of spans with the same prefix
# Line 718  to a Storm pool:: Line 724  to a Storm pool::
724      getItems(block) ->      getItems(block) ->
725          set of (key, value) pairs          set of (key, value) pairs
726    
727  This callback processes a block and returns a set of  This callback analyzes a block and returns a set of
728  hashtable items (key/value pairs) to be placed into the index.  hashtable items (key/value pairs) to be placed into the index.
729  The Storm pool, in turn, provides  The Storm pool, in turn, provides
730  the following interface to the application::  the following interface to the application::
# Line 734  allowing applications to put arbitrary i Line 740  allowing applications to put arbitrary i
740  because binding items to blocks makes it easy for pools  because binding items to blocks makes it easy for pools
741  to e.g. remove associated items when deleting a block.  to e.g. remove associated items when deleting a block.
742    
743  As an example, the ``getItems()`` method of our Xanalogical  As an example, the ``getItems()`` method of our Xanalogical storage
744  storage implementation will, for a block containing a document,  implementation will, for a block containing a document,
745  collect all the spans in a document, and return items  first collect all the spans in a document.
746  from their scroll blocks' IDs to the spans and their positions  For each span, it will then return an item mapping the span's scroll
747  in the document. When we want to find the transclusions of  block id to the span's position in the document.
748  a span, we use ``get()`` to get the items for the ID of  When we want to find the transclusions of
749    a span, we use ``get()`` to find transclusions from
750  that span's scroll block, and load the document blocks referenced  that span's scroll block, and load the document blocks referenced
751  by the items.  by the items.
752    

Legend:
Removed from v.1.164  
changed lines
  Added in v.1.165

savannah-hackers-public@gnu.org
ViewVC Help
Powered by ViewVC 1.1.26