Index: docs/manual/megatest_manual.html ================================================================== --- docs/manual/megatest_manual.html +++ docs/manual/megatest_manual.html @@ -868,12 +868,100 @@

Road Map

Note 1: This road-map is still evolving and subject to change without notice.

-

RFC

-

Requests for comment.

+

RFC: Move data into completed-runs.db

+

Purpose: shrink megatest.db data to enable lower load and higher performance.

+

Method: add a completed-runs.db and automatically move runs data from megatest.db to that db

+

Design:

+
    +
  1. +

    +completed-runs.db is a full megatest database with complete schema +

    +
  2. +
  3. +

    +the data move would involve these steps +

    +
      +
    1. +

      +copy the run data to completed-runs.db +

      +
    2. +
    3. +

      +remove the run data, first from /tmp/…/megatest.db and /tmp/…/megatest_ref.db, followed by megatest.db +

      +
    4. +
    +
  4. +
  5. +

    +accessing the data would be unchanged for most operations. +

    +
  6. +
  7. +

    +a mode -full-db will be added which when specified would attach the completed-runs.db to megatest.db before doing the query +

    +
  8. +
  9. +

    +mechanisms for moving runs to/from the megatest.db would be added +

    +
      +
    1. +

      +-reduce-records ⇒ move runs to completed-runs.db +

      +
    2. +
    3. +

      +-restore-records ⇒ move runs from completed-runs.db to megatest.db +

      +
    4. +
    +
  10. +
+

Branch: This work is taking place on branch v1.65-reduce-records

+
+
+

RFC: Automatic homehost migrations

+

Purpose: Automatically migrate homehost.

+

Method: Check that there are no tests running, launched or remotehoststart in past ½ hour then if not on homehost migrate the db to current host

+

Design:

+
    +
  1. +

    +Check that the system is quiescent, i.e. that there are no runs in flight or recently run +

    +
  2. +
  3. +

    +Create a lock +

    +
  4. +
  5. +

    +Migrate the /tmp cache db to the current host +

    +
  6. +
  7. +

    +Update the .homehost file +

    +
  8. +
  9. +

    +Remove the lock +

    +
  10. +
+

Branch: This work not yet started

Architecture Refactor

Goals

Index: utils/editwiki ================================================================== --- utils/editwiki +++ utils/editwiki @@ -8,20 +8,25 @@ exit fi $FOSSILBIN sync -wikitmpfile=`mktemp /tmp/${USER}_wikiedit.XXXXXXX` +# wikitmpfile=`mktemp /tmp/${USER}_wikiedit.XXXXXXX` +wikitmpfile=${wikiname}.in + if ! $FOSSILBIN wiki export "$wikiname" 2> /dev/null 1> $wikitmpfile ;then cat /dev/null > $wikitmpfile wikipagestate='new' else wikipagestate='existing' fi -if [ x"$EDITOR" == "x" ];then - EDITOR="gvim -f" +# make a backup copy of the extracted file to diff detect if changed +cp $wikitmpfile ${wikitmpfile}.orig + +if [[ x"$EDITOR" == "x" ]];then # || [[ x"$VISUAL" == "x" ]];then + EDITOR="gvim -f" fi echo $EDITOR | grep -q -e gvim isGvim=$? @@ -32,14 +37,20 @@ EDITOR="$EDITOR -f" fi $EDITOR $wikitmpfile -if [ $wikipagestate == 'new' ];then - $FOSSILBIN wiki create "$wikiname" $wikitmpfile +if ! diff -q $wikitmpfile ${wikitmpfile}.orig;then + echo "Saving changes to $wikitmpfile to wiki" + if [ $wikipagestate == 'new' ];then + $FOSSILBIN wiki create "$wikiname" $wikitmpfile + else + $FOSSILBIN wiki commit "$wikiname" $wikitmpfile + fi else - $FOSSILBIN wiki commit "$wikiname" $wikitmpfile + echo "Not saving, no changes to $wikitmpfile." fi $FOSSILBIN sync -rm -f $wikitmpfile +# NOTE// We *keep* the wikitmpfile but remove the orig copy +rm -f ${wikitmpfile}.orig