"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[7831],{15680:(e,t,r)=>{r.d(t,{xA:()=>g,yg:()=>u});var n=r(96540);function i(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function o(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?a(Object(r),!0).forEach((function(t){i(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):a(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function s(e,t){if(null==e)return{};var r,n,i=function(e,t){if(null==e)return{};var r,n,i={},a=Object.keys(e);for(n=0;n<a.length;n++)r=a[n],t.indexOf(r)>=0||(i[r]=e[r]);return i}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n<a.length;n++)r=a[n],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(i[r]=e[r])}return i}var c=n.createContext({}),l=function(e){var t=n.useContext(c),r=t;return e&&(r="function"==typeof e?e(t):o(o({},t),e)),r},g=function(e){var t=l(e.components);return n.createElement(c.Provider,{value:t},e.children)},m="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},p=n.forwardRef((function(e,t){var r=e.components,i=e.mdxType,a=e.originalType,c=e.parentName,g=s(e,["components","mdxType","originalType","parentName"]),m=l(r),p=i,u=m["".concat(c,".").concat(p)]||m[p]||d[p]||a;return r?n.createElement(u,o(o({ref:t},g),{},{components:r})):n.createElement(u,o({ref:t},g))}));function u(e,t){var r=arguments,i=t&&t.mdxType;if("string"==typeof e||i){var a=r.length,o=new Array(a);o[0]=p;var s={};for(var c in t)hasOwnProperty.call(t,c)&&(s[c]=t[c]);s.originalType=e,s[m]="string"==typeof e?e:i,o[1]=s;for(var l=2;l<a;l++)o[l]=r[l];return n.createElement.apply(null,o)}return n.createElement.apply(null,r)}p.displayName="MDXCreateElement"},1673:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>g,contentTitle:()=>c,default:()=>u,frontMatter:()=>s,metadata:()=>l,toc:()=>m});var n=r(58168),i=r(98587),a=(r(96540),r(15680)),o=["components"],s={id:"historical",title:"Historical service",sidebar_label:"Historical"},c=void 0,l={unversionedId:"design/historical",id:"design/historical",title:"Historical service",description:"\x3c!--",source:"@site/docs/29.0.0/design/historical.md",sourceDirName:"design",slug:"/design/historical",permalink:"/docs/29.0.0/design/historical",draft:!1,tags:[],version:"current",frontMatter:{id:"historical",title:"Historical service",sidebar_label:"Historical"},sidebar:"docs",previous:{title:"Router",permalink:"/docs/29.0.0/design/router"},next:{title:"MiddleManager",permalink:"/docs/29.0.0/design/middlemanager"}},g={},m=[{value:"Configuration",id:"configuration",level:2},{value:"HTTP endpoints",id:"http-endpoints",level:2},{value:"Running",id:"running",level:2},{value:"Loading and serving segments",id:"loading-and-serving-segments",level:2},{value:"Loading and serving segments from cache",id:"loading-and-serving-segments-from-cache",level:2},{value:"Querying segments",id:"querying-segments",level:2}],d={toc:m},p="wrapper";function u(e){var t=e.components,r=(0,i.A)(e,o);return(0,a.yg)(p,(0,n.A)({},d,r,{components:t,mdxType:"MDXLayout"}),(0,a.yg)("p",null,"The Historical service is responsible for storing and querying historical data.\nHistorical services cache data segments on local disk and serve queries from that cache as well as from an in-memory cache."),(0,a.yg)("h2",{id:"configuration"},"Configuration"),(0,a.yg)("p",null,"For Apache Druid Historical service configuration, see ",(0,a.yg)("a",{parentName:"p",href:"/docs/29.0.0/configuration/#historical"},"Historical configuration"),"."),(0,a.yg)("p",null,"For basic tuning guidance for the Historical service, see ",(0,a.yg)("a",{parentName:"p",href:"/docs/29.0.0/operations/basic-cluster-tuning#historical"},"Basic cluster tuning"),"."),(0,a.yg)("h2",{id:"http-endpoints"},"HTTP endpoints"),(0,a.yg)("p",null,"For a list of API endpoints supported by the Historical, please see the ",(0,a.yg)("a",{parentName:"p",href:"/docs/29.0.0/api-reference/service-status-api#historical"},"Service status API reference"),"."),(0,a.yg)("h2",{id:"running"},"Running"),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre"},"org.apache.druid.cli.Main server historical\n")),(0,a.yg)("h2",{id:"loading-and-serving-segments"},"Loading and serving segments"),(0,a.yg)("p",null,"Each Historical service copies or pulls segment files from deep storage to local disk in an area called the segment cache. To configure the size and location of the segment cache on each Historical service, set the ",(0,a.yg)("inlineCode",{parentName:"p"},"druid.segmentCache.locations"),".\nFor more information, see ",(0,a.yg)("a",{parentName:"p",href:"/docs/29.0.0/operations/basic-cluster-tuning#segment-cache-size"},"Segment cache size"),"."),(0,a.yg)("p",null,"The ",(0,a.yg)("a",{parentName:"p",href:"/docs/29.0.0/design/coordinator"},"Coordinator")," controls the assignment of segments to Historicals and the balance of segments between Historicals. Historical services do not communicate directly with each other, nor do they communicate directly with the Coordinator. Instead, the Coordinator creates ephemeral entries in ZooKeeper in a ",(0,a.yg)("a",{parentName:"p",href:"/docs/29.0.0/configuration/#path-configuration"},"load queue path"),". Each Historical service maintains a connection to ZooKeeper, watching those paths for segment information."),(0,a.yg)("p",null,"When a Historical service detects a new entry in the ZooKeeper load queue, it checks its own segment cache. If no information about the segment exists there, the Historical service first retrieves metadata from ZooKeeper about the segment, including where the segment is located in deep storage and how it needs to decompress and process it."),(0,a.yg)("p",null,"For more information about segment metadata and Druid segments in general, see ",(0,a.yg)("a",{parentName:"p",href:"/docs/29.0.0/design/segments"},"Segments"),"."),(0,a.yg)("p",null,"After a Historical service pulls down and processes a segment from deep storage, Druid advertises the segment as being available for queries from the Broker. This announcement by the Historical is made via ZooKeeper, in a ",(0,a.yg)("a",{parentName:"p",href:"/docs/29.0.0/configuration/#path-configuration"},"served segments path"),"."),(0,a.yg)("p",null,"For more information about how the Broker determines what data is available for queries, see ",(0,a.yg)("a",{parentName:"p",href:"/docs/29.0.0/design/broker"},"Broker"),"."),(0,a.yg)("p",null,"To make data from the segment cache available for querying as soon as possible, Historical services search the local segment cache upon startup and advertise the segments found there."),(0,a.yg)("h2",{id:"loading-and-serving-segments-from-cache"},"Loading and serving segments from cache"),(0,a.yg)("p",null,"The segment cache uses ",(0,a.yg)("a",{parentName:"p",href:"https://en.wikipedia.org/wiki/Mmap"},"memory mapping"),". The cache consumes memory from the underlying operating system so Historicals can hold parts of segment files in memory to increase query performance at the data level. The in-memory segment cache is affected by the size of the Historical JVM, heap / direct memory buffers, and other services on the operating system itself."),(0,a.yg)("p",null,'At query time, if the required part of a segment file is available in the memory mapped cache or "page cache", the Historical re-uses it and reads it directly from memory. If it is not in the memory-mapped cache, the Historical reads that part of the segment from disk. In this case, there is potential for new data to flush other segment data from memory. This means that if free operating system memory is close to ',(0,a.yg)("inlineCode",{parentName:"p"},"druid.server.maxSize"),", the more likely that segment data will be available in memory and reduce query times. Conversely, the lower the free operating system memory, the more likely a Historical is to read segments from disk."),(0,a.yg)("p",null,"Note that this memory-mapped segment cache is in addition to other ",(0,a.yg)("a",{parentName:"p",href:"/docs/29.0.0/querying/caching"},"query-level caches"),"."),(0,a.yg)("h2",{id:"querying-segments"},"Querying segments"),(0,a.yg)("p",null,"You can configure a Historical service to log and report metrics for every query it services.\nFor information on querying Historical services, see ",(0,a.yg)("a",{parentName:"p",href:"/docs/29.0.0/querying/"},"Querying"),"."))}u.isMDXComponent=!0}}]);