<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>OpenText Analytics Database 26.2.x – Depot management</title>
    <link>/en/eon/depot-management/</link>
    <description>Recent content in Depot management on OpenText Analytics Database 26.2.x</description>
    <generator>Hugo -- gohugo.io</generator>
    
	  <atom:link href="/en/eon/depot-management/index.xml" rel="self" type="application/rss+xml" />
    
    
      
        
      
    
    
    <item>
      <title>Eon: Managing depot caching</title>
      <link>/en/eon/depot-management/managing-depot-caching/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>/en/eon/depot-management/managing-depot-caching/</guid>
      <description>
        
        
        &lt;p&gt;You can control depot caching in several ways:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;#DepotGatewayParameters&#34;&gt;Configure gateway parameters&lt;/a&gt; so a depot caches only queried data or loaded data.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;#DepotFetching&#34;&gt;Control fetching&lt;/a&gt; of queried data from communal storage.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;#Evicting&#34;&gt;Manage eviction&lt;/a&gt; of cached data.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;#Configur&#34;&gt;Enable depot warming&lt;/a&gt; on new and restarted nodes.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;You can &lt;a href=&#34;#Monitori&#34;&gt;monitor depot activity and settings&lt;/a&gt; with several &lt;code&gt;V_MONITOR&lt;/code&gt; system tables, or with the &lt;a href=&#34;../../../en/mc/monitoring-using-mc/monitoring-depot-activity-mc/&#34;&gt;Management Console&lt;/a&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;

Depot caching is supported only on primary shard subscriber nodes.

