Differences

This shows you the differences between two versions of the page.

Link to this comparison view

prom:nikefs [2009/05/26 15:10] (current)
Line 1: Line 1:
 +====== NikeFS ======
 +
 +NikeFS is the virtual file system used by the new [[BufferedLogReader|Buffered Log Reader]] implementation introduced in [[start|ProM]] version 4.0.
 +
 +===== Reasons for developing NikeFS =====
 +
 +In order to be able to work on large log files in general, and long process instances, or traces, in particular, the buffered log reader implementation stores event log data in binary form in dedicated files, i.e. one binary file per process instance. Access methods to these binary files are optimized for speed, so that in general usage no significant performance drop compared to storing the events in heap space should be encountered.
 +
 +This implementation of the buffered log reader caused side-effect problems. One of them was that, depending on the operating system ProM is running on, ProM would encounter the system wide limit for the number of concurrently open files when loading logs with a great number of process instances contained. Another problem was e.g. encountered on Windows platforms, where the virus scanner was slowing operation down by scanning each process instance buffer file, even though in temporal space.
 +
 +Also, with a great number of small process instances in a log, the cost for creating and deleting files on the operating system level would introduce a number of slowdowns, defying the original purpose of the new log reader implementation to be faster than before.
 +
 +===== How NikeFS works =====
 +
 +NikeFS provides the buffered log reader with an abstraction layer for rapidly creating and modifying virtual binary files. These virtual files are created from dynamically sized blocks, which are allocated from operating system level real files, i.e. a virtual file may both be distributed over a number of real swap files, and a large number of virtual files may reside on the same real swap file. 
 +
 +This significantly reduces file access and modification times, as the NikeFS virtual file system also introduces caching mechanisms on a number of abstraction layers. Apart from this basic functionality,​ NikeFS and the associated buffered log reader implementation introduces a number of additional features and improvements specific for working with ordered log files, which can be discovered in the respective interfaces and source code.
 +
 +===== Why the name? =====
 +
 +The name NikeFS was chosen with respect to the ancient Greek goddess //Nike//, personifying victory and triumph. However, the name was rather chosen because Nike is described as "​having amazing speed, but does otherwise not have supernatural powers",​ which was thought to fit nicely the purpose. "​FS"​ obviously stands for file system.
 +