"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[6556],{15680:(e,a,t)=>{t.d(a,{xA:()=>u,yg:()=>g});var o=t(96540);function r(e,a,t){return a in e?Object.defineProperty(e,a,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[a]=t,e}function i(e,a){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);a&&(o=o.filter((function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable}))),t.push.apply(t,o)}return t}function n(e){for(var a=1;a<arguments.length;a++){var t=null!=arguments[a]?arguments[a]:{};a%2?i(Object(t),!0).forEach((function(a){r(e,a,t[a])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):i(Object(t)).forEach((function(a){Object.defineProperty(e,a,Object.getOwnPropertyDescriptor(t,a))}))}return e}function l(e,a){if(null==e)return{};var t,o,r=function(e,a){if(null==e)return{};var t,o,r={},i=Object.keys(e);for(o=0;o<i.length;o++)t=i[o],a.indexOf(t)>=0||(r[t]=e[t]);return r}(e,a);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(o=0;o<i.length;o++)t=i[o],a.indexOf(t)>=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(r[t]=e[t])}return r}var d=o.createContext({}),s=function(e){var a=o.useContext(d),t=a;return e&&(t="function"==typeof e?e(a):n(n({},a),e)),t},u=function(e){var a=s(e.components);return o.createElement(d.Provider,{value:a},e.children)},c="mdxType",p={inlineCode:"code",wrapper:function(e){var a=e.children;return o.createElement(o.Fragment,{},a)}},m=o.forwardRef((function(e,a){var t=e.components,r=e.mdxType,i=e.originalType,d=e.parentName,u=l(e,["components","mdxType","originalType","parentName"]),c=s(t),m=r,g=c["".concat(d,".").concat(m)]||c[m]||p[m]||i;return t?o.createElement(g,n(n({ref:a},u),{},{components:t})):o.createElement(g,n({ref:a},u))}));function g(e,a){var t=arguments,r=a&&a.mdxType;if("string"==typeof e||r){var i=t.length,n=new Array(i);n[0]=m;var l={};for(var d in a)hasOwnProperty.call(a,d)&&(l[d]=a[d]);l.originalType=e,l[c]="string"==typeof e?e:r,n[1]=l;for(var s=2;s<i;s++)n[s]=t[s];return o.createElement.apply(null,n)}return o.createElement.apply(null,t)}m.displayName="MDXCreateElement"},46898:(e,a,t)=>{t.r(a),t.d(a,{assets:()=>u,contentTitle:()=>d,default:()=>g,frontMatter:()=>l,metadata:()=>s,toc:()=>c});var o=t(58168),r=t(98587),i=(t(96540),t(15680)),n=["components"],l={id:"clean-metadata-store",title:"Automated cleanup for metadata records",sidebar_label:"Automated metadata cleanup",description:"Defines a strategy to maintain Druid metadata store performance by automatically removing leftover records for deleted entities: datasources, supervisors, rules, compaction configuration, audit records, etc. Most applicable to databases with 'high-churn' datasources."},d=void 0,s={unversionedId:"operations/clean-metadata-store",id:"operations/clean-metadata-store",title:"Automated cleanup for metadata records",description:"Defines a strategy to maintain Druid metadata store performance by automatically removing leftover records for deleted entities: datasources, supervisors, rules, compaction configuration, audit records, etc. Most applicable to databases with 'high-churn' datasources.",source:"@site/docs/latest/operations/clean-metadata-store.md",sourceDirName:"operations",slug:"/operations/clean-metadata-store",permalink:"/docs/latest/operations/clean-metadata-store",draft:!1,tags:[],version:"current",frontMatter:{id:"clean-metadata-store",title:"Automated cleanup for metadata records",sidebar_label:"Automated metadata cleanup",description:"Defines a strategy to maintain Druid metadata store performance by automatically removing leftover records for deleted entities: datasources, supervisors, rules, compaction configuration, audit records, etc. Most applicable to databases with 'high-churn' datasources."},sidebar:"docs",previous:{title:"HTTP compression",permalink:"/docs/latest/operations/http-compression"},next:{title:"Request logging",permalink:"/docs/latest/operations/request-logging"}},u={},c=[{value:"Automated cleanup strategies",id:"automated-cleanup-strategies",level:2},{value:"Configure automated metadata cleanup",id:"configure-automated-metadata-cleanup",level:2},{value:"Audit records",id:"audit-records",level:3},{value:"Supervisor records",id:"supervisor-records",level:3},{value:"Rules records",id:"rules-records",level:3},{value:"Compaction configuration records",id:"compaction-configuration-records",level:3},{value:"Datasource records created by supervisors",id:"datasource-records-created-by-supervisors",level:3},{value:"Indexer task logs",id:"indexer-task-logs",level:3},{value:"Disable automated metadata cleanup",id:"disable-automated-metadata-cleanup",level:2},{value:"Learn more",id:"learn-more",level:2}],p={toc:c},m="wrapper";function g(e){var a=e.components,t=(0,r.A)(e,n);return(0,i.yg)(m,(0,o.A)({},p,t,{components:a,mdxType:"MDXLayout"}),(0,i.yg)("p",null,"Apache Druid relies on ",(0,i.yg)("a",{parentName:"p",href:"/docs/latest/design/metadata-storage"},"metadata storage")," to track information on data storage, operations, and system configuration.\nThe metadata store includes the following:"),(0,i.yg)("ul",null,(0,i.yg)("li",{parentName:"ul"},"Segment records"),(0,i.yg)("li",{parentName:"ul"},"Audit records"),(0,i.yg)("li",{parentName:"ul"},"Supervisor records"),(0,i.yg)("li",{parentName:"ul"},"Rule records"),(0,i.yg)("li",{parentName:"ul"},"Compaction configuration records"),(0,i.yg)("li",{parentName:"ul"},"Datasource records created by supervisors"),(0,i.yg)("li",{parentName:"ul"},"Indexer task logs")),(0,i.yg)("p",null,"When you delete some entities from Apache Druid, records related to the entity may remain in the metadata store.\nIf you have a high datasource churn rate, meaning you frequently create and delete many short-lived datasources or other related entities like compaction configuration or rules, the leftover records can fill your metadata store and cause performance issues.\nTo maintain metadata store performance, you can configure Apache Druid to automatically remove records associated with deleted entities from the metadata store."),(0,i.yg)("p",null,"By default, Druid automatically cleans up metadata older than 90 days.\nThis applies to all metadata entities in this topic except compaction configuration records and indexer task logs, for which cleanup is disabled by default.\nYou can configure the retention period for each metadata type, when available, through the record's ",(0,i.yg)("inlineCode",{parentName:"p"},"durationToRetain")," property.\nCertain records may require additional conditions be satisfied before clean up occurs."),(0,i.yg)("p",null,"See the ",(0,i.yg)("a",{parentName:"p",href:"#example"},"example")," for how you can customize the automated metadata cleanup for a specific use case."),(0,i.yg)("h2",{id:"automated-cleanup-strategies"},"Automated cleanup strategies"),(0,i.yg)("p",null,"There are several cases when you should consider automated cleanup of the metadata related to deleted datasources:"),(0,i.yg)("ul",null,(0,i.yg)("li",{parentName:"ul"},"If you know you have many high-churn datasources, for example, you have scripts that create and delete supervisors regularly."),(0,i.yg)("li",{parentName:"ul"},"If you have issues with the hard disk for your metadata database filling up."),(0,i.yg)("li",{parentName:"ul"},"If you run into performance issues with the metadata database. For example, API calls are very slow or fail to execute.")),(0,i.yg)("p",null,"If you have compliance requirements to keep audit records and you enable automated cleanup for audit records, use alternative methods to preserve audit metadata, for example, by periodically exporting audit metadata records to external storage."),(0,i.yg)("h2",{id:"configure-automated-metadata-cleanup"},"Configure automated metadata cleanup"),(0,i.yg)("p",null,"You can configure cleanup for each entity separately, as described in this section.\nDefine the properties in the ",(0,i.yg)("inlineCode",{parentName:"p"},"coordinator/runtime.properties")," file."),(0,i.yg)("p",null,"The cleanup of one entity may depend on the cleanup of another entity as follows:"),(0,i.yg)("ul",null,(0,i.yg)("li",{parentName:"ul"},"You have to configure a ",(0,i.yg)("a",{parentName:"li",href:"#kill-task"},"kill task for segment records")," before you can configure automated cleanup for ",(0,i.yg)("a",{parentName:"li",href:"#rules-records"},"rules")," or ",(0,i.yg)("a",{parentName:"li",href:"#compaction-configuration-records"},"compaction configuration"),"."),(0,i.yg)("li",{parentName:"ul"},"You have to schedule the metadata management tasks to run at the same or higher frequency as your most frequent cleanup job. For example, if your most frequent cleanup job is every hour, set the metadata store management period to one hour or less: ",(0,i.yg)("inlineCode",{parentName:"li"},"druid.coordinator.period.metadataStoreManagementPeriod=P1H"),".")),(0,i.yg)("p",null,"For details on configuration properties, see ",(0,i.yg)("a",{parentName:"p",href:"/docs/latest/configuration/#metadata-management"},"Metadata management"),".\nIf you want to skip the details, check out the ",(0,i.yg)("a",{parentName:"p",href:"#example"},"example")," for configuring automated metadata cleanup."),(0,i.yg)("a",{name:"kill-task"}),"### Segment records and segments in deep storage (kill task)",(0,i.yg)("admonition",{type:"info"},(0,i.yg)("p",{parentName:"admonition"}," The kill task is the only configuration in this topic that affects actual data in deep storage and not simply metadata or logs.")),(0,i.yg)("p",null,"Segment records and segments in deep storage become eligible for deletion when both of the following conditions hold:"),(0,i.yg)("ul",null,(0,i.yg)("li",{parentName:"ul"},"When they meet the eligibility requirement of kill task datasource configuration according to ",(0,i.yg)("inlineCode",{parentName:"li"},"killDataSourceWhitelist")," set in the Coordinator dynamic configuration. See ",(0,i.yg)("a",{parentName:"li",href:"/docs/latest/configuration/#dynamic-configuration"},"Dynamic configuration"),"."),(0,i.yg)("li",{parentName:"ul"},"When the ",(0,i.yg)("inlineCode",{parentName:"li"},"durationToRetain")," time has passed since their creation.")),(0,i.yg)("p",null,"Kill tasks use the following configuration:"),(0,i.yg)("ul",null,(0,i.yg)("li",{parentName:"ul"},(0,i.yg)("inlineCode",{parentName:"li"},"druid.coordinator.kill.on"),": When ",(0,i.yg)("inlineCode",{parentName:"li"},"true"),", enables the Coordinator to submit a kill task for unused segments, which deletes them completely from metadata store and from deep storage.\nOnly applies to the specified datasources in the dynamic configuration parameter ",(0,i.yg)("inlineCode",{parentName:"li"},"killDataSourceWhitelist"),".\nIf ",(0,i.yg)("inlineCode",{parentName:"li"},"killDataSourceWhitelist")," is not set or empty, then kill tasks can be submitted for all datasources."),(0,i.yg)("li",{parentName:"ul"},(0,i.yg)("inlineCode",{parentName:"li"},"druid.coordinator.kill.period"),": Defines the frequency in ",(0,i.yg)("a",{parentName:"li",href:"https://en.wikipedia.org/wiki/ISO_8601#Durations"},"ISO 8601 format")," for the cleanup job to check for and delete eligible segments. Defaults to ",(0,i.yg)("inlineCode",{parentName:"li"},"P1D"),". Must be greater than ",(0,i.yg)("inlineCode",{parentName:"li"},"druid.coordinator.period.indexingPeriod"),". "),(0,i.yg)("li",{parentName:"ul"},(0,i.yg)("inlineCode",{parentName:"li"},"druid.coordinator.kill.durationToRetain"),": Defines the retention period in ",(0,i.yg)("a",{parentName:"li",href:"https://en.wikipedia.org/wiki/ISO_8601#Durations"},"ISO 8601 format")," after creation that segments become eligible for deletion."),(0,i.yg)("li",{parentName:"ul"},(0,i.yg)("inlineCode",{parentName:"li"},"druid.coordinator.kill.ignoreDurationToRetain"),": A way to override ",(0,i.yg)("inlineCode",{parentName:"li"},"druid.coordinator.kill.durationToRetain"),". When enabled, the coordinator considers all unused segments as eligible to be killed."),(0,i.yg)("li",{parentName:"ul"},(0,i.yg)("inlineCode",{parentName:"li"},"druid.coordinator.kill.bufferPeriod"),": Defines the amount of time that a segment must be unused before it can be permanently removed from metadata and deep storage. This serves as a buffer period to prevent data loss if data ends up being needed after being marked unused."),(0,i.yg)("li",{parentName:"ul"},(0,i.yg)("inlineCode",{parentName:"li"},"druid.coordinator.kill.maxSegments"),": Defines the maximum number of segments to delete per kill task.")),(0,i.yg)("h3",{id:"audit-records"},"Audit records"),(0,i.yg)("p",null,"All audit records become eligible for deletion when the ",(0,i.yg)("inlineCode",{parentName:"p"},"durationToRetain")," time has passed since their creation."),(0,i.yg)("p",null,"Audit cleanup uses the following configuration:"),(0,i.yg)("ul",null,(0,i.yg)("li",{parentName:"ul"},(0,i.yg)("inlineCode",{parentName:"li"},"druid.coordinator.kill.audit.on"),": When ",(0,i.yg)("inlineCode",{parentName:"li"},"true"),", enables cleanup for audit records."),(0,i.yg)("li",{parentName:"ul"},(0,i.yg)("inlineCode",{parentName:"li"},"druid.coordinator.kill.audit.period"),": Defines the frequency in ",(0,i.yg)("a",{parentName:"li",href:"https://en.wikipedia.org/wiki/ISO_8601#Durations"},"ISO 8601 format")," for the cleanup job to check for and delete eligible audit records. Defaults to ",(0,i.yg)("inlineCode",{parentName:"li"},"P1D"),"."),(0,i.yg)("li",{parentName:"ul"},(0,i.yg)("inlineCode",{parentName:"li"},"druid.coordinator.kill.audit.durationToRetain"),": Defines the retention period in ",(0,i.yg)("a",{parentName:"li",href:"https://en.wikipedia.org/wiki/ISO_8601#Durations"},"ISO 8601 format")," after creation that audit records become eligible for deletion.")),(0,i.yg)("h3",{id:"supervisor-records"},"Supervisor records"),(0,i.yg)("p",null,"Supervisor records become eligible for deletion when the supervisor is terminated and the ",(0,i.yg)("inlineCode",{parentName:"p"},"durationToRetain")," time has passed since their creation."),(0,i.yg)("p",null,"Supervisor cleanup uses the following configuration:"),(0,i.yg)("ul",null,(0,i.yg)("li",{parentName:"ul"},(0,i.yg)("inlineCode",{parentName:"li"},"druid.coordinator.kill.supervisor.on"),": When ",(0,i.yg)("inlineCode",{parentName:"li"},"true"),", enables cleanup for supervisor records."),(0,i.yg)("li",{parentName:"ul"},(0,i.yg)("inlineCode",{parentName:"li"},"druid.coordinator.kill.supervisor.period"),": Defines the frequency in ",(0,i.yg)("a",{parentName:"li",href:"https://en.wikipedia.org/wiki/ISO_8601#Durations"},"ISO 8601 format")," for the cleanup job to check for and delete eligible supervisor records. Defaults to ",(0,i.yg)("inlineCode",{parentName:"li"},"P1D"),"."),(0,i.yg)("li",{parentName:"ul"},(0,i.yg)("inlineCode",{parentName:"li"},"druid.coordinator.kill.supervisor.durationToRetain"),": Defines the retention period in ",(0,i.yg)("a",{parentName:"li",href:"https://en.wikipedia.org/wiki/ISO_8601#Durations"},"ISO 8601 format")," after creation that supervisor records become eligible for deletion.")),(0,i.yg)("h3",{id:"rules-records"},"Rules records"),(0,i.yg)("p",null,"Rule records become eligible for deletion when all segments for the datasource have been killed by the kill task and the ",(0,i.yg)("inlineCode",{parentName:"p"},"durationToRetain")," time has passed since their creation. Automated cleanup for rules requires a ",(0,i.yg)("a",{parentName:"p",href:"#kill-task"},"kill task"),"."),(0,i.yg)("p",null,"Rule cleanup uses the following configuration:"),(0,i.yg)("ul",null,(0,i.yg)("li",{parentName:"ul"},(0,i.yg)("inlineCode",{parentName:"li"},"druid.coordinator.kill.rule.on"),": When ",(0,i.yg)("inlineCode",{parentName:"li"},"true"),", enables cleanup for rules records."),(0,i.yg)("li",{parentName:"ul"},(0,i.yg)("inlineCode",{parentName:"li"},"druid.coordinator.kill.rule.period"),": Defines the frequency in ",(0,i.yg)("a",{parentName:"li",href:"https://en.wikipedia.org/wiki/ISO_8601#Durations"},"ISO 8601 format")," for the cleanup job to check for and delete eligible rules records. Defaults to ",(0,i.yg)("inlineCode",{parentName:"li"},"P1D"),"."),(0,i.yg)("li",{parentName:"ul"},(0,i.yg)("inlineCode",{parentName:"li"},"druid.coordinator.kill.rule.durationToRetain"),": Defines the retention period in ",(0,i.yg)("a",{parentName:"li",href:"https://en.wikipedia.org/wiki/ISO_8601#Durations"},"ISO 8601 format")," after creation that rules records become eligible for deletion.")),(0,i.yg)("h3",{id:"compaction-configuration-records"},"Compaction configuration records"),(0,i.yg)("p",null,"Druid retains all compaction configuration records by default, which should be suitable for most use cases.\nIf you create and delete short-lived datasources with high frequency, and you set auto compaction configuration on those datasources, then consider turning on automated cleanup of compaction configuration records."),(0,i.yg)("admonition",{type:"info"},(0,i.yg)("p",{parentName:"admonition"}," With automated cleanup of compaction configuration records, if you create a compaction configuration for some datasource before the datasource exists, for example if initial ingestion is still ongoing, Druid may remove the compaction configuration.\nTo prevent the configuration from being prematurely removed, wait for the datasource to be created before applying the compaction configuration to the datasource.")),(0,i.yg)("p",null,"Unlike other metadata records, compaction configuration records do not have a retention period set by ",(0,i.yg)("inlineCode",{parentName:"p"},"durationToRetain"),". Druid deletes compaction configuration records at every cleanup cycle for inactive datasources, which do not have segments either used or unused."),(0,i.yg)("p",null,"Compaction configuration records in the ",(0,i.yg)("inlineCode",{parentName:"p"},"druid_config")," table become eligible for deletion after all segments for the datasource have been killed by the kill task. Automated cleanup for compaction configuration requires a ",(0,i.yg)("a",{parentName:"p",href:"#kill-task"},"kill task"),"."),(0,i.yg)("p",null,"Compaction configuration cleanup uses the following configuration:"),(0,i.yg)("ul",null,(0,i.yg)("li",{parentName:"ul"},(0,i.yg)("inlineCode",{parentName:"li"},"druid.coordinator.kill.compaction.on"),": When ",(0,i.yg)("inlineCode",{parentName:"li"},"true"),", enables cleanup for compaction configuration records."),(0,i.yg)("li",{parentName:"ul"},(0,i.yg)("inlineCode",{parentName:"li"},"druid.coordinator.kill.compaction.period"),": Defines the frequency in ",(0,i.yg)("a",{parentName:"li",href:"https://en.wikipedia.org/wiki/ISO_8601#Durations"},"ISO 8601 format")," for the cleanup job to check for and delete eligible compaction configuration records. Defaults to ",(0,i.yg)("inlineCode",{parentName:"li"},"P1D"),".")),(0,i.yg)("admonition",{type:"info"},(0,i.yg)("p",{parentName:"admonition"},"If you already have an extremely large compaction configuration, you may not be able to delete compaction configuration due to size limits with the audit log. In this case you can set ",(0,i.yg)("inlineCode",{parentName:"p"},"druid.audit.manager.maxPayloadSizeBytes")," and ",(0,i.yg)("inlineCode",{parentName:"p"},"druid.audit.manager.skipNullField")," to avoid the auditing issue. See ",(0,i.yg)("a",{parentName:"p",href:"/docs/latest/configuration/#audit-logging"},"Audit logging"),".")),(0,i.yg)("h3",{id:"datasource-records-created-by-supervisors"},"Datasource records created by supervisors"),(0,i.yg)("p",null,"Datasource records created by supervisors become eligible for deletion when the supervisor is terminated or does not exist in the ",(0,i.yg)("inlineCode",{parentName:"p"},"druid_supervisors")," table and the ",(0,i.yg)("inlineCode",{parentName:"p"},"durationToRetain")," time has passed since their creation."),(0,i.yg)("p",null,"Datasource cleanup uses the following configuration:"),(0,i.yg)("ul",null,(0,i.yg)("li",{parentName:"ul"},(0,i.yg)("inlineCode",{parentName:"li"},"druid.coordinator.kill.datasource.on"),": When ",(0,i.yg)("inlineCode",{parentName:"li"},"true"),", enables cleanup datasources created by supervisors."),(0,i.yg)("li",{parentName:"ul"},(0,i.yg)("inlineCode",{parentName:"li"},"druid.coordinator.kill.datasource.period"),": Defines the frequency in ",(0,i.yg)("a",{parentName:"li",href:"https://en.wikipedia.org/wiki/ISO_8601#Durations"},"ISO 8601 format")," for the cleanup job to check for and delete eligible datasource records. Defaults to ",(0,i.yg)("inlineCode",{parentName:"li"},"P1D"),"."),(0,i.yg)("li",{parentName:"ul"},(0,i.yg)("inlineCode",{parentName:"li"},"druid.coordinator.kill.datasource.durationToRetain"),": Defines the retention period in ",(0,i.yg)("a",{parentName:"li",href:"https://en.wikipedia.org/wiki/ISO_8601#Durations"},"ISO 8601 format")," after creation that datasource records become eligible for deletion.")),(0,i.yg)("h3",{id:"indexer-task-logs"},"Indexer task logs"),(0,i.yg)("p",null,"You can configure the Overlord to periodically delete indexer task logs and associated metadata. During cleanup, the Overlord removes the following:"),(0,i.yg)("ul",null,(0,i.yg)("li",{parentName:"ul"},"Indexer task logs from deep storage."),(0,i.yg)("li",{parentName:"ul"},"Indexer task log metadata from the tasks and tasklogs tables in ",(0,i.yg)("a",{parentName:"li",href:"/docs/latest/configuration/#metadata-storage"},"metadata storage")," (named ",(0,i.yg)("inlineCode",{parentName:"li"},"druid_tasks")," and ",(0,i.yg)("inlineCode",{parentName:"li"},"druid_tasklogs")," by default). Druid no longer uses the tasklogs table, and the table is always empty.")),(0,i.yg)("p",null,"To configure cleanup of task logs by the Overlord, set the following properties in the ",(0,i.yg)("inlineCode",{parentName:"p"},"overlord/runtime.properties")," file."),(0,i.yg)("p",null,"Indexer task log cleanup on the Overlord uses the following configuration:"),(0,i.yg)("ul",null,(0,i.yg)("li",{parentName:"ul"},(0,i.yg)("inlineCode",{parentName:"li"},"druid.indexer.logs.kill.enabled"),": When ",(0,i.yg)("inlineCode",{parentName:"li"},"true"),", enables cleanup of task logs."),(0,i.yg)("li",{parentName:"ul"},(0,i.yg)("inlineCode",{parentName:"li"},"druid.indexer.logs.kill.durationToRetain"),": Defines the length of time in milliseconds to retain task logs."),(0,i.yg)("li",{parentName:"ul"},(0,i.yg)("inlineCode",{parentName:"li"},"druid.indexer.logs.kill.initialDelay"),": Defines the length of time in milliseconds after the Overlord starts before it executes its first job to kill task logs."),(0,i.yg)("li",{parentName:"ul"},(0,i.yg)("inlineCode",{parentName:"li"},"druid.indexer.logs.kill.delay"),": The length of time in milliseconds between jobs to kill task logs.")),(0,i.yg)("p",null,"For more detail, see ",(0,i.yg)("a",{parentName:"p",href:"/docs/latest/configuration/#task-logging"},"Task logging"),"."),(0,i.yg)("h2",{id:"disable-automated-metadata-cleanup"},"Disable automated metadata cleanup"),(0,i.yg)("p",null,"Druid automatically cleans up metadata records, excluding compaction configuration records and indexer task logs.\nTo disable automated metadata cleanup, set the following properties in the ",(0,i.yg)("inlineCode",{parentName:"p"},"coordinator/runtime.properties")," file:"),(0,i.yg)("pre",null,(0,i.yg)("code",{parentName:"pre",className:"language-properties"},"# Keep unused segments\ndruid.coordinator.kill.on=false\n\n# Keep audit records\ndruid.coordinator.kill.audit.on=false\n\n# Keep supervisor records\ndruid.coordinator.kill.supervisor.on=false\n\n# Keep rules records\ndruid.coordinator.kill.rule.on=false\n\n# Keep datasource records created by supervisors\ndruid.coordinator.kill.datasource.on=false\n")),(0,i.yg)("a",{name:"example"}),"## Example configuration for automated metadata cleanup",(0,i.yg)("p",null,"Consider a scenario where you have scripts to create and delete hundreds of datasources and related entities a day. You do not want to fill your metadata store with leftover records. The datasources and related entities tend to persist for only one or two days. Therefore, you want to run a cleanup job that identifies and removes leftover records that are at least four days old after a seven day buffer period in case you want to recover the data. The exception is for audit logs, which you need to retain for 30 days:"),(0,i.yg)("pre",null,(0,i.yg)("code",{parentName:"pre",className:"language-properties"},"...\n# Schedule the metadata management store task for every hour:\ndruid.coordinator.period.metadataStoreManagementPeriod=PT1H\n\n# Set a kill task to poll every day to delete segment records and segments\n# in deep storage > 4 days old after a 7-day buffer period. When druid.coordinator.kill.on is set to true,\n# you can set killDataSourceWhitelist in the dynamic configuration to limit\n# the datasources that can be killed.\n# Required also for automated cleanup of rules and compaction configuration.\n\ndruid.coordinator.kill.on=true\ndruid.coordinator.kill.period=P1D\ndruid.coordinator.kill.durationToRetain=P4D\ndruid.coordinator.kill.bufferPeriod=P7D\ndruid.coordinator.kill.maxSegments=1000\n\n# Poll every day to delete audit records > 30 days old\ndruid.coordinator.kill.audit.on=true\ndruid.coordinator.kill.audit.period=P1D\ndruid.coordinator.kill.audit.durationToRetain=P30D\n\n# Poll every day to delete supervisor records > 4 days old\ndruid.coordinator.kill.supervisor.on=true\ndruid.coordinator.kill.supervisor.period=P1D\ndruid.coordinator.kill.supervisor.durationToRetain=P4D\n\n# Poll every day to delete rules records > 4 days old\ndruid.coordinator.kill.rule.on=true\ndruid.coordinator.kill.rule.period=P1D\ndruid.coordinator.kill.rule.durationToRetain=P4D\n\n# Poll every day to delete compaction configuration records\ndruid.coordinator.kill.compaction.on=true\ndruid.coordinator.kill.compaction.period=P1D\n\n# Poll every day to delete datasource records created by supervisors > 4 days old\ndruid.coordinator.kill.datasource.on=true\ndruid.coordinator.kill.datasource.period=P1D\ndruid.coordinator.kill.datasource.durationToRetain=P4D\n...\n")),(0,i.yg)("h2",{id:"learn-more"},"Learn more"),(0,i.yg)("p",null,"See the following topics for more information:"),(0,i.yg)("ul",null,(0,i.yg)("li",{parentName:"ul"},(0,i.yg)("a",{parentName:"li",href:"/docs/latest/configuration/#metadata-management"},"Metadata management")," for metadata store configuration reference."),(0,i.yg)("li",{parentName:"ul"},(0,i.yg)("a",{parentName:"li",href:"/docs/latest/design/metadata-storage"},"Metadata storage")," for an overview of the metadata storage database.")))}g.isMDXComponent=!0}}]);