1. 04 10月, 2019 3 次提交
  2. 03 10月, 2019 1 次提交
  3. 02 10月, 2019 6 次提交
    • A
      607d003b
    • A
      9a90da8a
    • A
      cb1ebf73
    • A
      e229a311
    • C
      Bump ORCA version to 3.74.0, Introduce PallocMemoryPool for use in GPORCA (#8643) · 1db9b27a
      Chris Hajas 提交于
      We introduce a new type of memory pool and memory pool manager:
      CMemoryPoolPalloc and CMemoryPoolPallocManager
      
      The motivation for this PR is to improve memory allocation/deallocation
      performance when using GPDB allocators. Additionally, we would like to
      use the GPDB memory allocators by default (change the default for
      optimizer_use_gpdb_allocators to on), to prevent ORCA from crashing when
      we run out of memory (OOM). However, with the current way of doing
      things, doing so would add around 10 % performance overhead to ORCA.
      
      CMemoryPoolPallocManager overrides the default CMemoryPoolManager in
      ORCA, and instead creates a CMemoryPoolPalloc memory pool instead of a
      CMemoryPoolTracker. In CMemoryPoolPalloc, we now call MemoryContextAlloc
      and pfree instead of gp_malloc and gp_free, and we don’t do any memory
      accounting.
      
      So where does the performance improvement come from? Previously, we
      would (essentially) pass in gp_malloc and gp_free to an underlying
      allocation structure (which has been removed on the ORCA side). However,
      we would add additional headers and overhead to maintain a list of all
      of these allocations. When tearing down the memory pool, we would
      iterate through the list of allocations and explicitly free each one. So
      we would end up doing overhead on the ORCA side, AND the GPDB side.
      However, the overhead on both sides was quite expensive!
      
      If you want to compare against the previous implementation, see the
      Allocate and Teardown functions in CMemoryPoolTracker.
      
      With this PR, we improve optimization time by ~15% on average and up to
      30-40% on some queries which are memory intensive.
      
      This PR does remove memory accounting in ORCA. This was only enabled
      when the optimizer_use_gpdb_allocators GUC was set. By setting
      `optimizer_use_gpdb_allocators`, we still capture the memory used when
      optimizing a query in ORCA, without the overhead of the memory
      accounting framework.
      
      Additionally, Add a top level ORCA context where new contexts are created
      
      The OptimizerMemoryContext is initialized in InitPostgres(). For each
      memory pool in ORCA, a new memory context is created in
      OptimizerMemoryContext.
      
      Bumps ORCA version to 3.74.0
      Co-authored-by: NShreedhar Hardikar <shardikar@pivotal.io>
      Co-authored-by: NChris Hajas <chajas@pivotal.io>
      1db9b27a
    • A
      Remove vacuum_drop_phase_ao from parallel group · 38a177f5
      Adam Berlin 提交于
      - as an experiment. We want to see if it becomes less flakey.
      
      (cherry picked from commit b99920ff)
      38a177f5
  4. 01 10月, 2019 7 次提交
  5. 28 9月, 2019 2 次提交
  6. 27 9月, 2019 15 次提交
  7. 26 9月, 2019 6 次提交
    • G
      Fix GRANT/REVOKE ALL statement PANIC when the schema contains partitioned relations · 510a4f01
      Georgios Kokolatos 提交于
      The cause of the PANIC was an incorrectly populated list containing the
      namespace information for the affected the relation. A GrantStmt contains the
      necessary objects in a list named objects. This gets initially populated during
      parsing (via the privilege_target rule) and processed during parse analysis based
      on the target type and object type to RangeVar nodes, FuncWithArgs nodes or
      plain names.
      
      In Greenplum, the catalog information about the partition hierarchies is not
      propagated to all segments. This information needs to be processed in the
      dispatcher and to be added backed in the parsed statement for the segments to
      consume.
      
      In this commit, the partition hierarchy information is expanded only for the
      target and object type required. The parsed statement gets updated
      uncoditionally of partitioned references before dispatching for required types.
      
      The privileges tests have been updated to get check for privileges in the
      segments also.
      
      Problem identified and initial patch by Fenggang <ginobiliwang@gmail.com>,
      reviewed and refactored by me.
      
      (cherry picked from commit 7ba2af39)
      510a4f01
    • A
      Fix crash in COPY FROM for non-distributed/non-replicated table · 3c5f4c15
      Ashwin Agrawal 提交于
      Current code for COPY FROM picks mode as COPY_DISPATCH for
      non-distributed/non-replicated table as well. This causes crash. It
      should be using COPY_DIRECT, which is normal/direct mode to be used
      for such tables.
      
      The crash was exposed by following SQL commands:
      
          CREATE TABLE public.heap01 (a int, b int) distributed by (a);
          INSERT INTO public.heap01 VALUES (generate_series(0,99), generate_series(0,98));
          ANALYZE public.heap01;
      
          COPY (select * from pg_statistic where starelid = 'public.heap01'::regclass) TO '/tmp/heap01.stat';
          DELETE FROM pg_statistic where starelid = 'public.heap01'::regclass;
          COPY pg_statistic from '/tmp/heap01.stat';
      
      Important note: Yes, it's known and strongly recommended to not touch
      the `pg_statistics` or any other catalog table this way. But it's no
      good to panic either. The copy to `pg_statictics` is going to ERROR
      out "correctly" and not crash after this change with `cannot accept a
      value of type anyarray`, as there just isn't any way at the SQL level
      to insert data into pg_statistic's anyarray columns. Refer:
      https://www.postgresql.org/message-id/12138.1277130186%40sss.pgh.pa.us
      
      (cherry picked from commit 6793882b)
      3c5f4c15
    • D
      Docs: fix condition in pivotal .ditaval · 92ac46fc
      David Yozie 提交于
      92ac46fc
    • D
    • M
      docs - move install guide to gpdb repo (#8666) · 3373508e
      Mel Kiyama 提交于
      * docs - move install guide to gpdb repo
      
      --move Install Guide source files back to gpdb repo.
      --update config.yml and gpdb-landing-subnav.erb files for OSS doc builds.
      --removed refs directory - unused utility reference pages.
      --Also added more info to creating a gpadmin user.
      
      These files have conditionalized text (pivotal and oss-only).
      
      ./supported-platforms.xml
      ./install_gpdb.xml
      ./apx_mgmt_utils.xml
      ./install_guide.ditamap
      ./preinstall_concepts.xml
      ./migrate.xml
      ./install_modules.xml
      ./prep_os.xml
      ./upgrading.xml
      
      * docs - updated supported platforms with PXF information.
      
      * docs - install guide review comment update
      
      -- renamed one file from supported-platforms.xml to platform-requirements.xml
      
      * docs - reworded requirement/warning based on review comments.
      3373508e
    • S
      docs: add active directory kerberos steps for pxf (#7055) · 693b28e1
      StanleySung 提交于
      * add ad steps in pxf krb doc
      
      * From Lisa Owen
      
      * distributing keytab using gpscp and gpssh
      
      * Update gpdb-doc/markdown/pxf/pxf_kerbhdfs.html.md.erb
      Co-Authored-By: NAlexander Denissov <denalex@users.noreply.github.com>
      
      * Update gpdb-doc/markdown/pxf/pxf_kerbhdfs.html.md.erb
      Co-Authored-By: NAlexander Denissov <denalex@users.noreply.github.com>
      
      * misc formatting edits
      
      * a few more formatting edits
      693b28e1