Codebase list mbuffer / upstream/20150412
upstream/20150412

Tree @upstream/20150412 (Download .tar.gz)

m(easuring) buffer
==================
AUTHOR:		Thomas Maier-Komor
e-mail:		thomas@maier-komor.de
homepage:	http://www.maier-komor.de/mbuffer.html


LICENSE:
========
GNU GPLv3 (see file LICENSE for details)


DESCRIPTION:
============
mbuffer is a raplacement for buffer with additional functionality:

# display of i/o speed
# optional use of memory mapped i/o for huge buffer files
# multithreaded instead of sharedmemory ipc
# multi-volume support
# auto-loader support
# network support
# buffer compatible command-line options


NETWORKING:
==================
The included networking code is based on TCP/IP.  To use it you should
know the basics of TCP/IP. Use it only on a trusted LAN, as there is no
builtin security.


TESTING:
========
to test the program I do the following:
# tar cf - /usr | mbuffer | tar tf - > out
# tar cf - /usr | mbuffer -t | tar tf - > out


ARCHITECTURES and PLATFORMS:
============================
This software has been tested under the following operatingsystems:
- solaris 8 (SPARC and x86) and later
  - no known issues
  - do not put your temporary files on a tmpfs filesystem,
    as this is equivalent to a normal memory allocated buffer
- linux 2.2 (x86) and later
  - some pthread versions of linux seem to have problems with
    cancellation, causing a segmentation fault upon SIGINTR
- tru64-alpha 
  - broken display
- FreeBSD 5.x (x86)


64 Bit Buffers:
===============
The buffer limit is sysconf(_SC_SEM_VALUE_MAX)*Blocksize. This usually
limits the maximum number of blocks to 2G-1, because semaphores are
implemented using an int, which is on most architectures a 32 Bit word.
This limit is currently a non-issue, but might be resolved in a future
release, by using condition variables.

If the total buffer size is 2GB or larger, you will need to compile
mbuffer as a 64bit executable. This requires that you have a 64bit
processor. Compiling with gcc you will need to pass -m64 as CFLAGS
to configure. E.g.:
env CFLAGS="-O -g -m64" ./configure
For Sun's Studio Compiler the equivalent flag is -xarch=v9.


TODO:
=====
# fix: unknown bugs


FEEDBACK:
=========
It is always nice to get feedback. If you encounter
a problem or a bug, send me a note. Requests for enhancements
are also welcome.
(software@maier-komor.de)


DONATIONS:
==========
If you like this software, and use it for production porposes in your
company, please consider making a donation to support this work. 
You can donate via PayPal to the author's e-mail address:
thomas@maier-komor.de