/[gzz]/gzz/Documentation/misc/hemppah-progradu/masterthesis.tex
ViewVC logotype

Diff of /gzz/Documentation/misc/hemppah-progradu/masterthesis.tex

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

revision 1.98 by hemppah, Fri Feb 28 13:18:40 2003 UTC revision 1.99 by hemppah, Fri Feb 28 14:42:46 2003 UTC
# Line 1615  General security considerations \cite{si Line 1615  General security considerations \cite{si
1615    
1616    
1617    
 \begin{figure}  
 \centering  
 \includegraphics[width=10cm, height=10cm]{storm_uml.eps}  
 \caption{Simplified Storm block storage model}  
 \label{fig:storm_model}  
 \end{figure}  
   
   
 \begin{figure}  
 \centering  
 \includegraphics[width=15cm, height=10cm]{storm_pointerblock_creation.eps}  
 \caption{Pointer block creation process}  
 \label{fig:storm_model}  
 \end{figure}  
   
   
   
   
   
   
   
1618    
1619  \chapter{Fenfire hypermedia system}  \chapter{Fenfire hypermedia system}
1620    
# Line 1658  Fenfire is high modular software system. Line 1637  Fenfire is high modular software system.
1637  \begin{itemize}  \begin{itemize}
1638  \item \textbf{Storm}: distributed storage module for storing arbitrary data items  \item \textbf{Storm}: distributed storage module for storing arbitrary data items
1639  \item \textbf{UMLLinker}: UML based tool for generating software documentation    \item \textbf{UMLLinker}: UML based tool for generating software documentation  
1640  \item \textbf{Xu-Storm}: xanalogical hypertext built upon Storm storage model  \item \textbf{Alph}: xanalogical hypertext built upon Storm storage model
1641  \item \textbf{GLMosaicText}: flexible OpenGL interface for font manipulation  \item \textbf{GLMosaicText}: flexible OpenGL interface for font manipulation
1642  \item \textbf{CallGL}: wrapping library used for OpenGL calls  \item \textbf{CallGL}: wrapping library used for OpenGL calls
1643  \item \textbf{LibVob}: graphic library used for creating navigation interfaces in complex data views  \item \textbf{LibVob}: graphic library used for creating navigation interfaces in complex data views
1644  \end{itemize}  \end{itemize}
1645    
1646  In this thesis, we focus on Storm module, since it's the foundation of Fenfire's Peer-to-Peer  In this thesis, we focus on Storm and Xu-Storm modules, since they are the foundation of Fenfire's
1647  functionality.  Peer-to-Peer functionality. If not otherwise mentioned, we use term 'Storm' referring to both
1648    Storm and Alph modules.
1649    
1650  \section{Xanalogical model}  \section{Xanalogical model}
1651    
# Line 1685  is more substantial than in other models Line 1665  is more substantial than in other models
1665  containing a specific \emph{fluid media unit} (e.g., a character) that the link connects.  containing a specific \emph{fluid media unit} (e.g., a character) that the link connects.
1666  In practice, however, xanalogical storage model uses \emph{spans}, ranges of consecutive  In practice, however, xanalogical storage model uses \emph{spans}, ranges of consecutive
1667  fluid media units, to handle storage operations. This is done for better performance as  fluid media units, to handle storage operations. This is done for better performance as
1668  doing expensive operations for \emph{every} fluid media unit is not efficient.  doing expensive operations for every fluid media unit is not efficient. Moreover,
1669    xanalogical storage model stores fluid media units to append-only \emph{scrolls}.
1670    
1671  \emph{Enfilade} can be considered as a ''virtual file'' (or part of one), which is a list  \emph{Enfilade} can be considered as a ''virtual file'' (or part of one), which is a list
1672  of fluid media contents. In xanalogical storage model, links between content are external  of fluid media contents. In xanalogical storage model, links between content are external
# Line 1695  enfilade of contents already used in ano Line 1676  enfilade of contents already used in ano
1676  different data contents. By using this mechanism, system implementing xanalogical model  different data contents. By using this mechanism, system implementing xanalogical model
1677  is able to show all data content that share same fluid media with current data content  is able to show all data content that share same fluid media with current data content
1678  (e.g., all documents containing current document's text). Figure \ref{fig:xanalogical_model}  (e.g., all documents containing current document's text). Figure \ref{fig:xanalogical_model}
1679  illustrates xanalogical model.  illustrates xanalogical model used with documents, text and characters.
1680    
1681    
1682  \begin{figure}  \begin{figure}
# Line 1708  illustrates xanalogical model. Line 1689  illustrates xanalogical model.
1689    
1690  \section{Storm}  \section{Storm}
1691    
1692  \cite{lukka02freenetguids}  In this section, we will give an brief overview of Storm design. More information can be found
1693    from recent publications: for general discussion about Fenfire in Peer-to-Peer environment,
1694    see \cite{lukka02freenetguids}, and for detailed Storm design, see \cite{fallenstein03storm}.
1695    
1696    Storm (for \emph{STORage Module}) is a software module, which is used in Fenfire for
1697    implementing basic data storage operations. Storm stores all data as \emph{scroll blocks}, which
1698    are immutable byte sequences. SHA-1 cryptographic content hash \cite{fips-sha-1} is used
1699    for creating locatiotion-independent, globally unique identifiers for blocks. Storm
1700    blocks have much in common with regular files, except Storm blocks are \emph{immutable} as
1701    any change to the byte sequence would the change block's hash value, i.e., unique
1702    identifier. This mechanism creates a basis for implementing xanalogical model in our
1703    Fenfire system. Figure \ref{fig:storm_model} illustrated simplified Storm storage model.
1704    
1705    \begin{figure}
1706    \centering
1707    \includegraphics[width=10cm, height=10cm]{storm_uml.eps}
1708    \caption{Simplified Storm block storage model}
1709    \label{fig:storm_model}
1710    \end{figure}
1711    
 \cite{fallenstein03storm}  
1712    
1713  \subsection{Storm block storage}  In addition to immutable data, Storm has a support for mutable data. Storm uses
1714    \emph{pointers} and \emph{diffs} for dealing with this kind of data. In this paper,
1715    we discuss only pointers as they are part of the thesis' research problems.
1716    More information about diffs can be found from \cite{fallenstein03storm}.
1717    
1718    Pointer is a updatable reference to scroll block. In practice, pointer is a
1719    random string created automatically by Storm \cite{benja02urn5}, associated
1720    with a collection of \emph{pointer blocks}. Each pointer block has a single
1721    target for the pointer. In figure \ref{fig:storm_model}, we present overal
1722    pointer creation process. Pointer block may contain zero or more obsoleted
1723    pointer blocks, i.e. when a new version of scroll block is created, it supersedes
1724    one older version which has been created in the past. The most current pointer
1725    block will 'obsolete' the pointer block targeting the supersed version. Next
1726    time, when the pointer is used for refering to a specific scroll block, only
1727    the most recent pointer's block target is loaded.
1728    
1729    \begin{figure}
1730    \centering
1731    \includegraphics[width=15cm, height=10cm]{storm_pointerblock_creation.eps}
1732    \caption{Pointer block creation process}
1733    \label{fig:storm_model}
1734    \end{figure}
1735    
 \cite{benja02urn5}  
 \cite{balakrishnan03semanticfree}  
1736    
1737  \chapter{Evaluation of Peer-to-Peer for Fenfire}  \chapter{Evaluation of Peer-to-Peer for Fenfire}
1738    

Legend:
Removed from v.1.98  
changed lines
  Added in v.1.99

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