Project

General

Profile

Actions

Prototypes » History » Revision 22

« Previous | Revision 22/49 (diff) | Next »
Greg Burri, 03/18/2009 02:22 PM


Prototypes

Prototypes are locate in the '/prototypes' directory in the repository. The goal is to write some code to try to resolve a particular problem which we don't know exactly how to solve.

  1. Creating SHA-1 hash for each part of a file. See Libraries for the list of SHA-1 lib. We must find the quickest library. The reference in term of speed is sha1sum from the openssl package. The speed is approximately 150Mo/s for a cached file for an Intel 1.8 GHz Core2 CPU.
  2. Reading and writing files with UTF8 characters in theirs filename. Must be tested for the three platforms : Linux, Windows and MacOSX.
  3. Searching into a large set of files and directories with a glob string or a range of size, see the chapter 8 and 9 of RWH. Measure the average time for about 50'000 files, it should be below one minute for the first search and below 3 seconds for the next searches.
  4. Observing the modifications of the files structure to hash new added files and remove hash from the cache when a file is deleted.
  5. Efficient of the file transfer over TCP/IP with Haskell. It includes reading from the disk, streaming and writing to the disk. Comparisons with SMB and NFS.
  6. Multicast UDP and periodically signal emitting.
  7. Serializing and exchanging message with Protocol Buffers in Haskell. see http://hackage.haskell.org/cgi-bin/hackage-scripts/package/protocol-buffers.
  8. Defining and testing the concurrent model.
  9. Reading and writing the same file from different threads.

Updated by Greg Burri almost 16 years ago · 22 revisions