<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Vertica Documentation – Managing the database</title>
    <link>/en/admin/managing-db/</link>
    <description>Recent content in Managing the database on Vertica Documentation</description>
    <generator>Hugo -- gohugo.io</generator>
    
	  <atom:link href="/en/admin/managing-db/index.xml" rel="self" type="application/rss+xml" />
    
    
      
        
      
    
    
    <item>
      <title>Admin: Managing nodes</title>
      <link>/en/admin/managing-db/managing-nodes/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>/en/admin/managing-db/managing-nodes/</guid>
      <description>
        
        
        &lt;p&gt;Vertica provides the ability to &lt;a href=&#34;../../../en/admin/managing-db/managing-nodes/adding-nodes/&#34;&gt;add&lt;/a&gt;, &lt;a href=&#34;../../../en/admin/managing-db/managing-nodes/removing-nodes/&#34;&gt;remove&lt;/a&gt;, and &lt;a href=&#34;../../../en/admin/managing-db/managing-nodes/replacing-nodes/&#34;&gt;replace&lt;/a&gt; nodes on a live cluster that is actively processing queries. This ability lets you scale the database without interrupting users.&lt;/p&gt;
&lt;h2 id=&#34;in-this-section&#34;&gt;In this section&lt;/h2&gt;

      </description>
    </item>
    
    <item>
      <title>Admin: Managing disk space</title>
      <link>/en/admin/managing-db/managing-disk-space/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>/en/admin/managing-db/managing-disk-space/</guid>
      <description>
        
        
        &lt;p&gt;Vertica detects and reports low disk space conditions in the log file so you can address the issue before serious problems occur. It also detects and reports low disk space conditions via &lt;a href=&#34;../../../en/admin/monitoring/monitoring-events/configuring-event-reporting/configuring-reporting-snmp/&#34;&gt;SNMP traps&lt;/a&gt; if enabled.&lt;/p&gt;
&lt;p&gt;Critical disk space issues are reported sooner than other issues. For example, running out of catalog space is fatal; therefore, Vertica reports the condition earlier than less critical conditions. To avoid database corruption when the disk space falls beyond a certain threshold, Vertica begins to reject transactions that update the catalog or data.

&lt;div class=&#34;admonition caution&#34; role=&#34;alert&#34;&gt;
&lt;h4 class=&#34;admonition-head&#34;&gt;Caution&lt;/h4&gt;

A low disk space report indicates one or more hosts are running low on disk space or have a failing disk. It is imperative to add more disk space (or replace a failing disk) as soon as possible.

&lt;/div&gt;&lt;/p&gt;
&lt;p&gt;When Vertica reports a low disk space condition, use the &lt;a href=&#34;../../../en/sql-reference/system-tables/v-monitor-schema/disk-resource-rejections/&#34;&gt;DISK_RESOURCE_REJECTIONS&lt;/a&gt; system table to determine the types of disk space requests that are being rejected and the hosts on which they are being rejected.&lt;/p&gt;
&lt;p&gt;To add disk space, see &lt;a href=&#34;../../../en/admin/managing-db/managing-disk-space/adding-disk-space-to-node/&#34;&gt;Adding disk space to a node&lt;/a&gt;. To replace a failed disk, see &lt;a href=&#34;../../../en/admin/managing-db/managing-disk-space/replacing-failed-disks/&#34;&gt;Replacing failed disks&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&#34;monitoring-disk-space-usage&#34;&gt;Monitoring disk space usage&lt;/h2&gt;
&lt;p&gt;You can use these system tables to monitor disk space usage on your cluster:

&lt;table class=&#34;table table-bordered&#34; &gt;



&lt;tr&gt; 

&lt;th &gt;
System table&lt;/th&gt; 

&lt;th &gt;
Description&lt;/th&gt;&lt;/tr&gt;

&lt;tr&gt; 

&lt;td &gt;



