]> git.sesse.net Git - remoteglot-book/blob - build-book.sh
Set parallel merges to a value different from parallel loads.
[remoteglot-book] / build-book.sh
1 #! /bin/bash
2
3 set -e
4
5 export SHARDS=40
6 export PARALLEL_LOADS=15  # Reduce if you have problems with OOM
7 export PARALLEL_MERGES=40
8
9 rm -f pgnnames.txt part-*.bin part-*.mtbl part-*.mtbl.part???? open.mtbl.new open.mtbl.part???? open.mtbl.part????.new 2>/dev/null
10
11 PGNNUM=0
12 for FILE in "$@"; do
13         date | tr -d "\n"
14         echo "  $FILE"
15         ./parallel-parse-pgn.sh "$FILE" "$PGNNUM"
16         echo "$FILE" >> pgnnames.txt
17         PGNNUM=$(( PGNNUM + 1 ))
18 done
19 date 
20
21 echo "Loading..."
22 parallel -i -j ${PARALLEL_LOADS} bash -c 'FILE="{}"; set -x; ./binloader "$FILE" "${FILE/bin/mtbl}" $SHARDS' -- part-*.bin
23
24 rm -f part-*.bin
25
26 parallel -i -j ${PARALLEL_MERGES} bash -c 'X={}; set -x; ./binmerger part-*.mtbl.part$( printf %04d $X ) open.mtbl.part$( printf %04d $X ).new' -- $( seq 0 $(( SHARDS - 1 )) )
27
28 for X in $( seq 0 $(( SHARDS - 1 )) ); do
29         mv open.mtbl.part$( printf %04d $X ).new open.mtbl.part$( printf %04d $X )
30 done
31 rm -f part-*.mtbl.part????