1. 11 8月, 2017 1 次提交
  2. 25 10月, 2016 1 次提交
    • F
      Implementation of index based memory accounting. · 81627e27
      Foyzur Rahman 提交于
      Previously accounting tree and reference to accounts were pointer based.
      This prevents us from freeing accounts at the end of each statement as
      later statements of that transaction can potentially access memory and
      the corresponding accounts. This resulted in a perceived memory leak as
      the accounts were not freed per-statement.
      
      In this implementation we convert pointers to index that can refer to an
      array of accounts. This allows us to partition indexes based on
      "generation" to define which accounts are live and which are already
      dead. This is also a soft-pointer so we don't crash accessing it. This
      also allows us to optimize the previous heavyweight "rollover" at the
      time of generation overflow as we no longer need to detect the validity
      of accounts based on generation, and rather we can just refer to logical
      range of indexes to identify the liveness.
      
      [#120028219]
      81627e27
  3. 11 6月, 2016 1 次提交
    • F
      The GPDB Vmem is the lowest layer of memory allocator that supports higher... · 42ca3506
      Foyzur Rahman 提交于
          The GPDB Vmem is the lowest layer of memory allocator that supports higher allocators such as AllocSet. This layer (mostly defined in memprot.c) is in charge of actually calling malloc/realloc/free to allocate/reallocate/free memory. In this process this layer is also in charge of reserving "virtual" memory or Vmem, which is a GPDB specific shared memory counter to track per-segment combined allocations across all the GPDB processes under Vmem umbrella. The Vmem counter is managed by a separate module Vmem_Tracker, and the memprot functions (such as gp_malloc, gp_free2 and gp_realloc) call the APIs provided by VmemTracker.
      
          Previously the memprot allocators (gp_alloc/gp_realloc/gp_free) were only allocating/freeing memory but were not adding any additional metadata in the header (and there was no header) to track the size of allocations. Therefore, there was no gp_free as freeing memory requires the size of the free to adjust Vmem counter inside VmemTracker. This was patched by explicitly passing size info in gp_free2.
      
          In this PR we do the following:
      
          * We add allocation size in Vmem header (along with checksums which are only available in debug build to detect header and footer boundary, and buffer overruns).
      
          * We remove size information from the block header of AllocSet.
      
          * We rename gp_free2 to gp_free as the second parameter (size information) is now obtained from the header and therefore no longer necessary
      
          * We modify all the consumers of memprot.c APIs to use the new APIs
      
          * We add unit tests to test the metadata and the correctness of the new Vmem allocators
      
          This is the first step to integrate external modules and third party allocations with Vmem. A long running issue in GPDB is its inability to track allocations by external components including libraries such as ORCA. Therefore, the central Vmem counter is often way off from the underlying allocations, and this may run the system out of memory. By maintaining the size information in the Vmem header, we now have a self-contained allocator that can be exposed to external allocators such as GPOS allocators, without forcing them to manage size information separately.
      
          This fixes #117269929.
      Signed-off-by: NMarc Spehlmann <marc.spehlmann@gmail.com>
      42ca3506
  4. 28 10月, 2015 1 次提交
  5. 02 1月, 2008 1 次提交
  6. 25 7月, 2007 1 次提交
  7. 06 1月, 2007 1 次提交
  8. 05 3月, 2006 1 次提交
  9. 15 10月, 2005 1 次提交
  10. 19 2月, 2005 1 次提交
  11. 01 1月, 2005 1 次提交
    • P
      · 2ff50159
      PostgreSQL Daemon 提交于
      Tag appropriate files for rc3
      
      Also performed an initial run through of upgrading our Copyright date to
      extend to 2005 ... first run here was very simple ... change everything
      where: grep 1996-2004 && the word 'Copyright' ... scanned through the
      generated list with 'less' first, and after, to make sure that I only
      picked up the right entries ...
      2ff50159
  12. 10 9月, 2004 1 次提交
  13. 29 8月, 2004 1 次提交
  14. 09 8月, 2004 1 次提交
  15. 08 8月, 2004 1 次提交
  16. 30 11月, 2003 1 次提交
    • P
      · 55b11325
      PostgreSQL Daemon 提交于
      make sure the $Id tags are converted to $PostgreSQL as well ...
      55b11325
  17. 04 8月, 2003 2 次提交
  18. 17 12月, 2002 1 次提交
    • T
      Code review for palloc0 patch --- avoid dangerous and unnecessary · 88177f77
      Tom Lane 提交于
      practice of evaluating MemSet's arguments multiple times, except for
      the special case of newNode(), where we can assume the argument is
      a constant sizeof() operator.
      Also, add GetMemoryChunkContext() to mcxt.c's API, in preparation for
      fixing recent GEQO breakage.
      88177f77
  19. 13 11月, 2002 1 次提交
  20. 10 11月, 2002 1 次提交
  21. 11 10月, 2002 2 次提交
  22. 21 6月, 2002 1 次提交
  23. 06 11月, 2001 1 次提交
  24. 25 10月, 2001 1 次提交
  25. 22 3月, 2001 1 次提交
  26. 10 2月, 2001 1 次提交
    • T
      Restructure the key include files per recent pghackers discussion: there · d08741ea
      Tom Lane 提交于
      are now separate files "postgres.h" and "postgres_fe.h", which are meant
      to be the primary include files for backend .c files and frontend .c files
      respectively.  By default, only include files meant for frontend use are
      installed into the installation include directory.  There is a new make
      target 'make install-all-headers' that adds the whole content of the
      src/include tree to the installed fileset, for use by people who want to
      develop server-side code without keeping the complete source tree on hand.
      Cleaned up a whole lot of crufty and inconsistent header inclusions.
      d08741ea
  27. 25 1月, 2001 1 次提交
  28. 28 6月, 2000 1 次提交
    • T
      First phase of memory management rewrite (see backend/utils/mmgr/README · 1aebc361
      Tom Lane 提交于
      for details).  It doesn't really do that much yet, since there are no
      short-term memory contexts in the executor, but the infrastructure is
      in place and long-term contexts are handled reasonably.  A few long-
      standing bugs have been fixed, such as 'VACUUM; anything' in a single
      query string crashing.  Also, out-of-memory is now considered a
      recoverable ERROR, not FATAL.
      Eliminate a large amount of crufty, now-dead code in and around
      memory management.
      Fix problem with holding off SIGTRAP, SIGSEGV, etc in postmaster and
      backend startup.
      1aebc361
  29. 26 1月, 2000 1 次提交
    • B
      Add: · 5c25d602
      Bruce Momjian 提交于
        * Portions Copyright (c) 1996-2000, PostgreSQL, Inc
      
      to all files copyright Regents of Berkeley.  Man, that's a lot of files.
      5c25d602
  30. 14 1月, 2000 1 次提交
  31. 14 7月, 1999 1 次提交
  32. 26 5月, 1999 1 次提交
  33. 14 2月, 1999 1 次提交
  34. 07 2月, 1999 1 次提交
  35. 01 9月, 1998 1 次提交
  36. 08 9月, 1997 1 次提交
  37. 07 9月, 1997 1 次提交
  38. 26 11月, 1996 1 次提交