&lt;code&gt;&lt;a href=&#34;../../../en/sql-reference/system-tables/v-monitor-schema/disk-storage/&#34;&gt;DISK_STORAGE&lt;/a&gt;&lt;/code&gt;&lt;/td&gt; 

&lt;td &gt;


Monitors the amount of disk storage used by the database on each node.&lt;/td&gt;&lt;/tr&gt;

&lt;tr&gt; 

&lt;td &gt;



&lt;code&gt;&lt;a href=&#34;../../../en/sql-reference/system-tables/v-monitor-schema/column-storage/&#34;&gt;COLUMN_STORAGE&lt;/a&gt;&lt;/code&gt;&lt;/td&gt; 

&lt;td &gt;


Monitors the amount of disk storage used by each column of each projection on each node.&lt;/td&gt;&lt;/tr&gt;

&lt;tr&gt; 

&lt;td &gt;



&lt;code&gt;&lt;a href=&#34;../../../en/sql-reference/system-tables/v-monitor-schema/projection-storage/&#34;&gt;PROJECTION_STORAGE&lt;/a&gt;&lt;/code&gt;&lt;/td&gt; 

&lt;td &gt;


Monitors the amount of disk storage used by each projection on each node.&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/p&gt;


      </description>
    </item>
    
    <item>
      <title>Admin: Memory usage reporting</title>
      <link>/en/admin/managing-db/memory-usage-reporting/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>/en/admin/managing-db/memory-usage-reporting/</guid>
      <description>
        
        
        &lt;p&gt;Vertica periodically polls its own memory usage to determine whether it is below the threshold that is set by configuration parameter 
&lt;code&gt;&lt;a href=&#34;../../../en/sql-reference/config-parameters/memory-management-parameters/&#34;&gt;MemoryPollerReportThreshold&lt;/a&gt;&lt;/code&gt;.Polling occurs at regular intervals—by default, every 2 seconds—as set by configuration parameter 
&lt;code&gt;&lt;a href=&#34;../../../en/sql-reference/config-parameters/memory-management-parameters/&#34;&gt;MemoryPollerIntervalSec&lt;/a&gt;&lt;/code&gt;.
&lt;p&gt;The memory poller compares &lt;code&gt;MemoryPollerReportThreshold&lt;/code&gt; with the following expression:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;&lt;span class=&#34;code-variable&#34;&gt;RSS&lt;/span&gt; / &lt;span class=&#34;code-variable&#34;&gt;available‑memory&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;When this expression evaluates to a value higher than &lt;code&gt;MemoryPollerReportThreshold&lt;/code&gt;—by default, set to 0.93, then the memory poller writes a report to &lt;code&gt;MemoryReport.log&lt;/code&gt;, in the Vertica working directory. This report includes information about Vertica memory pools, how much memory is consumed by individual queries and session, and so on. The memory poller also logs the report as an event in system table 
&lt;code&gt;&lt;a href=&#34;../../../en/sql-reference/system-tables/v-monitor-schema/memory-events/&#34;&gt;MEMORY_EVENTS&lt;/a&gt;&lt;/code&gt;, where it sets &lt;code&gt;EVENT_TYPE&lt;/code&gt; to &lt;code&gt;MEMORY_REPORT&lt;/code&gt;.&lt;/p&gt;
&lt;/p&gt;
&lt;p&gt;The memory poller also checks for excessive glibc allocation of free memory (glibc memory bloat). For details, see &lt;a href=&#34;../../../en/admin/managing-db/memory-trimming/&#34;&gt;Memory trimming&lt;/a&gt;.&lt;/p&gt;

      </description>
    </item>
    
    <item>
      <title>Admin: Memory trimming</title>
      <link>/en/admin/managing-db/memory-trimming/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>/en/admin/managing-db/memory-trimming/</guid>
      <description>
        
        
        &lt;p&gt;Under certain workloads, &lt;a href=&#34;https://www.gnu.org/software/libc/&#34;&gt;glibc&lt;/a&gt; can accumulate a significant amount of free memory in its allocation arena. This memory consumes physical memory as indicated by its usage of resident set size (RSS), which glibc does not always return to the operating system. High retention of physical memory by glibc—&lt;em&gt;glibc memory bloat&lt;/em&gt;—can adversely affect other processes, and, under high workloads, can sometimes cause Vertica to run out of memory.&lt;/p&gt;
