1. 27 3月, 2019 1 次提交
    • A
      Lock child partition tables at INSERT InitPlan() on QD · c7fce844
      Alexandra Wang 提交于
      INSERT needs to Lock the child table on QD, otherwise the following
      dead lock scenario may happen if INSERT runs concurrently with VACUUM
      drop phase on an AppendOnly partitioned table.
      
      1. VACUUM on QD: acquired AccessExclusiveLock on the child table
      2. INSERT on QE: acquired RowExclusiveLock on the child table
      3. VACUUM on QE: waiting for AccessExclusiveLock on the child table
      4. INSERT on QD: waiting for AccessShareLock at ExecutorEnd() on the
        child table, this is after QE sends back which child it inserted
      
      Note that in step 2, INSERT only locks the child table on QE, it does
      not lock the child table on QD in the previous code. This patch adds the
      lock on QD as well to prevent the above dead lock.
      
      Added `insert_while_vacuum_drop` and updated `partition_locking` to
      reflect the changes
      c7fce844
  2. 26 3月, 2019 11 次提交
  3. 23 3月, 2019 3 次提交
  4. 22 3月, 2019 5 次提交
    • J
      Fix gpexpand flaky case (#7232) · d0839b23
      Jialun 提交于
      As a kill may be not taken effect at "the database is killed on hosts "
      immediately, so we double check the cluster and stop database if it is
      still running. But if kill takes effect after checking, stop_database
      will raise an exception for gpstop will fail to stop an unstarted cluster.
      To fix this flaky case, we stop database first and check the database
      status later. It will raise an exception only when gpstop failed and
      the cluster is still running.
      d0839b23
    • S
      gprecoverseg: Add --no-progress flag. · eb064718
      Shoaib Lari 提交于
      For some areas of the ICW test framework -- isolation2 in particular --
      the additional data written to stdout by gprecoverseg's progress
      increased the load on the system significantly. (Some tests are
      buffering stdout without bound, for instance.)  Additionally, the
      updates were coming at ten times a second, which is an order of
      magnitude more than the update interval we get from pg_basebackup
      itself.
      
      To help with this, we have have added a --no-progress flag that
      suppresses the output of pg_basebackup.  We have also changed the
      pg_basebackup progress update rate to once per second to minimize I/O.
      
      The impacted regression/isolation2 tests utilizing gprecoverseg have
      also been modified to use the --no-progress flag.
      Co-authored-by: NJamie McAtamney <jmcatamney@pivotal.io>
      Co-authored-by: NJacob Champion <pchampion@pivotal.io>
      eb064718
    • K
      Add gprecoverseg -s to show progress sequentially · f04c206a
      Kalen Krempely 提交于
      When -s is present, show pg_basebackup progress sequentially instead
      of inplace. Useful when writing to a file, or if a tty does not support
      escape sequences. Defaults to showing the progress inplace.
      f04c206a
    • S
      gprecoverseg: Show progress of pg_basebackup on each segment · d41ca162
      Shoaib Lari 提交于
      The gprecoverseg utility runs pg_basebackup in parallel on all segments that are
      being recovered.  In this commit, we are logging the progress of each
      pg_basebackup on its host and displaying them to the user of gprecoverseg.  The
      progress files are deleted upons successful completion of gprecoverseg.
      
      Unit tests have also been added.
      Authored-by: NShoaib Lari <slari@pivotal.io>
      Co-authored-by: NMark Sliva <msliva@pivotal.io>
      Co-authored-by: NJacob Champion <pchampion@pivotal.io>
      Co-authored-by: NEd Espino <edespino@pivotal.io>
      Co-authored-by: NKalen Krempely <kkrempely@pivotal.io>
      d41ca162
    • B
      9a2cf8cc
  5. 21 3月, 2019 10 次提交
  6. 20 3月, 2019 3 次提交
  7. 19 3月, 2019 6 次提交
  8. 18 3月, 2019 1 次提交