&lt;/div&gt;&lt;/p&gt;
&lt;p&gt;&lt;a name=&#34;DepotGatewayParameters&#34;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2 id=&#34;depot-gateway-parameters&#34;&gt;Depot gateway parameters&lt;/h2&gt;
&lt;p&gt;The database depots can cache two types of data:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Queried data: The depot facilitates query execution by fetching queried data from communal storage and caching it in the depot. The cached data remains available until it is evicted to make room for fresher data, or data that is fetched for more recent queries.&lt;/li&gt;
&lt;li&gt;Loaded data: The depot expedites load operations such as COPY by temporarily caching data until it is uploaded to communal storage.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;By default, depots are configured to cache both types of data.&lt;/p&gt;
&lt;p&gt;Two configuration parameters determine whether a depot caches queried or loaded data:&lt;/p&gt;
&lt;dl&gt;
&lt;dt&gt;&lt;code&gt;UseDepotForReads&lt;/code&gt; (BOOLEAN)&lt;/dt&gt;
&lt;dd&gt;If &lt;code&gt;1&lt;/code&gt; (default), search the depot for the queried data and if it is not found, fetch the data from communal storage.  If &lt;code&gt;0&lt;/code&gt;, bypass the depot and fetch queried data from communal storage.&lt;/dd&gt;
&lt;dt&gt;&lt;code&gt;UseDepotForWrites&lt;/code&gt; (BOOLEAN)&lt;/dt&gt;
&lt;dd&gt;If &lt;code&gt;1&lt;/code&gt; (default)m write loaded data to the depot and then upload files to communal storage. If &lt;code&gt;0&lt;/code&gt;, bypass  the depot and write directly to communal storage.&lt;/dd&gt;
&lt;/dl&gt;
&lt;p&gt;Both parameters can be set at session, user and database levels.&lt;/p&gt;
&lt;p&gt;If set at session or user levels, these parameters can be used to segregate read and write activity on the depots of different subclusters. For example, parameters UseDepotForReads and UseDepotForWrites might be set as follows for users &lt;code&gt;joe&lt;/code&gt; and &lt;code&gt;rhonda&lt;/code&gt;:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-sql&#34; data-lang=&#34;sql&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;o&#34;&gt;=&amp;gt;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;SHOW&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;USER&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;joe&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;ALL&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;          &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;name&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;           &lt;/span&gt;&lt;span class=&#34;o&#34;&gt;|&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;setting&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;&lt;/span&gt;&lt;span class=&#34;c1&#34;&gt;-------------------------+---------
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;UseDepotForReads&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;        &lt;/span&gt;&lt;span class=&#34;o&#34;&gt;|&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;mi&#34;&gt;1&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;UseDepotForWrites&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;       &lt;/span&gt;&lt;span class=&#34;o&#34;&gt;|&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;mi&#34;&gt;0&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;mi&#34;&gt;2&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;rows&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&amp;gt;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;SHOW&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;USER&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;rhonda&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;ALL&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;          &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;name&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;           &lt;/span&gt;&lt;span class=&#34;o&#34;&gt;|&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;setting&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;&lt;/span&gt;&lt;span class=&#34;c1&#34;&gt;-------------------------+---------
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;UseDepotForReads&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;        &lt;/span&gt;&lt;span class=&#34;o&#34;&gt;|&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;mi&#34;&gt;0&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;UseDepotForWrites&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;       &lt;/span&gt;&lt;span class=&#34;o&#34;&gt;|&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;mi&#34;&gt;1&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;mi&#34;&gt;2&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;rows&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Given these user settings, when &lt;code&gt;joe&lt;/code&gt; connects to a database subcluster, his session only uses the current depot to process queries; all load operations are uploaded to communal storage. Conversely, &lt;code&gt;rhonda&lt;/code&gt;&#39;s sessions only use the depot to process load operations; all queries must fetch their data from communal storage.&lt;/p&gt;
&lt;p&gt;&lt;a name=&#34;DepotFetching&#34;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2 id=&#34;depot-fetching&#34;&gt;Depot fetching&lt;/h2&gt;
&lt;p&gt;If a depot is enabled to cache queried data (&lt;code&gt;UseDepotForReads = 1&lt;/code&gt;), you can configure how it fetches data from communal storage with configuration parameter &lt;a href=&#34;../../../en/sql-reference/config-parameters/eon-parameters/&#34;&gt;DepotOperationsForQuery&lt;/a&gt;. This parameter has three settings:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;code&gt;ALL&lt;/code&gt; (default): Fetch file data from communal storage, if necessary displace existing files by evicting them from the depot.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;code&gt;FETCHES&lt;/code&gt;: Fetch file data from communal storage only if space is available; otherwise, read the queried data directly from communal storage.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;code&gt;NONE&lt;/code&gt;: Do not fetch file data to the depot, read the queried data directly from communal storage.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;You can set fetching behavior at four levels, in ascending levels of precedence:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Database: &lt;a href=&#34;../../../en/sql-reference/statements/alter-statements/alter-db/&#34;&gt;ALTER DATABASE...SET PARAMETER&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Per user: &lt;a href=&#34;../../../en/sql-reference/statements/alter-statements/alter-user/&#34;&gt;ALTER USER...SET PARAMETER&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Per session: &lt;a href=&#34;../../../en/sql-reference/statements/alter-statements/alter-session/&#34;&gt;ALTER SESSION...SET PARAMETER&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Per query: &lt;a href=&#34;../../../en/sql-reference/language-elements/hints/depot-fetch/#&#34;&gt;DEPOT_FETCH&lt;/a&gt; hint&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;For example, you can set DepotOperationsForQuery at the database level as follows:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-sql&#34; data-lang=&#34;sql&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;o&#34;&gt;=&amp;gt;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;ALTER&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;DATABASE&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;default&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;SET&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;PARAMETER&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;DepotOperationsForQuery&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;FETCHES&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;&lt;/span&gt;&lt;span class=&#34;k&#34;&gt;ALTER&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;DATABASE&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;This setting applies to all database depots unless overridden at other levels. For example, the following ALTER USER statement overrides database-level fetching behavior: file data is always fetched to the depot for all queries from user &lt;code&gt;joe&lt;/code&gt;:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-sql&#34; data-lang=&#34;sql&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;o&#34;&gt;=&amp;gt;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;ALTER&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;USER&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;joe&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;SET&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;PARAMETER&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;DepotOperationsForQuery&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;ALL&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;&lt;/span&gt;&lt;span class=&#34;k&#34;&gt;ALTER&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;USER&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Finally, &lt;code&gt;joe&lt;/code&gt; can override his own DepotOperationsForQuery setting by including the DEPOT_FETCH hint in individual queries:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-sql&#34; data-lang=&#34;sql&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;o&#34;&gt;=&amp;gt;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;SELECT&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;cm&#34;&gt;/*+DEPOT_FETCH(NONE)*/&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;count&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;*&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;FROM&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;bar&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;a name=&#34;Evicting&#34;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2 id=&#34;evicting-depot-data&#34;&gt;Evicting depot data&lt;/h2&gt;
&lt;p&gt;In general, the database evicts data from the depot as needed to provide room for new data and expedite request processing. Before writing new data to the depot, the database evaluates it as follows:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Data fetched from communal storage: the database sizes the download and evicts data from the depot accordingly.&lt;/li&gt;
&lt;li&gt;Data uploaded from a DML operation such as COPY: the database cannot estimate the total size of the upload before it is complete, so it sizes individual buffers and evicts data from the depot as needed.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;In both cases, the database evicts objects from the depot in the following order, from highest eviction priority to lowest:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Least recently used objects with an &lt;a href=&#34;#anti-pinning&#34;&gt;anti-pinning policy&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Objects with an anti-pinning policy.&lt;/li&gt;
&lt;li&gt;Least recently used unpinned object evicted for any new object, &lt;a href=&#34;#Pinning&#34;&gt;pinned&lt;/a&gt; or unpinned.&lt;/li&gt;
&lt;li&gt;Least recently used pinned object evicted for a new pinned object. Only pinned storage can evict other pinned storage.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;a name=&#34;Depot_Eviction_Policies&#34;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2 id=&#34;depot-eviction-policies&#34;&gt;Depot eviction policies&lt;/h2&gt;
&lt;p&gt;OpenText™ Analytics Database supports two policy types to manage precedence of object eviction from the depot:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Apply &lt;a href=&#34;#Pinning&#34;&gt;pinning policies&lt;/a&gt; to objects so the database is less likely to evict them from the depot than other objects.&lt;/li&gt;
&lt;li&gt;Apply &lt;a href=&#34;#anti-pinning&#34;&gt;anti-pinning policies&lt;/a&gt; to objects so the database is more likely to evict them than other objects.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;You can apply either type of policy on individual subclusters, or on the entire database. Policies can apply at different levels of granularity—table, projection, and partitions. Eviction policies that set on an individual subclusters have no effect on how other subclusters handle depot object eviction.&lt;/p&gt;
&lt;p&gt;&lt;a name=&#34;Pinning&#34;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h3 id=&#34;pinning-policies&#34;&gt;Pinning policies&lt;/h3&gt;
&lt;p&gt;You can set pinning policies on database objects to reduce their exposure to eviction from the depot. Pinning policies can be set on individual subclusters, or on the entire database, and at different levels of granularity—table, projection, and partitions:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Tables: &lt;a href=&#34;../../../en/sql-reference/functions/management-functions/eon-functions/set-depot-pin-policy-table/#&#34;&gt;SET_DEPOT_PIN_POLICY_TABLE&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Projections: &lt;a href=&#34;../../../en/sql-reference/functions/management-functions/eon-functions/set-depot-pin-policy-projection/#&#34;&gt;SET_DEPOT_PIN_POLICY_PROJECTION&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Partitions: &lt;a href=&#34;../../../en/sql-reference/functions/management-functions/eon-functions/set-depot-pin-policy-partition/#&#34;&gt;SET_DEPOT_PIN_POLICY_PARTITION&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;By default, pinned objects are queued for download from communal storage as needed to execute a query or DML operation. SET_DEPOT_PIN_POLICY functions can specify to override this behavior and immediately queue newly pinned objects for download: set the last Boolean argument of the function to &lt;code&gt;true&lt;/code&gt;. For example:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-sql&#34; data-lang=&#34;sql&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;o&#34;&gt;=&amp;gt;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;SELECT&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;SET_DEPOT_PIN_POLICY_TABLE&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#39;store.store_orders_fact&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#39;default_subluster&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;true&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;p&#34;&gt;);&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;div class=&#34;alert admonition tip&#34; role=&#34;alert&#34;&gt;
&lt;h4 class=&#34;admonition-head&#34;&gt;Tip&lt;/h4&gt;