&lt;p&gt;Vertica provides two configuration parameters that let you control how frequently Vertica detects and consolidates much of the glibc-allocated free memory, and then returns it to the operating system:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;
&lt;code&gt;&lt;a href=&#34;../../../en/sql-reference/config-parameters/memory-management-parameters/&#34;&gt;MemoryPollerTrimThreshold&lt;/a&gt;&lt;/code&gt;: Sets the threshold for the memory poller to start checking whether to trim &lt;code&gt;glibc&lt;/code&gt;‑allocated memory.  &lt;p&gt;The memory poller compares &lt;code&gt;MemoryPollerTrimThreshold&lt;/code&gt;—by default, set to 0.83— with the following expression:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;&lt;span class=&#34;code-variable&#34;&gt;RSS&lt;/span&gt; / &lt;span class=&#34;code-variable&#34;&gt;available‑memory&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;If this expression evaluates to a value higher than &lt;code&gt;MemoryPollerTrimThreshold&lt;/code&gt;, then the memory poller starts checking the next threshold—set in &lt;code&gt;MemoryPollerMallocBloatThreshold&lt;/code&gt;—for glibc memory bloat.&lt;/p&gt;
&lt;/p&gt;

&lt;div class=&#34;alert admonition note&#34; role=&#34;alert&#34;&gt;
&lt;h4 class=&#34;admonition-head&#34;&gt;Note&lt;/h4&gt;

On high-memory machines where very large Vertica RSS values are atypical, consider a higher setting for &lt;code&gt;MemoryPollerTrimThreshold&lt;/code&gt;. To turn off auto-trimming, set this parameter to 0.

&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;
&lt;code&gt;&lt;a href=&#34;../../../en/sql-reference/config-parameters/memory-management-parameters/&#34;&gt;MemoryPollerMallocBloatThreshold&lt;/a&gt;&lt;/code&gt;: Sets the threshold of glibc memory bloat.  &lt;p&gt;The memory poller calls glibc function &lt;code&gt;malloc_info()&lt;/code&gt; to obtain the amount of free memory in malloc. It then compares &lt;code&gt;MemoryPollerMallocBloatThreshold&lt;/code&gt;—by default, set to 0.3—with the following expression:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;&lt;span class=&#34;code-variable&#34;&gt;free‑memory‑in‑malloc&lt;/span&gt; / &lt;span class=&#34;code-variable&#34;&gt;RSS&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;If this expression evaluates to a value higher than &lt;code&gt;MemoryPollerMallocBloatThreshold&lt;/code&gt;, the memory poller calls glibc function 
&lt;code&gt;&lt;a href=&#34;http://man7.org/linux/man-pages/man3/malloc_trim.3.html&#34;&gt;malloc_trim()&lt;/a&gt;&lt;/code&gt;. This function reclaims free memory from malloc and returns it to the operating system. Details on calls to &lt;code&gt;malloc_trim()&lt;/code&gt; are written to system table 
&lt;code&gt;&lt;a href=&#34;../../../en/sql-reference/system-tables/v-monitor-schema/memory-events/&#34;&gt;MEMORY_EVENTS&lt;/a&gt;&lt;/code&gt;.&lt;/p&gt;
&lt;/p&gt;
&lt;p&gt;For example, the memory poller calls &lt;code&gt;malloc_trim()&lt;/code&gt; when the following conditions are true:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;code&gt;MemoryPollerMallocBloatThreshold&lt;/code&gt; is set to 0.5.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;code&gt;malloc_info()&lt;/code&gt; returns 15GB memory in malloc free.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;RSS is 30GB.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class=&#34;alert admonition note&#34; role=&#34;alert&#34;&gt;
&lt;h4 class=&#34;admonition-head&#34;&gt;Note&lt;/h4&gt;

