Skip to content
This repository has been archived by the owner on Jun 19, 2024. It is now read-only.
/ buffer Public archive

Fork of the old stdin/stdout 'buffer' command which is lossy, purging input when no buffer blocks are available

License

Notifications You must be signed in to change notification settings

scotte/buffer

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

This is a program designed to speed up writing tapes on remote tape
drives.  Requirements are shared memory and locks which normally
means that these are supported in your kernel.

Buffer has been tested under SunOS 4.0.*, SunOS 4.1.*, Solarix, HP-UX 7.0,
and Gould UTX 2.1A (sv universe).

The program splits itself into two processes.  The first process reads
(and reblocks) from stdin into a shared memory buffer.  The second
writes from the shared memory buffer to stdout.  Doing it this way
means that the writing side effectly sits in a tight write loop and
doesn't have to wait for input.  Similarly for the input side.  It is
this waiting that slows down other reblocking processes, like dd.

I run an archive and need to write large chunks out to tape regularly
with an ethernet in the way.  Using 'buffer' in a command like:

	tar cvf - stuff | rsh somebox buffer -o /dev/rst8

is a factor of 5 faster than the best alternative, gnu tar with its
remote tape option:

	tar cvf somebox:/dev/rst8 stuff

We have been using buffer here at Imperial for a couple of years now
for writing tar tapes and the main system dumps.

Thanks to Kevin Twidle <[email protected]> for the -p and -B code.
Thanks to Bard Isley <[email protected]> for fixes to the
 read loop/SIGCHLD handling.
Thanks to [email protected] for the DEC Alpha patches.
Thanks to [email protected] (Erik L. Kargard) for the AMPEX enhancements.

INSTALLATION:
	Check that your kernel supports shared memory and semaphores.
	A quick way to check is to build buffer and run it.
	If it says "couldn't create shared memory segment" you probably
	need to reconfigure and rebuild your kernel.

	To install edit the Makefile and tailor the variables to
	your local systems.  Then type make.

DISCLAIMER:
	This package is under the GNU GENERAL PUBLIC LICENSE!
	In addtion under NO circumstances can I, or Imperial College,
	be held liable for any event caused by the running or storing 
	of this program or its documentation.
	
Lee McLoughlin.                           Phone: +44 171 594 8388
IC-Parc, William Penney Lab,              Fax: +44 171 594 8449
Imperial College, London, SW7 2BZ, UK     Email: [email protected]

About

Fork of the old stdin/stdout 'buffer' command which is lossy, purging input when no buffer blocks are available

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published