How soon the database downloads a pinned object from communal storage depends on a number of factors, including space availability and precedence of other pinned objects that are queued for download. You can force immediate download of queued objects by calling &lt;a href=&#34;../../../en/sql-reference/functions/management-functions/eon-functions/finish-fetching-files/#&#34;&gt;FINISH_FETCHING_FILES&lt;/a&gt;.

&lt;/div&gt;
&lt;p&gt;&lt;a name=&#34;anti-pinning&#34;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h3 id=&#34;anti-pinning-policies&#34;&gt;Anti-pinning policies&lt;/h3&gt;
&lt;p&gt;The database complements pinning policies with anti-pinning policies. Among all depot-cached objects, the database chooses objects with an anti-pinning policy for eviction before all others. Like pinning policies, you can set anti-pinning policies on individual subclusters, or on the entire database.  and at different levels of granularity—table, projection, and partitions:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Tables: &lt;a href=&#34;../../../en/sql-reference/functions/management-functions/eon-functions/set-depot-anti-pin-policy-table/#&#34;&gt;SET_DEPOT_ANTI_PIN_POLICY_TABLE&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Projections: &lt;a href=&#34;../../../en/sql-reference/functions/management-functions/eon-functions/set-depot-anti-pin-policy-projection/#&#34;&gt;SET_DEPOT_ANTI_PIN_POLICY_PROJECTION&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Partitions: &lt;a href=&#34;../../../en/sql-reference/functions/management-functions/eon-functions/set-depot-anti-pin-policy-partition/#&#34;&gt;SET_DEPOT_ANTI_PIN_POLICY_PARTITION&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;In some cases, object-specific anti-pinning might be preferable over &lt;a href=&#34;#DepotGatewayParameters&#34;&gt;depot-wide exclusions&lt;/a&gt;, such as setting the depot to be read- or write-only, or &lt;a href=&#34;#DepotFetching&#34;&gt;excluding specific users&lt;/a&gt; from fetching objects to the depot. For example, you might want to set anti-pinning on an infrequently-used table to prevent it from displacing tables that are used more frequently.&lt;/p&gt;
&lt;h3 id=&#34;overlapping-eviction-policies&#34;&gt;Overlapping eviction policies&lt;/h3&gt;
&lt;p&gt;If you set multiple eviction policies on a table or projection, the database gives precedence to the most recent policy. For example, if you issue an anti-pinning policy on a table that already has a pinning policy, the database favors the anti-pinning policy over the pinning policy.&lt;/p&gt;
&lt;p&gt;If you issue partition-level eviction policies on the same partitioned table, and the key ranges of these policies overlap, the database acts as follows:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;If the overlapping policies are of the same type—that is, all are either anti-pinning or pinning partition policies—then the database collates the key ranges. For example, if you create two anti-pinning partition policies with key ranges of 1-3 and 2-10, the database combines them into a single anti-pinning partition policy with a key range of 1-10.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;If there are overlapping pinning and anti-pinning policies, the database favors the newer policy, either truncating or splitting the older policy.&lt;/p&gt;
&lt;p&gt;For example, if you create an anti-partition pinning policy and then a pinning policy with key ranges of 1-10 and 5-20, respectively, the database favors the newer pinning policy by truncating the earlier anti-pinning policy&#39;s key range:&lt;/p&gt;

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