This parameter is ignored if &lt;code&gt;MemoryPollerTrimThreshold&lt;/code&gt; is set to 0 (disabled).

&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;trimming-memory-manually&#34;&gt;Trimming memory manually&lt;/h2&gt;
&lt;p&gt;If auto-trimming is disabled, you can manually reduce glibc‑allocated memory by calling Vertica function 
&lt;code&gt;&lt;a href=&#34;../../../en/sql-reference/functions/management-functions/db-functions/memory-trim/&#34;&gt;MEMORY_TRIM&lt;/a&gt;&lt;/code&gt;. This function calls &lt;code&gt;malloc_trim()&lt;/code&gt;.&lt;/p&gt;

      </description>
    </item>
    
    <item>
      <title>Admin: Tuple mover</title>
      <link>/en/admin/managing-db/tuple-mover/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>/en/admin/managing-db/tuple-mover/</guid>
      <description>
        
        
        &lt;p&gt;The Tuple Mover manages ROS data storage. On &lt;a href=&#34;../../../en/admin/managing-db/tuple-mover/mergeout/&#34;&gt;mergeout&lt;/a&gt;, it combines small ROS containers into larger ones and purges deleted data. The Tuple Mover automatically performs these tasks in the background.&lt;/p&gt;
&lt;p&gt;The database mode affects which nodes perform Tuple Mover operations:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;In an Enterprise Mode database, all nodes run the Tuple Mover to perform mergeout operations on the data they store.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;In Eon Mode, the &lt;a class=&#34;glosslink&#34; href=&#34;../../../en/glossary/primary-subscriber/&#34; title=&#34;In an Eon Mode database, each shard has a primary subscriber node.&#34;&gt;primary subscriber&lt;/a&gt; to each &lt;a class=&#34;glosslink&#34; href=&#34;../../../en/glossary/shard/&#34; title=&#34;A subset of the data and associated metadata stored in an Eon Mode database.&#34;&gt;shard&lt;/a&gt; plans Tuple Mover mergeout operations on the ROS containers in the shard. It can delegate the execution of this plan to another node in the cluster.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Tuple Mover operations typically require no intervention. However, Vertica provides various ways to adjust Tuple Mover behavior. For details, see &lt;a href=&#34;../../../en/admin/managing-db/tuple-mover/managing-tuple-mover/&#34;&gt;Managing the tuple mover&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;a name=&#34;The&#34;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2 id=&#34;the-tuple-mover-in-eon-mode-databases&#34;&gt;The tuple mover in Eon Mode databases&lt;/h2&gt;
&lt;p&gt;In Eon Mode, the Tuple Mover&#39;s operations are broken into two parts: mergeout planning and mergeout execution. Mergeout planning is always carried out by the &lt;a class=&#34;glosslink&#34; href=&#34;../../../en/glossary/primary-subscriber/&#34; title=&#34;In an Eon Mode database, each shard has a primary subscriber node.&#34;&gt;primary subscribers&lt;/a&gt; of the shards involved in the mergeout. These primary subscribers are part of same the primary subcluster. As part of its mergeout planning, the primary subscriber chooses a node to execute the mergeout plan. It uses two criteria to decide which node should execute the mergeout:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Only nodes that have memory allocated to their TM resource pool are eligible to perform a mergeout. The primary subscriber ignores all nodes in subclusters whose TM pool&#39;s &lt;span class=&#34;sql&#34;&gt;MEMORYSIZE&lt;/span&gt; and &lt;span class=&#34;sql&#34;&gt;MAXMEMORYSIZE&lt;/span&gt; settings are 0.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;From the group of nodes able to execute a mergeout, the primary subscriber chooses the node that has the most ROS containers in its depot that are involved in the mergeout.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;a name=&#34;Limiting&#34;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h3 id=&#34;limiting-which-subclusters-perform-mergeout-tasks&#34;&gt;Limiting which subclusters perform mergeout tasks&lt;/h3&gt;
&lt;p&gt;You can prevent a secondary subcluster from being assigned mergeout tasks by changing the &lt;span class=&#34;sql&#34;&gt;MEMORYSIZE&lt;/span&gt; and &lt;span class=&#34;sql&#34;&gt;MAXMEMORYSIZE&lt;/span&gt; settings of the its TM pool to 0. These settings prevent the primary subscribers from assigning mergeout tasks to nodes in the subcluster.

