parallel: Fixed locking bug in --sql for SQLite.

testsuite: Reworked parallel-local-sql.
This commit is contained in:
Ole Tange 2016-07-06 15:58:47 +02:00
parent eacc07bcb0
commit 11a8800751
4 changed files with 710 additions and 383 deletions

View file

@ -1953,7 +1953,7 @@ sub save_stdin_stdout_stderr {
# $Global::original_stderr # $Global::original_stderr
# $Global::original_stdin # $Global::original_stdin
# Returns: N/A # Returns: N/A
# TODO Disabled until we have an open3 that will take n filehandles # TODO Disabled until we have an open3 that will take n filehandles
# for my $fdno (1..61) { # for my $fdno (1..61) {
# # /dev/fd/62 and above are used by bash for <(cmd) # # /dev/fd/62 and above are used by bash for <(cmd)
@ -3181,7 +3181,7 @@ sub parallelized_host_filtering {
::debug("init", $cmd, "\n"); ::debug("init", $cmd, "\n");
my @out; my @out;
my $prepend = ""; my $prepend = "";
my ($host_fh,$in,$err); my ($host_fh,$in,$err);
open3($in, $host_fh, $err, $cmd) || ::die_bug("parallel host check: $cmd"); open3($in, $host_fh, $err, $cmd) || ::die_bug("parallel host check: $cmd");
if(not fork()) { if(not fork()) {
@ -9904,6 +9904,10 @@ sub new {
my $dbh = DBI->connect($dsn, $userid, $password, my $dbh = DBI->connect($dsn, $userid, $password,
{ RaiseError => 1, AutoInactiveDestroy => 1 }) { RaiseError => 1, AutoInactiveDestroy => 1 })
or die $DBI::errstr; or die $DBI::errstr;
$dbh->{'PrintWarn'} = $Global::debug || 0;
$dbh->{'PrintError'} = $Global::debug || 0;
$dbh->{'RaiseError'} = $Global::debug || 0;
return bless { return bless {
'dbh' => $dbh, 'dbh' => $dbh,
'driver' => $driver, 'driver' => $driver,
@ -10085,13 +10089,19 @@ sub run {
if($DBI::errstr =~ /locked/) { if($DBI::errstr =~ /locked/) {
::debug("sql","Lock retry: $lockretry"); ::debug("sql","Lock retry: $lockretry");
$lockretry++; $lockretry++;
::usleep(rand()*300);
} else { } else {
::error($DBI::errstr); ::error($DBI::errstr);
wait_and_exit(255);
} }
} }
} }
if($lockretry >= 10) {
::die_bug("lockretry > 10");
}
if($rv < 0){ if($rv < 0){
print $DBI::errstr; ::error($DBI::errstr);
::wait_and_exit(255);
} }
return $sth; return $sth;
} }

View file

@ -2902,30 +2902,87 @@ Or if the regexps are fixed strings:
grep -F -f regexps.txt bigfile grep -F -f regexps.txt bigfile
There are 2 limiting factors: CPU and disk I/O. CPU is easy to There are 3 limiting factors: CPU, RAM, and disk I/O.
measure: If the B<grep> takes >90% CPU (e.g. when running top), then the
CPU is a limiting factor, and parallelization will speed this up. If
not, then disk I/O is the limiting factor, and depending on the disk
system it may be faster or slower to parallelize. The only way to know
for certain is to measure.
If the CPU is the limiting factor parallelization should be done on the regexps: RAM is easy to measure: If the B<grep> process takes up most of your
free memory (e.g. when running B<top>), then RAM is a limiting factor.
cat regexp.txt | parallel --pipe -L1000 --round-robin grep -f - bigfile CPU is also easy to measure: If the B<grep> takes >90% CPU in B<top>,
then the CPU is a limiting factor, and parallelization will speed this
up.
If a line matches multiple regexps, the line may be duplicated. The It is harder to see if disk I/O is the limiting factor, and depending
command will start one B<grep> per CPU and read I<bigfile> one time on the disk system it may be faster or slower to parallelize. The only
per CPU, but as that is done in parallel, all reads except the first way to know for certain is to test and measure.
will be cached in RAM. Depending on the size of I<regexp.txt> it may
be faster to use B<--block 10m> instead of B<-L1000>. If I<regexp.txt>
is too big to fit in RAM, remove B<--round-robin> and adjust =head2 Limiting factor: RAM
B<-L1000>. This will cause I<bigfile> to be read more times.
The normal B<grep -f regexs.txt bigfile> works no matter the size of
bigfile, but if regexps.txt is so big it cannot fit into memory, then
you need to split this.
B<grep -F> takes around 100 bytes of RAM and B<grep> takes about 500
bytes of RAM per 1 byte of regexp. So if regexps.txt is 1% of your
RAM, then it may be too big.
If you can convert your regexps into fixed strings do that. E.g. if
the lines you are looking for in bigfile all looks like:
ID1 foo bar baz Identifier1 quux
fubar ID2 foo bar baz Identifier2
then your regexps.txt can be converted from:
ID1.*Identifier1
ID2.*Identifier2
into:
ID1 foo bar baz Identifier1
ID2 foo bar baz Identifier2
This way you can use B<grep -F> which takes around 80% less memory and
is much faster.
If it still does not fit in memory you can do this:
parallel --pipepart -a regexps.txt --block 1M grep -F -f - -n bigfile |
sort -un | perl -pe 's/^\d+://'
The 1M should be your free memory divided by the number of cores and
divided by 200 for B<grep -F> and by 1000 for normal B<grep>. On
GNU/Linux you can do:
free=$(awk '/^((Swap)?Cached|MemFree|Buffers):/ { sum += $2 }
END { print sum }' /proc/meminfo)
percpu=$((free / 200 / $(parallel --number-of-cores)))k
parallel --pipepart -a regexps.txt --block $percpu --compress grep -F -f - -n bigfile |
sort -un | perl -pe 's/^\d+://'
If you can live with duplicated lines and wrong order, it is faster to do:
parallel --pipepart -a regexps.txt --block $percpu --compress grep -F -f - bigfile
=head2 Limiting factor: CPU
If the CPU is the limiting factor parallelization should be done on
the regexps:
cat regexp.txt | parallel --pipe -L1000 --round-robin --compress grep -f - -n bigfile |
sort -un | perl -pe 's/^\d+://'
The command will start one B<grep> per CPU and read I<bigfile> one
time per CPU, but as that is done in parallel, all reads except the
first will be cached in RAM. Depending on the size of I<regexp.txt> it
may be faster to use B<--block 10m> instead of B<-L1000>.
Some storage systems perform better when reading multiple chunks in Some storage systems perform better when reading multiple chunks in
parallel. This is true for some RAID systems and for some network file parallel. This is true for some RAID systems and for some network file
systems. To parallelize the reading of I<bigfile>: systems. To parallelize the reading of I<bigfile>:
parallel --pipepart --block 100M -a bigfile -k grep -f regexp.txt parallel --pipepart --block 100M -a bigfile -k --compress grep -f regexp.txt
This will split I<bigfile> into 100MB chunks and run B<grep> on each of This will split I<bigfile> into 100MB chunks and run B<grep> on each of
these chunks. To parallelize both reading of I<bigfile> and I<regexp.txt> these chunks. To parallelize both reading of I<bigfile> and I<regexp.txt>
@ -2936,6 +2993,11 @@ combine the two using B<--fifo>:
If a line matches multiple regexps, the line may be duplicated. If a line matches multiple regexps, the line may be duplicated.
=head2 Bigger problem
If the problem is too big to be solved by this, you are probably ready
for Lucene.
=head1 EXAMPLE: Using remote computers =head1 EXAMPLE: Using remote computers

132
testsuite/tests-to-run/parallel-local-sql.sh Normal file → Executable file
View file

@ -1,75 +1,81 @@
#!/bin/bash #!/bin/bash
export SQLITE=sqlite3:///%2Frun%2Fshm%2Fparallel.db export SQLITE=sqlite3:///%2Frun%2Fshm%2Fparallel.db
export SQLITETBL=$SQLITE/parsql export PG=pg://`whoami`:`whoami`@lo/`whoami`
export PG=pg://tange:tange@lo/tange export MYSQL=mysql://`whoami`:`whoami`@lo/`whoami`
export PGTBL=$PG/parsql
export MYSQL=mysql://`whoami`:`whoami`@lo/tange
export MYSQLTBL=$MYSQL/parsql
export PGTBL2=${PGTBL}2
export PGTBL3=${PGTBL}3
export PGTBL4=${PGTBL}4
export PGTBL5=${PGTBL}5
export T1=$(tempfile)
export T2=$(tempfile)
export T3=$(tempfile)
export T4=$(tempfile)
export T5=$(tempfile)
export T6=$(tempfile)
export T7=$(tempfile)
export T8=$(tempfile)
export T9=$(tempfile)
export T10=$(tempfile)
export T11=$(tempfile)
export T12=$(tempfile)
export T13=$(tempfile)
export T14=$(tempfile)
#sql mysql://tange:tange@lo/ 'create database tange;'; export DEBUG=false
cat <<'EOF' | sed -e 's/;$/; /;' | stdout parallel -vj0 -k --joblog /tmp/jl-`basename $0` -L1 | perl -pe 's/\s*\d+\.?\d+\s*/999/g;s/999e+999.\s+.\s+/999e+999|999/g;'
echo '### --sqlandworker mysql'
(sleep 2; parallel --sqlworker $MYSQLTBL sleep .3\;echo >$T1) &
parallel --sqlandworker $MYSQLTBL sleep .3\;echo ::: {1..5} ::: {a..e} >$T2;
true sort -u $T1 $T2;
sleep 1; sql $MYSQL 'select * from parsql order by seq;'
echo '### --sqlandworker postgresql' p_showsqlresult() {
(sleep 2; parallel --sqlworker $PGTBL sleep .3\;echo >$T3) & SERVERURL=$1
parallel --sqlandworker $PGTBL sleep .3\;echo ::: {1..5} ::: {a..e} >$T4; TABLE=$2
true sort -u $T3 $T4; sql $SERVERURL "select Host,Command,V1,V2,Stdout,Stderr from $TABLE order by seq;"
sleep 1; sql $PG 'select * from parsql order by seq;' }
echo '### --sqlandworker sqlite' p_wrapper() {
(sleep 2; parallel --sqlworker $SQLITETBL sleep .3\;echo >$T5) & INNER=$1
parallel --sqlandworker $SQLITETBL sleep .3\;echo ::: {1..5} ::: {a..e} >$T6; SERVERURL=$2
true sort -u $T5 $T6; TABLE=TBL$RANDOM
sleep 1; sql $SQLITE 'select * from parsql order by seq;' DBURL=$SERVERURL/$TABLE
T1=$(tempfile)
T2=$(tempfile)
eval "$INNER"
echo Exit=$?
wait
echo Exit=$?
$DEBUG && sort -u $T1 $T2;
rm $T1 $T2
p_showsqlresult $SERVERURL $TABLE
$DEBUG || sql $SERVERURL "drop table $TABLE;" >/dev/null
}
echo '### --sqlandworker postgresql -S lo' p_sqlandworker() {
(sleep 2; parallel -S lo --sqlworker $PGTBL2 sleep .3\;echo >$T7) & (sleep 2; parallel --sqlworker $DBURL sleep .3\;echo >$T1) &
parallel -S lo --sqlandworker $PGTBL2 sleep .3\;echo ::: {1..5} ::: {a..e} >$T8; parallel --sqlandworker $DBURL sleep .3\;echo ::: {1..5} ::: {a..e} >$T2;
true sort -u $T7 $T8; }
sleep 1; sql $PG 'select * from parsql2 order by seq;' export -f p_sqlandworker
echo '### --sqlandworker postgresql --results' par_sqlandworker() {
mkdir -p /tmp/out--sql p_wrapper p_sqlandworker $1
(sleep 2; parallel --results /tmp/out--sql --sqlworker $PGTBL3 sleep .3\;echo >$T9) & }
parallel --results /tmp/out--sql --sqlandworker $PGTBL3 sleep .3\;echo ::: {1..5} ::: {a..e} >$T10;
true sort -u $T9 $T10;
sleep 1; sql $PG 'select * from parsql3 order by seq;'
echo '### --sqlandworker postgresql --linebuffer' p_sqlandworker_lo() {
(sleep 2; parallel --linebuffer --sqlworker $PGTBL4 sleep .3\;echo >$T11) & (sleep 2; parallel -S lo --sqlworker $DBURL sleep .3\;echo >$T1) &
parallel --linebuffer --sqlandworker $PGTBL4 sleep .3\;echo ::: {1..5} ::: {a..e} >$T12; parallel -S lo --sqlandworker $DBURL sleep .3\;echo ::: {1..5} ::: {a..e} >$T2;
true sort -u $T11 $T12; }
sleep 1; sql $PG 'select * from parsql4 order by seq;'
echo '### --sqlandworker postgresql -u' par_sqlandworker_lo() {
(sleep 2; parallel -u --sqlworker $PGTBL5 sleep .3\;echo >$T13) & p_wrapper p_sqlandworker_lo $1
parallel -u --sqlandworker $PGTBL5 sleep .3\;echo ::: {1..5} ::: {a..e} >$T14; }
true sort -u $T13 $T14;
sleep 1; sql $PG 'select * from parsql5 order by seq;'
EOF p_sqlandworker_results() {
(sleep 2; parallel --results /tmp/out--sql --sqlworker $DBURL sleep .3\;echo >$T1) &
parallel --results /tmp/out--sql --sqlandworker $DBURL sleep .3\;echo ::: {1..5} ::: {a..e} >$T2;
}
eval rm '$T'{1..14} par_sqlandworker_results() {
p_wrapper p_sqlandworker_results $1
}
p_sqlandworker_linebuffer() {
(sleep 2; parallel --linebuffer --sqlworker $DBURL sleep .3\;echo >$T1) &
parallel --linebuffer --sqlandworker $DBURL sleep .3\;echo ::: {1..5} ::: {a..e} >$T2;
}
par_sqlandworker_linebuffer() {
p_wrapper p_sqlandworker_linebuffer $1
}
p_sqlandworker_unbuffer() {
(sleep 2; parallel -u --sqlworker $DBURL sleep .3\;echo >$T1) &
parallel -u --sqlandworker $DBURL sleep .3\;echo ::: {1..5} ::: {a..e} >$T2;
}
par_sqlandworker_unbuffer() {
p_wrapper p_sqlandworker_unbuffer $1
}
export -f $(compgen -A function | egrep 'p_|par_')
# Tested that -j0 in parallel is fastest (up to 15 jobs)
compgen -A function | grep par_ | sort |
stdout parallel -vj0 -k --tag --joblog /tmp/jl-`basename $0` :::: - ::: \$MYSQL \$PG \$SQLITE

View file

@ -1,301 +1,550 @@
echo '### --sqlandworker mysql' par_sqlandworker $MYSQL
### --sqlandworker mysql par_sqlandworker $MYSQL Exit=0
(sleep 2; parallel --sqlworker $MYSQLTBL sleep .3\;echo >$T1) & par_sqlandworker $MYSQL Exit=0
parallel --sqlandworker $MYSQLTBL sleep .3\;echo ::: {1..5} ::: {a..e} >$T2; true sort -u $T1 $T2; sleep 1; sql $MYSQL 'select * from parsql order by seq;' par_sqlandworker $MYSQL Host Command V1 V2 Stdout Stderr
Seq Host Starttime JobRuntime Send Receive Exitval _Signal Command V1 V2 Stdout Stderr par_sqlandworker $MYSQL : sleep .3;echo 1 a 1 a 1 a\n
1 :9999990 4 0 0 sleep .3;echo 1 a 1 a 1 a\n par_sqlandworker $MYSQL : sleep .3;echo 1 b 1 b 1 b\n
2 :9999990 4 0 0 sleep .3;echo 1 b 1 b 1 b\n par_sqlandworker $MYSQL : sleep .3;echo 1 c 1 c 1 c\n
3 :9999990 4 0 0 sleep .3;echo 1 c 1 c 1 c\n par_sqlandworker $MYSQL : sleep .3;echo 1 d 1 d 1 d\n
4 :9999990 4 0 0 sleep .3;echo 1 d 1 d 1 d\n par_sqlandworker $MYSQL : sleep .3;echo 1 e 1 e 1 e\n
5 :9999990 4 0 0 sleep .3;echo 1 e 1 e 1 e\n par_sqlandworker $MYSQL : sleep .3;echo 2 a 2 a 2 a\n
6 :9999990 4 0 0 sleep .3;echo 2 a 2 a 2 a\n par_sqlandworker $MYSQL : sleep .3;echo 2 b 2 b 2 b\n
7 :9999990 4 0 0 sleep .3;echo 2 b 2 b 2 b\n par_sqlandworker $MYSQL : sleep .3;echo 2 c 2 c 2 c\n
8 :9999990 4 0 0 sleep .3;echo 2 c 2 c 2 c\n par_sqlandworker $MYSQL : sleep .3;echo 2 d 2 d 2 d\n
9 :9999990 4 0 0 sleep .3;echo 2 d 2 d 2 d\n par_sqlandworker $MYSQL : sleep .3;echo 2 e 2 e 2 e\n
999:9999990 4 0 0 sleep .3;echo 2 e 2 e 2 e\n par_sqlandworker $MYSQL : sleep .3;echo 3 a 3 a 3 a\n
999:9999990 4 0 0 sleep .3;echo 3 a 3 a 3 a\n par_sqlandworker $MYSQL : sleep .3;echo 3 b 3 b 3 b\n
999:9999990 4 0 0 sleep .3;echo 3 b 3 b 3 b\n par_sqlandworker $MYSQL : sleep .3;echo 3 c 3 c 3 c\n
999:9999990 4 0 0 sleep .3;echo 3 c 3 c 3 c\n par_sqlandworker $MYSQL : sleep .3;echo 3 d 3 d 3 d\n
999:9999990 4 0 0 sleep .3;echo 3 d 3 d 3 d\n par_sqlandworker $MYSQL : sleep .3;echo 3 e 3 e 3 e\n
999:9999990 4 0 0 sleep .3;echo 3 e 3 e 3 e\n par_sqlandworker $MYSQL : sleep .3;echo 4 a 4 a 4 a\n
999:9999990 4 0 0 sleep .3;echo 4 a 4 a 4 a\n par_sqlandworker $MYSQL : sleep .3;echo 4 b 4 b 4 b\n
999:9999990 4 0 0 sleep .3;echo 4 b 4 b 4 b\n par_sqlandworker $MYSQL : sleep .3;echo 4 c 4 c 4 c\n
999:9999990 4 0 0 sleep .3;echo 4 c 4 c 4 c\n par_sqlandworker $MYSQL : sleep .3;echo 4 d 4 d 4 d\n
999:9999990 4 0 0 sleep .3;echo 4 d 4 d 4 d\n par_sqlandworker $MYSQL : sleep .3;echo 4 e 4 e 4 e\n
999:9999990 4 0 0 sleep .3;echo 4 e 4 e 4 e\n par_sqlandworker $MYSQL : sleep .3;echo 5 a 5 a 5 a\n
999:9999990 4 0 0 sleep .3;echo 5 a 5 a 5 a\n par_sqlandworker $MYSQL : sleep .3;echo 5 b 5 b 5 b\n
999:9999990 4 0 0 sleep .3;echo 5 b 5 b 5 b\n par_sqlandworker $MYSQL : sleep .3;echo 5 c 5 c 5 c\n
999:9999990 4 0 0 sleep .3;echo 5 c 5 c 5 c\n par_sqlandworker $MYSQL : sleep .3;echo 5 d 5 d 5 d\n
999:9999990 4 0 0 sleep .3;echo 5 d 5 d 5 d\n par_sqlandworker $MYSQL : sleep .3;echo 5 e 5 e 5 e\n
999:9999990 4 0 0 sleep .3;echo 5 e 5 e 5 e\n par_sqlandworker $PG
echo '### --sqlandworker postgresql' par_sqlandworker $PG Exit=0
### --sqlandworker postgresql par_sqlandworker $PG Exit=0
(sleep 2; parallel --sqlworker $PGTBL sleep .3\;echo >$T3) & par_sqlandworker $PG host | command | v1 | v2 | stdout | stderr
parallel --sqlandworker $PGTBL sleep .3\;echo ::: {1..5} ::: {a..e} >$T4; true sort -u $T3 $T4; sleep 1; sql $PG 'select * from parsql order by seq;' par_sqlandworker $PG ------+-------------------+----+----+--------+--------
seq | host | starttime | jobruntime | send | receive | exitval | _signal | command | v1 | v2 | stdout | stderr par_sqlandworker $PG : | sleep .3;echo 1 a | 1 | a | 1 a +|
-----+------+----------------+------------+------+---------+---------+---------+-------------------+----+----+--------+-------- par_sqlandworker $PG | | | | |
1 | : |999|999| 0 | 4 | 0 | 0 | sleep .3;echo 1 a | 1 | a | 1 a +| par_sqlandworker $PG : | sleep .3;echo 1 b | 1 | b | 1 b +|
| | | | | | | | | | | | par_sqlandworker $PG | | | | |
2 | : |999|999| 0 | 4 | 0 | 0 | sleep .3;echo 1 b | 1 | b | 1 b +| par_sqlandworker $PG : | sleep .3;echo 1 c | 1 | c | 1 c +|
| | | | | | | | | | | | par_sqlandworker $PG | | | | |
3 | : |999|999| 0 | 4 | 0 | 0 | sleep .3;echo 1 c | 1 | c | 1 c +| par_sqlandworker $PG : | sleep .3;echo 1 d | 1 | d | 1 d +|
| | | | | | | | | | | | par_sqlandworker $PG | | | | |
4 | : |999|999| 0 | 4 | 0 | 0 | sleep .3;echo 1 d | 1 | d | 1 d +| par_sqlandworker $PG : | sleep .3;echo 1 e | 1 | e | 1 e +|
| | | | | | | | | | | | par_sqlandworker $PG | | | | |
5 | : |999|999| 0 | 4 | 0 | 0 | sleep .3;echo 1 e | 1 | e | 1 e +| par_sqlandworker $PG : | sleep .3;echo 2 a | 2 | a | 2 a +|
| | | | | | | | | | | | par_sqlandworker $PG | | | | |
6 | : |999|999| 0 | 4 | 0 | 0 | sleep .3;echo 2 a | 2 | a | 2 a +| par_sqlandworker $PG : | sleep .3;echo 2 b | 2 | b | 2 b +|
| | | | | | | | | | | | par_sqlandworker $PG | | | | |
7 | : |999|999| 0 | 4 | 0 | 0 | sleep .3;echo 2 b | 2 | b | 2 b +| par_sqlandworker $PG : | sleep .3;echo 2 c | 2 | c | 2 c +|
| | | | | | | | | | | | par_sqlandworker $PG | | | | |
8 | : |999|999| 0 | 4 | 0 | 0 | sleep .3;echo 2 c | 2 | c | 2 c +| par_sqlandworker $PG : | sleep .3;echo 2 d | 2 | d | 2 d +|
| | | | | | | | | | | | par_sqlandworker $PG | | | | |
9 | : |999|999| 0 | 4 | 0 | 0 | sleep .3;echo 2 d | 2 | d | 2 d +| par_sqlandworker $PG : | sleep .3;echo 2 e | 2 | e | 2 e +|
| | | | | | | | | | | | par_sqlandworker $PG | | | | |
999| : |999|999| 0 | 4 | 0 | 0 | sleep .3;echo 2 e | 2 | e | 2 e +| par_sqlandworker $PG : | sleep .3;echo 3 a | 3 | a | 3 a +|
| | | | | | | | | | | | par_sqlandworker $PG | | | | |
999| : |999|999| 0 | 4 | 0 | 0 | sleep .3;echo 3 a | 3 | a | 3 a +| par_sqlandworker $PG : | sleep .3;echo 3 b | 3 | b | 3 b +|
| | | | | | | | | | | | par_sqlandworker $PG | | | | |
999| : |999|999| 0 | 4 | 0 | 0 | sleep .3;echo 3 b | 3 | b | 3 b +| par_sqlandworker $PG : | sleep .3;echo 3 c | 3 | c | 3 c +|
| | | | | | | | | | | | par_sqlandworker $PG | | | | |
999| : |999|999| 0 | 4 | 0 | 0 | sleep .3;echo 3 c | 3 | c | 3 c +| par_sqlandworker $PG : | sleep .3;echo 3 d | 3 | d | 3 d +|
| | | | | | | | | | | | par_sqlandworker $PG | | | | |
999| : |999|999| 0 | 4 | 0 | 0 | sleep .3;echo 3 d | 3 | d | 3 d +| par_sqlandworker $PG : | sleep .3;echo 3 e | 3 | e | 3 e +|
| | | | | | | | | | | | par_sqlandworker $PG | | | | |
999| : |999|999| 0 | 4 | 0 | 0 | sleep .3;echo 3 e | 3 | e | 3 e +| par_sqlandworker $PG : | sleep .3;echo 4 a | 4 | a | 4 a +|
| | | | | | | | | | | | par_sqlandworker $PG | | | | |
999| : |999|999| 0 | 4 | 0 | 0 | sleep .3;echo 4 a | 4 | a | 4 a +| par_sqlandworker $PG : | sleep .3;echo 4 b | 4 | b | 4 b +|
| | | | | | | | | | | | par_sqlandworker $PG | | | | |
999| : |999|999| 0 | 4 | 0 | 0 | sleep .3;echo 4 b | 4 | b | 4 b +| par_sqlandworker $PG : | sleep .3;echo 4 c | 4 | c | 4 c +|
| | | | | | | | | | | | par_sqlandworker $PG | | | | |
999| : |999|999| 0 | 4 | 0 | 0 | sleep .3;echo 4 c | 4 | c | 4 c +| par_sqlandworker $PG : | sleep .3;echo 4 d | 4 | d | 4 d +|
| | | | | | | | | | | | par_sqlandworker $PG | | | | |
999| : |999|999| 0 | 4 | 0 | 0 | sleep .3;echo 4 d | 4 | d | 4 d +| par_sqlandworker $PG : | sleep .3;echo 4 e | 4 | e | 4 e +|
| | | | | | | | | | | | par_sqlandworker $PG | | | | |
999| : |999|999| 0 | 4 | 0 | 0 | sleep .3;echo 4 e | 4 | e | 4 e +| par_sqlandworker $PG : | sleep .3;echo 5 a | 5 | a | 5 a +|
| | | | | | | | | | | | par_sqlandworker $PG | | | | |
999| : |999|999| 0 | 4 | 0 | 0 | sleep .3;echo 5 a | 5 | a | 5 a +| par_sqlandworker $PG : | sleep .3;echo 5 b | 5 | b | 5 b +|
| | | | | | | | | | | | par_sqlandworker $PG | | | | |
999| : |999|999| 0 | 4 | 0 | 0 | sleep .3;echo 5 b | 5 | b | 5 b +| par_sqlandworker $PG : | sleep .3;echo 5 c | 5 | c | 5 c +|
| | | | | | | | | | | | par_sqlandworker $PG | | | | |
999| : |999|999| 0 | 4 | 0 | 0 | sleep .3;echo 5 c | 5 | c | 5 c +| par_sqlandworker $PG : | sleep .3;echo 5 d | 5 | d | 5 d +|
| | | | | | | | | | | | par_sqlandworker $PG | | | | |
999| : |999|999| 0 | 4 | 0 | 0 | sleep .3;echo 5 d | 5 | d | 5 d +| par_sqlandworker $PG : | sleep .3;echo 5 e | 5 | e | 5 e +|
| | | | | | | | | | | | par_sqlandworker $PG | | | | |
999| : |999|999| 0 | 4 | 0 | 0 | sleep .3;echo 5 e | 5 | e | 5 e +| par_sqlandworker $PG (25 rows)
| | | | | | | | | | | | par_sqlandworker $PG
(999rows) par_sqlandworker $SQLITE
par_sqlandworker $SQLITE Exit=0
echo '### --sqlandworker sqlite' par_sqlandworker $SQLITE Exit=0
### --sqlandworker sqlite par_sqlandworker $SQLITE Host|Command|V1|V2|Stdout|Stderr
(sleep 2; parallel --sqlworker $SQLITETBL sleep .3\;echo >$T5) & par_sqlandworker $SQLITE :|sleep .3;echo 1 a|1|a|1 a
parallel --sqlandworker $SQLITETBL sleep .3\;echo ::: {1..5} ::: {a..e} >$T6; true sort -u $T5 $T6; sleep 1; sql $SQLITE 'select * from parsql order by seq;' par_sqlandworker $SQLITE |
Seq|Host|Starttime|JobRuntime|Send|Receive|Exitval|_Signal|Command|V1|V2|Stdout|Stderr par_sqlandworker $SQLITE :|sleep .3;echo 1 b|1|b|1 b
1|:|999|999|0|4|0|0|sleep .3;echo 1 a|1|a|1 a par_sqlandworker $SQLITE |
| par_sqlandworker $SQLITE :|sleep .3;echo 1 c|1|c|1 c
2|:|999|999|0|4|0|0|sleep .3;echo 1 b|1|b|1 b par_sqlandworker $SQLITE |
| par_sqlandworker $SQLITE :|sleep .3;echo 1 d|1|d|1 d
3|:|999|999|0|4|0|0|sleep .3;echo 1 c|1|c|1 c par_sqlandworker $SQLITE |
| par_sqlandworker $SQLITE :|sleep .3;echo 1 e|1|e|1 e
4|:|999|999|0|4|0|0|sleep .3;echo 1 d|1|d|1 d par_sqlandworker $SQLITE |
| par_sqlandworker $SQLITE :|sleep .3;echo 2 a|2|a|2 a
5|:|999|999|0|4|0|0|sleep .3;echo 1 e|1|e|1 e par_sqlandworker $SQLITE |
| par_sqlandworker $SQLITE :|sleep .3;echo 2 b|2|b|2 b
6|:|999|999|0|4|0|0|sleep .3;echo 2 a|2|a|2 a par_sqlandworker $SQLITE |
| par_sqlandworker $SQLITE :|sleep .3;echo 2 c|2|c|2 c
7|:|999|999|0|4|0|0|sleep .3;echo 2 b|2|b|2 b par_sqlandworker $SQLITE |
| par_sqlandworker $SQLITE :|sleep .3;echo 2 d|2|d|2 d
8|:|999|999|0|4|0|0|sleep .3;echo 2 c|2|c|2 c par_sqlandworker $SQLITE |
| par_sqlandworker $SQLITE :|sleep .3;echo 2 e|2|e|2 e
9|:|999|999|0|4|0|0|sleep .3;echo 2 d|2|d|2 d par_sqlandworker $SQLITE |
| par_sqlandworker $SQLITE :|sleep .3;echo 3 a|3|a|3 a
999|:|999|999|0|4|0|0|sleep .3;echo 2 e|2|e|2 e par_sqlandworker $SQLITE |
| par_sqlandworker $SQLITE :|sleep .3;echo 3 b|3|b|3 b
999|:|999|999|0|4|0|0|sleep .3;echo 3 a|3|a|3 a par_sqlandworker $SQLITE |
| par_sqlandworker $SQLITE :|sleep .3;echo 3 c|3|c|3 c
999|:|999|999|0|4|0|0|sleep .3;echo 3 b|3|b|3 b par_sqlandworker $SQLITE |
| par_sqlandworker $SQLITE :|sleep .3;echo 3 d|3|d|3 d
999|:|999|999|0|4|0|0|sleep .3;echo 3 c|3|c|3 c par_sqlandworker $SQLITE |
| par_sqlandworker $SQLITE :|sleep .3;echo 3 e|3|e|3 e
999|:|999|999|0|4|0|0|sleep .3;echo 3 d|3|d|3 d par_sqlandworker $SQLITE |
| par_sqlandworker $SQLITE :|sleep .3;echo 4 a|4|a|4 a
999|:|999|999|0|4|0|0|sleep .3;echo 3 e|3|e|3 e par_sqlandworker $SQLITE |
| par_sqlandworker $SQLITE :|sleep .3;echo 4 b|4|b|4 b
999|:|999|999|0|4|0|0|sleep .3;echo 4 a|4|a|4 a par_sqlandworker $SQLITE |
| par_sqlandworker $SQLITE :|sleep .3;echo 4 c|4|c|4 c
999|:|999|999|0|4|0|0|sleep .3;echo 4 b|4|b|4 b par_sqlandworker $SQLITE |
| par_sqlandworker $SQLITE :|sleep .3;echo 4 d|4|d|4 d
999|:|999|999|0|4|0|0|sleep .3;echo 4 c|4|c|4 c par_sqlandworker $SQLITE |
| par_sqlandworker $SQLITE :|sleep .3;echo 4 e|4|e|4 e
999|:|999|999|0|4|0|0|sleep .3;echo 4 d|4|d|4 d par_sqlandworker $SQLITE |
| par_sqlandworker $SQLITE :|sleep .3;echo 5 a|5|a|5 a
999|:|999|999|0|4|0|0|sleep .3;echo 4 e|4|e|4 e par_sqlandworker $SQLITE |
| par_sqlandworker $SQLITE :|sleep .3;echo 5 b|5|b|5 b
999|:|999|999|0|4|0|0|sleep .3;echo 5 a|5|a|5 a par_sqlandworker $SQLITE |
| par_sqlandworker $SQLITE :|sleep .3;echo 5 c|5|c|5 c
999|:|999|999|0|4|0|0|sleep .3;echo 5 b|5|b|5 b par_sqlandworker $SQLITE |
| par_sqlandworker $SQLITE :|sleep .3;echo 5 d|5|d|5 d
999|:|999|999|0|4|0|0|sleep .3;echo 5 c|5|c|5 c par_sqlandworker $SQLITE |
| par_sqlandworker $SQLITE :|sleep .3;echo 5 e|5|e|5 e
999|:|999|999|0|4|0|0|sleep .3;echo 5 d|5|d|5 d par_sqlandworker $SQLITE |
| par_sqlandworker_linebuffer $MYSQL
999|:|999|999|0|4|0|0|sleep .3;echo 5 e|5|e|5 e par_sqlandworker_linebuffer $MYSQL Exit=0
| par_sqlandworker_linebuffer $MYSQL Exit=0
echo '### --sqlandworker postgresql -S lo' par_sqlandworker_linebuffer $MYSQL Host Command V1 V2 Stdout Stderr
### --sqlandworker postgresql -S lo par_sqlandworker_linebuffer $MYSQL : sleep .3;echo 1 a 1 a NULL NULL
(sleep 2; parallel -S lo --sqlworker $PGTBL2 sleep .3\;echo >$T7) & par_sqlandworker_linebuffer $MYSQL : sleep .3;echo 1 b 1 b NULL NULL
parallel -S lo --sqlandworker $PGTBL2 sleep .3\;echo ::: {1..5} ::: {a..e} >$T8; true sort -u $T7 $T8; sleep 1; sql $PG 'select * from parsql2 order by seq;' par_sqlandworker_linebuffer $MYSQL : sleep .3;echo 1 c 1 c NULL NULL
seq | host | starttime | jobruntime | send | receive | exitval | _signal | command | v1 | v2 | stdout | stderr par_sqlandworker_linebuffer $MYSQL : sleep .3;echo 1 d 1 d NULL NULL
-----+------+----------------+------------+------+---------+---------+---------+-------------------+----+----+--------+-------- par_sqlandworker_linebuffer $MYSQL : sleep .3;echo 1 e 1 e NULL NULL
1 | lo |999|999| 0 | 4 | 0 | 0 | sleep .3;echo 1 a | 1 | a | 1 a +| par_sqlandworker_linebuffer $MYSQL : sleep .3;echo 2 a 2 a NULL NULL
| | | | | | | | | | | | par_sqlandworker_linebuffer $MYSQL : sleep .3;echo 2 b 2 b NULL NULL
2 | lo |999|999| 0 | 4 | 0 | 0 | sleep .3;echo 1 b | 1 | b | 1 b +| par_sqlandworker_linebuffer $MYSQL : sleep .3;echo 2 c 2 c NULL NULL
| | | | | | | | | | | | par_sqlandworker_linebuffer $MYSQL : sleep .3;echo 2 d 2 d NULL NULL
3 | lo |999|999| 0 | 4 | 0 | 0 | sleep .3;echo 1 c | 1 | c | 1 c +| par_sqlandworker_linebuffer $MYSQL : sleep .3;echo 2 e 2 e NULL NULL
| | | | | | | | | | | | par_sqlandworker_linebuffer $MYSQL : sleep .3;echo 3 a 3 a NULL NULL
4 | lo |999|999| 0 | 4 | 0 | 0 | sleep .3;echo 1 d | 1 | d | 1 d +| par_sqlandworker_linebuffer $MYSQL : sleep .3;echo 3 b 3 b NULL NULL
| | | | | | | | | | | | par_sqlandworker_linebuffer $MYSQL : sleep .3;echo 3 c 3 c NULL NULL
5 | lo |999|999| 0 | 4 | 0 | 0 | sleep .3;echo 1 e | 1 | e | 1 e +| par_sqlandworker_linebuffer $MYSQL : sleep .3;echo 3 d 3 d NULL NULL
| | | | | | | | | | | | par_sqlandworker_linebuffer $MYSQL : sleep .3;echo 3 e 3 e NULL NULL
6 | lo |999|999| 0 | 4 | 0 | 0 | sleep .3;echo 2 a | 2 | a | 2 a +| par_sqlandworker_linebuffer $MYSQL : sleep .3;echo 4 a 4 a NULL NULL
| | | | | | | | | | | | par_sqlandworker_linebuffer $MYSQL : sleep .3;echo 4 b 4 b NULL NULL
7 | lo |999|999| 0 | 4 | 0 | 0 | sleep .3;echo 2 b | 2 | b | 2 b +| par_sqlandworker_linebuffer $MYSQL : sleep .3;echo 4 c 4 c NULL NULL
| | | | | | | | | | | | par_sqlandworker_linebuffer $MYSQL : sleep .3;echo 4 d 4 d NULL NULL
8 | lo |999|999| 0 | 4 | 0 | 0 | sleep .3;echo 2 c | 2 | c | 2 c +| par_sqlandworker_linebuffer $MYSQL : sleep .3;echo 4 e 4 e NULL NULL
| | | | | | | | | | | | par_sqlandworker_linebuffer $MYSQL : sleep .3;echo 5 a 5 a NULL NULL
9 | lo |999|999| 0 | 4 | 0 | 0 | sleep .3;echo 2 d | 2 | d | 2 d +| par_sqlandworker_linebuffer $MYSQL : sleep .3;echo 5 b 5 b NULL NULL
| | | | | | | | | | | | par_sqlandworker_linebuffer $MYSQL : sleep .3;echo 5 c 5 c NULL NULL
999| lo |999|999| 0 | 4 | 0 | 0 | sleep .3;echo 2 e | 2 | e | 2 e +| par_sqlandworker_linebuffer $MYSQL : sleep .3;echo 5 d 5 d NULL NULL
| | | | | | | | | | | | par_sqlandworker_linebuffer $MYSQL : sleep .3;echo 5 e 5 e NULL NULL
999| lo |999|999| 0 | 4 | 0 | 0 | sleep .3;echo 3 a | 3 | a | 3 a +| par_sqlandworker_linebuffer $PG
| | | | | | | | | | | | par_sqlandworker_linebuffer $PG Exit=0
999| lo |999|999| 0 | 4 | 0 | 0 | sleep .3;echo 3 b | 3 | b | 3 b +| par_sqlandworker_linebuffer $PG Exit=0
| | | | | | | | | | | | par_sqlandworker_linebuffer $PG host | command | v1 | v2 | stdout | stderr
999| lo |999|999| 0 | 4 | 0 | 0 | sleep .3;echo 3 c | 3 | c | 3 c +| par_sqlandworker_linebuffer $PG ------+-------------------+----+----+--------+--------
| | | | | | | | | | | | par_sqlandworker_linebuffer $PG : | sleep .3;echo 1 a | 1 | a | |
999| lo |999|999| 0 | 4 | 0 | 0 | sleep .3;echo 3 d | 3 | d | 3 d +| par_sqlandworker_linebuffer $PG : | sleep .3;echo 1 b | 1 | b | |
| | | | | | | | | | | | par_sqlandworker_linebuffer $PG : | sleep .3;echo 1 c | 1 | c | |
999| lo |999|999| 0 | 4 | 0 | 0 | sleep .3;echo 3 e | 3 | e | 3 e +| par_sqlandworker_linebuffer $PG : | sleep .3;echo 1 d | 1 | d | |
| | | | | | | | | | | | par_sqlandworker_linebuffer $PG : | sleep .3;echo 1 e | 1 | e | |
999| lo |999|999| 0 | 4 | 0 | 0 | sleep .3;echo 4 a | 4 | a | 4 a +| par_sqlandworker_linebuffer $PG : | sleep .3;echo 2 a | 2 | a | |
| | | | | | | | | | | | par_sqlandworker_linebuffer $PG : | sleep .3;echo 2 b | 2 | b | |
999| lo |999|999| 0 | 4 | 0 | 0 | sleep .3;echo 4 b | 4 | b | 4 b +| par_sqlandworker_linebuffer $PG : | sleep .3;echo 2 c | 2 | c | |
| | | | | | | | | | | | par_sqlandworker_linebuffer $PG : | sleep .3;echo 2 d | 2 | d | |
999| lo |999|999| 0 | 4 | 0 | 0 | sleep .3;echo 4 c | 4 | c | 4 c +| par_sqlandworker_linebuffer $PG : | sleep .3;echo 2 e | 2 | e | |
| | | | | | | | | | | | par_sqlandworker_linebuffer $PG : | sleep .3;echo 3 a | 3 | a | |
999| lo |999|999| 0 | 4 | 0 | 0 | sleep .3;echo 4 d | 4 | d | 4 d +| par_sqlandworker_linebuffer $PG : | sleep .3;echo 3 b | 3 | b | |
| | | | | | | | | | | | par_sqlandworker_linebuffer $PG : | sleep .3;echo 3 c | 3 | c | |
999| lo |999|999| 0 | 4 | 0 | 0 | sleep .3;echo 4 e | 4 | e | 4 e +| par_sqlandworker_linebuffer $PG : | sleep .3;echo 3 d | 3 | d | |
| | | | | | | | | | | | par_sqlandworker_linebuffer $PG : | sleep .3;echo 3 e | 3 | e | |
999| lo |999|999| 0 | 4 | 0 | 0 | sleep .3;echo 5 a | 5 | a | 5 a +| par_sqlandworker_linebuffer $PG : | sleep .3;echo 4 a | 4 | a | |
| | | | | | | | | | | | par_sqlandworker_linebuffer $PG : | sleep .3;echo 4 b | 4 | b | |
999| lo |999|999| 0 | 4 | 0 | 0 | sleep .3;echo 5 b | 5 | b | 5 b +| par_sqlandworker_linebuffer $PG : | sleep .3;echo 4 c | 4 | c | |
| | | | | | | | | | | | par_sqlandworker_linebuffer $PG : | sleep .3;echo 4 d | 4 | d | |
999| lo |999|999| 0 | 4 | 0 | 0 | sleep .3;echo 5 c | 5 | c | 5 c +| par_sqlandworker_linebuffer $PG : | sleep .3;echo 4 e | 4 | e | |
| | | | | | | | | | | | par_sqlandworker_linebuffer $PG : | sleep .3;echo 5 a | 5 | a | |
999| lo |999|999| 0 | 4 | 0 | 0 | sleep .3;echo 5 d | 5 | d | 5 d +| par_sqlandworker_linebuffer $PG : | sleep .3;echo 5 b | 5 | b | |
| | | | | | | | | | | | par_sqlandworker_linebuffer $PG : | sleep .3;echo 5 c | 5 | c | |
999| lo |999|999| 0 | 4 | 0 | 0 | sleep .3;echo 5 e | 5 | e | 5 e +| par_sqlandworker_linebuffer $PG : | sleep .3;echo 5 d | 5 | d | |
| | | | | | | | | | | | par_sqlandworker_linebuffer $PG : | sleep .3;echo 5 e | 5 | e | |
(999rows) par_sqlandworker_linebuffer $PG (25 rows)
par_sqlandworker_linebuffer $PG
echo '### --sqlandworker postgresql --results' par_sqlandworker_linebuffer $SQLITE
### --sqlandworker postgresql --results par_sqlandworker_linebuffer $SQLITE Exit=0
mkdir -p /tmp/out--sql par_sqlandworker_linebuffer $SQLITE Exit=0
(sleep 2; parallel --results /tmp/out--sql --sqlworker $PGTBL3 sleep .3\;echo >$T9) & par_sqlandworker_linebuffer $SQLITE Host|Command|V1|V2|Stdout|Stderr
parallel --results /tmp/out--sql --sqlandworker $PGTBL3 sleep .3\;echo ::: {1..5} ::: {a..e} >$T999; true sort -u $T9 $T999; sleep 1; sql $PG 'select * from parsql3 order by seq;' par_sqlandworker_linebuffer $SQLITE :|sleep .3;echo 1 a|1|a||
seq | host | starttime | jobruntime | send | receive | exitval | _signal | command | v1 | v2 | stdout | stderr par_sqlandworker_linebuffer $SQLITE :|sleep .3;echo 1 b|1|b||
-----+------+----------------+------------+------+---------+---------+---------+-------------------+----+----+------------------------------+------------------------------ par_sqlandworker_linebuffer $SQLITE :|sleep .3;echo 1 c|1|c||
1 | : |999|999| 0 | 4 | 0 | 0 | sleep .3;echo 1 a | 1 | a | /tmp/out--sql/1/1/2/a/stdout | /tmp/out--sql/1/1/2/a/stderr par_sqlandworker_linebuffer $SQLITE :|sleep .3;echo 1 d|1|d||
2 | : |999|999| 0 | 4 | 0 | 0 | sleep .3;echo 1 b | 1 | b | /tmp/out--sql/1/1/2/b/stdout | /tmp/out--sql/1/1/2/b/stderr par_sqlandworker_linebuffer $SQLITE :|sleep .3;echo 1 e|1|e||
3 | : |999|999| 0 | 4 | 0 | 0 | sleep .3;echo 1 c | 1 | c | /tmp/out--sql/1/1/2/c/stdout | /tmp/out--sql/1/1/2/c/stderr par_sqlandworker_linebuffer $SQLITE :|sleep .3;echo 2 a|2|a||
4 | : |999|999| 0 | 4 | 0 | 0 | sleep .3;echo 1 d | 1 | d | /tmp/out--sql/1/1/2/d/stdout | /tmp/out--sql/1/1/2/d/stderr par_sqlandworker_linebuffer $SQLITE :|sleep .3;echo 2 b|2|b||
5 | : |999|999| 0 | 4 | 0 | 0 | sleep .3;echo 1 e | 1 | e | /tmp/out--sql/1/1/2/e/stdout | /tmp/out--sql/1/1/2/e/stderr par_sqlandworker_linebuffer $SQLITE :|sleep .3;echo 2 c|2|c||
6 | : |999|999| 0 | 4 | 0 | 0 | sleep .3;echo 2 a | 2 | a | /tmp/out--sql/1/2/2/a/stdout | /tmp/out--sql/1/2/2/a/stderr par_sqlandworker_linebuffer $SQLITE :|sleep .3;echo 2 d|2|d||
7 | : |999|999| 0 | 4 | 0 | 0 | sleep .3;echo 2 b | 2 | b | /tmp/out--sql/1/2/2/b/stdout | /tmp/out--sql/1/2/2/b/stderr par_sqlandworker_linebuffer $SQLITE :|sleep .3;echo 2 e|2|e||
8 | : |999|999| 0 | 4 | 0 | 0 | sleep .3;echo 2 c | 2 | c | /tmp/out--sql/1/2/2/c/stdout | /tmp/out--sql/1/2/2/c/stderr par_sqlandworker_linebuffer $SQLITE :|sleep .3;echo 3 a|3|a||
9 | : |999|999| 0 | 4 | 0 | 0 | sleep .3;echo 2 d | 2 | d | /tmp/out--sql/1/2/2/d/stdout | /tmp/out--sql/1/2/2/d/stderr par_sqlandworker_linebuffer $SQLITE :|sleep .3;echo 3 b|3|b||
999| : |999|999| 0 | 4 | 0 | 0 | sleep .3;echo 2 e | 2 | e | /tmp/out--sql/1/2/2/e/stdout | /tmp/out--sql/1/2/2/e/stderr par_sqlandworker_linebuffer $SQLITE :|sleep .3;echo 3 c|3|c||
999| : |999|999| 0 | 4 | 0 | 0 | sleep .3;echo 3 a | 3 | a | /tmp/out--sql/1/3/2/a/stdout | /tmp/out--sql/1/3/2/a/stderr par_sqlandworker_linebuffer $SQLITE :|sleep .3;echo 3 d|3|d||
999| : |999|999| 0 | 4 | 0 | 0 | sleep .3;echo 3 b | 3 | b | /tmp/out--sql/1/3/2/b/stdout | /tmp/out--sql/1/3/2/b/stderr par_sqlandworker_linebuffer $SQLITE :|sleep .3;echo 3 e|3|e||
999| : |999|999| 0 | 4 | 0 | 0 | sleep .3;echo 3 c | 3 | c | /tmp/out--sql/1/3/2/c/stdout | /tmp/out--sql/1/3/2/c/stderr par_sqlandworker_linebuffer $SQLITE :|sleep .3;echo 4 a|4|a||
999| : |999|999| 0 | 4 | 0 | 0 | sleep .3;echo 3 d | 3 | d | /tmp/out--sql/1/3/2/d/stdout | /tmp/out--sql/1/3/2/d/stderr par_sqlandworker_linebuffer $SQLITE :|sleep .3;echo 4 b|4|b||
999| : |999|999| 0 | 4 | 0 | 0 | sleep .3;echo 3 e | 3 | e | /tmp/out--sql/1/3/2/e/stdout | /tmp/out--sql/1/3/2/e/stderr par_sqlandworker_linebuffer $SQLITE :|sleep .3;echo 4 c|4|c||
999| : |999|999| 0 | 4 | 0 | 0 | sleep .3;echo 4 a | 4 | a | /tmp/out--sql/1/4/2/a/stdout | /tmp/out--sql/1/4/2/a/stderr par_sqlandworker_linebuffer $SQLITE :|sleep .3;echo 4 d|4|d||
999| : |999|999| 0 | 4 | 0 | 0 | sleep .3;echo 4 b | 4 | b | /tmp/out--sql/1/4/2/b/stdout | /tmp/out--sql/1/4/2/b/stderr par_sqlandworker_linebuffer $SQLITE :|sleep .3;echo 4 e|4|e||
999| : |999|999| 0 | 4 | 0 | 0 | sleep .3;echo 4 c | 4 | c | /tmp/out--sql/1/4/2/c/stdout | /tmp/out--sql/1/4/2/c/stderr par_sqlandworker_linebuffer $SQLITE :|sleep .3;echo 5 a|5|a||
999| : |999|999| 0 | 4 | 0 | 0 | sleep .3;echo 4 d | 4 | d | /tmp/out--sql/1/4/2/d/stdout | /tmp/out--sql/1/4/2/d/stderr par_sqlandworker_linebuffer $SQLITE :|sleep .3;echo 5 b|5|b||
999| : |999|999| 0 | 4 | 0 | 0 | sleep .3;echo 4 e | 4 | e | /tmp/out--sql/1/4/2/e/stdout | /tmp/out--sql/1/4/2/e/stderr par_sqlandworker_linebuffer $SQLITE :|sleep .3;echo 5 c|5|c||
999| : |999|999| 0 | 4 | 0 | 0 | sleep .3;echo 5 a | 5 | a | /tmp/out--sql/1/5/2/a/stdout | /tmp/out--sql/1/5/2/a/stderr par_sqlandworker_linebuffer $SQLITE :|sleep .3;echo 5 d|5|d||
999| : |999|999| 0 | 4 | 0 | 0 | sleep .3;echo 5 b | 5 | b | /tmp/out--sql/1/5/2/b/stdout | /tmp/out--sql/1/5/2/b/stderr par_sqlandworker_linebuffer $SQLITE :|sleep .3;echo 5 e|5|e||
999| : |999|999| 0 | 4 | 0 | 0 | sleep .3;echo 5 c | 5 | c | /tmp/out--sql/1/5/2/c/stdout | /tmp/out--sql/1/5/2/c/stderr par_sqlandworker_lo $MYSQL
999| : |999|999| 0 | 4 | 0 | 0 | sleep .3;echo 5 d | 5 | d | /tmp/out--sql/1/5/2/d/stdout | /tmp/out--sql/1/5/2/d/stderr par_sqlandworker_lo $MYSQL Exit=0
999| : |999|999| 0 | 4 | 0 | 0 | sleep .3;echo 5 e | 5 | e | /tmp/out--sql/1/5/2/e/stdout | /tmp/out--sql/1/5/2/e/stderr par_sqlandworker_lo $MYSQL Exit=0
(999rows) par_sqlandworker_lo $MYSQL Host Command V1 V2 Stdout Stderr
par_sqlandworker_lo $MYSQL lo sleep .3;echo 1 a 1 a 1 a\n
echo '### --sqlandworker postgresql --linebuffer' par_sqlandworker_lo $MYSQL lo sleep .3;echo 1 b 1 b 1 b\n
### --sqlandworker postgresql --linebuffer par_sqlandworker_lo $MYSQL lo sleep .3;echo 1 c 1 c 1 c\n
(sleep 2; parallel --linebuffer --sqlworker $PGTBL4 sleep .3\;echo >$T999) & par_sqlandworker_lo $MYSQL lo sleep .3;echo 1 d 1 d 1 d\n
parallel --linebuffer --sqlandworker $PGTBL4 sleep .3\;echo ::: {1..5} ::: {a..e} >$T999; true sort -u $T999$T999; sleep 1; sql $PG 'select * from parsql4 order by seq;' par_sqlandworker_lo $MYSQL lo sleep .3;echo 1 e 1 e 1 e\n
seq | host | starttime | jobruntime | send | receive | exitval | _signal | command | v1 | v2 | stdout | stderr par_sqlandworker_lo $MYSQL lo sleep .3;echo 2 a 2 a 2 a\n
-----+------+----------------+------------+------+---------+---------+---------+-------------------+----+----+--------+-------- par_sqlandworker_lo $MYSQL lo sleep .3;echo 2 b 2 b 2 b\n
1 | : |999|999| 0 | 4 | 0 | 0 | sleep .3;echo 1 a | 1 | a | | par_sqlandworker_lo $MYSQL lo sleep .3;echo 2 c 2 c 2 c\n
2 | : |999|999| 0 | 4 | 0 | 0 | sleep .3;echo 1 b | 1 | b | | par_sqlandworker_lo $MYSQL lo sleep .3;echo 2 d 2 d 2 d\n
3 | : |999|999| 0 | 4 | 0 | 0 | sleep .3;echo 1 c | 1 | c | | par_sqlandworker_lo $MYSQL lo sleep .3;echo 2 e 2 e 2 e\n
4 | : |999|999| 0 | 4 | 0 | 0 | sleep .3;echo 1 d | 1 | d | | par_sqlandworker_lo $MYSQL lo sleep .3;echo 3 a 3 a 3 a\n
5 | : |999|999| 0 | 4 | 0 | 0 | sleep .3;echo 1 e | 1 | e | | par_sqlandworker_lo $MYSQL lo sleep .3;echo 3 b 3 b 3 b\n
6 | : |999|999| 0 | 4 | 0 | 0 | sleep .3;echo 2 a | 2 | a | | par_sqlandworker_lo $MYSQL lo sleep .3;echo 3 c 3 c 3 c\n
7 | : |999|999| 0 | 4 | 0 | 0 | sleep .3;echo 2 b | 2 | b | | par_sqlandworker_lo $MYSQL lo sleep .3;echo 3 d 3 d 3 d\n
8 | : |999|999| 0 | 4 | 0 | 0 | sleep .3;echo 2 c | 2 | c | | par_sqlandworker_lo $MYSQL lo sleep .3;echo 3 e 3 e 3 e\n
9 | : |999|999| 0 | 4 | 0 | 0 | sleep .3;echo 2 d | 2 | d | | par_sqlandworker_lo $MYSQL lo sleep .3;echo 4 a 4 a 4 a\n
999| : |999|999| 0 | 4 | 0 | 0 | sleep .3;echo 2 e | 2 | e | | par_sqlandworker_lo $MYSQL lo sleep .3;echo 4 b 4 b 4 b\n
999| : |999|999| 0 | 4 | 0 | 0 | sleep .3;echo 3 a | 3 | a | | par_sqlandworker_lo $MYSQL lo sleep .3;echo 4 c 4 c 4 c\n
999| : |999|999| 0 | 4 | 0 | 0 | sleep .3;echo 3 b | 3 | b | | par_sqlandworker_lo $MYSQL lo sleep .3;echo 4 d 4 d 4 d\n
999| : |999|999| 0 | 4 | 0 | 0 | sleep .3;echo 3 c | 3 | c | | par_sqlandworker_lo $MYSQL lo sleep .3;echo 4 e 4 e 4 e\n
999| : |999|999| 0 | 4 | 0 | 0 | sleep .3;echo 3 d | 3 | d | | par_sqlandworker_lo $MYSQL lo sleep .3;echo 5 a 5 a 5 a\n
999| : |999|999| 0 | 4 | 0 | 0 | sleep .3;echo 3 e | 3 | e | | par_sqlandworker_lo $MYSQL lo sleep .3;echo 5 b 5 b 5 b\n
999| : |999|999| 0 | 4 | 0 | 0 | sleep .3;echo 4 a | 4 | a | | par_sqlandworker_lo $MYSQL lo sleep .3;echo 5 c 5 c 5 c\n
999| : |999|999| 0 | 4 | 0 | 0 | sleep .3;echo 4 b | 4 | b | | par_sqlandworker_lo $MYSQL lo sleep .3;echo 5 d 5 d 5 d\n
999| : |999|999| 0 | 4 | 0 | 0 | sleep .3;echo 4 c | 4 | c | | par_sqlandworker_lo $MYSQL lo sleep .3;echo 5 e 5 e 5 e\n
999| : |999|999| 0 | 4 | 0 | 0 | sleep .3;echo 4 d | 4 | d | | par_sqlandworker_lo $PG
999| : |999|999| 0 | 4 | 0 | 0 | sleep .3;echo 4 e | 4 | e | | par_sqlandworker_lo $PG Exit=0
999| : |999|999| 0 | 4 | 0 | 0 | sleep .3;echo 5 a | 5 | a | | par_sqlandworker_lo $PG Exit=0
999| : |999|999| 0 | 4 | 0 | 0 | sleep .3;echo 5 b | 5 | b | | par_sqlandworker_lo $PG host | command | v1 | v2 | stdout | stderr
999| : |999|999| 0 | 4 | 0 | 0 | sleep .3;echo 5 c | 5 | c | | par_sqlandworker_lo $PG ------+-------------------+----+----+--------+--------
999| : |999|999| 0 | 4 | 0 | 0 | sleep .3;echo 5 d | 5 | d | | par_sqlandworker_lo $PG lo | sleep .3;echo 1 a | 1 | a | 1 a +|
999| : |999|999| 0 | 4 | 0 | 0 | sleep .3;echo 5 e | 5 | e | | par_sqlandworker_lo $PG | | | | |
(999rows) par_sqlandworker_lo $PG lo | sleep .3;echo 1 b | 1 | b | 1 b +|
par_sqlandworker_lo $PG | | | | |
echo '### --sqlandworker postgresql -u' par_sqlandworker_lo $PG lo | sleep .3;echo 1 c | 1 | c | 1 c +|
### --sqlandworker postgresql -u par_sqlandworker_lo $PG | | | | |
(sleep 2; parallel -u --sqlworker $PGTBL5 sleep .3\;echo >$T999) & par_sqlandworker_lo $PG lo | sleep .3;echo 1 d | 1 | d | 1 d +|
parallel -u --sqlandworker $PGTBL5 sleep .3\;echo ::: {1..5} ::: {a..e} >$T999; true sort -u $T999$T999; sleep 1; sql $PG 'select * from parsql5 order by seq;' par_sqlandworker_lo $PG | | | | |
seq | host | starttime | jobruntime | send | receive | exitval | _signal | command | v1 | v2 | stdout | stderr par_sqlandworker_lo $PG lo | sleep .3;echo 1 e | 1 | e | 1 e +|
-----+------+----------------+------------+------+---------+---------+---------+-------------------+----+----+--------+-------- par_sqlandworker_lo $PG | | | | |
1 | : |999|999| 0 | 0 | 0 | 0 | sleep .3;echo 1 a | 1 | a | | par_sqlandworker_lo $PG lo | sleep .3;echo 2 a | 2 | a | 2 a +|
2 | : |999|999| 0 | 0 | 0 | 0 | sleep .3;echo 1 b | 1 | b | | par_sqlandworker_lo $PG | | | | |
3 | : |999|999| 0 | 0 | 0 | 0 | sleep .3;echo 1 c | 1 | c | | par_sqlandworker_lo $PG lo | sleep .3;echo 2 b | 2 | b | 2 b +|
4 | : |999|999| 0 | 0 | 0 | 0 | sleep .3;echo 1 d | 1 | d | | par_sqlandworker_lo $PG | | | | |
5 | : |999|999| 0 | 0 | 0 | 0 | sleep .3;echo 1 e | 1 | e | | par_sqlandworker_lo $PG lo | sleep .3;echo 2 c | 2 | c | 2 c +|
6 | : |999|999| 0 | 0 | 0 | 0 | sleep .3;echo 2 a | 2 | a | | par_sqlandworker_lo $PG | | | | |
7 | : |999|999| 0 | 0 | 0 | 0 | sleep .3;echo 2 b | 2 | b | | par_sqlandworker_lo $PG lo | sleep .3;echo 2 d | 2 | d | 2 d +|
8 | : |999|999| 0 | 0 | 0 | 0 | sleep .3;echo 2 c | 2 | c | | par_sqlandworker_lo $PG | | | | |
9 | : |999|999| 0 | 0 | 0 | 0 | sleep .3;echo 2 d | 2 | d | | par_sqlandworker_lo $PG lo | sleep .3;echo 2 e | 2 | e | 2 e +|
999| : |999|999| 0 | 0 | 0 | 0 | sleep .3;echo 2 e | 2 | e | | par_sqlandworker_lo $PG | | | | |
999| : |999|999| 0 | 0 | 0 | 0 | sleep .3;echo 3 a | 3 | a | | par_sqlandworker_lo $PG lo | sleep .3;echo 3 a | 3 | a | 3 a +|
999| : |999|999| 0 | 0 | 0 | 0 | sleep .3;echo 3 b | 3 | b | | par_sqlandworker_lo $PG | | | | |
999| : |999|999| 0 | 0 | 0 | 0 | sleep .3;echo 3 c | 3 | c | | par_sqlandworker_lo $PG lo | sleep .3;echo 3 b | 3 | b | 3 b +|
999| : |999|999| 0 | 0 | 0 | 0 | sleep .3;echo 3 d | 3 | d | | par_sqlandworker_lo $PG | | | | |
999| : |999|999| 0 | 0 | 0 | 0 | sleep .3;echo 3 e | 3 | e | | par_sqlandworker_lo $PG lo | sleep .3;echo 3 c | 3 | c | 3 c +|
999| : |999|999| 0 | 0 | 0 | 0 | sleep .3;echo 4 a | 4 | a | | par_sqlandworker_lo $PG | | | | |
999| : |999|999| 0 | 0 | 0 | 0 | sleep .3;echo 4 b | 4 | b | | par_sqlandworker_lo $PG lo | sleep .3;echo 3 d | 3 | d | 3 d +|
999| : |999|999| 0 | 0 | 0 | 0 | sleep .3;echo 4 c | 4 | c | | par_sqlandworker_lo $PG | | | | |
999| : |999|999| 0 | 0 | 0 | 0 | sleep .3;echo 4 d | 4 | d | | par_sqlandworker_lo $PG lo | sleep .3;echo 3 e | 3 | e | 3 e +|
999| : |999|999| 0 | 0 | 0 | 0 | sleep .3;echo 4 e | 4 | e | | par_sqlandworker_lo $PG | | | | |
999| : |999|999| 0 | 0 | 0 | 0 | sleep .3;echo 5 a | 5 | a | | par_sqlandworker_lo $PG lo | sleep .3;echo 4 a | 4 | a | 4 a +|
999| : |999|999| 0 | 0 | 0 | 0 | sleep .3;echo 5 b | 5 | b | | par_sqlandworker_lo $PG | | | | |
999| : |999|999| 0 | 0 | 0 | 0 | sleep .3;echo 5 c | 5 | c | | par_sqlandworker_lo $PG lo | sleep .3;echo 4 b | 4 | b | 4 b +|
999| : |999|999| 0 | 0 | 0 | 0 | sleep .3;echo 5 d | 5 | d | | par_sqlandworker_lo $PG | | | | |
999| : |999|999| 0 | 0 | 0 | 0 | sleep .3;echo 5 e | 5 | e | | par_sqlandworker_lo $PG lo | sleep .3;echo 4 c | 4 | c | 4 c +|
(999rows) par_sqlandworker_lo $PG | | | | |
par_sqlandworker_lo $PG lo | sleep .3;echo 4 d | 4 | d | 4 d +|
par_sqlandworker_lo $PG | | | | |
par_sqlandworker_lo $PG lo | sleep .3;echo 4 e | 4 | e | 4 e +|
par_sqlandworker_lo $PG | | | | |
par_sqlandworker_lo $PG lo | sleep .3;echo 5 a | 5 | a | 5 a +|
par_sqlandworker_lo $PG | | | | |
par_sqlandworker_lo $PG lo | sleep .3;echo 5 b | 5 | b | 5 b +|
par_sqlandworker_lo $PG | | | | |
par_sqlandworker_lo $PG lo | sleep .3;echo 5 c | 5 | c | 5 c +|
par_sqlandworker_lo $PG | | | | |
par_sqlandworker_lo $PG lo | sleep .3;echo 5 d | 5 | d | 5 d +|
par_sqlandworker_lo $PG | | | | |
par_sqlandworker_lo $PG lo | sleep .3;echo 5 e | 5 | e | 5 e +|
par_sqlandworker_lo $PG | | | | |
par_sqlandworker_lo $PG (25 rows)
par_sqlandworker_lo $PG
par_sqlandworker_lo $SQLITE
par_sqlandworker_lo $SQLITE Exit=0
par_sqlandworker_lo $SQLITE Exit=0
par_sqlandworker_lo $SQLITE Host|Command|V1|V2|Stdout|Stderr
par_sqlandworker_lo $SQLITE lo|sleep .3;echo 1 a|1|a|1 a
par_sqlandworker_lo $SQLITE |
par_sqlandworker_lo $SQLITE lo|sleep .3;echo 1 b|1|b|1 b
par_sqlandworker_lo $SQLITE |
par_sqlandworker_lo $SQLITE lo|sleep .3;echo 1 c|1|c|1 c
par_sqlandworker_lo $SQLITE |
par_sqlandworker_lo $SQLITE lo|sleep .3;echo 1 d|1|d|1 d
par_sqlandworker_lo $SQLITE |
par_sqlandworker_lo $SQLITE lo|sleep .3;echo 1 e|1|e|1 e
par_sqlandworker_lo $SQLITE |
par_sqlandworker_lo $SQLITE lo|sleep .3;echo 2 a|2|a|2 a
par_sqlandworker_lo $SQLITE |
par_sqlandworker_lo $SQLITE lo|sleep .3;echo 2 b|2|b|2 b
par_sqlandworker_lo $SQLITE |
par_sqlandworker_lo $SQLITE lo|sleep .3;echo 2 c|2|c|2 c
par_sqlandworker_lo $SQLITE |
par_sqlandworker_lo $SQLITE lo|sleep .3;echo 2 d|2|d|2 d
par_sqlandworker_lo $SQLITE |
par_sqlandworker_lo $SQLITE lo|sleep .3;echo 2 e|2|e|2 e
par_sqlandworker_lo $SQLITE |
par_sqlandworker_lo $SQLITE lo|sleep .3;echo 3 a|3|a|3 a
par_sqlandworker_lo $SQLITE |
par_sqlandworker_lo $SQLITE lo|sleep .3;echo 3 b|3|b|3 b
par_sqlandworker_lo $SQLITE |
par_sqlandworker_lo $SQLITE lo|sleep .3;echo 3 c|3|c|3 c
par_sqlandworker_lo $SQLITE |
par_sqlandworker_lo $SQLITE lo|sleep .3;echo 3 d|3|d|3 d
par_sqlandworker_lo $SQLITE |
par_sqlandworker_lo $SQLITE lo|sleep .3;echo 3 e|3|e|3 e
par_sqlandworker_lo $SQLITE |
par_sqlandworker_lo $SQLITE lo|sleep .3;echo 4 a|4|a|4 a
par_sqlandworker_lo $SQLITE |
par_sqlandworker_lo $SQLITE lo|sleep .3;echo 4 b|4|b|4 b
par_sqlandworker_lo $SQLITE |
par_sqlandworker_lo $SQLITE lo|sleep .3;echo 4 c|4|c|4 c
par_sqlandworker_lo $SQLITE |
par_sqlandworker_lo $SQLITE lo|sleep .3;echo 4 d|4|d|4 d
par_sqlandworker_lo $SQLITE |
par_sqlandworker_lo $SQLITE lo|sleep .3;echo 4 e|4|e|4 e
par_sqlandworker_lo $SQLITE |
par_sqlandworker_lo $SQLITE lo|sleep .3;echo 5 a|5|a|5 a
par_sqlandworker_lo $SQLITE |
par_sqlandworker_lo $SQLITE lo|sleep .3;echo 5 b|5|b|5 b
par_sqlandworker_lo $SQLITE |
par_sqlandworker_lo $SQLITE lo|sleep .3;echo 5 c|5|c|5 c
par_sqlandworker_lo $SQLITE |
par_sqlandworker_lo $SQLITE lo|sleep .3;echo 5 d|5|d|5 d
par_sqlandworker_lo $SQLITE |
par_sqlandworker_lo $SQLITE lo|sleep .3;echo 5 e|5|e|5 e
par_sqlandworker_lo $SQLITE |
par_sqlandworker_results $MYSQL
par_sqlandworker_results $MYSQL Exit=0
par_sqlandworker_results $MYSQL Exit=0
par_sqlandworker_results $MYSQL Host Command V1 V2 Stdout Stderr
par_sqlandworker_results $MYSQL : sleep .3;echo 1 a 1 a /tmp/out--sql/1/1/2/a/stdout /tmp/out--sql/1/1/2/a/stderr
par_sqlandworker_results $MYSQL : sleep .3;echo 1 b 1 b /tmp/out--sql/1/1/2/b/stdout /tmp/out--sql/1/1/2/b/stderr
par_sqlandworker_results $MYSQL : sleep .3;echo 1 c 1 c /tmp/out--sql/1/1/2/c/stdout /tmp/out--sql/1/1/2/c/stderr
par_sqlandworker_results $MYSQL : sleep .3;echo 1 d 1 d /tmp/out--sql/1/1/2/d/stdout /tmp/out--sql/1/1/2/d/stderr
par_sqlandworker_results $MYSQL : sleep .3;echo 1 e 1 e /tmp/out--sql/1/1/2/e/stdout /tmp/out--sql/1/1/2/e/stderr
par_sqlandworker_results $MYSQL : sleep .3;echo 2 a 2 a /tmp/out--sql/1/2/2/a/stdout /tmp/out--sql/1/2/2/a/stderr
par_sqlandworker_results $MYSQL : sleep .3;echo 2 b 2 b /tmp/out--sql/1/2/2/b/stdout /tmp/out--sql/1/2/2/b/stderr
par_sqlandworker_results $MYSQL : sleep .3;echo 2 c 2 c /tmp/out--sql/1/2/2/c/stdout /tmp/out--sql/1/2/2/c/stderr
par_sqlandworker_results $MYSQL : sleep .3;echo 2 d 2 d /tmp/out--sql/1/2/2/d/stdout /tmp/out--sql/1/2/2/d/stderr
par_sqlandworker_results $MYSQL : sleep .3;echo 2 e 2 e /tmp/out--sql/1/2/2/e/stdout /tmp/out--sql/1/2/2/e/stderr
par_sqlandworker_results $MYSQL : sleep .3;echo 3 a 3 a /tmp/out--sql/1/3/2/a/stdout /tmp/out--sql/1/3/2/a/stderr
par_sqlandworker_results $MYSQL : sleep .3;echo 3 b 3 b /tmp/out--sql/1/3/2/b/stdout /tmp/out--sql/1/3/2/b/stderr
par_sqlandworker_results $MYSQL : sleep .3;echo 3 c 3 c /tmp/out--sql/1/3/2/c/stdout /tmp/out--sql/1/3/2/c/stderr
par_sqlandworker_results $MYSQL : sleep .3;echo 3 d 3 d /tmp/out--sql/1/3/2/d/stdout /tmp/out--sql/1/3/2/d/stderr
par_sqlandworker_results $MYSQL : sleep .3;echo 3 e 3 e /tmp/out--sql/1/3/2/e/stdout /tmp/out--sql/1/3/2/e/stderr
par_sqlandworker_results $MYSQL : sleep .3;echo 4 a 4 a /tmp/out--sql/1/4/2/a/stdout /tmp/out--sql/1/4/2/a/stderr
par_sqlandworker_results $MYSQL : sleep .3;echo 4 b 4 b /tmp/out--sql/1/4/2/b/stdout /tmp/out--sql/1/4/2/b/stderr
par_sqlandworker_results $MYSQL : sleep .3;echo 4 c 4 c /tmp/out--sql/1/4/2/c/stdout /tmp/out--sql/1/4/2/c/stderr
par_sqlandworker_results $MYSQL : sleep .3;echo 4 d 4 d /tmp/out--sql/1/4/2/d/stdout /tmp/out--sql/1/4/2/d/stderr
par_sqlandworker_results $MYSQL : sleep .3;echo 4 e 4 e /tmp/out--sql/1/4/2/e/stdout /tmp/out--sql/1/4/2/e/stderr
par_sqlandworker_results $MYSQL : sleep .3;echo 5 a 5 a /tmp/out--sql/1/5/2/a/stdout /tmp/out--sql/1/5/2/a/stderr
par_sqlandworker_results $MYSQL : sleep .3;echo 5 b 5 b /tmp/out--sql/1/5/2/b/stdout /tmp/out--sql/1/5/2/b/stderr
par_sqlandworker_results $MYSQL : sleep .3;echo 5 c 5 c /tmp/out--sql/1/5/2/c/stdout /tmp/out--sql/1/5/2/c/stderr
par_sqlandworker_results $MYSQL : sleep .3;echo 5 d 5 d /tmp/out--sql/1/5/2/d/stdout /tmp/out--sql/1/5/2/d/stderr
par_sqlandworker_results $MYSQL : sleep .3;echo 5 e 5 e /tmp/out--sql/1/5/2/e/stdout /tmp/out--sql/1/5/2/e/stderr
par_sqlandworker_results $PG
par_sqlandworker_results $PG Exit=0
par_sqlandworker_results $PG Exit=0
par_sqlandworker_results $PG host | command | v1 | v2 | stdout | stderr
par_sqlandworker_results $PG ------+-------------------+----+----+------------------------------+------------------------------
par_sqlandworker_results $PG : | sleep .3;echo 1 a | 1 | a | /tmp/out--sql/1/1/2/a/stdout | /tmp/out--sql/1/1/2/a/stderr
par_sqlandworker_results $PG : | sleep .3;echo 1 b | 1 | b | /tmp/out--sql/1/1/2/b/stdout | /tmp/out--sql/1/1/2/b/stderr
par_sqlandworker_results $PG : | sleep .3;echo 1 c | 1 | c | /tmp/out--sql/1/1/2/c/stdout | /tmp/out--sql/1/1/2/c/stderr
par_sqlandworker_results $PG : | sleep .3;echo 1 d | 1 | d | /tmp/out--sql/1/1/2/d/stdout | /tmp/out--sql/1/1/2/d/stderr
par_sqlandworker_results $PG : | sleep .3;echo 1 e | 1 | e | /tmp/out--sql/1/1/2/e/stdout | /tmp/out--sql/1/1/2/e/stderr
par_sqlandworker_results $PG : | sleep .3;echo 2 a | 2 | a | /tmp/out--sql/1/2/2/a/stdout | /tmp/out--sql/1/2/2/a/stderr
par_sqlandworker_results $PG : | sleep .3;echo 2 b | 2 | b | /tmp/out--sql/1/2/2/b/stdout | /tmp/out--sql/1/2/2/b/stderr
par_sqlandworker_results $PG : | sleep .3;echo 2 c | 2 | c | /tmp/out--sql/1/2/2/c/stdout | /tmp/out--sql/1/2/2/c/stderr
par_sqlandworker_results $PG : | sleep .3;echo 2 d | 2 | d | /tmp/out--sql/1/2/2/d/stdout | /tmp/out--sql/1/2/2/d/stderr
par_sqlandworker_results $PG : | sleep .3;echo 2 e | 2 | e | /tmp/out--sql/1/2/2/e/stdout | /tmp/out--sql/1/2/2/e/stderr
par_sqlandworker_results $PG : | sleep .3;echo 3 a | 3 | a | /tmp/out--sql/1/3/2/a/stdout | /tmp/out--sql/1/3/2/a/stderr
par_sqlandworker_results $PG : | sleep .3;echo 3 b | 3 | b | /tmp/out--sql/1/3/2/b/stdout | /tmp/out--sql/1/3/2/b/stderr
par_sqlandworker_results $PG : | sleep .3;echo 3 c | 3 | c | /tmp/out--sql/1/3/2/c/stdout | /tmp/out--sql/1/3/2/c/stderr
par_sqlandworker_results $PG : | sleep .3;echo 3 d | 3 | d | /tmp/out--sql/1/3/2/d/stdout | /tmp/out--sql/1/3/2/d/stderr
par_sqlandworker_results $PG : | sleep .3;echo 3 e | 3 | e | /tmp/out--sql/1/3/2/e/stdout | /tmp/out--sql/1/3/2/e/stderr
par_sqlandworker_results $PG : | sleep .3;echo 4 a | 4 | a | /tmp/out--sql/1/4/2/a/stdout | /tmp/out--sql/1/4/2/a/stderr
par_sqlandworker_results $PG : | sleep .3;echo 4 b | 4 | b | /tmp/out--sql/1/4/2/b/stdout | /tmp/out--sql/1/4/2/b/stderr
par_sqlandworker_results $PG : | sleep .3;echo 4 c | 4 | c | /tmp/out--sql/1/4/2/c/stdout | /tmp/out--sql/1/4/2/c/stderr
par_sqlandworker_results $PG : | sleep .3;echo 4 d | 4 | d | /tmp/out--sql/1/4/2/d/stdout | /tmp/out--sql/1/4/2/d/stderr
par_sqlandworker_results $PG : | sleep .3;echo 4 e | 4 | e | /tmp/out--sql/1/4/2/e/stdout | /tmp/out--sql/1/4/2/e/stderr
par_sqlandworker_results $PG : | sleep .3;echo 5 a | 5 | a | /tmp/out--sql/1/5/2/a/stdout | /tmp/out--sql/1/5/2/a/stderr
par_sqlandworker_results $PG : | sleep .3;echo 5 b | 5 | b | /tmp/out--sql/1/5/2/b/stdout | /tmp/out--sql/1/5/2/b/stderr
par_sqlandworker_results $PG : | sleep .3;echo 5 c | 5 | c | /tmp/out--sql/1/5/2/c/stdout | /tmp/out--sql/1/5/2/c/stderr
par_sqlandworker_results $PG : | sleep .3;echo 5 d | 5 | d | /tmp/out--sql/1/5/2/d/stdout | /tmp/out--sql/1/5/2/d/stderr
par_sqlandworker_results $PG : | sleep .3;echo 5 e | 5 | e | /tmp/out--sql/1/5/2/e/stdout | /tmp/out--sql/1/5/2/e/stderr
par_sqlandworker_results $PG (25 rows)
par_sqlandworker_results $PG
par_sqlandworker_results $SQLITE
par_sqlandworker_results $SQLITE Exit=0
par_sqlandworker_results $SQLITE Exit=0
par_sqlandworker_results $SQLITE Host|Command|V1|V2|Stdout|Stderr
par_sqlandworker_results $SQLITE :|sleep .3;echo 1 a|1|a|/tmp/out--sql/1/1/2/a/stdout|/tmp/out--sql/1/1/2/a/stderr
par_sqlandworker_results $SQLITE :|sleep .3;echo 1 b|1|b|/tmp/out--sql/1/1/2/b/stdout|/tmp/out--sql/1/1/2/b/stderr
par_sqlandworker_results $SQLITE :|sleep .3;echo 1 c|1|c|/tmp/out--sql/1/1/2/c/stdout|/tmp/out--sql/1/1/2/c/stderr
par_sqlandworker_results $SQLITE :|sleep .3;echo 1 d|1|d|/tmp/out--sql/1/1/2/d/stdout|/tmp/out--sql/1/1/2/d/stderr
par_sqlandworker_results $SQLITE :|sleep .3;echo 1 e|1|e|/tmp/out--sql/1/1/2/e/stdout|/tmp/out--sql/1/1/2/e/stderr
par_sqlandworker_results $SQLITE :|sleep .3;echo 2 a|2|a|/tmp/out--sql/1/2/2/a/stdout|/tmp/out--sql/1/2/2/a/stderr
par_sqlandworker_results $SQLITE :|sleep .3;echo 2 b|2|b|/tmp/out--sql/1/2/2/b/stdout|/tmp/out--sql/1/2/2/b/stderr
par_sqlandworker_results $SQLITE :|sleep .3;echo 2 c|2|c|/tmp/out--sql/1/2/2/c/stdout|/tmp/out--sql/1/2/2/c/stderr
par_sqlandworker_results $SQLITE :|sleep .3;echo 2 d|2|d|/tmp/out--sql/1/2/2/d/stdout|/tmp/out--sql/1/2/2/d/stderr
par_sqlandworker_results $SQLITE :|sleep .3;echo 2 e|2|e|/tmp/out--sql/1/2/2/e/stdout|/tmp/out--sql/1/2/2/e/stderr
par_sqlandworker_results $SQLITE :|sleep .3;echo 3 a|3|a|/tmp/out--sql/1/3/2/a/stdout|/tmp/out--sql/1/3/2/a/stderr
par_sqlandworker_results $SQLITE :|sleep .3;echo 3 b|3|b|/tmp/out--sql/1/3/2/b/stdout|/tmp/out--sql/1/3/2/b/stderr
par_sqlandworker_results $SQLITE :|sleep .3;echo 3 c|3|c|/tmp/out--sql/1/3/2/c/stdout|/tmp/out--sql/1/3/2/c/stderr
par_sqlandworker_results $SQLITE :|sleep .3;echo 3 d|3|d|/tmp/out--sql/1/3/2/d/stdout|/tmp/out--sql/1/3/2/d/stderr
par_sqlandworker_results $SQLITE :|sleep .3;echo 3 e|3|e|/tmp/out--sql/1/3/2/e/stdout|/tmp/out--sql/1/3/2/e/stderr
par_sqlandworker_results $SQLITE :|sleep .3;echo 4 a|4|a|/tmp/out--sql/1/4/2/a/stdout|/tmp/out--sql/1/4/2/a/stderr
par_sqlandworker_results $SQLITE :|sleep .3;echo 4 b|4|b|/tmp/out--sql/1/4/2/b/stdout|/tmp/out--sql/1/4/2/b/stderr
par_sqlandworker_results $SQLITE :|sleep .3;echo 4 c|4|c|/tmp/out--sql/1/4/2/c/stdout|/tmp/out--sql/1/4/2/c/stderr
par_sqlandworker_results $SQLITE :|sleep .3;echo 4 d|4|d|/tmp/out--sql/1/4/2/d/stdout|/tmp/out--sql/1/4/2/d/stderr
par_sqlandworker_results $SQLITE :|sleep .3;echo 4 e|4|e|/tmp/out--sql/1/4/2/e/stdout|/tmp/out--sql/1/4/2/e/stderr
par_sqlandworker_results $SQLITE :|sleep .3;echo 5 a|5|a|/tmp/out--sql/1/5/2/a/stdout|/tmp/out--sql/1/5/2/a/stderr
par_sqlandworker_results $SQLITE :|sleep .3;echo 5 b|5|b|/tmp/out--sql/1/5/2/b/stdout|/tmp/out--sql/1/5/2/b/stderr
par_sqlandworker_results $SQLITE :|sleep .3;echo 5 c|5|c|/tmp/out--sql/1/5/2/c/stdout|/tmp/out--sql/1/5/2/c/stderr
par_sqlandworker_results $SQLITE :|sleep .3;echo 5 d|5|d|/tmp/out--sql/1/5/2/d/stdout|/tmp/out--sql/1/5/2/d/stderr
par_sqlandworker_results $SQLITE :|sleep .3;echo 5 e|5|e|/tmp/out--sql/1/5/2/e/stdout|/tmp/out--sql/1/5/2/e/stderr
par_sqlandworker_unbuffer $MYSQL
par_sqlandworker_unbuffer $MYSQL Exit=0
par_sqlandworker_unbuffer $MYSQL Exit=0
par_sqlandworker_unbuffer $MYSQL Host Command V1 V2 Stdout Stderr
par_sqlandworker_unbuffer $MYSQL : sleep .3;echo 1 a 1 a NULL NULL
par_sqlandworker_unbuffer $MYSQL : sleep .3;echo 1 b 1 b NULL NULL
par_sqlandworker_unbuffer $MYSQL : sleep .3;echo 1 c 1 c NULL NULL
par_sqlandworker_unbuffer $MYSQL : sleep .3;echo 1 d 1 d NULL NULL
par_sqlandworker_unbuffer $MYSQL : sleep .3;echo 1 e 1 e NULL NULL
par_sqlandworker_unbuffer $MYSQL : sleep .3;echo 2 a 2 a NULL NULL
par_sqlandworker_unbuffer $MYSQL : sleep .3;echo 2 b 2 b NULL NULL
par_sqlandworker_unbuffer $MYSQL : sleep .3;echo 2 c 2 c NULL NULL
par_sqlandworker_unbuffer $MYSQL : sleep .3;echo 2 d 2 d NULL NULL
par_sqlandworker_unbuffer $MYSQL : sleep .3;echo 2 e 2 e NULL NULL
par_sqlandworker_unbuffer $MYSQL : sleep .3;echo 3 a 3 a NULL NULL
par_sqlandworker_unbuffer $MYSQL : sleep .3;echo 3 b 3 b NULL NULL
par_sqlandworker_unbuffer $MYSQL : sleep .3;echo 3 c 3 c NULL NULL
par_sqlandworker_unbuffer $MYSQL : sleep .3;echo 3 d 3 d NULL NULL
par_sqlandworker_unbuffer $MYSQL : sleep .3;echo 3 e 3 e NULL NULL
par_sqlandworker_unbuffer $MYSQL : sleep .3;echo 4 a 4 a NULL NULL
par_sqlandworker_unbuffer $MYSQL : sleep .3;echo 4 b 4 b NULL NULL
par_sqlandworker_unbuffer $MYSQL : sleep .3;echo 4 c 4 c NULL NULL
par_sqlandworker_unbuffer $MYSQL : sleep .3;echo 4 d 4 d NULL NULL
par_sqlandworker_unbuffer $MYSQL : sleep .3;echo 4 e 4 e NULL NULL
par_sqlandworker_unbuffer $MYSQL : sleep .3;echo 5 a 5 a NULL NULL
par_sqlandworker_unbuffer $MYSQL : sleep .3;echo 5 b 5 b NULL NULL
par_sqlandworker_unbuffer $MYSQL : sleep .3;echo 5 c 5 c NULL NULL
par_sqlandworker_unbuffer $MYSQL : sleep .3;echo 5 d 5 d NULL NULL
par_sqlandworker_unbuffer $MYSQL : sleep .3;echo 5 e 5 e NULL NULL
par_sqlandworker_unbuffer $PG
par_sqlandworker_unbuffer $PG Exit=0
par_sqlandworker_unbuffer $PG Exit=0
par_sqlandworker_unbuffer $PG host | command | v1 | v2 | stdout | stderr
par_sqlandworker_unbuffer $PG ------+-------------------+----+----+--------+--------
par_sqlandworker_unbuffer $PG : | sleep .3;echo 1 a | 1 | a | |
par_sqlandworker_unbuffer $PG : | sleep .3;echo 1 b | 1 | b | |
par_sqlandworker_unbuffer $PG : | sleep .3;echo 1 c | 1 | c | |
par_sqlandworker_unbuffer $PG : | sleep .3;echo 1 d | 1 | d | |
par_sqlandworker_unbuffer $PG : | sleep .3;echo 1 e | 1 | e | |
par_sqlandworker_unbuffer $PG : | sleep .3;echo 2 a | 2 | a | |
par_sqlandworker_unbuffer $PG : | sleep .3;echo 2 b | 2 | b | |
par_sqlandworker_unbuffer $PG : | sleep .3;echo 2 c | 2 | c | |
par_sqlandworker_unbuffer $PG : | sleep .3;echo 2 d | 2 | d | |
par_sqlandworker_unbuffer $PG : | sleep .3;echo 2 e | 2 | e | |
par_sqlandworker_unbuffer $PG : | sleep .3;echo 3 a | 3 | a | |
par_sqlandworker_unbuffer $PG : | sleep .3;echo 3 b | 3 | b | |
par_sqlandworker_unbuffer $PG : | sleep .3;echo 3 c | 3 | c | |
par_sqlandworker_unbuffer $PG : | sleep .3;echo 3 d | 3 | d | |
par_sqlandworker_unbuffer $PG : | sleep .3;echo 3 e | 3 | e | |
par_sqlandworker_unbuffer $PG : | sleep .3;echo 4 a | 4 | a | |
par_sqlandworker_unbuffer $PG : | sleep .3;echo 4 b | 4 | b | |
par_sqlandworker_unbuffer $PG : | sleep .3;echo 4 c | 4 | c | |
par_sqlandworker_unbuffer $PG : | sleep .3;echo 4 d | 4 | d | |
par_sqlandworker_unbuffer $PG : | sleep .3;echo 4 e | 4 | e | |
par_sqlandworker_unbuffer $PG : | sleep .3;echo 5 a | 5 | a | |
par_sqlandworker_unbuffer $PG : | sleep .3;echo 5 b | 5 | b | |
par_sqlandworker_unbuffer $PG : | sleep .3;echo 5 c | 5 | c | |
par_sqlandworker_unbuffer $PG : | sleep .3;echo 5 d | 5 | d | |
par_sqlandworker_unbuffer $PG : | sleep .3;echo 5 e | 5 | e | |
par_sqlandworker_unbuffer $PG (25 rows)
par_sqlandworker_unbuffer $PG
par_sqlandworker_unbuffer $SQLITE
par_sqlandworker_unbuffer $SQLITE Exit=0
par_sqlandworker_unbuffer $SQLITE Exit=0
par_sqlandworker_unbuffer $SQLITE Host|Command|V1|V2|Stdout|Stderr
par_sqlandworker_unbuffer $SQLITE :|sleep .3;echo 1 a|1|a||
par_sqlandworker_unbuffer $SQLITE :|sleep .3;echo 1 b|1|b||
par_sqlandworker_unbuffer $SQLITE :|sleep .3;echo 1 c|1|c||
par_sqlandworker_unbuffer $SQLITE :|sleep .3;echo 1 d|1|d||
par_sqlandworker_unbuffer $SQLITE :|sleep .3;echo 1 e|1|e||
par_sqlandworker_unbuffer $SQLITE :|sleep .3;echo 2 a|2|a||
par_sqlandworker_unbuffer $SQLITE :|sleep .3;echo 2 b|2|b||
par_sqlandworker_unbuffer $SQLITE :|sleep .3;echo 2 c|2|c||
par_sqlandworker_unbuffer $SQLITE :|sleep .3;echo 2 d|2|d||
par_sqlandworker_unbuffer $SQLITE :|sleep .3;echo 2 e|2|e||
par_sqlandworker_unbuffer $SQLITE :|sleep .3;echo 3 a|3|a||
par_sqlandworker_unbuffer $SQLITE :|sleep .3;echo 3 b|3|b||
par_sqlandworker_unbuffer $SQLITE :|sleep .3;echo 3 c|3|c||
par_sqlandworker_unbuffer $SQLITE :|sleep .3;echo 3 d|3|d||
par_sqlandworker_unbuffer $SQLITE :|sleep .3;echo 3 e|3|e||
par_sqlandworker_unbuffer $SQLITE :|sleep .3;echo 4 a|4|a||
par_sqlandworker_unbuffer $SQLITE :|sleep .3;echo 4 b|4|b||
par_sqlandworker_unbuffer $SQLITE :|sleep .3;echo 4 c|4|c||
par_sqlandworker_unbuffer $SQLITE :|sleep .3;echo 4 d|4|d||
par_sqlandworker_unbuffer $SQLITE :|sleep .3;echo 4 e|4|e||
par_sqlandworker_unbuffer $SQLITE :|sleep .3;echo 5 a|5|a||
par_sqlandworker_unbuffer $SQLITE :|sleep .3;echo 5 b|5|b||
par_sqlandworker_unbuffer $SQLITE :|sleep .3;echo 5 c|5|c||
par_sqlandworker_unbuffer $SQLITE :|sleep .3;echo 5 d|5|d||
par_sqlandworker_unbuffer $SQLITE :|sleep .3;echo 5 e|5|e||