&lt;tr&gt; 

&lt;th &gt;
policy_type&lt;/th&gt; 

&lt;th &gt;
min_value&lt;/th&gt; 

&lt;th &gt;
max_value&lt;/th&gt;&lt;/tr&gt;

&lt;tr&gt; 

&lt;td &gt;
PIN&lt;/td&gt; 

&lt;td &gt;
5&lt;/td&gt; 

&lt;td &gt;
20&lt;/td&gt;&lt;/tr&gt;

&lt;tr&gt; 

&lt;td &gt;
ANTI_PIN&lt;/td&gt; 

&lt;td &gt;
1&lt;/td&gt; 

&lt;td &gt;
4&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;

&lt;p&gt;If the new pinning policy&#39;s partition range falls inside the range of an older anti-pinning policy, the database splits the anti-pinning policy. So, given an existing partition anti-pinning policy with a key range from 1 through 20, a new partition pinning policy with a key range from  5 through 10 splits the anti-pinning policy:&lt;/p&gt;

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



&lt;tr&gt; 

&lt;th &gt;
policy_type&lt;/th&gt; 

&lt;th &gt;
min_value&lt;/th&gt; 

&lt;th &gt;
max_value&lt;/th&gt;&lt;/tr&gt;

&lt;tr&gt; 