&lt;div class=&#34;admonition important&#34; role=&#34;alert&#34;&gt;
&lt;h4 class=&#34;admonition-head&#34;&gt;Important&lt;/h4&gt;
Primary subclusters must always be able to execute mergeout tasks. Only change these settings on secondary subclusters.
&lt;/div&gt;&lt;/p&gt;
&lt;p&gt;For example, this statement prevents the subcluster named dashboard from running mergeout tasks.&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;=&amp;gt; ALTER RESOURCE POOL TM FOR SUBCLUSTER dashboard MEMORYSIZE &amp;#39;0%&amp;#39;
   MAXMEMORYSIZE &amp;#39;0%&amp;#39;;
&lt;/code&gt;&lt;/pre&gt;

      </description>
    </item>
    
    <item>
      <title>Admin: Managing workloads</title>
      <link>/en/admin/managing-db/managing-workloads/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>/en/admin/managing-db/managing-workloads/</guid>
      <description>
        
        
        &lt;p&gt;Vertica&#39;s resource management scheme allows diverse, concurrent workloads to run efficiently on the database. For basic operations, Vertica pre-configures the built-in &lt;a href=&#34;../../../en/sql-reference/statements/create-statements/create-resource-pool/built-pools/&#34;&gt;GENERAL pool&lt;/a&gt; based on RAM and machine cores. You can customize the General pool to handle specific concurrency requirements.&lt;/p&gt;
&lt;p&gt;You can also define new resource pools that you configure to limit memory usage, concurrency, and query priority. You can then optionally assign each database user to use a specific resource pool, which controls memory resources used by their requests.&lt;/p&gt;
&lt;p&gt;User-defined pools are useful if you have competing resource requirements across different classes of workloads. Example scenarios include:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;A large batch job takes up all server resources, leaving small jobs that update a web page without enough resources. This can degrade user experience.&lt;/p&gt;
&lt;p&gt;In this scenario, create a resource pool to handle web page requests and ensure users get resources they need. Another option is to create a limited resource pool for the batch job, so the job cannot use up all system resources.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;An application has lower priority than other applications and you want to limit the amount of memory and number of concurrent users for the low-priority application.&lt;/p&gt;
&lt;p&gt;In this scenario, create a resource pool with an upper limit on the query&#39;s memory and associate the pool with users of the low-priority application.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;You can also use resource pools to manage resources assigned to running queries. You can assign a run-time priority to a resource pool, as well as a threshold to assign different priorities to queries with different durations. See &lt;a href=&#34;../../../en/admin/managing-db/managing-workloads/managing-resources-query-run-time/&#34;&gt;Managing resources at query run time&lt;/a&gt; for more information.&lt;/p&gt;
&lt;h2 id=&#34;enterprise-mode-and-eon-mode&#34;&gt;Enterprise Mode and Eon Mode&lt;/h2&gt;
&lt;p&gt;In Enterprise Mode, there is one global set of resource pools for the entire database. In Eon Mode, you can allocate resources globally or per subcluster. See &lt;a href=&#34;../../../en/admin/managing-db/managing-workloads/workload-best-practices/managing-workload-resources-an-eon-db/&#34;&gt;Managing workload resources in an Eon Mode database&lt;/a&gt; for more information.&lt;/p&gt;

      </description>
    </item>
    
  </channel>
</rss>
