diff --git a/src/parallel b/src/parallel index a03f8907..8e1ac7ee 100755 --- a/src/parallel +++ b/src/parallel @@ -1953,7 +1953,7 @@ sub save_stdin_stdout_stderr { # $Global::original_stderr # $Global::original_stdin # Returns: N/A - + # TODO Disabled until we have an open3 that will take n filehandles # for my $fdno (1..61) { # # /dev/fd/62 and above are used by bash for <(cmd) @@ -3181,7 +3181,7 @@ sub parallelized_host_filtering { ::debug("init", $cmd, "\n"); my @out; my $prepend = ""; - + my ($host_fh,$in,$err); open3($in, $host_fh, $err, $cmd) || ::die_bug("parallel host check: $cmd"); if(not fork()) { @@ -9904,6 +9904,10 @@ sub new { my $dbh = DBI->connect($dsn, $userid, $password, { RaiseError => 1, AutoInactiveDestroy => 1 }) or die $DBI::errstr; + $dbh->{'PrintWarn'} = $Global::debug || 0; + $dbh->{'PrintError'} = $Global::debug || 0; + $dbh->{'RaiseError'} = $Global::debug || 0; + return bless { 'dbh' => $dbh, 'driver' => $driver, @@ -10085,13 +10089,19 @@ sub run { if($DBI::errstr =~ /locked/) { ::debug("sql","Lock retry: $lockretry"); $lockretry++; + ::usleep(rand()*300); } else { ::error($DBI::errstr); + wait_and_exit(255); } } } + if($lockretry >= 10) { + ::die_bug("lockretry > 10"); + } if($rv < 0){ - print $DBI::errstr; + ::error($DBI::errstr); + ::wait_and_exit(255); } return $sth; } diff --git a/src/parallel.pod b/src/parallel.pod index ec3e51d3..2eaa8565 100644 --- a/src/parallel.pod +++ b/src/parallel.pod @@ -2902,30 +2902,87 @@ Or if the regexps are fixed strings: grep -F -f regexps.txt bigfile -There are 2 limiting factors: CPU and disk I/O. CPU is easy to -measure: If the B 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. +There are 3 limiting factors: CPU, RAM, and disk I/O. -If the CPU is the limiting factor parallelization should be done on the regexps: +RAM is easy to measure: If the B process takes up most of your +free memory (e.g. when running B), 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 takes >90% CPU in B, +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 -command will start one B per CPU and read I 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 it may -be faster to use B<--block 10m> instead of B<-L1000>. If I -is too big to fit in RAM, remove B<--round-robin> and adjust -B<-L1000>. This will cause I to be read more times. +It is harder to see if 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 test and measure. + + +=head2 Limiting factor: RAM + +The normal B 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 takes around 100 bytes of RAM and B 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 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 and by 1000 for normal B. 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 per CPU and read I 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 it +may be faster to use B<--block 10m> instead of B<-L1000>. Some storage systems perform better when reading multiple chunks in parallel. This is true for some RAID systems and for some network file systems. To parallelize the reading of I: - 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 into 100MB chunks and run B on each of these chunks. To parallelize both reading of I and I @@ -2936,6 +2993,11 @@ combine the two using B<--fifo>: 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 diff --git a/testsuite/tests-to-run/parallel-local-sql.sh b/testsuite/tests-to-run/parallel-local-sql.sh old mode 100644 new mode 100755 index c1fd7458..12f4da79 --- a/testsuite/tests-to-run/parallel-local-sql.sh +++ b/testsuite/tests-to-run/parallel-local-sql.sh @@ -1,75 +1,81 @@ #!/bin/bash export SQLITE=sqlite3:///%2Frun%2Fshm%2Fparallel.db -export SQLITETBL=$SQLITE/parsql -export PG=pg://tange:tange@lo/tange -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) +export PG=pg://`whoami`:`whoami`@lo/`whoami` +export MYSQL=mysql://`whoami`:`whoami`@lo/`whoami` -#sql mysql://tange:tange@lo/ 'create database tange;'; -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;' +export DEBUG=false -echo '### --sqlandworker postgresql' - (sleep 2; parallel --sqlworker $PGTBL sleep .3\;echo >$T3) & - 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;' +p_showsqlresult() { + SERVERURL=$1 + TABLE=$2 + sql $SERVERURL "select Host,Command,V1,V2,Stdout,Stderr from $TABLE order by seq;" +} -echo '### --sqlandworker sqlite' - (sleep 2; parallel --sqlworker $SQLITETBL sleep .3\;echo >$T5) & - 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;' +p_wrapper() { + INNER=$1 + SERVERURL=$2 + TABLE=TBL$RANDOM + 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' - (sleep 2; parallel -S lo --sqlworker $PGTBL2 sleep .3\;echo >$T7) & - 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;' +p_sqlandworker() { + (sleep 2; parallel --sqlworker $DBURL sleep .3\;echo >$T1) & + parallel --sqlandworker $DBURL sleep .3\;echo ::: {1..5} ::: {a..e} >$T2; +} +export -f p_sqlandworker -echo '### --sqlandworker postgresql --results' - mkdir -p /tmp/out--sql - (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;' +par_sqlandworker() { + p_wrapper p_sqlandworker $1 +} -echo '### --sqlandworker postgresql --linebuffer' - (sleep 2; parallel --linebuffer --sqlworker $PGTBL4 sleep .3\;echo >$T11) & - parallel --linebuffer --sqlandworker $PGTBL4 sleep .3\;echo ::: {1..5} ::: {a..e} >$T12; - true sort -u $T11 $T12; - sleep 1; sql $PG 'select * from parsql4 order by seq;' +p_sqlandworker_lo() { + (sleep 2; parallel -S lo --sqlworker $DBURL sleep .3\;echo >$T1) & + parallel -S lo --sqlandworker $DBURL sleep .3\;echo ::: {1..5} ::: {a..e} >$T2; +} -echo '### --sqlandworker postgresql -u' - (sleep 2; parallel -u --sqlworker $PGTBL5 sleep .3\;echo >$T13) & - 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;' +par_sqlandworker_lo() { + p_wrapper p_sqlandworker_lo $1 +} -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 diff --git a/testsuite/wanted-results/parallel-local-sql b/testsuite/wanted-results/parallel-local-sql index f0b047e3..7f9aa6a6 100644 --- a/testsuite/wanted-results/parallel-local-sql +++ b/testsuite/wanted-results/parallel-local-sql @@ -1,301 +1,550 @@ -echo '### --sqlandworker mysql' -### --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;' -Seq Host Starttime JobRuntime Send Receive Exitval _Signal Command V1 V2 Stdout Stderr -1 :9999990 4 0 0 sleep .3;echo 1 a 1 a 1 a\n -2 :9999990 4 0 0 sleep .3;echo 1 b 1 b 1 b\n -3 :9999990 4 0 0 sleep .3;echo 1 c 1 c 1 c\n -4 :9999990 4 0 0 sleep .3;echo 1 d 1 d 1 d\n -5 :9999990 4 0 0 sleep .3;echo 1 e 1 e 1 e\n -6 :9999990 4 0 0 sleep .3;echo 2 a 2 a 2 a\n -7 :9999990 4 0 0 sleep .3;echo 2 b 2 b 2 b\n -8 :9999990 4 0 0 sleep .3;echo 2 c 2 c 2 c\n -9 :9999990 4 0 0 sleep .3;echo 2 d 2 d 2 d\n -999:9999990 4 0 0 sleep .3;echo 2 e 2 e 2 e\n -999:9999990 4 0 0 sleep .3;echo 3 a 3 a 3 a\n -999:9999990 4 0 0 sleep .3;echo 3 b 3 b 3 b\n -999:9999990 4 0 0 sleep .3;echo 3 c 3 c 3 c\n -999:9999990 4 0 0 sleep .3;echo 3 d 3 d 3 d\n -999:9999990 4 0 0 sleep .3;echo 3 e 3 e 3 e\n -999:9999990 4 0 0 sleep .3;echo 4 a 4 a 4 a\n -999:9999990 4 0 0 sleep .3;echo 4 b 4 b 4 b\n -999:9999990 4 0 0 sleep .3;echo 4 c 4 c 4 c\n -999:9999990 4 0 0 sleep .3;echo 4 d 4 d 4 d\n -999:9999990 4 0 0 sleep .3;echo 4 e 4 e 4 e\n -999:9999990 4 0 0 sleep .3;echo 5 a 5 a 5 a\n -999:9999990 4 0 0 sleep .3;echo 5 b 5 b 5 b\n -999:9999990 4 0 0 sleep .3;echo 5 c 5 c 5 c\n -999:9999990 4 0 0 sleep .3;echo 5 d 5 d 5 d\n -999:9999990 4 0 0 sleep .3;echo 5 e 5 e 5 e\n -echo '### --sqlandworker postgresql' -### --sqlandworker postgresql - (sleep 2; parallel --sqlworker $PGTBL sleep .3\;echo >$T3) & - 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;' - seq | host | starttime | jobruntime | send | receive | exitval | _signal | command | v1 | v2 | stdout | stderr ------+------+----------------+------------+------+---------+---------+---------+-------------------+----+----+--------+-------- - 1 | : |999|999| 0 | 4 | 0 | 0 | sleep .3;echo 1 a | 1 | a | 1 a +| - | | | | | | | | | | | | - 2 | : |999|999| 0 | 4 | 0 | 0 | sleep .3;echo 1 b | 1 | b | 1 b +| - | | | | | | | | | | | | - 3 | : |999|999| 0 | 4 | 0 | 0 | sleep .3;echo 1 c | 1 | c | 1 c +| - | | | | | | | | | | | | - 4 | : |999|999| 0 | 4 | 0 | 0 | sleep .3;echo 1 d | 1 | d | 1 d +| - | | | | | | | | | | | | - 5 | : |999|999| 0 | 4 | 0 | 0 | sleep .3;echo 1 e | 1 | e | 1 e +| - | | | | | | | | | | | | - 6 | : |999|999| 0 | 4 | 0 | 0 | sleep .3;echo 2 a | 2 | a | 2 a +| - | | | | | | | | | | | | - 7 | : |999|999| 0 | 4 | 0 | 0 | sleep .3;echo 2 b | 2 | b | 2 b +| - | | | | | | | | | | | | - 8 | : |999|999| 0 | 4 | 0 | 0 | sleep .3;echo 2 c | 2 | c | 2 c +| - | | | | | | | | | | | | - 9 | : |999|999| 0 | 4 | 0 | 0 | sleep .3;echo 2 d | 2 | d | 2 d +| - | | | | | | | | | | | | -999| : |999|999| 0 | 4 | 0 | 0 | sleep .3;echo 2 e | 2 | e | 2 e +| - | | | | | | | | | | | | -999| : |999|999| 0 | 4 | 0 | 0 | sleep .3;echo 3 a | 3 | a | 3 a +| - | | | | | | | | | | | | -999| : |999|999| 0 | 4 | 0 | 0 | sleep .3;echo 3 b | 3 | b | 3 b +| - | | | | | | | | | | | | -999| : |999|999| 0 | 4 | 0 | 0 | sleep .3;echo 3 c | 3 | c | 3 c +| - | | | | | | | | | | | | -999| : |999|999| 0 | 4 | 0 | 0 | sleep .3;echo 3 d | 3 | d | 3 d +| - | | | | | | | | | | | | -999| : |999|999| 0 | 4 | 0 | 0 | sleep .3;echo 3 e | 3 | e | 3 e +| - | | | | | | | | | | | | -999| : |999|999| 0 | 4 | 0 | 0 | sleep .3;echo 4 a | 4 | a | 4 a +| - | | | | | | | | | | | | -999| : |999|999| 0 | 4 | 0 | 0 | sleep .3;echo 4 b | 4 | b | 4 b +| - | | | | | | | | | | | | -999| : |999|999| 0 | 4 | 0 | 0 | sleep .3;echo 4 c | 4 | c | 4 c +| - | | | | | | | | | | | | -999| : |999|999| 0 | 4 | 0 | 0 | sleep .3;echo 4 d | 4 | d | 4 d +| - | | | | | | | | | | | | -999| : |999|999| 0 | 4 | 0 | 0 | sleep .3;echo 4 e | 4 | e | 4 e +| - | | | | | | | | | | | | -999| : |999|999| 0 | 4 | 0 | 0 | sleep .3;echo 5 a | 5 | a | 5 a +| - | | | | | | | | | | | | -999| : |999|999| 0 | 4 | 0 | 0 | sleep .3;echo 5 b | 5 | b | 5 b +| - | | | | | | | | | | | | -999| : |999|999| 0 | 4 | 0 | 0 | sleep .3;echo 5 c | 5 | c | 5 c +| - | | | | | | | | | | | | -999| : |999|999| 0 | 4 | 0 | 0 | sleep .3;echo 5 d | 5 | d | 5 d +| - | | | | | | | | | | | | -999| : |999|999| 0 | 4 | 0 | 0 | sleep .3;echo 5 e | 5 | e | 5 e +| - | | | | | | | | | | | | -(999rows) - -echo '### --sqlandworker sqlite' -### --sqlandworker sqlite - (sleep 2; parallel --sqlworker $SQLITETBL sleep .3\;echo >$T5) & - 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;' -Seq|Host|Starttime|JobRuntime|Send|Receive|Exitval|_Signal|Command|V1|V2|Stdout|Stderr -1|:|999|999|0|4|0|0|sleep .3;echo 1 a|1|a|1 a -| -2|:|999|999|0|4|0|0|sleep .3;echo 1 b|1|b|1 b -| -3|:|999|999|0|4|0|0|sleep .3;echo 1 c|1|c|1 c -| -4|:|999|999|0|4|0|0|sleep .3;echo 1 d|1|d|1 d -| -5|:|999|999|0|4|0|0|sleep .3;echo 1 e|1|e|1 e -| -6|:|999|999|0|4|0|0|sleep .3;echo 2 a|2|a|2 a -| -7|:|999|999|0|4|0|0|sleep .3;echo 2 b|2|b|2 b -| -8|:|999|999|0|4|0|0|sleep .3;echo 2 c|2|c|2 c -| -9|:|999|999|0|4|0|0|sleep .3;echo 2 d|2|d|2 d -| -999|:|999|999|0|4|0|0|sleep .3;echo 2 e|2|e|2 e -| -999|:|999|999|0|4|0|0|sleep .3;echo 3 a|3|a|3 a -| -999|:|999|999|0|4|0|0|sleep .3;echo 3 b|3|b|3 b -| -999|:|999|999|0|4|0|0|sleep .3;echo 3 c|3|c|3 c -| -999|:|999|999|0|4|0|0|sleep .3;echo 3 d|3|d|3 d -| -999|:|999|999|0|4|0|0|sleep .3;echo 3 e|3|e|3 e -| -999|:|999|999|0|4|0|0|sleep .3;echo 4 a|4|a|4 a -| -999|:|999|999|0|4|0|0|sleep .3;echo 4 b|4|b|4 b -| -999|:|999|999|0|4|0|0|sleep .3;echo 4 c|4|c|4 c -| -999|:|999|999|0|4|0|0|sleep .3;echo 4 d|4|d|4 d -| -999|:|999|999|0|4|0|0|sleep .3;echo 4 e|4|e|4 e -| -999|:|999|999|0|4|0|0|sleep .3;echo 5 a|5|a|5 a -| -999|:|999|999|0|4|0|0|sleep .3;echo 5 b|5|b|5 b -| -999|:|999|999|0|4|0|0|sleep .3;echo 5 c|5|c|5 c -| -999|:|999|999|0|4|0|0|sleep .3;echo 5 d|5|d|5 d -| -999|:|999|999|0|4|0|0|sleep .3;echo 5 e|5|e|5 e -| -echo '### --sqlandworker postgresql -S lo' -### --sqlandworker postgresql -S lo - (sleep 2; parallel -S lo --sqlworker $PGTBL2 sleep .3\;echo >$T7) & - 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;' - seq | host | starttime | jobruntime | send | receive | exitval | _signal | command | v1 | v2 | stdout | stderr ------+------+----------------+------------+------+---------+---------+---------+-------------------+----+----+--------+-------- - 1 | lo |999|999| 0 | 4 | 0 | 0 | sleep .3;echo 1 a | 1 | a | 1 a +| - | | | | | | | | | | | | - 2 | lo |999|999| 0 | 4 | 0 | 0 | sleep .3;echo 1 b | 1 | b | 1 b +| - | | | | | | | | | | | | - 3 | lo |999|999| 0 | 4 | 0 | 0 | sleep .3;echo 1 c | 1 | c | 1 c +| - | | | | | | | | | | | | - 4 | lo |999|999| 0 | 4 | 0 | 0 | sleep .3;echo 1 d | 1 | d | 1 d +| - | | | | | | | | | | | | - 5 | lo |999|999| 0 | 4 | 0 | 0 | sleep .3;echo 1 e | 1 | e | 1 e +| - | | | | | | | | | | | | - 6 | lo |999|999| 0 | 4 | 0 | 0 | sleep .3;echo 2 a | 2 | a | 2 a +| - | | | | | | | | | | | | - 7 | lo |999|999| 0 | 4 | 0 | 0 | sleep .3;echo 2 b | 2 | b | 2 b +| - | | | | | | | | | | | | - 8 | lo |999|999| 0 | 4 | 0 | 0 | sleep .3;echo 2 c | 2 | c | 2 c +| - | | | | | | | | | | | | - 9 | lo |999|999| 0 | 4 | 0 | 0 | sleep .3;echo 2 d | 2 | d | 2 d +| - | | | | | | | | | | | | -999| lo |999|999| 0 | 4 | 0 | 0 | sleep .3;echo 2 e | 2 | e | 2 e +| - | | | | | | | | | | | | -999| lo |999|999| 0 | 4 | 0 | 0 | sleep .3;echo 3 a | 3 | a | 3 a +| - | | | | | | | | | | | | -999| lo |999|999| 0 | 4 | 0 | 0 | sleep .3;echo 3 b | 3 | b | 3 b +| - | | | | | | | | | | | | -999| lo |999|999| 0 | 4 | 0 | 0 | sleep .3;echo 3 c | 3 | c | 3 c +| - | | | | | | | | | | | | -999| lo |999|999| 0 | 4 | 0 | 0 | sleep .3;echo 3 d | 3 | d | 3 d +| - | | | | | | | | | | | | -999| lo |999|999| 0 | 4 | 0 | 0 | sleep .3;echo 3 e | 3 | e | 3 e +| - | | | | | | | | | | | | -999| lo |999|999| 0 | 4 | 0 | 0 | sleep .3;echo 4 a | 4 | a | 4 a +| - | | | | | | | | | | | | -999| lo |999|999| 0 | 4 | 0 | 0 | sleep .3;echo 4 b | 4 | b | 4 b +| - | | | | | | | | | | | | -999| lo |999|999| 0 | 4 | 0 | 0 | sleep .3;echo 4 c | 4 | c | 4 c +| - | | | | | | | | | | | | -999| lo |999|999| 0 | 4 | 0 | 0 | sleep .3;echo 4 d | 4 | d | 4 d +| - | | | | | | | | | | | | -999| lo |999|999| 0 | 4 | 0 | 0 | sleep .3;echo 4 e | 4 | e | 4 e +| - | | | | | | | | | | | | -999| lo |999|999| 0 | 4 | 0 | 0 | sleep .3;echo 5 a | 5 | a | 5 a +| - | | | | | | | | | | | | -999| lo |999|999| 0 | 4 | 0 | 0 | sleep .3;echo 5 b | 5 | b | 5 b +| - | | | | | | | | | | | | -999| lo |999|999| 0 | 4 | 0 | 0 | sleep .3;echo 5 c | 5 | c | 5 c +| - | | | | | | | | | | | | -999| lo |999|999| 0 | 4 | 0 | 0 | sleep .3;echo 5 d | 5 | d | 5 d +| - | | | | | | | | | | | | -999| lo |999|999| 0 | 4 | 0 | 0 | sleep .3;echo 5 e | 5 | e | 5 e +| - | | | | | | | | | | | | -(999rows) - -echo '### --sqlandworker postgresql --results' -### --sqlandworker postgresql --results - mkdir -p /tmp/out--sql - (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} >$T999; true sort -u $T9 $T999; sleep 1; sql $PG 'select * from parsql3 order by seq;' - seq | host | starttime | jobruntime | send | receive | exitval | _signal | command | v1 | v2 | stdout | stderr ------+------+----------------+------------+------+---------+---------+---------+-------------------+----+----+------------------------------+------------------------------ - 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 - 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 - 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 - 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 - 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 - 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 - 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 - 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 - 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 -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 -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 -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 -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 -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 -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 -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 -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 -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 -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 -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 -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 -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 -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 -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 -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 -(999rows) - -echo '### --sqlandworker postgresql --linebuffer' -### --sqlandworker postgresql --linebuffer - (sleep 2; parallel --linebuffer --sqlworker $PGTBL4 sleep .3\;echo >$T999) & - 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;' - seq | host | starttime | jobruntime | send | receive | exitval | _signal | command | v1 | v2 | stdout | stderr ------+------+----------------+------------+------+---------+---------+---------+-------------------+----+----+--------+-------- - 1 | : |999|999| 0 | 4 | 0 | 0 | sleep .3;echo 1 a | 1 | a | | - 2 | : |999|999| 0 | 4 | 0 | 0 | sleep .3;echo 1 b | 1 | b | | - 3 | : |999|999| 0 | 4 | 0 | 0 | sleep .3;echo 1 c | 1 | c | | - 4 | : |999|999| 0 | 4 | 0 | 0 | sleep .3;echo 1 d | 1 | d | | - 5 | : |999|999| 0 | 4 | 0 | 0 | sleep .3;echo 1 e | 1 | e | | - 6 | : |999|999| 0 | 4 | 0 | 0 | sleep .3;echo 2 a | 2 | a | | - 7 | : |999|999| 0 | 4 | 0 | 0 | sleep .3;echo 2 b | 2 | b | | - 8 | : |999|999| 0 | 4 | 0 | 0 | sleep .3;echo 2 c | 2 | c | | - 9 | : |999|999| 0 | 4 | 0 | 0 | sleep .3;echo 2 d | 2 | d | | -999| : |999|999| 0 | 4 | 0 | 0 | sleep .3;echo 2 e | 2 | e | | -999| : |999|999| 0 | 4 | 0 | 0 | sleep .3;echo 3 a | 3 | a | | -999| : |999|999| 0 | 4 | 0 | 0 | sleep .3;echo 3 b | 3 | b | | -999| : |999|999| 0 | 4 | 0 | 0 | sleep .3;echo 3 c | 3 | c | | -999| : |999|999| 0 | 4 | 0 | 0 | sleep .3;echo 3 d | 3 | d | | -999| : |999|999| 0 | 4 | 0 | 0 | sleep .3;echo 3 e | 3 | e | | -999| : |999|999| 0 | 4 | 0 | 0 | sleep .3;echo 4 a | 4 | a | | -999| : |999|999| 0 | 4 | 0 | 0 | sleep .3;echo 4 b | 4 | b | | -999| : |999|999| 0 | 4 | 0 | 0 | sleep .3;echo 4 c | 4 | c | | -999| : |999|999| 0 | 4 | 0 | 0 | sleep .3;echo 4 d | 4 | d | | -999| : |999|999| 0 | 4 | 0 | 0 | sleep .3;echo 4 e | 4 | e | | -999| : |999|999| 0 | 4 | 0 | 0 | sleep .3;echo 5 a | 5 | a | | -999| : |999|999| 0 | 4 | 0 | 0 | sleep .3;echo 5 b | 5 | b | | -999| : |999|999| 0 | 4 | 0 | 0 | sleep .3;echo 5 c | 5 | c | | -999| : |999|999| 0 | 4 | 0 | 0 | sleep .3;echo 5 d | 5 | d | | -999| : |999|999| 0 | 4 | 0 | 0 | sleep .3;echo 5 e | 5 | e | | -(999rows) - -echo '### --sqlandworker postgresql -u' -### --sqlandworker postgresql -u - (sleep 2; parallel -u --sqlworker $PGTBL5 sleep .3\;echo >$T999) & - 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;' - seq | host | starttime | jobruntime | send | receive | exitval | _signal | command | v1 | v2 | stdout | stderr ------+------+----------------+------------+------+---------+---------+---------+-------------------+----+----+--------+-------- - 1 | : |999|999| 0 | 0 | 0 | 0 | sleep .3;echo 1 a | 1 | a | | - 2 | : |999|999| 0 | 0 | 0 | 0 | sleep .3;echo 1 b | 1 | b | | - 3 | : |999|999| 0 | 0 | 0 | 0 | sleep .3;echo 1 c | 1 | c | | - 4 | : |999|999| 0 | 0 | 0 | 0 | sleep .3;echo 1 d | 1 | d | | - 5 | : |999|999| 0 | 0 | 0 | 0 | sleep .3;echo 1 e | 1 | e | | - 6 | : |999|999| 0 | 0 | 0 | 0 | sleep .3;echo 2 a | 2 | a | | - 7 | : |999|999| 0 | 0 | 0 | 0 | sleep .3;echo 2 b | 2 | b | | - 8 | : |999|999| 0 | 0 | 0 | 0 | sleep .3;echo 2 c | 2 | c | | - 9 | : |999|999| 0 | 0 | 0 | 0 | sleep .3;echo 2 d | 2 | d | | -999| : |999|999| 0 | 0 | 0 | 0 | sleep .3;echo 2 e | 2 | e | | -999| : |999|999| 0 | 0 | 0 | 0 | sleep .3;echo 3 a | 3 | a | | -999| : |999|999| 0 | 0 | 0 | 0 | sleep .3;echo 3 b | 3 | b | | -999| : |999|999| 0 | 0 | 0 | 0 | sleep .3;echo 3 c | 3 | c | | -999| : |999|999| 0 | 0 | 0 | 0 | sleep .3;echo 3 d | 3 | d | | -999| : |999|999| 0 | 0 | 0 | 0 | sleep .3;echo 3 e | 3 | e | | -999| : |999|999| 0 | 0 | 0 | 0 | sleep .3;echo 4 a | 4 | a | | -999| : |999|999| 0 | 0 | 0 | 0 | sleep .3;echo 4 b | 4 | b | | -999| : |999|999| 0 | 0 | 0 | 0 | sleep .3;echo 4 c | 4 | c | | -999| : |999|999| 0 | 0 | 0 | 0 | sleep .3;echo 4 d | 4 | d | | -999| : |999|999| 0 | 0 | 0 | 0 | sleep .3;echo 4 e | 4 | e | | -999| : |999|999| 0 | 0 | 0 | 0 | sleep .3;echo 5 a | 5 | a | | -999| : |999|999| 0 | 0 | 0 | 0 | sleep .3;echo 5 b | 5 | b | | -999| : |999|999| 0 | 0 | 0 | 0 | sleep .3;echo 5 c | 5 | c | | -999| : |999|999| 0 | 0 | 0 | 0 | sleep .3;echo 5 d | 5 | d | | -999| : |999|999| 0 | 0 | 0 | 0 | sleep .3;echo 5 e | 5 | e | | -(999rows) - +par_sqlandworker $MYSQL +par_sqlandworker $MYSQL Exit=0 +par_sqlandworker $MYSQL Exit=0 +par_sqlandworker $MYSQL Host Command V1 V2 Stdout Stderr +par_sqlandworker $MYSQL : sleep .3;echo 1 a 1 a 1 a\n +par_sqlandworker $MYSQL : sleep .3;echo 1 b 1 b 1 b\n +par_sqlandworker $MYSQL : sleep .3;echo 1 c 1 c 1 c\n +par_sqlandworker $MYSQL : sleep .3;echo 1 d 1 d 1 d\n +par_sqlandworker $MYSQL : sleep .3;echo 1 e 1 e 1 e\n +par_sqlandworker $MYSQL : sleep .3;echo 2 a 2 a 2 a\n +par_sqlandworker $MYSQL : sleep .3;echo 2 b 2 b 2 b\n +par_sqlandworker $MYSQL : sleep .3;echo 2 c 2 c 2 c\n +par_sqlandworker $MYSQL : sleep .3;echo 2 d 2 d 2 d\n +par_sqlandworker $MYSQL : sleep .3;echo 2 e 2 e 2 e\n +par_sqlandworker $MYSQL : sleep .3;echo 3 a 3 a 3 a\n +par_sqlandworker $MYSQL : sleep .3;echo 3 b 3 b 3 b\n +par_sqlandworker $MYSQL : sleep .3;echo 3 c 3 c 3 c\n +par_sqlandworker $MYSQL : sleep .3;echo 3 d 3 d 3 d\n +par_sqlandworker $MYSQL : sleep .3;echo 3 e 3 e 3 e\n +par_sqlandworker $MYSQL : sleep .3;echo 4 a 4 a 4 a\n +par_sqlandworker $MYSQL : sleep .3;echo 4 b 4 b 4 b\n +par_sqlandworker $MYSQL : sleep .3;echo 4 c 4 c 4 c\n +par_sqlandworker $MYSQL : sleep .3;echo 4 d 4 d 4 d\n +par_sqlandworker $MYSQL : sleep .3;echo 4 e 4 e 4 e\n +par_sqlandworker $MYSQL : sleep .3;echo 5 a 5 a 5 a\n +par_sqlandworker $MYSQL : sleep .3;echo 5 b 5 b 5 b\n +par_sqlandworker $MYSQL : sleep .3;echo 5 c 5 c 5 c\n +par_sqlandworker $MYSQL : sleep .3;echo 5 d 5 d 5 d\n +par_sqlandworker $MYSQL : sleep .3;echo 5 e 5 e 5 e\n +par_sqlandworker $PG +par_sqlandworker $PG Exit=0 +par_sqlandworker $PG Exit=0 +par_sqlandworker $PG host | command | v1 | v2 | stdout | stderr +par_sqlandworker $PG ------+-------------------+----+----+--------+-------- +par_sqlandworker $PG : | sleep .3;echo 1 a | 1 | a | 1 a +| +par_sqlandworker $PG | | | | | +par_sqlandworker $PG : | sleep .3;echo 1 b | 1 | b | 1 b +| +par_sqlandworker $PG | | | | | +par_sqlandworker $PG : | sleep .3;echo 1 c | 1 | c | 1 c +| +par_sqlandworker $PG | | | | | +par_sqlandworker $PG : | sleep .3;echo 1 d | 1 | d | 1 d +| +par_sqlandworker $PG | | | | | +par_sqlandworker $PG : | sleep .3;echo 1 e | 1 | e | 1 e +| +par_sqlandworker $PG | | | | | +par_sqlandworker $PG : | sleep .3;echo 2 a | 2 | a | 2 a +| +par_sqlandworker $PG | | | | | +par_sqlandworker $PG : | sleep .3;echo 2 b | 2 | b | 2 b +| +par_sqlandworker $PG | | | | | +par_sqlandworker $PG : | sleep .3;echo 2 c | 2 | c | 2 c +| +par_sqlandworker $PG | | | | | +par_sqlandworker $PG : | sleep .3;echo 2 d | 2 | d | 2 d +| +par_sqlandworker $PG | | | | | +par_sqlandworker $PG : | sleep .3;echo 2 e | 2 | e | 2 e +| +par_sqlandworker $PG | | | | | +par_sqlandworker $PG : | sleep .3;echo 3 a | 3 | a | 3 a +| +par_sqlandworker $PG | | | | | +par_sqlandworker $PG : | sleep .3;echo 3 b | 3 | b | 3 b +| +par_sqlandworker $PG | | | | | +par_sqlandworker $PG : | sleep .3;echo 3 c | 3 | c | 3 c +| +par_sqlandworker $PG | | | | | +par_sqlandworker $PG : | sleep .3;echo 3 d | 3 | d | 3 d +| +par_sqlandworker $PG | | | | | +par_sqlandworker $PG : | sleep .3;echo 3 e | 3 | e | 3 e +| +par_sqlandworker $PG | | | | | +par_sqlandworker $PG : | sleep .3;echo 4 a | 4 | a | 4 a +| +par_sqlandworker $PG | | | | | +par_sqlandworker $PG : | sleep .3;echo 4 b | 4 | b | 4 b +| +par_sqlandworker $PG | | | | | +par_sqlandworker $PG : | sleep .3;echo 4 c | 4 | c | 4 c +| +par_sqlandworker $PG | | | | | +par_sqlandworker $PG : | sleep .3;echo 4 d | 4 | d | 4 d +| +par_sqlandworker $PG | | | | | +par_sqlandworker $PG : | sleep .3;echo 4 e | 4 | e | 4 e +| +par_sqlandworker $PG | | | | | +par_sqlandworker $PG : | sleep .3;echo 5 a | 5 | a | 5 a +| +par_sqlandworker $PG | | | | | +par_sqlandworker $PG : | sleep .3;echo 5 b | 5 | b | 5 b +| +par_sqlandworker $PG | | | | | +par_sqlandworker $PG : | sleep .3;echo 5 c | 5 | c | 5 c +| +par_sqlandworker $PG | | | | | +par_sqlandworker $PG : | sleep .3;echo 5 d | 5 | d | 5 d +| +par_sqlandworker $PG | | | | | +par_sqlandworker $PG : | sleep .3;echo 5 e | 5 | e | 5 e +| +par_sqlandworker $PG | | | | | +par_sqlandworker $PG (25 rows) +par_sqlandworker $PG +par_sqlandworker $SQLITE +par_sqlandworker $SQLITE Exit=0 +par_sqlandworker $SQLITE Exit=0 +par_sqlandworker $SQLITE Host|Command|V1|V2|Stdout|Stderr +par_sqlandworker $SQLITE :|sleep .3;echo 1 a|1|a|1 a +par_sqlandworker $SQLITE | +par_sqlandworker $SQLITE :|sleep .3;echo 1 b|1|b|1 b +par_sqlandworker $SQLITE | +par_sqlandworker $SQLITE :|sleep .3;echo 1 c|1|c|1 c +par_sqlandworker $SQLITE | +par_sqlandworker $SQLITE :|sleep .3;echo 1 d|1|d|1 d +par_sqlandworker $SQLITE | +par_sqlandworker $SQLITE :|sleep .3;echo 1 e|1|e|1 e +par_sqlandworker $SQLITE | +par_sqlandworker $SQLITE :|sleep .3;echo 2 a|2|a|2 a +par_sqlandworker $SQLITE | +par_sqlandworker $SQLITE :|sleep .3;echo 2 b|2|b|2 b +par_sqlandworker $SQLITE | +par_sqlandworker $SQLITE :|sleep .3;echo 2 c|2|c|2 c +par_sqlandworker $SQLITE | +par_sqlandworker $SQLITE :|sleep .3;echo 2 d|2|d|2 d +par_sqlandworker $SQLITE | +par_sqlandworker $SQLITE :|sleep .3;echo 2 e|2|e|2 e +par_sqlandworker $SQLITE | +par_sqlandworker $SQLITE :|sleep .3;echo 3 a|3|a|3 a +par_sqlandworker $SQLITE | +par_sqlandworker $SQLITE :|sleep .3;echo 3 b|3|b|3 b +par_sqlandworker $SQLITE | +par_sqlandworker $SQLITE :|sleep .3;echo 3 c|3|c|3 c +par_sqlandworker $SQLITE | +par_sqlandworker $SQLITE :|sleep .3;echo 3 d|3|d|3 d +par_sqlandworker $SQLITE | +par_sqlandworker $SQLITE :|sleep .3;echo 3 e|3|e|3 e +par_sqlandworker $SQLITE | +par_sqlandworker $SQLITE :|sleep .3;echo 4 a|4|a|4 a +par_sqlandworker $SQLITE | +par_sqlandworker $SQLITE :|sleep .3;echo 4 b|4|b|4 b +par_sqlandworker $SQLITE | +par_sqlandworker $SQLITE :|sleep .3;echo 4 c|4|c|4 c +par_sqlandworker $SQLITE | +par_sqlandworker $SQLITE :|sleep .3;echo 4 d|4|d|4 d +par_sqlandworker $SQLITE | +par_sqlandworker $SQLITE :|sleep .3;echo 4 e|4|e|4 e +par_sqlandworker $SQLITE | +par_sqlandworker $SQLITE :|sleep .3;echo 5 a|5|a|5 a +par_sqlandworker $SQLITE | +par_sqlandworker $SQLITE :|sleep .3;echo 5 b|5|b|5 b +par_sqlandworker $SQLITE | +par_sqlandworker $SQLITE :|sleep .3;echo 5 c|5|c|5 c +par_sqlandworker $SQLITE | +par_sqlandworker $SQLITE :|sleep .3;echo 5 d|5|d|5 d +par_sqlandworker $SQLITE | +par_sqlandworker $SQLITE :|sleep .3;echo 5 e|5|e|5 e +par_sqlandworker $SQLITE | +par_sqlandworker_linebuffer $MYSQL +par_sqlandworker_linebuffer $MYSQL Exit=0 +par_sqlandworker_linebuffer $MYSQL Exit=0 +par_sqlandworker_linebuffer $MYSQL Host Command V1 V2 Stdout Stderr +par_sqlandworker_linebuffer $MYSQL : sleep .3;echo 1 a 1 a NULL NULL +par_sqlandworker_linebuffer $MYSQL : sleep .3;echo 1 b 1 b NULL NULL +par_sqlandworker_linebuffer $MYSQL : sleep .3;echo 1 c 1 c NULL NULL +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +par_sqlandworker_linebuffer $PG +par_sqlandworker_linebuffer $PG Exit=0 +par_sqlandworker_linebuffer $PG Exit=0 +par_sqlandworker_linebuffer $PG host | command | v1 | v2 | stdout | stderr +par_sqlandworker_linebuffer $PG ------+-------------------+----+----+--------+-------- +par_sqlandworker_linebuffer $PG : | sleep .3;echo 1 a | 1 | a | | +par_sqlandworker_linebuffer $PG : | sleep .3;echo 1 b | 1 | b | | +par_sqlandworker_linebuffer $PG : | sleep .3;echo 1 c | 1 | c | | +par_sqlandworker_linebuffer $PG : | sleep .3;echo 1 d | 1 | d | | +par_sqlandworker_linebuffer $PG : | sleep .3;echo 1 e | 1 | e | | +par_sqlandworker_linebuffer $PG : | sleep .3;echo 2 a | 2 | a | | +par_sqlandworker_linebuffer $PG : | sleep .3;echo 2 b | 2 | b | | +par_sqlandworker_linebuffer $PG : | sleep .3;echo 2 c | 2 | c | | +par_sqlandworker_linebuffer $PG : | sleep .3;echo 2 d | 2 | d | | +par_sqlandworker_linebuffer $PG : | sleep .3;echo 2 e | 2 | e | | +par_sqlandworker_linebuffer $PG : | sleep .3;echo 3 a | 3 | a | | +par_sqlandworker_linebuffer $PG : | sleep .3;echo 3 b | 3 | b | | +par_sqlandworker_linebuffer $PG : | sleep .3;echo 3 c | 3 | c | | +par_sqlandworker_linebuffer $PG : | sleep .3;echo 3 d | 3 | d | | +par_sqlandworker_linebuffer $PG : | sleep .3;echo 3 e | 3 | e | | +par_sqlandworker_linebuffer $PG : | sleep .3;echo 4 a | 4 | a | | +par_sqlandworker_linebuffer $PG : | sleep .3;echo 4 b | 4 | b | | +par_sqlandworker_linebuffer $PG : | sleep .3;echo 4 c | 4 | c | | +par_sqlandworker_linebuffer $PG : | sleep .3;echo 4 d | 4 | d | | +par_sqlandworker_linebuffer $PG : | sleep .3;echo 4 e | 4 | e | | +par_sqlandworker_linebuffer $PG : | sleep .3;echo 5 a | 5 | a | | +par_sqlandworker_linebuffer $PG : | sleep .3;echo 5 b | 5 | b | | +par_sqlandworker_linebuffer $PG : | sleep .3;echo 5 c | 5 | c | | +par_sqlandworker_linebuffer $PG : | sleep .3;echo 5 d | 5 | d | | +par_sqlandworker_linebuffer $PG : | sleep .3;echo 5 e | 5 | e | | +par_sqlandworker_linebuffer $PG (25 rows) +par_sqlandworker_linebuffer $PG +par_sqlandworker_linebuffer $SQLITE +par_sqlandworker_linebuffer $SQLITE Exit=0 +par_sqlandworker_linebuffer $SQLITE Exit=0 +par_sqlandworker_linebuffer $SQLITE Host|Command|V1|V2|Stdout|Stderr +par_sqlandworker_linebuffer $SQLITE :|sleep .3;echo 1 a|1|a|| +par_sqlandworker_linebuffer $SQLITE :|sleep .3;echo 1 b|1|b|| +par_sqlandworker_linebuffer $SQLITE :|sleep .3;echo 1 c|1|c|| +par_sqlandworker_linebuffer $SQLITE :|sleep .3;echo 1 d|1|d|| +par_sqlandworker_linebuffer $SQLITE :|sleep .3;echo 1 e|1|e|| +par_sqlandworker_linebuffer $SQLITE :|sleep .3;echo 2 a|2|a|| +par_sqlandworker_linebuffer $SQLITE :|sleep .3;echo 2 b|2|b|| +par_sqlandworker_linebuffer $SQLITE :|sleep .3;echo 2 c|2|c|| +par_sqlandworker_linebuffer $SQLITE :|sleep .3;echo 2 d|2|d|| +par_sqlandworker_linebuffer $SQLITE :|sleep .3;echo 2 e|2|e|| +par_sqlandworker_linebuffer $SQLITE :|sleep .3;echo 3 a|3|a|| +par_sqlandworker_linebuffer $SQLITE :|sleep .3;echo 3 b|3|b|| +par_sqlandworker_linebuffer $SQLITE :|sleep .3;echo 3 c|3|c|| +par_sqlandworker_linebuffer $SQLITE :|sleep .3;echo 3 d|3|d|| +par_sqlandworker_linebuffer $SQLITE :|sleep .3;echo 3 e|3|e|| +par_sqlandworker_linebuffer $SQLITE :|sleep .3;echo 4 a|4|a|| +par_sqlandworker_linebuffer $SQLITE :|sleep .3;echo 4 b|4|b|| +par_sqlandworker_linebuffer $SQLITE :|sleep .3;echo 4 c|4|c|| +par_sqlandworker_linebuffer $SQLITE :|sleep .3;echo 4 d|4|d|| +par_sqlandworker_linebuffer $SQLITE :|sleep .3;echo 4 e|4|e|| +par_sqlandworker_linebuffer $SQLITE :|sleep .3;echo 5 a|5|a|| +par_sqlandworker_linebuffer $SQLITE :|sleep .3;echo 5 b|5|b|| +par_sqlandworker_linebuffer $SQLITE :|sleep .3;echo 5 c|5|c|| +par_sqlandworker_linebuffer $SQLITE :|sleep .3;echo 5 d|5|d|| +par_sqlandworker_linebuffer $SQLITE :|sleep .3;echo 5 e|5|e|| +par_sqlandworker_lo $MYSQL +par_sqlandworker_lo $MYSQL Exit=0 +par_sqlandworker_lo $MYSQL Exit=0 +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 +par_sqlandworker_lo $MYSQL lo sleep .3;echo 1 b 1 b 1 b\n +par_sqlandworker_lo $MYSQL lo sleep .3;echo 1 c 1 c 1 c\n +par_sqlandworker_lo $MYSQL lo sleep .3;echo 1 d 1 d 1 d\n +par_sqlandworker_lo $MYSQL lo sleep .3;echo 1 e 1 e 1 e\n +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 +par_sqlandworker_lo $MYSQL lo sleep .3;echo 2 c 2 c 2 c\n +par_sqlandworker_lo $MYSQL lo sleep .3;echo 2 d 2 d 2 d\n +par_sqlandworker_lo $MYSQL lo sleep .3;echo 2 e 2 e 2 e\n +par_sqlandworker_lo $MYSQL lo sleep .3;echo 3 a 3 a 3 a\n +par_sqlandworker_lo $MYSQL lo sleep .3;echo 3 b 3 b 3 b\n +par_sqlandworker_lo $MYSQL lo sleep .3;echo 3 c 3 c 3 c\n +par_sqlandworker_lo $MYSQL lo sleep .3;echo 3 d 3 d 3 d\n +par_sqlandworker_lo $MYSQL lo sleep .3;echo 3 e 3 e 3 e\n +par_sqlandworker_lo $MYSQL lo sleep .3;echo 4 a 4 a 4 a\n +par_sqlandworker_lo $MYSQL lo sleep .3;echo 4 b 4 b 4 b\n +par_sqlandworker_lo $MYSQL lo sleep .3;echo 4 c 4 c 4 c\n +par_sqlandworker_lo $MYSQL lo sleep .3;echo 4 d 4 d 4 d\n +par_sqlandworker_lo $MYSQL lo sleep .3;echo 4 e 4 e 4 e\n +par_sqlandworker_lo $MYSQL lo sleep .3;echo 5 a 5 a 5 a\n +par_sqlandworker_lo $MYSQL lo sleep .3;echo 5 b 5 b 5 b\n +par_sqlandworker_lo $MYSQL lo sleep .3;echo 5 c 5 c 5 c\n +par_sqlandworker_lo $MYSQL lo sleep .3;echo 5 d 5 d 5 d\n +par_sqlandworker_lo $MYSQL lo sleep .3;echo 5 e 5 e 5 e\n +par_sqlandworker_lo $PG +par_sqlandworker_lo $PG Exit=0 +par_sqlandworker_lo $PG Exit=0 +par_sqlandworker_lo $PG host | command | v1 | v2 | stdout | stderr +par_sqlandworker_lo $PG ------+-------------------+----+----+--------+-------- +par_sqlandworker_lo $PG lo | sleep .3;echo 1 a | 1 | a | 1 a +| +par_sqlandworker_lo $PG | | | | | +par_sqlandworker_lo $PG lo | sleep .3;echo 1 b | 1 | b | 1 b +| +par_sqlandworker_lo $PG | | | | | +par_sqlandworker_lo $PG lo | sleep .3;echo 1 c | 1 | c | 1 c +| +par_sqlandworker_lo $PG | | | | | +par_sqlandworker_lo $PG lo | sleep .3;echo 1 d | 1 | d | 1 d +| +par_sqlandworker_lo $PG | | | | | +par_sqlandworker_lo $PG lo | sleep .3;echo 1 e | 1 | e | 1 e +| +par_sqlandworker_lo $PG | | | | | +par_sqlandworker_lo $PG lo | sleep .3;echo 2 a | 2 | a | 2 a +| +par_sqlandworker_lo $PG | | | | | +par_sqlandworker_lo $PG lo | sleep .3;echo 2 b | 2 | b | 2 b +| +par_sqlandworker_lo $PG | | | | | +par_sqlandworker_lo $PG lo | sleep .3;echo 2 c | 2 | c | 2 c +| +par_sqlandworker_lo $PG | | | | | +par_sqlandworker_lo $PG lo | sleep .3;echo 2 d | 2 | d | 2 d +| +par_sqlandworker_lo $PG | | | | | +par_sqlandworker_lo $PG lo | sleep .3;echo 2 e | 2 | e | 2 e +| +par_sqlandworker_lo $PG | | | | | +par_sqlandworker_lo $PG lo | sleep .3;echo 3 a | 3 | a | 3 a +| +par_sqlandworker_lo $PG | | | | | +par_sqlandworker_lo $PG lo | sleep .3;echo 3 b | 3 | b | 3 b +| +par_sqlandworker_lo $PG | | | | | +par_sqlandworker_lo $PG lo | sleep .3;echo 3 c | 3 | c | 3 c +| +par_sqlandworker_lo $PG | | | | | +par_sqlandworker_lo $PG lo | sleep .3;echo 3 d | 3 | d | 3 d +| +par_sqlandworker_lo $PG | | | | | +par_sqlandworker_lo $PG lo | sleep .3;echo 3 e | 3 | e | 3 e +| +par_sqlandworker_lo $PG | | | | | +par_sqlandworker_lo $PG lo | sleep .3;echo 4 a | 4 | a | 4 a +| +par_sqlandworker_lo $PG | | | | | +par_sqlandworker_lo $PG lo | sleep .3;echo 4 b | 4 | b | 4 b +| +par_sqlandworker_lo $PG | | | | | +par_sqlandworker_lo $PG lo | sleep .3;echo 4 c | 4 | c | 4 c +| +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||