&lt;td &gt;
ANTI_PIN&lt;/td&gt; 

&lt;td &gt;
1&lt;/td&gt; 

&lt;td &gt;
4&lt;/td&gt;&lt;/tr&gt;

&lt;tr&gt; 

&lt;td &gt;
PIN&lt;/td&gt; 

&lt;td &gt;
5&lt;/td&gt; 

&lt;td &gt;
10&lt;/td&gt;&lt;/tr&gt;

&lt;tr&gt; 

&lt;td &gt;
ANTI_PIN&lt;/td&gt; 

&lt;td &gt;
11&lt;/td&gt; 

&lt;td &gt;
20&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;

&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;eviction-policy-guidelines&#34;&gt;Eviction policy guidelines&lt;/h3&gt;
&lt;p&gt;Pinning and anti-pinning policies granularly control which objects consume depot space. When depot space is claimed by pinned objects, you guarantee that these objects and their operations take precedence over operations that involve unpinned objects or objects with an anti-pinning policy. However, if you do not create efficient pinning and anti-pinning policies, you might increase eviction frequency and adversely affect overall performance.&lt;/p&gt;
&lt;p&gt;To minimize contention over depot usage, consider the following guidelines:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Pin only those objects that are most active in DML operations and queries.&lt;/li&gt;
&lt;li&gt;Minimize the size of pinned data by setting policies at the smallest effective level. For example, pin only the data of a table&#39;s &lt;a href=&#34;../../../en/admin/partitioning-tables/active-and-inactive-partitions/#Identify&#34;&gt;active partition&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Periodically review eviction policies across all database subclusters, and update as needed to optimize depot usage.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;You can also use the configuration parameters UseDepotForReads or UseDepotForWrites to &lt;a href=&#34;#DepotGatewayParameters&#34;&gt;optimize distribution of query and load activity&lt;/a&gt; across database subcluster depots.&lt;/p&gt;
&lt;p&gt;&lt;a name=&#34;Clearing&#34;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2 id=&#34;clearing-depot-policies&#34;&gt;Clearing depot policies&lt;/h2&gt;
&lt;p&gt;You clear pinning and anti-pinning policies from objects with the following functions:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Tables: &lt;a href=&#34;../../../en/sql-reference/functions/management-functions/eon-functions/clear-depot-pin-policy-table/#&#34;&gt;CLEAR_DEPOT_PIN_POLICY_TABLE&lt;/a&gt;, &lt;a href=&#34;../../../en/sql-reference/functions/management-functions/eon-functions/clear-depot-anti-pin-policy-table/#&#34;&gt;CLEAR_DEPOT_ANTI_PIN_POLICY_TABLE&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Projections: &lt;a href=&#34;../../../en/sql-reference/functions/management-functions/eon-functions/clear-depot-pin-policy-projection/#&#34;&gt;CLEAR_DEPOT_PIN_POLICY_PROJECTION&lt;/a&gt;, &lt;a href=&#34;../../../en/sql-reference/functions/management-functions/eon-functions/clear-depot-anti-pin-policy-projection/#&#34;&gt;CLEAR_DEPOT_ANTI_PIN_POLICY_PROJECTION&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Partitions: &lt;a href=&#34;../../../en/sql-reference/functions/management-functions/eon-functions/clear-depot-pin-policy-partition/#&#34;&gt;CLEAR_DEPOT_PIN_POLICY_PARTITION&lt;/a&gt;, &lt;a href=&#34;../../../en/sql-reference/functions/management-functions/eon-functions/clear-depot-anti-pin-policy-partition/#&#34;&gt;CLEAR_DEPOT_ANTI_PIN_POLICY_PARTITION&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;a name=&#34;Configur&#34;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2 id=&#34;depot-warming&#34;&gt;Depot warming&lt;/h2&gt;
&lt;p&gt;On startup, the depots of new nodes are empty, while the depots of restarted nodes often contain stale data that must be refreshed. When depot warming is enabled, a node that is undergoing startup preemptively loads its depot with frequently queried and pinned data. When the node completes startup and begins to execute queries, its depot already contains much of the data it needs to process those queries. This reduces the need to fetch data from communal storage, and expedites query performance accordingly.

