blob: 70a1cccc772a9bd109080198eda5fd93a2b8c2c2 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
|
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.
[for Free/NetBSD, this means you MUST have a kernel with
options SYSVSHM
compiled in - markm]
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 > /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
|