&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;

Fetching data to a warming depot can delay node startup.

&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;By default, depot warming is disabled (EnableDepotWarmingFromPeers = 0). A node executes depot warming as follows:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;The node checks configuration parameter PreFetchPinnedObjectsToDepotAtStartup. If enabled (set to 1), the node:
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Gets from the database catalog a list of all objects pinned by the subcluster.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Queues the pinned objects for fetching and calculates their total size.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;The node checks configuration parameter EnableDepotWarmingFromPeers. If enabled (set to 1), the node:
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Identifies a peer node in the same subcluster whose depot contents it can copy.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;After taking into account all pinned objects, calculates how much space remains available in the warming depot.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Gets from the peer node a list of the most recently used objects that can fit in the depot.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Queues the objects for fetching.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;If BackgroundDepotWarming is enabled (set to 1, default), the node loads queued objects into its depot while it is warming, and continues to do so in the background after the node becomes active and starts executing queries. Otherwise (BackgroundDepotWarming = 0), node activation is deferred until the depot fetches and loads all queued objects.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;a name=&#34;Monitori&#34;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2 id=&#34;monitoring-the-depot&#34;&gt;Monitoring the depot&lt;/h2&gt;
&lt;p&gt;You can monitor depot activity and settings with several V_MONITOR system tables.

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

You can also use the Management Console to monitor depot activity. For details, see &lt;a href=&#34;../../../en/mc/monitoring-using-mc/monitoring-depot-activity-mc/#&#34;&gt;Monitoring depot activity with MC&lt;/a&gt;

&lt;/div&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;../../../en/sql-reference/system-tables/v-monitor-schema/data-reads/#&#34;&gt;DATA_READS&lt;/a&gt;: All storage locations that a query reads to obtain data.&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;../../../en/sql-reference/system-tables/v-monitor-schema/depot-evictions/#&#34;&gt;DEPOT_EVICTIONS&lt;/a&gt;: Details about objects that were evicted from the depot.&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;../../../en/sql-reference/system-tables/v-monitor-schema/depot-fetch-queue/#&#34;&gt;DEPOT_FETCH_QUEUE&lt;/a&gt;: Pending depot requests for queried file data to fetch from communal storage.&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;../../../en/sql-reference/system-tables/v-monitor-schema/depot-files/#&#34;&gt;DEPOT_FILES&lt;/a&gt;: Objects that are cached in database depots.&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;../../../en/sql-reference/system-tables/v-monitor-schema/depot-pin-policies/#&#34;&gt;DEPOT_PIN_POLICIES&lt;/a&gt;: Objects —tables and table partitions—that have &lt;a href=&#34;#Depot_Eviction_Policies&#34;&gt;depot eviction policies&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;../../../en/sql-reference/system-tables/v-monitor-schema/depot-sizes/#&#34;&gt;DEPOT_SIZES&lt;/a&gt;: Depot caching capacity per node.&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;../../../en/sql-reference/system-tables/v-monitor-schema/depot-uploads/#&#34;&gt;DEPOT_UPLOADS&lt;/a&gt;: Details about depot uploads to communal storage.&lt;/li&gt;
&lt;/ul&gt;

      </description>
    </item>
    
    <item>
      <title>Eon: Resizing depot caching capacity</title>
      <link>/en/eon/depot-management/resizing-depot-caching-capacity/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>/en/eon/depot-management/resizing-depot-caching-capacity/</guid>
      <description>
        
        
        &lt;p&gt;Each node in an Eon database caches depot data in a predefined storage location. The storage location path depends on your database installation&#39;s filesystem. By default, each node in a cluster can use up to 60 percent of disk space on the storage location&#39;s filesystem to cache depot data. You can change caching capacity with &lt;a href=&#34;../../../en/sql-reference/functions/management-functions/eon-functions/alter-location-size/#&#34;&gt;ALTER_LOCATION_SIZE&lt;/a&gt;, by specifying to a fixed size or a percentage of total disk space. The function can specify a single node, a subcluster, or all nodes in the database cluster. You can increase depot caching capacity for each node up to 80 percent.&lt;/p&gt;
&lt;p&gt;In the following example, &lt;a href=&#34;../../../en/sql-reference/functions/management-functions/eon-functions/alter-location-size/#&#34;&gt;ALTER_LOCATION_SIZE&lt;/a&gt; increases depot caching capacity to 80 percent of disk space on the storage location&#39;s filesystem. The function supplies an empty string as the second (&lt;em&gt;&lt;code&gt;node-name&lt;/code&gt;&lt;/em&gt;) argument, so the change applies to all nodes:

&lt;div class=&#34;admonition important&#34; role=&#34;alert&#34;&gt;
&lt;h4 class=&#34;admonition-head&#34;&gt;Important&lt;/h4&gt;
By default, depot caching capacity cannot exceed 80 percent of disk space on the store location file system; attempts to set it to a higher value return an error. The database requires at least 20 percent of disk space for the catalog, Data Collector tables, and temp files.
&lt;/div&gt;&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;=&amp;gt; SELECT node_name, location_label, location_path, max_size, disk_percent FROM storage_locations WHERE location_usage = &amp;#39;DEPOT&amp;#39; ORDER BY node_name;
    node_name     | location_label  |      location_path      |  max_size   | disk_percent
------------------+-----------------+-------------------------+-------------+--------------
 v_vmart_node0001 | auto-data-depot | /home/dbadmin/verticadb | 36060108800 | 70%
 v_vmart_node0002 | auto-data-depot | /home/dbadmin/verticadb | 36059377664 | 70%
 v_vmart_node0003 | auto-data-depot | /home/dbadmin/verticadb | 36060108800 | 70%
(3 rows)

=&amp;gt; SELECT alter_location_size(&amp;#39;depot&amp;#39;, &amp;#39;&amp;#39;,&amp;#39;80%&amp;#39;);
 alter_location_size
---------------------
 depotSize changed.
(1 row)

=&amp;gt; SELECT node_name, location_label, location_path, max_size, disk_percent FROM storage_locations WHERE location_usage = &amp;#39;DEPOT&amp;#39; ORDER BY node_name;
    node_name     | location_label  |      location_path      |  max_size   | disk_percent
------------------+-----------------+-------------------------+-------------+--------------
 v_vmart_node0001 | auto-data-depot | /home/dbadmin/verticadb | 41211552768 | 80%
 v_vmart_node0002 | auto-data-depot | /home/dbadmin/verticadb | 41210717184 | 80%
 v_vmart_node0003 | auto-data-depot | /home/dbadmin/verticadb | 41211552768 | 80%
(3 rows)
&lt;/code&gt;&lt;/pre&gt;
&lt;h2 id=&#34;rescaling-depot-capacity&#34;&gt;Rescaling depot capacity&lt;/h2&gt;
&lt;p&gt;When a database is revived on an instance with greater or lesser disk space than it had previously, the database evaluates the depot size settings that were previously in effect. If depot size was specified as a percentage of available disk space, the database proportionately rescales depot capacity. For example, if depot caching capacity for a given node was set to 70 percent, the revived node applies that setting to the new disk space and adjusts depot caching capacity accordingly. If depot capacity was set to a fixed size, the database applies that setting, unless doing so will consume more than 80 percent of available disk space. In that case, the database automatically adjusts depot size as needed.&lt;/p&gt;

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