You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@druid.apache.org by kf...@apache.org on 2026/10/01 16:04:40 UTC

(druid-website) branch asf-site updated: Update website for Druid 38.0.0 release (#354)

This is an automated email from the ASF dual-hosted git repository.

kfaraz pushed a commit to branch asf-site
in repository https://gitbox.apache.org/repos/asf/druid-website.git


The following commit(s) were added to refs/heads/asf-site by this push:
     new bce49f462 Update website for Druid 38.0.0 release (#354)
bce49f462 is described below

commit bce49f462a2debf228b1c82d2e541952972cf203
Author: Kashif Faraz <ka...@gmail.com>
AuthorDate: Thu Oct 1 21:34:35 2026 +0530

    Update website for Druid 38.0.0 release (#354)
---
 404.html                                           |   4 +-
 assets/js/01019b7b.e99cc2a0.js                     |   1 +
 assets/js/01286a6a.e77dcd3a.js                     |   1 +
 assets/js/014c2dae.3142e4c5.js                     |   1 +
 assets/js/02626afc.22dc4772.js                     |   1 +
 assets/js/035ea2c4.1c7eba73.js                     |   1 +
 assets/js/0376c95c.aa54f3f3.js                     |   1 +
 assets/js/03cd90d6.856e1f0a.js                     |   1 +
 assets/js/051a271c.e5876905.js                     |   1 +
 assets/js/05283ef2.f8a75c61.js                     |   1 +
 assets/js/05bce26a.cd3f8382.js                     |   1 +
 assets/js/05f806af.b6280a55.js                     |   1 +
 assets/js/06350a84.aee9fc07.js                     |   1 +
 assets/js/0662c988.2789939c.js                     |   1 +
 assets/js/06ba3067.9d66bbb2.js                     |   1 +
 assets/js/06bb6c62.ce1bf586.js                     |   1 +
 assets/js/06e4134d.f2364819.js                     |   1 +
 assets/js/0723c27f.faa76609.js                     |   1 +
 assets/js/07688e98.883da2d8.js                     |   1 +
 assets/js/07e4767b.7bb04302.js                     |   1 +
 assets/js/0885b04e.4aeedf01.js                     |   1 +
 assets/js/0aa24f18.a30292f4.js                     |   1 +
 assets/js/0ab30f6e.4e9971ad.js                     |   1 +
 assets/js/0b1078cf.93a0071b.js                     |   1 +
 assets/js/0b432fa0.883bd5b7.js                     |   1 +
 assets/js/0c39a6da.1bd4aca6.js                     |   1 +
 assets/js/0c5549ae.638752cc.js                     |   1 +
 assets/js/0c7364f1.e8280b2a.js                     |   1 +
 assets/js/0d6feef1.c018d63d.js                     |   1 +
 assets/js/0da73aae.b28e8c24.js                     |   1 +
 assets/js/0e461f11.292b4848.js                     |   1 +
 assets/js/0e9c571e.7f460ee4.js                     |   1 +
 assets/js/0f7339bc.7f5a1ca3.js                     |   1 +
 assets/js/0ffea84f.4bf40032.js                     |   1 +
 assets/js/10049722.4fbe5675.js                     |   1 +
 assets/js/1141b6df.ab543e08.js                     |   1 +
 assets/js/11a80721.527491a6.js                     |   1 +
 assets/js/12d97def.b28c4cbb.js                     |   1 +
 assets/js/13ec796f.f0c3d64d.js                     |   1 +
 assets/js/147fd7c7.64713e85.js                     |   1 +
 assets/js/1632a4ec.cddcfe22.js                     |   1 +
 assets/js/170acdd4.414b3f35.js                     |   1 +
 assets/js/180c7d3d.20564914.js                     |   1 +
 assets/js/18522cd4.ae771c75.js                     |   1 +
 assets/js/190d4fd7.7782dd10.js                     |   1 +
 assets/js/191349c1.3d42138d.js                     |   1 +
 assets/js/19153eab.7814e74a.js                     |   1 +
 assets/js/1981460b.809255d9.js                     |   1 +
 assets/js/19bdf367.8482f17a.js                     |   1 +
 assets/js/1a239e8f.f8b1097b.js                     |   1 +
 assets/js/1be4f6d4.9a8a0d41.js                     |   1 +
 assets/js/1c5c8328.0566b005.js                     |   1 +
 assets/js/1c6ec3f0.a2b2eed1.js                     |   1 +
 assets/js/1d1b1557.04bad583.js                     |   1 +
 assets/js/1e4cef5a.dbc20c14.js                     |   1 +
 assets/js/1e878fa2.8993ac9f.js                     |   1 +
 assets/js/1f3e2656.9fa011f3.js                     |   1 +
 assets/js/20051c94.4ad61e10.js                     |   1 +
 assets/js/2180ce0f.43344f40.js                     |   1 +
 assets/js/218ecc56.a0fa4349.js                     |   1 +
 assets/js/21e0fc71.e4bceb04.js                     |   1 +
 assets/js/2229e2e2.6d7c629b.js                     |   1 +
 assets/js/2267c0c5.a8e931e6.js                     |   1 +
 assets/js/22d3ac79.9fec1c6f.js                     |   1 +
 assets/js/2334.0f26b8ba.js                         |   1 +
 assets/js/2399dcd6.5c7c7331.js                     |   1 +
 assets/js/23bb455c.b09dff15.js                     |   1 +
 assets/js/23c56158.69385d2f.js                     |   1 +
 assets/js/2417a5c5.704eff14.js                     |   1 +
 assets/js/248aeefe.ae4475ea.js                     |   1 +
 assets/js/25852f5b.8d276b07.js                     |   1 +
 assets/js/2590e039.a3197b30.js                     |   1 +
 assets/js/25cf291e.4a07da02.js                     |   1 +
 assets/js/263ec29f.0cf5898d.js                     |   1 +
 assets/js/274a38ba.8941935f.js                     |   1 +
 assets/js/2785fc82.8f2b34bc.js                     |   1 +
 assets/js/278e5cb2.9d10f66e.js                     |   1 +
 assets/js/27d22fb6.6092bdef.js                     |   1 +
 assets/js/28797c76.60b08645.js                     |   1 +
 assets/js/28a00931.57dd6fa5.js                     |   1 +
 assets/js/292ba8e7.8760ce0a.js                     |   1 +
 assets/js/293487cb.c5bd652c.js                     |   1 +
 assets/js/2a0e00fd.c971ec74.js                     |   1 +
 assets/js/2b561dad.3ea0cef2.js                     |   1 +
 assets/js/2b7bc668.99d0730d.js                     |   1 +
 assets/js/2d106cb4.732a892e.js                     |   1 +
 assets/js/2de98abf.71b7e6d2.js                     |   1 +
 assets/js/2e9f2bbf.a65b5d97.js                     |   1 +
 assets/js/2ec3a9a7.0b35fb39.js                     |   1 +
 assets/js/2fbe7d8e.80bee6e5.js                     |   1 +
 assets/js/2feb98fa.d726a35d.js                     |   1 +
 assets/js/31a90d79.fa12c4a6.js                     |   1 +
 assets/js/327b842b.d2980052.js                     |   1 +
 assets/js/32f5b141.61058e4d.js                     |   1 +
 assets/js/32fb84ff.529a541b.js                     |   1 +
 assets/js/337cc2af.bbc1beb0.js                     |   1 +
 assets/js/338208dd.5a46536b.js                     |   1 +
 assets/js/33892386.88279598.js                     |   1 +
 assets/js/33d88741.9f66143d.js                     |   1 +
 assets/js/346676e9.a4effb52.js                     |   1 +
 assets/js/346f2d1f.001e6b30.js                     |   1 +
 assets/js/34fe466c.23113d36.js                     |   1 +
 assets/js/3588a834.f8f550ed.js                     |   1 +
 assets/js/35ed644f.446133ea.js                     |   1 +
 assets/js/3624.c2d2ffbb.js                         |   1 +
 assets/js/36497d9a.5ae47e2d.js                     |   1 +
 assets/js/3698f0ce.3ccd6bb4.js                     |   1 +
 assets/js/37051026.d9b176e2.js                     |   1 +
 assets/js/38421e70.9112dc26.js                     |   1 +
 assets/js/38aaa58c.bbd07ddf.js                     |   1 +
 assets/js/38d110d6.6d122b02.js                     |   1 +
 assets/js/392ede42.38c25647.js                     |   1 +
 assets/js/39d167e5.5f0ad8af.js                     |   1 +
 assets/js/3a74134f.d03aa055.js                     |   1 +
 assets/js/3b838b38.64bdc876.js                     |   1 +
 assets/js/3b886b08.1d3415bb.js                     |   1 +
 assets/js/3ba5c2fc.4fe3159b.js                     |   1 +
 assets/js/3bbd7287.88b11773.js                     |   1 +
 assets/js/3c296afa.e3111d61.js                     |   1 +
 assets/js/3c48ffe5.2f1d8302.js                     |   1 +
 assets/js/3ccbe206.53e448d8.js                     |   1 +
 assets/js/3d095abc.f3f5051d.js                     |   1 +
 assets/js/3e06b534.74538172.js                     |   1 +
 assets/js/3ee2af08.214578f5.js                     |   1 +
 assets/js/3f8e7beb.b4e68e7e.js                     |   1 +
 assets/js/3fc4ca5f.dc567559.js                     |   1 +
 assets/js/40d22985.83d61213.js                     |   1 +
 assets/js/412ee224.c1129948.js                     |   1 +
 assets/js/414403c6.4210d691.js                     |   1 +
 assets/js/4190.5abbba1e.js                         |   2 +
 assets/js/4190.5abbba1e.js.LICENSE.txt             |  61 +++
 assets/js/4245e8d3.c7dddb16.js                     |   1 +
 assets/js/42be3a3f.1cedaa43.js                     |   1 +
 assets/js/4374d1d5.ce4354ba.js                     |   1 +
 assets/js/43c5580d.daeda3e4.js                     |   1 +
 assets/js/445bf8fb.7a78be4b.js                     |   1 +
 assets/js/44c1092b.db5f2160.js                     |   1 +
 assets/js/44f44d7b.98482953.js                     |   1 +
 assets/js/45247bbe.1b5326a6.js                     |   1 +
 assets/js/45535480.12dd90c1.js                     |   1 +
 assets/js/458bce1b.c3c6e138.js                     |   1 +
 assets/js/45f88f22.2c914bce.js                     |   1 +
 assets/js/46a2378c.badf56b0.js                     |   1 +
 assets/js/49978ae3.6539e809.js                     |   1 +
 assets/js/49dd0ed7.475ea995.js                     |   1 +
 assets/js/4a060e30.cddb7dd5.js                     |   1 +
 assets/js/4c6256b5.4fd6f7bc.js                     |   1 +
 assets/js/4cf66254.ee4285e4.js                     |   1 +
 assets/js/4d049ca5.d671c87e.js                     |   1 +
 assets/js/4d5affe9.9d7bda07.js                     |   1 +
 assets/js/4e2cef3e.c3e91cb3.js                     |   1 +
 assets/js/4e72a206.d03ecc7a.js                     |   1 +
 assets/js/4eca944b.bae50e0d.js                     |   1 +
 assets/js/4ed23b24.c2f75ab1.js                     |   1 +
 assets/js/4ff6a9f2.bf8832a4.js                     |   1 +
 assets/js/502c5633.eee5129f.js                     |   1 +
 assets/js/508da023.e01065ed.js                     |   1 +
 assets/js/50e8131a.d743a739.js                     |   1 +
 assets/js/5143ed09.b2d83c63.js                     |   1 +
 assets/js/51a3a77a.b2a765c0.js                     |   1 +
 assets/js/51e623d9.15c717e0.js                     |   1 +
 assets/js/52b6c25c.cd619eca.js                     |   1 +
 assets/js/52ea51d8.4c2d427c.js                     |   1 +
 assets/js/53183842.2b60f6d4.js                     |   1 +
 assets/js/537e28c3.897fdcce.js                     |   1 +
 assets/js/53d3b615.301fc63a.js                     |   1 +
 assets/js/5410.887f1259.js                         |   1 +
 assets/js/54a411b6.44b79f5e.js                     |   1 +
 assets/js/55a46dea.41f2bb8c.js                     |   1 +
 assets/js/55e202dc.952f3154.js                     |   1 +
 assets/js/560cfc62.2a5a04dd.js                     |   1 +
 assets/js/56374a56.50ee6e48.js                     |   1 +
 assets/js/567f2b24.ad6765c1.js                     |   1 +
 assets/js/56b3824f.b6442089.js                     |   1 +
 assets/js/584565a4.cc72cfee.js                     |   1 +
 assets/js/591db6fe.fcce3840.js                     |   1 +
 assets/js/59acd16c.27c9eb65.js                     |   1 +
 assets/js/5a08e3a4.1067033e.js                     |   1 +
 assets/js/5a21bdc0.ae97a92e.js                     |   1 +
 assets/js/5aad1f90.5295d796.js                     |   1 +
 assets/js/5ba01544.2c2c322c.js                     |   1 +
 assets/js/5bcd0a3f.c0eaa141.js                     |   1 +
 assets/js/5bf6eab6.a0f1f33d.js                     |   1 +
 assets/js/5c76467a.4c321678.js                     |   1 +
 assets/js/5dfb6a3e.0b6ac99a.js                     |   1 +
 assets/js/5e2a47b6.26d73b27.js                     |   1 +
 assets/js/5e8b8f05.ac871602.js                     |   1 +
 assets/js/5e9ea8d6.5ce5fe8f.js                     |   1 +
 assets/js/5eba74a6.55174c2f.js                     |   1 +
 assets/js/5f349eee.92b51761.js                     |   1 +
 assets/js/5fc6e3bb.a9ec9136.js                     |   1 +
 assets/js/5ff9c08d.090aa0a6.js                     |   1 +
 assets/js/5ffc9c90.ae2db2f4.js                     |   1 +
 assets/js/60b9c99e.c2124e1d.js                     |   1 +
 assets/js/615c06f6.0aaf9caa.js                     |   1 +
 assets/js/61d222c8.fb36d5bb.js                     |   1 +
 assets/js/63a5d816.afd6f895.js                     |   1 +
 assets/js/64e4fb09.9cbbb85f.js                     |   1 +
 assets/js/65cc2304.f56240a8.js                     |   1 +
 assets/js/6749.edf96ea3.js                         |   2 +
 assets/js/6749.edf96ea3.js.LICENSE.txt             |   9 +
 assets/js/6854a98b.ce1658dc.js                     |   1 +
 assets/js/6865240a.20cb1a57.js                     |   1 +
 assets/js/688a6cad.ff6ce018.js                     |   1 +
 assets/js/6aa8853e.c989a6dd.js                     |   1 +
 assets/js/6ace79fe.0a3f3461.js                     |   1 +
 assets/js/6bb9967c.94d48728.js                     |   1 +
 assets/js/6c4a74e3.7b45dce1.js                     |   1 +
 assets/js/6c62c6c7.505187de.js                     |   1 +
 assets/js/6d081973.8ec912d2.js                     |   1 +
 assets/js/6d57fd4e.a582f804.js                     |   1 +
 assets/js/6d6585fc.4da53b43.js                     |   1 +
 assets/js/6e2381c8.e37896a9.js                     |   1 +
 assets/js/6e7e0264.c45e7496.js                     |   1 +
 assets/js/6ee1ea49.4b8fd745.js                     |   1 +
 assets/js/6fd83e05.ec5e1a08.js                     |   1 +
 assets/js/6ffd2f42.00f0355d.js                     |   1 +
 assets/js/704b58a6.e5b4a67e.js                     |   1 +
 assets/js/712138dd.a6d462b2.js                     |   1 +
 assets/js/71de5257.157d1393.js                     |   1 +
 assets/js/72206c87.ee5094af.js                     |   1 +
 assets/js/722cf1ee.07781518.js                     |   1 +
 assets/js/723062a3.55fe2040.js                     |   1 +
 assets/js/740ee517.fb959d8a.js                     |   1 +
 assets/js/755987a3.da8ea95a.js                     |   1 +
 assets/js/769d5196.11401b14.js                     |   1 +
 assets/js/77f7adac.b0731785.js                     |   1 +
 assets/js/78df240a.d46fce2c.js                     |   1 +
 assets/js/795d6138.9fd910e9.js                     |   1 +
 assets/js/79e1bf89.2db4fe7c.js                     |   1 +
 assets/js/7a0ffe1e.b9b8639e.js                     |   1 +
 assets/js/7ba61069.48fe32e5.js                     |   1 +
 assets/js/7c859186.d8436f31.js                     |   1 +
 assets/js/7d2839fe.e3f809a3.js                     |   1 +
 assets/js/7d60ad90.f347f841.js                     |   1 +
 assets/js/7e1dcf84.257177e9.js                     |   1 +
 assets/js/7eda95e3.1b6419bf.js                     |   1 +
 assets/js/7ef2feef.082aa9d8.js                     |   1 +
 assets/js/7ef358d2.cc60c39e.js                     |   1 +
 assets/js/7f61aae6.bba4b7e6.js                     |   1 +
 assets/js/7f7990e2.76b79e79.js                     |   1 +
 assets/js/7fb450ec.02b6d1e8.js                     |   1 +
 assets/js/80e2188c.cea9f94b.js                     |   1 +
 assets/js/81946459.fd761c31.js                     |   1 +
 assets/js/819b119f.07ec6f0c.js                     |   1 +
 assets/js/8338bac7.afd27aaa.js                     |   1 +
 assets/js/83447b42.33013137.js                     |   1 +
 assets/js/8352a77c.e717aa7f.js                     |   1 +
 assets/js/83593c6b.9189dc30.js                     |   1 +
 assets/js/83a49702.6cfdb0c6.js                     |   1 +
 assets/js/83f7537e.a4dac179.js                     |   1 +
 assets/js/84a6c3d0.3d5707b5.js                     |   1 +
 assets/js/852ebc67.efb02517.js                     |   1 +
 assets/js/8549cd83.6afa0c83.js                     |   1 +
 assets/js/85811133.76b042e0.js                     |   1 +
 assets/js/8593c89e.66808f07.js                     |   1 +
 assets/js/8603200e.c5c31ed0.js                     |   1 +
 assets/js/860d5203.333284f1.js                     |   1 +
 assets/js/8618.2089b42f.js                         |   1 +
 assets/js/862976ff.69b841c6.js                     |   1 +
 assets/js/8731.6a4285c9.js                         |   1 +
 assets/js/881b6e93.8235d0db.js                     |   1 +
 assets/js/8877de08.d6926766.js                     |   1 +
 assets/js/8902724d.25af807b.js                     |   1 +
 assets/js/896a7803.1843b3b0.js                     |   1 +
 assets/js/8adf3ad1.d99cda64.js                     |   1 +
 assets/js/8b4ed65d.da5d26a3.js                     |   1 +
 assets/js/8c1da206.34482dcd.js                     |   1 +
 assets/js/8c8d0529.a3090137.js                     |   1 +
 assets/js/8cdd5c5f.1648e9e6.js                     |   1 +
 assets/js/8d4becf1.bf85f0c3.js                     |   1 +
 assets/js/8df2d03b.94794b06.js                     |   1 +
 assets/js/8e848799.1b7ed7d3.js                     |   1 +
 assets/js/8e96f099.fd35dad5.js                     |   1 +
 assets/js/8f35ff03.69ef12eb.js                     |   1 +
 assets/js/90cf7f37.cbce3290.js                     |   1 +
 assets/js/910d61b6.7471631b.js                     |   1 +
 assets/js/91d46102.9953a857.js                     |   1 +
 assets/js/9216ddc9.59cdcd8e.js                     |   1 +
 assets/js/93a531f9.ce74fb00.js                     |   1 +
 assets/js/945892f2.158a9ed9.js                     |   1 +
 assets/js/94a916bd.10cf3fa7.js                     |   1 +
 assets/js/954f55a3.ed449197.js                     |   1 +
 assets/js/9557406b.083c8e28.js                     |   1 +
 assets/js/95eaac7a.feb1c739.js                     |   1 +
 assets/js/96fedd74.ff8fec11.js                     |   1 +
 assets/js/98453339.4ba13b93.js                     |   1 +
 assets/js/984eaad9.ea209061.js                     |   1 +
 assets/js/98b02a47.27f387f5.js                     |   1 +
 assets/js/99d91b5a.686437c8.js                     |   1 +
 assets/js/9a8dd851.5a9f79f2.js                     |   1 +
 assets/js/9c039e3e.c4c0946c.js                     |   1 +
 assets/js/9c962748.752eab24.js                     |   1 +
 assets/js/9cbe81ea.59db58ae.js                     |   1 +
 assets/js/9d09376f.82e60744.js                     |   1 +
 assets/js/9dd30c58.6cdf5b49.js                     |   1 +
 assets/js/9e7a63b5.b6d3844e.js                     |   1 +
 assets/js/9ee4b8c3.6f65400c.js                     |   1 +
 assets/js/9ef41741.a70f8f73.js                     |   1 +
 assets/js/9f7d2daf.557dbf66.js                     |   1 +
 assets/js/a129ef7f.0313bdcd.js                     |   1 +
 assets/js/a155e191.d13ce3ea.js                     |   1 +
 assets/js/a246c79f.8387ed80.js                     |   1 +
 assets/js/a29092d7.a6c91b6b.js                     |   1 +
 assets/js/a34185cc.e8dbd162.js                     |   1 +
 assets/js/a37f7d8e.4c2f409b.js                     |   1 +
 assets/js/a3bf1768.5db0d98c.js                     |   1 +
 assets/js/a3c37aca.b1c28ab9.js                     |   1 +
 assets/js/a44c6b07.9332a0f3.js                     |   1 +
 assets/js/a4d15f9e.58f48bf5.js                     |   1 +
 assets/js/a4fd3ae2.3b533929.js                     |   1 +
 assets/js/a5891010.1410fed4.js                     |   1 +
 assets/js/a612578d.9b202a31.js                     |   1 +
 assets/js/a680932a.80ee418a.js                     |   1 +
 assets/js/a7a8ea6a.cbef91bf.js                     |   1 +
 assets/js/a7ba223c.6dc2b090.js                     |   1 +
 assets/js/a7da6597.3952b321.js                     |   1 +
 assets/js/a8a169c7.b109d170.js                     |   1 +
 assets/js/a8cc8574.5a427bcb.js                     |   1 +
 assets/js/a91680d2.699040a3.js                     |   1 +
 assets/js/a94c6434.f4b7cdb7.js                     |   1 +
 assets/js/a97bb373.edd108ab.js                     |   1 +
 assets/js/a994e972.d3efe51d.js                     |   1 +
 assets/js/a9dbd2ed.614d5ba7.js                     |   1 +
 assets/js/ab046938.2f313b2a.js                     |   1 +
 assets/js/ab0a4069.e3fff9ee.js                     |   1 +
 assets/js/ab9f7dbb.dcecf5e8.js                     |   1 +
 assets/js/ac4e760b.c8cb274b.js                     |   1 +
 assets/js/acefdcc3.043ccb00.js                     |   1 +
 assets/js/ad6595f7.ca154b67.js                     |   1 +
 assets/js/adbe9b0f.16ebc1d3.js                     |   1 +
 assets/js/af2a22a3.2006e7df.js                     |   1 +
 assets/js/af3658ad.cb00be1c.js                     |   1 +
 assets/js/af79f0c6.7f0b3528.js                     |   1 +
 assets/js/affbd492.078ec55e.js                     |   1 +
 assets/js/b0c79e6c.737e6026.js                     |   1 +
 assets/js/b1fd5eae.f0ccc8d7.js                     |   1 +
 assets/js/b2d41fa9.9d0a6dd9.js                     |   1 +
 assets/js/b307eceb.4e198118.js                     |   1 +
 assets/js/b329b83f.26296b12.js                     |   1 +
 assets/js/b4129207.e1f8c780.js                     |   1 +
 assets/js/b427049c.1b3ef4c3.js                     |   1 +
 assets/js/b54a2972.15707d02.js                     |   1 +
 assets/js/b639be62.c4383cb8.js                     |   1 +
 assets/js/b6d922f1.efeb8650.js                     |   1 +
 assets/js/b727495d.449d5d64.js                     |   1 +
 assets/js/b76b11af.282b4c4c.js                     |   1 +
 assets/js/b8922244.0271a9e7.js                     |   1 +
 assets/js/b964b515.940385fc.js                     |   1 +
 assets/js/b98c7036.49a76ac2.js                     |   1 +
 assets/js/ba471ed5.7f6f8d98.js                     |   1 +
 assets/js/bb2e1240.96aa3280.js                     |   1 +
 assets/js/bb4c931d.5072c457.js                     |   1 +
 assets/js/bba7a2ec.f1bd31f3.js                     |   1 +
 assets/js/bc2ced02.04917b4c.js                     |   1 +
 assets/js/bc4fccb2.31915745.js                     |   1 +
 assets/js/bca8c382.28c4210f.js                     |   1 +
 assets/js/be9a1ae8.d1dfe76e.js                     |   1 +
 assets/js/bee5d326.8e65a162.js                     |   1 +
 assets/js/bf5ec0e9.ecf4413f.js                     |   1 +
 assets/js/c0161e79.d35df8e0.js                     |   1 +
 assets/js/c10ecef7.ae72f9f6.js                     |   1 +
 assets/js/c220c602.a93ce6c1.js                     |   1 +
 assets/js/c233c888.e4d5672c.js                     |   1 +
 assets/js/c2351a52.4b3944cd.js                     |   1 +
 assets/js/c26a05e5.0397eb71.js                     |   1 +
 assets/js/c2ae6274.7021a830.js                     |   1 +
 assets/js/c3f2a569.01c5a66f.js                     |   1 +
 assets/js/c4f5d8e4.69f2f1a3.js                     |   1 +
 assets/js/c563545e.62ee0d41.js                     |   1 +
 assets/js/c5760f30.4399e4b4.js                     |   1 +
 assets/js/c5db95a7.90cf2cbf.js                     |   1 +
 assets/js/c5dbe964.17d99249.js                     |   1 +
 assets/js/c680ad0c.4a7f2ab1.js                     |   1 +
 assets/js/c74ccf1e.19e38f83.js                     |   1 +
 assets/js/c7fb157b.9dbefeaf.js                     |   1 +
 assets/js/c81cdd78.b2c36d35.js                     |   1 +
 assets/js/c879a409.899d342c.js                     |   1 +
 assets/js/c89bccce.cb9831b0.js                     |   1 +
 assets/js/c9db5a6a.969ebb5f.js                     |   1 +
 assets/js/ca04493f.c0a4b514.js                     |   1 +
 assets/js/ca88b774.66cedde9.js                     |   1 +
 assets/js/cadc7a52.da51d564.js                     |   1 +
 assets/js/caed696f.d87c476e.js                     |   1 +
 assets/js/cc5d70e3.d7bef12f.js                     |   1 +
 assets/js/cd07172b.a14bbfee.js                     |   1 +
 assets/js/cd22c7ca.2a01759e.js                     |   1 +
 assets/js/cd9e4e04.d6a507d1.js                     |   1 +
 assets/js/cdec71b5.f314221e.js                     |   1 +
 assets/js/ce4dff4d.4e0205d3.js                     |   1 +
 assets/js/cea8fd56.2816d845.js                     |   1 +
 assets/js/cf22c641.e3b2d868.js                     |   1 +
 assets/js/cf515b8a.4f8d6c36.js                     |   1 +
 assets/js/cf67dd3c.5e32e8c7.js                     |   1 +
 assets/js/d04d1543.2fb6708e.js                     |   1 +
 assets/js/d05fa046.652bacb1.js                     |   1 +
 assets/js/d1d326f4.4898e486.js                     |   1 +
 assets/js/d1e5ae8f.f37d3ef2.js                     |   1 +
 assets/js/d24799e9.39acf8d7.js                     |   1 +
 assets/js/d26ca0af.43ab4d40.js                     |   1 +
 assets/js/d2eb7e33.dd12cd21.js                     |   1 +
 assets/js/d2eba29c.fc0717dd.js                     |   1 +
 assets/js/d30674da.0f5c5111.js                     |   1 +
 assets/js/d3a077b9.8a29ac4f.js                     |   1 +
 assets/js/d3d13383.9d7da622.js                     |   1 +
 assets/js/d4a8c0de.68aa2a6f.js                     |   1 +
 assets/js/d5c40f73.bf0a33a5.js                     |   1 +
 assets/js/d6226c05.6af33cce.js                     |   1 +
 assets/js/d6a8f8f9.93b46ba1.js                     |   1 +
 assets/js/d6bc9e72.ebf868a9.js                     |   1 +
 assets/js/d721507d.07ed2adb.js                     |   1 +
 assets/js/d7a5741a.a67a1121.js                     |   1 +
 assets/js/d84abcb9.ba94bb66.js                     |   1 +
 assets/js/d8c9bb91.9461e825.js                     |   1 +
 assets/js/d8e0d2fb.6779dcca.js                     |   1 +
 assets/js/daff6454.8f2d19b6.js                     |   1 +
 assets/js/db509a08.051b7e6b.js                     |   1 +
 assets/js/db99db71.9a7b18c1.js                     |   1 +
 assets/js/dc66e441.20992913.js                     |   1 +
 assets/js/dc72ee61.3cbecbe4.js                     |   1 +
 assets/js/dc86ecba.5d4fa49f.js                     |   1 +
 assets/js/dd08839c.0ecf4ca8.js                     |   1 +
 assets/js/dd1dce50.1a0b59cf.js                     |   1 +
 assets/js/dd51faf4.6f0af296.js                     |   1 +
 assets/js/dd79da31.1178eeff.js                     |   1 +
 assets/js/deb3bfea.4515df9c.js                     |   1 +
 assets/js/ded59213.a5f2f737.js                     |   1 +
 assets/js/df12df39.aa9306f3.js                     |   1 +
 assets/js/df9f71f9.49e214b4.js                     |   1 +
 assets/js/e03d429b.f8d55fb9.js                     |   1 +
 assets/js/e2103aba.5fd57d89.js                     |   1 +
 assets/js/e26f2594.3dfbbf0e.js                     |   1 +
 assets/js/e276423b.7d59f0a9.js                     |   1 +
 assets/js/e2ac349d.da78c047.js                     |   1 +
 assets/js/e3609e88.8b56cbe6.js                     |   1 +
 assets/js/e3f61a68.3a5528d0.js                     |   1 +
 assets/js/e44d1fc1.57b26e97.js                     |   1 +
 assets/js/e4bc41b1.9ae3a0a0.js                     |   1 +
 assets/js/e577ad77.c8981a00.js                     |   1 +
 assets/js/e6ea7cb8.6f34daa3.js                     |   1 +
 assets/js/e7e5c37b.0076eedf.js                     |   1 +
 assets/js/e988a960.336dc792.js                     |   1 +
 assets/js/e9a99b3f.672266a0.js                     |   1 +
 assets/js/e9ff58b9.6af1a539.js                     |   1 +
 assets/js/eab758fa.b0b2e094.js                     |   1 +
 assets/js/eb004346.8ee0487f.js                     |   1 +
 assets/js/eb61c53f.00fc169e.js                     |   1 +
 assets/js/ebaeb537.45ed96a9.js                     |   1 +
 assets/js/ebfaf1f1.e3c37202.js                     |   1 +
 assets/js/ec725065.03558c01.js                     |   1 +
 assets/js/ec96a789.be18625e.js                     |   1 +
 assets/js/ed76cb57.4a8edd34.js                     |   1 +
 assets/js/ef3cb91d.2c9914e8.js                     |   1 +
 assets/js/efb0e60e.43e0dbd2.js                     |   1 +
 assets/js/f04833a0.85ab4a15.js                     |   1 +
 assets/js/f0a1c229.ca7408e9.js                     |   1 +
 assets/js/f0bb013e.e67598c0.js                     |   1 +
 assets/js/f1bd5231.063e0bee.js                     |   1 +
 assets/js/f2740aaf.3586971a.js                     |   1 +
 assets/js/f2fce74c.d02eb62b.js                     |   1 +
 assets/js/f3f9f9c1.b2b3be69.js                     |   1 +
 assets/js/f3fc9414.509c66cd.js                     |   1 +
 assets/js/f5d9b0c3.0b54b589.js                     |   1 +
 assets/js/f74ace7b.c7eda716.js                     |   1 +
 assets/js/f76af10b.ce4310af.js                     |   1 +
 assets/js/f79fc959.d5e230f2.js                     |   1 +
 assets/js/f8b35359.ae52d000.js                     |   1 +
 assets/js/fa493215.fcd39f31.js                     |   1 +
 assets/js/faf71cfd.3f132aae.js                     |   1 +
 assets/js/fba5369b.7206ae03.js                     |   1 +
 assets/js/fc6529ab.8f5edbbe.js                     |   1 +
 assets/js/fcff652c.64d479dc.js                     |   1 +
 assets/js/fd06814a.d0a66ae2.js                     |   1 +
 assets/js/fd2232cb.d844e556.js                     |   1 +
 assets/js/fe8eee49.526f498a.js                     |   1 +
 assets/js/ffabadeb.72d627ef.js                     |   1 +
 assets/js/ffd53883.1bb8aef0.js                     |   1 +
 assets/js/main.b6e60483.js                         |   2 +
 assets/js/main.b6e60483.js.LICENSE.txt             |  71 +++
 assets/js/main.c51034ff.js                         |   2 +
 assets/js/main.c51034ff.js.LICENSE.txt             |  71 +++
 assets/js/runtime~main.8d7dd0d5.js                 |   1 +
 assets/js/runtime~main.ea7da916.js                 |   1 +
 blog/index.html                                    |   4 +-
 community/cla/index.html                           |   4 +-
 community/index.html                               |   4 +-
 community/join-slack/index.html                    |   4 +-
 docs/38.0.0/api-reference.html/index.html          |  11 +
 .../automatic-compaction-api.html/index.html       |  11 +
 .../automatic-compaction-api/index.html            |  16 +-
 .../data-management-api.html/index.html            |  11 +
 .../api-reference/data-management-api/index.html   |  20 +-
 .../dynamic-configuration-api.html/index.html      |  11 +
 .../dynamic-configuration-api/index.html           |  46 +-
 docs/{latest => 38.0.0}/api-reference/index.html   |  36 +-
 .../json-querying-api.html/index.html              |  11 +
 .../api-reference/json-querying-api/index.html     |  18 +-
 .../legacy-metadata-api.html/index.html            |  11 +
 .../api-reference/legacy-metadata-api/index.html   |  30 +-
 .../api-reference/lookups-api.html/index.html      |  11 +
 .../api-reference/lookups-api/index.html           |  10 +-
 .../retention-rules-api.html/index.html            |  11 +
 .../api-reference/retention-rules-api/index.html   |  28 +-
 .../service-status-api.html/index.html             |  11 +
 .../api-reference/service-status-api/index.html    |  23 +-
 docs/38.0.0/api-reference/sql-api.html/index.html  |  11 +
 .../api-reference/sql-api/index.html               |  28 +-
 .../sql-ingestion-api.html/index.html              |  11 +
 .../api-reference/sql-ingestion-api/index.html     |  29 +-
 docs/38.0.0/api-reference/sql-jdbc.html/index.html |  11 +
 .../api-reference/sql-jdbc/index.html              |  30 +-
 .../api-reference/supervisor-api.html/index.html   |  11 +
 .../api-reference/supervisor-api/index.html        |  87 ++-
 .../38.0.0/api-reference/tasks-api.html/index.html |  11 +
 .../api-reference/tasks-api/index.html             |  42 +-
 .../druid-vs-elasticsearch.html/index.html         |  11 +
 .../comparisons/druid-vs-elasticsearch/index.html  |   8 +-
 .../comparisons/druid-vs-key-value.html/index.html |  11 +
 .../comparisons/druid-vs-key-value/index.html      |   8 +-
 .../comparisons/druid-vs-kudu.html/index.html      |  11 +
 .../comparisons/druid-vs-kudu/index.html           |   8 +-
 .../comparisons/druid-vs-redshift.html/index.html  |  11 +
 .../comparisons/druid-vs-redshift/index.html       |   8 +-
 .../comparisons/druid-vs-spark.html/index.html     |  11 +
 .../comparisons/druid-vs-spark/index.html          |   8 +-
 .../druid-vs-sql-on-hadoop.html/index.html         |  11 +
 .../comparisons/druid-vs-sql-on-hadoop/index.html  |   8 +-
 docs/38.0.0/configuration.html/index.html          |  11 +
 docs/38.0.0/configuration/auth.html/index.html     |  11 +
 docs/38.0.0/configuration/broker.html/index.html   |  11 +
 docs/38.0.0/configuration/caching.html/index.html  |  11 +
 .../configuration/coordinator.html/index.html      |  11 +
 .../configuration/extensions.html/index.html       |  11 +
 .../configuration/extensions/index.html            |  34 +-
 docs/38.0.0/configuration/hadoop.html/index.html   |  11 +
 .../configuration/historical.html/index.html       |  11 +
 .../human-readable-byte.html/index.html            |  11 +
 .../configuration/human-readable-byte/index.html   |   8 +-
 docs/{latest => 38.0.0}/configuration/index.html   | 236 ++++----
 .../configuration/indexing-service.html/index.html |  11 +
 docs/38.0.0/configuration/logging.html/index.html  |  11 +
 .../configuration/logging/index.html               |  18 +-
 .../production-cluster.html/index.html             |  11 +
 docs/38.0.0/configuration/realtime.html/index.html |  11 +
 .../configuration/simple-cluster.html/index.html   |  11 +
 .../38.0.0/configuration/zookeeper.html/index.html |  11 +
 docs/38.0.0/data-management.html/index.html        |  11 +
 .../automatic-compaction.html/index.html           |  11 +
 .../automatic-compaction/index.html                |  70 +--
 .../cascading-reindexing.html/index.html           |  11 +
 .../cascading-reindexing/index.html                |  28 +-
 .../data-management/compaction.html/index.html     |  11 +
 .../data-management/compaction/index.html          |  44 +-
 docs/38.0.0/data-management/delete.html/index.html |  11 +
 .../data-management/delete/index.html              |  49 +-
 docs/{latest => 38.0.0}/data-management/index.html |  20 +-
 .../manual-compaction.html/index.html              |  11 +
 .../data-management/manual-compaction/index.html   |  28 +-
 .../data-management/schema-changes.html/index.html |  11 +
 .../data-management/schema-changes/index.html      |  20 +-
 docs/38.0.0/data-management/update.html/index.html |  11 +
 .../data-management/update/index.html              |  28 +-
 .../cassandra-deep-storage.html/index.html         |  11 +
 docs/38.0.0/dependencies/zookeeper.html/index.html |  11 +
 docs/38.0.0/design.html/index.html                 |  11 +
 docs/38.0.0/design/architecture.html/index.html    |  11 +
 .../design/architecture/index.html                 |  62 +--
 docs/38.0.0/design/auth.html/index.html            |  11 +
 docs/38.0.0/design/broker.html/index.html          |  11 +
 docs/{latest => 38.0.0}/design/broker/index.html   |  20 +-
 .../concepts-and-terminology.html/index.html       |  11 +
 docs/38.0.0/design/coordinator.html/index.html     |  11 +
 .../design/coordinator/index.html                  |  50 +-
 docs/38.0.0/design/deep-storage.html/index.html    |  11 +
 .../design/deep-storage/index.html                 |  22 +-
 docs/38.0.0/design/design.html/index.html          |  11 +
 .../extensions-contrib/dropwizard.html/index.html  |  11 +
 .../extensions-contrib/dropwizard/index.html       |  10 +-
 docs/38.0.0/design/historical.html/index.html      |  11 +
 .../design/historical/index.html                   |  30 +-
 docs/{latest => 38.0.0}/design/index.html          |  16 +-
 docs/38.0.0/design/indexer.html/index.html         |  11 +
 docs/{latest => 38.0.0}/design/indexer/index.html  |  18 +-
 .../38.0.0/design/indexing-service.html/index.html |  11 +
 .../design/indexing-service/index.html             |  22 +-
 .../38.0.0/design/metadata-storage.html/index.html |  11 +
 .../design/metadata-storage/index.html             |  30 +-
 docs/38.0.0/design/middlemanager.html/index.html   |  11 +
 .../design/middlemanager/index.html                |  16 +-
 docs/38.0.0/design/overlord.html/index.html        |  11 +
 docs/{latest => 38.0.0}/design/overlord/index.html |  16 +-
 docs/38.0.0/design/peons.html/index.html           |  11 +
 docs/{latest => 38.0.0}/design/peons/index.html    |  14 +-
 docs/38.0.0/design/plumber.html/index.html         |  11 +
 docs/38.0.0/design/processes.html/index.html       |  11 +
 docs/38.0.0/design/realtime.html/index.html        |  11 +
 docs/38.0.0/design/router.html/index.html          |  11 +
 docs/{latest => 38.0.0}/design/router/index.html   |  20 +-
 docs/38.0.0/design/segments.html/index.html        |  11 +
 docs/{latest => 38.0.0}/design/segments/index.html |  16 +-
 docs/38.0.0/design/storage.html/index.html         |  11 +
 docs/{latest => 38.0.0}/design/storage/index.html  |  40 +-
 docs/38.0.0/design/zookeeper.html/index.html       |  11 +
 .../{latest => 38.0.0}/design/zookeeper/index.html |  40 +-
 .../approximate-histograms.html/index.html         |  11 +
 docs/38.0.0/development/build.html/index.html      |  11 +
 .../development/build/index.html                   |  12 +-
 .../community-extensions/azure.html/index.html     |  11 +
 .../community-extensions/cassandra.html/index.html |  11 +
 .../cloudfiles.html/index.html                     |  11 +
 .../community-extensions/graphite.html/index.html  |  11 +
 .../kafka-simple.html/index.html                   |  11 +
 .../community-extensions/rabbitmq.html/index.html  |  11 +
 .../development/contribute-to-docs.html/index.html |  11 +
 .../development/contribute-to-docs/index.html      |  10 +-
 .../development/experimental.html/index.html       |  11 +
 .../development/experimental/index.html            |  10 +-
 .../extensions-contrib/aliyun-oss.html/index.html  |  11 +
 .../extensions-contrib/aliyun-oss/index.html       |  12 +-
 .../ambari-metrics-emitter.html/index.html         |  11 +
 .../ambari-metrics-emitter/index.html              |   8 +-
 .../extensions-contrib/cassandra.html/index.html   |  11 +
 .../extensions-contrib/cassandra/index.html        |   8 +-
 .../extensions-contrib/cloudfiles.html/index.html  |  11 +
 .../extensions-contrib/cloudfiles/index.html       |   8 +-
 .../compressed-big-decimal.html/index.html         |  11 +
 .../compressed-big-decimal/index.html              |  16 +-
 .../extensions-contrib/consul.html/index.html      |  11 +
 .../extensions-contrib/consul/index.html           |  14 +-
 .../ddsketch-quantiles.html/index.html             |  11 +
 .../ddsketch-quantiles/index.html                  |  10 +-
 .../extensions-contrib/delta-lake.html/index.html  |  11 +
 .../extensions-contrib/delta-lake/index.html       |  14 +-
 .../distinctcount.html/index.html                  |  11 +
 .../extensions-contrib/distinctcount/index.html    |   8 +-
 .../druid-exact-count-bitmap.html/index.html       |  11 +
 .../druid-exact-count-bitmap/index.html            |  10 +-
 .../druid-ranger-security.html/index.html          |  11 +
 .../druid-ranger-security/index.html               |  16 +-
 .../gce-extensions.html/index.html                 |  11 +
 .../extensions-contrib/gce-extensions/index.html   |  10 +-
 .../extensions-contrib/google.html/index.html      |  11 +
 .../extensions-contrib/graphite.html/index.html    |  11 +
 .../extensions-contrib/graphite/index.html         |  10 +-
 .../extensions-contrib/iceberg.html/index.html     |  11 +
 .../extensions-contrib/iceberg/index.html          |  14 +-
 .../extensions-contrib/influx.html/index.html      |  11 +
 .../extensions-contrib/influx/index.html           |   8 +-
 .../influxdb-emitter.html/index.html               |  11 +
 .../extensions-contrib/influxdb-emitter/index.html |  10 +-
 .../extensions-contrib/k8s-jobs/index.html         |  11 +
 .../kafka-emitter.html/index.html                  |  11 +
 .../extensions-contrib/kafka-emitter/index.html    |  10 +-
 .../kafka-simple.html/index.html                   |  11 +
 .../materialized-view/index.html                   |  11 +
 .../momentsketch-quantiles.html/index.html         |  11 +
 .../momentsketch-quantiles/index.html              |  10 +-
 .../moving-average-query.html/index.html           |  11 +
 .../moving-average-query/index.html                |  20 +-
 .../openlineage-emitter.html/index.html            |  11 +
 .../openlineage-emitter/index.html                 |  34 ++
 .../opentsdb-emitter.html/index.html               |  11 +
 .../extensions-contrib/opentsdb-emitter/index.html |  10 +-
 .../extensions-contrib/orc.html/index.html         |  11 +
 .../extensions-contrib/parquet.html/index.html     |  11 +
 .../extensions-contrib/prometheus.html/index.html  |  11 +
 .../extensions-contrib/prometheus/index.html       |   8 +-
 .../rabbit-super-stream-injestion.html/index.html  |  11 +
 .../rabbit-super-stream-injestion/index.html       |  20 +-
 .../extensions-contrib/rabbitmq.html/index.html    |  11 +
 .../extensions-contrib/redis-cache.html/index.html |  11 +
 .../extensions-contrib/redis-cache/index.html      |  20 +-
 .../extensions-contrib/rocketmq.html/index.html    |  11 +
 .../extensions-contrib/scan-query.html/index.html  |  11 +
 .../spectator-histogram.html/index.html            |  11 +
 .../spectator-histogram/index.html                 |  16 +-
 .../extensions-contrib/sqlserver.html/index.html   |  11 +
 .../extensions-contrib/sqlserver/index.html        |  10 +-
 .../extensions-contrib/statsd.html/index.html      |  11 +
 .../extensions-contrib/statsd/index.html           |  10 +-
 .../tdigestsketch-quantiles.html/index.html        |  11 +
 .../tdigestsketch-quantiles/index.html             |  27 +-
 .../extensions-contrib/thrift.html/index.html      |  11 +
 .../extensions-contrib/thrift/index.html           |  12 +-
 .../time-min-max.html/index.html                   |  11 +
 .../extensions-contrib/time-min-max/index.html     |   8 +-
 .../approximate-histograms.html/index.html         |  11 +
 .../approximate-histograms/index.html              |  12 +-
 .../extensions-core/avro.html/index.html           |  11 +
 .../development/extensions-core/avro/index.html    |  18 +-
 .../extensions-core/azure.html/index.html          |  11 +
 .../development/extensions-core/azure/index.html   |  14 +-
 .../extensions-core/bloom-filter.html/index.html   |  11 +
 .../extensions-core/bloom-filter/index.html        |  14 +-
 .../extensions-core/caffeine-cache.html/index.html |  11 +
 .../extensions-core/catalog.html/index.html        |  11 +
 .../development/extensions-core/catalog/index.html |  12 +-
 .../datasketches-extension.html/index.html         |  11 +
 .../datasketches-extension/index.html              |  20 +-
 .../datasketches-hll.html/index.html               |  11 +
 .../extensions-core/datasketches-hll/index.html    |  16 +-
 .../datasketches-kll.html/index.html               |  11 +
 .../extensions-core/datasketches-kll/index.html    |  14 +-
 .../datasketches-quantiles.html/index.html         |  11 +
 .../datasketches-quantiles/index.html              |  14 +-
 .../datasketches-theta.html/index.html             |  11 +
 .../extensions-core/datasketches-theta/index.html  |  14 +-
 .../datasketches-tuple.html/index.html             |  11 +
 .../extensions-core/datasketches-tuple/index.html  |  14 +-
 .../extensions-core/druid-aws-rds.html/index.html  |  11 +
 .../extensions-core/druid-aws-rds/index.html       |  10 +-
 .../druid-basic-security.html/index.html           |  11 +
 .../druid-basic-security/index.html                |  32 +-
 .../extensions-core/druid-kerberos.html/index.html |  11 +
 .../extensions-core/druid-kerberos/index.html      |  12 +-
 .../extensions-core/druid-lookups.html/index.html  |  11 +
 .../extensions-core/druid-lookups/index.html       |  16 +-
 .../extensions-core/druid-pac4j.html/index.html    |  11 +
 .../extensions-core/druid-pac4j/index.html         |  12 +-
 .../druid-ranger-security/index.html               |  11 +
 .../extensions-core/examples.html/index.html       |  11 +
 .../extensions-core/examples/index.html            |   8 +-
 .../extensions-core/google.html/index.html         |  11 +
 .../development/extensions-core/google/index.html  |  14 +-
 .../extensions-core/hdfs.html/index.html           |  11 +
 .../development/extensions-core/hdfs/index.html    |   8 +-
 .../extensions-core/k8s-jobs.html/index.html       |  11 +
 .../extensions-core/k8s-jobs/index.html            |  80 ++-
 .../kafka-eight-firehose.html/index.html           |  11 +
 .../kafka-extraction-namespace/index.html          |  11 +
 .../kafka-ingestion.html/index.html                |  11 +
 .../extensions-core/kafka-ingestion/index.html     |  11 +
 .../kafka-supervisor-operations.html/index.html    |  11 +
 .../kafka-supervisor-operations/index.html         |  11 +
 .../kafka-supervisor-reference.html/index.html     |  11 +
 .../kafka-supervisor-reference/index.html          |  11 +
 .../kinesis-ingestion.html/index.html              |  11 +
 .../extensions-core/kinesis-ingestion/index.html   |  11 +
 .../extensions-core/kubernetes.html/index.html     |  11 +
 .../extensions-core/kubernetes/index.html          |  12 +-
 .../lookups-cached-global/index.html               |  11 +
 .../extensions-core/mysql.html/index.html          |  11 +
 .../development/extensions-core/mysql/index.html   |  12 +-
 .../namespaced-lookup.html/index.html              |  11 +
 .../extensions-core/orc.html/index.html            |  11 +
 .../development/extensions-core/orc/index.html     |  16 +-
 .../extensions-core/parquet.html/index.html        |  11 +
 .../development/extensions-core/parquet/index.html |  10 +-
 .../extensions-core/postgresql.html/index.html     |  11 +
 .../extensions-core/postgresql/index.html          |  12 +-
 .../extensions-core/protobuf.html/index.html       |  11 +
 .../extensions-core/protobuf/index.html            |  14 +-
 .../development/extensions-core/s3.html/index.html |  11 +
 .../development/extensions-core/s3/index.html      |  18 +-
 .../simple-client-sslcontext.html/index.html       |  11 +
 .../simple-client-sslcontext/index.html            |  12 +-
 .../extensions-core/stats.html/index.html          |  11 +
 .../development/extensions-core/stats/index.html   |  10 +-
 .../extensions-core/test-stats.html/index.html     |  11 +
 .../extensions-core/test-stats/index.html          |   8 +-
 docs/38.0.0/development/extensions/index.html      |  11 +
 docs/38.0.0/development/indexer.html/index.html    |  11 +
 .../index.html                                     |  11 +
 docs/38.0.0/development/javascript.html/index.html |  11 +
 .../development/javascript/index.html              |  24 +-
 .../kafka-simple-consumer-firehose.html/index.html |  11 +
 docs/38.0.0/development/modules.html/index.html    |  11 +
 .../development/modules/index.html                 |  18 +-
 docs/38.0.0/development/overview.html/index.html   |  11 +
 .../development/overview/index.html                |  12 +-
 docs/38.0.0/development/router.html/index.html     |  11 +
 .../development/select-query.html/index.html       |  11 +
 docs/38.0.0/development/versioning.html/index.html |  11 +
 .../development/versioning/index.html              |  10 +-
 docs/38.0.0/index.html                             |  11 +
 docs/38.0.0/ingestion.html/index.html              |  11 +
 .../ingestion/automatic-compaction.html/index.html |  11 +
 .../ingestion/batch-ingestion.html/index.html      |  11 +
 .../command-line-hadoop-indexer.html/index.html    |  11 +
 docs/38.0.0/ingestion/compaction.html/index.html   |  11 +
 .../concurrent-append-replace.html/index.html      |  11 +
 .../ingestion/concurrent-append-replace/index.html |  12 +-
 docs/38.0.0/ingestion/data-formats.html/index.html |  11 +
 .../ingestion/data-formats/index.html              |  54 +-
 .../ingestion/data-management.html/index.html      |  11 +
 docs/38.0.0/ingestion/delete-data.html/index.html  |  11 +
 docs/38.0.0/ingestion/faq.html/index.html          |  11 +
 docs/{latest => 38.0.0}/ingestion/faq/index.html   |  26 +-
 docs/38.0.0/ingestion/firehose.html/index.html     |  11 +
 docs/38.0.0/ingestion/flatten-json.html/index.html |  11 +
 .../hadoop-vs-native-batch.html/index.html         |  11 +
 docs/38.0.0/ingestion/hadoop.html/index.html       |  11 +
 .../{latest => 38.0.0}/ingestion/hadoop/index.html |  14 +-
 docs/{latest => 38.0.0}/ingestion/index.html       |  28 +-
 .../ingestion/ingestion-spec.html/index.html       |  11 +
 .../ingestion/ingestion-spec/index.html            |  91 ++--
 docs/38.0.0/ingestion/ingestion.html/index.html    |  11 +
 .../38.0.0/ingestion/input-sources.html/index.html |  11 +
 .../ingestion/input-sources/index.html             |  82 +--
 .../ingestion/kafka-ingestion.html/index.html      |  11 +
 .../ingestion/kafka-ingestion/index.html           |  59 +-
 .../ingestion/kinesis-ingestion.html/index.html    |  11 +
 .../ingestion/kinesis-ingestion/index.html         |  30 +-
 .../ingestion/locking-and-priority.html/index.html |  11 +
 .../ingestion/migrate-from-firehose/index.html     |  11 +
 docs/38.0.0/ingestion/misc-tasks.html/index.html   |  11 +
 .../native-batch-firehose.html/index.html          |  11 +
 .../ingestion/native-batch-firehose/index.html     |   8 +-
 .../native-batch-input-sources.html/index.html     |  11 +
 .../native-batch-simple-task.html/index.html       |  11 +
 .../ingestion/native-batch-simple-task/index.html  |  24 +-
 docs/38.0.0/ingestion/native-batch.html/index.html |  11 +
 .../ingestion/native-batch/index.html              |  70 +--
 docs/38.0.0/ingestion/native_tasks.html/index.html |  11 +
 docs/38.0.0/ingestion/overview.html/index.html     |  11 +
 docs/38.0.0/ingestion/partitioning.html/index.html |  11 +
 .../ingestion/partitioning/index.html              |  26 +-
 .../ingestion/realtime-ingestion.html/index.html   |  11 +
 docs/38.0.0/ingestion/reports.html/index.html      |  11 +
 docs/38.0.0/ingestion/rollup.html/index.html       |  11 +
 .../{latest => 38.0.0}/ingestion/rollup/index.html |  26 +-
 .../ingestion/schema-changes.html/index.html       |  11 +
 .../38.0.0/ingestion/schema-design.html/index.html |  11 +
 .../ingestion/schema-design/index.html             |  74 +--
 docs/38.0.0/ingestion/schema-model.html/index.html |  11 +
 .../ingestion/schema-model/index.html              |  28 +-
 .../ingestion/standalone-realtime.html/index.html  |  11 +
 .../ingestion/standalone-realtime/index.html       |  14 +-
 .../ingestion/stream-ingestion.html/index.html     |  11 +
 docs/38.0.0/ingestion/stream-pull.html/index.html  |  11 +
 docs/38.0.0/ingestion/stream-push.html/index.html  |  11 +
 docs/38.0.0/ingestion/streaming.html/index.html    |  11 +
 .../ingestion/streaming/index.html                 |  18 +-
 docs/38.0.0/ingestion/supervisor.html/index.html   |  11 +
 .../ingestion/supervisor/index.html                |  92 ++--
 docs/38.0.0/ingestion/tasks.html/index.html        |  11 +
 docs/{latest => 38.0.0}/ingestion/tasks/index.html |  56 +-
 docs/38.0.0/ingestion/tranquility.html/index.html  |  11 +
 .../ingestion/tranquility/index.html               |  12 +-
 .../ingestion/transform-spec.html/index.html       |  11 +
 .../ingestion/update-existing-data.html/index.html |  11 +
 docs/38.0.0/misc/cluster-setup.html/index.html     |  11 +
 docs/38.0.0/misc/evaluate.html/index.html          |  11 +
 docs/38.0.0/misc/math-expr.html/index.html         |  11 +
 docs/38.0.0/misc/papers-and-talks.html/index.html  |  11 +
 .../misc/papers-and-talks/index.html               |  10 +-
 docs/38.0.0/misc/tasks.html/index.html             |  11 +
 docs/38.0.0/multi-stage-query.html/index.html      |  11 +
 docs/38.0.0/multi-stage-query/api.html/index.html  |  11 +
 .../multi-stage-query/concepts.html/index.html     |  11 +
 .../multi-stage-query/concepts/index.html          |  86 +--
 .../multi-stage-query/examples.html/index.html     |  11 +
 .../multi-stage-query/examples/index.html          |  14 +-
 .../multi-stage-query/index.html                   |  23 +-
 .../multi-stage-query/known-issues.html/index.html |  11 +
 .../multi-stage-query/known-issues/index.html      |  26 +-
 .../multi-stage-query/reference.html/index.html    |  11 +
 .../multi-stage-query/reference/index.html         |  68 +--
 .../multi-stage-query/security.html/index.html     |  11 +
 .../multi-stage-query/security/index.html          |  22 +-
 docs/38.0.0/operations/alerts.html/index.html      |  11 +
 .../operations/alerts/index.html                   |  12 +-
 .../operations/api-reference.html/index.html       |  11 +
 docs/38.0.0/operations/api-reference/index.html    |  11 +
 docs/38.0.0/operations/auth-ldap.html/index.html   |  11 +
 .../operations/auth-ldap/index.html                |  28 +-
 docs/38.0.0/operations/auth.html/index.html        |  11 +
 docs/{latest => 38.0.0}/operations/auth/index.html |   8 +-
 .../basic-cluster-tuning.html/index.html           |  11 +
 .../operations/basic-cluster-tuning/index.html     |  30 +-
 .../clean-metadata-store.html/index.html           |  11 +
 .../operations/clean-metadata-store/index.html     |  26 +-
 .../deep-storage-migration.html/index.html         |  11 +
 .../operations/deep-storage-migration/index.html   |  18 +-
 .../operations/druid-console.html/index.html       |  11 +
 .../38.0.0/operations/dump-segment.html/index.html |  11 +
 .../operations/dump-segment/index.html             |  16 +-
 .../operations/durable-storage.html/index.html     |  11 +
 .../operations/durable-storage/index.html          |  16 +-
 .../dynamic-config-provider.html/index.html        |  11 +
 .../operations/dynamic-config-provider/index.html  |  14 +-
 .../operations/export-metadata.html/index.html     |  11 +
 .../operations/export-metadata/index.html          |  10 +-
 docs/38.0.0/operations/getting-started/index.html  |  11 +
 .../operations/high-availability.html/index.html   |  11 +
 .../operations/high-availability/index.html        |  12 +-
 .../operations/http-compression.html/index.html    |  11 +
 .../operations/http-compression/index.html         |  10 +-
 .../including-extensions.html/index.html           |  11 +
 .../insert-segment-to-db.html/index.html           |  11 +
 .../operations/insert-segment-to-db/index.html     |  10 +-
 docs/38.0.0/operations/java.html/index.html        |  11 +
 docs/{latest => 38.0.0}/operations/java/index.html |  26 +-
 docs/38.0.0/operations/kubernetes.html/index.html  |  11 +
 .../operations/kubernetes/index.html               |  12 +-
 .../operations/management-uis.html/index.html      |  11 +
 .../operations/metadata-migration.html/index.html  |  11 +
 .../operations/metadata-migration/index.html       |  18 +-
 docs/38.0.0/operations/metrics.html/index.html     |  11 +
 .../operations/metrics/index.html                  |  45 +-
 .../migrate-from-firehose.html/index.html          |  11 +
 .../operations/migrate-from-firehose/index.html    |  20 +-
 .../operations/mixed-workloads.html/index.html     |  11 +
 .../operations/mixed-workloads/index.html          |  32 +-
 .../38.0.0/operations/multitenancy.html/index.html |  11 +
 docs/38.0.0/operations/other-hadoop/index.html     |  11 +
 .../operations/password-provider.html/index.html   |  11 +
 .../operations/password-provider/index.html        |  12 +-
 .../operations/performance-faq.html/index.html     |  11 +
 docs/38.0.0/operations/pull-deps.html/index.html   |  11 +
 .../operations/pull-deps/index.html                |  24 +-
 .../operations/recommendations.html/index.html     |  11 +
 .../operations/request-logging.html/index.html     |  11 +
 .../operations/request-logging/index.html          |  42 +-
 .../operations/reset-cluster.html/index.html       |  11 +
 .../operations/reset-cluster/index.html            |  10 +-
 .../operations/rolling-updates.html/index.html     |  11 +
 .../operations/rolling-updates/index.html          |  10 +-
 .../operations/rule-configuration.html/index.html  |  11 +
 .../operations/rule-configuration/index.html       |  32 +-
 .../operations/security-overview.html/index.html   |  11 +
 .../operations/security-overview/index.html        |  28 +-
 .../operations/security-user-auth.html/index.html  |  11 +
 .../operations/security-user-auth/index.html       |  24 +-
 .../segment-optimization.html/index.html           |  11 +
 .../operations/segment-optimization/index.html     |  28 +-
 .../operations/single-server.html/index.html       |  11 +
 .../operations/single-server/index.html            |  10 +-
 docs/38.0.0/operations/tls-support.html/index.html |  11 +
 .../operations/tls-support/index.html              |  24 +-
 .../operations/use_sbt_to_build_fat_jar/index.html |  11 +
 docs/38.0.0/operations/web-console.html/index.html |  11 +
 .../operations/web-console/index.html              |  24 +-
 docs/38.0.0/querying.html/index.html               |  11 +
 docs/38.0.0/querying/aggregations.html/index.html  |  11 +
 .../querying/aggregations/index.html               |  51 +-
 docs/38.0.0/querying/arrays.html/index.html        |  11 +
 docs/{latest => 38.0.0}/querying/arrays/index.html |  40 +-
 docs/38.0.0/querying/caching.html/index.html       |  11 +
 .../{latest => 38.0.0}/querying/caching/index.html |  38 +-
 docs/38.0.0/querying/dart.html/index.html          |  11 +
 docs/{latest => 38.0.0}/querying/dart/index.html   |  14 +-
 docs/38.0.0/querying/datasource.html/index.html    |  11 +
 .../querying/datasource/index.html                 |  46 +-
 .../datasourcemetadataquery.html/index.html        |  11 +
 .../querying/datasourcemetadataquery/index.html    |  12 +-
 .../38.0.0/querying/dimensionspecs.html/index.html |  11 +
 .../querying/dimensionspecs/index.html             |  34 +-
 docs/38.0.0/querying/filters.html/index.html       |  11 +
 .../{latest => 38.0.0}/querying/filters/index.html |  64 +--
 docs/38.0.0/querying/geo.html/index.html           |  11 +
 docs/{latest => 38.0.0}/querying/geo/index.html    |  22 +-
 docs/38.0.0/querying/granularities.html/index.html |  11 +
 .../querying/granularities/index.html              |  22 +-
 docs/38.0.0/querying/groupbyquery.html/index.html  |  11 +
 .../querying/groupbyquery/index.html               |  40 +-
 docs/38.0.0/querying/having.html/index.html        |  11 +
 docs/{latest => 38.0.0}/querying/having/index.html |  16 +-
 docs/38.0.0/querying/hll-old.html/index.html       |  11 +
 .../{latest => 38.0.0}/querying/hll-old/index.html |  12 +-
 docs/{latest => 38.0.0}/querying/index.html        |  34 +-
 docs/38.0.0/querying/joins.html/index.html         |  11 +
 docs/{latest => 38.0.0}/querying/joins/index.html  |  22 +-
 .../kafka-extraction-namespace.html/index.html     |  11 +
 .../querying/kafka-extraction-namespace/index.html |  16 +-
 docs/38.0.0/querying/limitspec.html/index.html     |  11 +
 .../querying/limitspec/index.html                  |  14 +-
 .../querying/lookups-cached-global.html/index.html |  11 +
 .../querying/lookups-cached-global/index.html      |  24 +-
 docs/38.0.0/querying/lookups.html/index.html       |  11 +
 .../{latest => 38.0.0}/querying/lookups/index.html |  44 +-
 docs/38.0.0/querying/math-expr.html/index.html     |  11 +
 .../querying/math-expr/index.html                  |  41 +-
 .../multi-value-dimensions.html/index.html         |  11 +
 .../querying/multi-value-dimensions/index.html     |  46 +-
 docs/38.0.0/querying/multitenancy.html/index.html  |  11 +
 .../querying/multitenancy/index.html               |  20 +-
 .../38.0.0/querying/nested-columns.html/index.html |  11 +
 .../querying/nested-columns/index.html             |  40 +-
 docs/38.0.0/querying/optimizations.html/index.html |  11 +
 .../querying/post-aggregations.html/index.html     |  11 +
 .../querying/post-aggregations/index.html          |  24 +-
 docs/38.0.0/querying/projections.html/index.html   |  11 +
 .../querying/projections/index.html                |  16 +-
 .../query-context-reference.html/index.html        |  11 +
 .../querying/query-context-reference/index.html    |  30 +-
 docs/38.0.0/querying/query-context.html/index.html |  11 +
 .../querying/query-context/index.html              |  36 +-
 .../querying/query-deep-storage.html/index.html    |  11 +
 .../querying/query-deep-storage/index.html         |  26 +-
 .../querying/query-execution.html/index.html       |  11 +
 .../querying/query-execution/index.html            |  40 +-
 .../querying/query-processing.html/index.html      |  11 +
 .../querying/query-processing/index.html           |  18 +-
 docs/38.0.0/querying/scan-query.html/index.html    |  11 +
 .../querying/scan-query/index.html                 |  16 +-
 docs/38.0.0/querying/searchquery.html/index.html   |  11 +
 .../querying/searchquery/index.html                |  12 +-
 .../querying/searchqueryspec.html/index.html       |  11 +
 .../querying/segmentmetadataquery.html/index.html  |  11 +
 .../querying/segmentmetadataquery/index.html       |  16 +-
 docs/38.0.0/querying/select-query.html/index.html  |  11 +
 .../querying/select-query/index.html               |   8 +-
 .../38.0.0/querying/sorting-orders.html/index.html |  11 +
 .../querying/sorting-orders/index.html             |  14 +-
 .../querying/sql-aggregations.html/index.html      |  11 +
 .../querying/sql-aggregations/index.html           |  40 +-
 docs/38.0.0/querying/sql-api.html/index.html       |  11 +
 .../querying/sql-array-functions.html/index.html   |  11 +
 .../querying/sql-array-functions/index.html        |  16 +-
 .../38.0.0/querying/sql-data-types.html/index.html |  11 +
 .../querying/sql-data-types/index.html             |  48 +-
 docs/38.0.0/querying/sql-functions.html/index.html |  11 +
 .../querying/sql-functions/index.html              | 502 ++++++++---------
 docs/38.0.0/querying/sql-jdbc.html/index.html      |  11 +
 .../querying/sql-json-functions.html/index.html    |  11 +
 .../querying/sql-json-functions/index.html         |  12 +-
 .../querying/sql-metadata-tables.html/index.html   |  11 +
 .../querying/sql-metadata-tables/index.html        |  34 +-
 .../index.html                                     |  11 +
 .../sql-multivalue-string-functions/index.html     |  18 +-
 docs/38.0.0/querying/sql-operators.html/index.html |  11 +
 .../querying/sql-operators/index.html              |  20 +-
 .../querying/sql-query-context.html/index.html     |  11 +
 .../querying/sql-query-context/index.html          |  22 +-
 docs/38.0.0/querying/sql-scalar.html/index.html    |  11 +
 .../querying/sql-scalar/index.html                 |  36 +-
 .../querying/sql-translation.html/index.html       |  11 +
 .../querying/sql-translation/index.html            |  44 +-
 .../querying/sql-window-functions.html/index.html  |  11 +
 .../querying/sql-window-functions/index.html       |  14 +-
 docs/38.0.0/querying/sql.html/index.html           |  11 +
 docs/{latest => 38.0.0}/querying/sql/index.html    |  90 +--
 .../querying/timeboundaryquery.html/index.html     |  11 +
 .../querying/timeboundaryquery/index.html          |  12 +-
 .../querying/timeseriesquery.html/index.html       |  11 +
 .../querying/timeseriesquery/index.html            |  16 +-
 .../querying/tips-good-queries.html/index.html     |  11 +
 .../querying/tips-good-queries/index.html          |  28 +-
 .../38.0.0/querying/topnmetricspec.html/index.html |  11 +
 .../querying/topnmetricspec/index.html             |  18 +-
 docs/38.0.0/querying/topnquery.html/index.html     |  11 +
 .../querying/topnquery/index.html                  |  20 +-
 .../querying/troubleshooting.html/index.html       |  11 +
 .../querying/troubleshooting/index.html            |  16 +-
 docs/38.0.0/querying/using-caching.html/index.html |  11 +
 .../querying/using-caching/index.html              |  28 +-
 .../querying/virtual-columns.html/index.html       |  11 +
 .../querying/virtual-columns/index.html            |  24 +-
 .../migr-ansi-sql-null.html/index.html             |  11 +
 .../release-info/migr-ansi-sql-null/index.html     |  18 +-
 .../migr-front-coded-dict.html/index.html          |  11 +
 .../release-info/migr-front-coded-dict/index.html  |  14 +-
 .../release-info/migr-mvd-array.html/index.html    |  11 +
 .../release-info/migr-mvd-array/index.html         |  32 +-
 .../migr-subquery-limit.html/index.html            |  11 +
 .../release-info/migr-subquery-limit/index.html    |  18 +-
 .../release-info/migration-guide.html/index.html   |  11 +
 .../release-info/migration-guide/index.html        |  18 +-
 .../release-info/release-notes.html/index.html     |  11 +
 docs/38.0.0/release-info/release-notes/index.html  | 340 ++++++++++++
 .../release-info/upgrade-notes.html/index.html     |  11 +
 .../release-info/upgrade-notes/index.html          |  67 ++-
 docs/38.0.0/tutorials.html/index.html              |  11 +
 .../booting-a-production-cluster.html/index.html   |  11 +
 docs/38.0.0/tutorials/cluster.html/index.html      |  11 +
 .../tutorials/cluster/index.html                   |  46 +-
 docs/38.0.0/tutorials/docker.html/index.html       |  11 +
 .../{latest => 38.0.0}/tutorials/docker/index.html |  30 +-
 docs/38.0.0/tutorials/examples.html/index.html     |  11 +
 docs/38.0.0/tutorials/firewall.html/index.html     |  11 +
 docs/{latest => 38.0.0}/tutorials/index.html       |  50 +-
 .../tutorials/ingestion-streams.html/index.html    |  11 +
 docs/38.0.0/tutorials/ingestion.html/index.html    |  11 +
 docs/38.0.0/tutorials/quickstart.html/index.html   |  11 +
 .../tutorial-a-first-look-at-druid.html/index.html |  11 +
 .../tutorial-all-about-queries.html/index.html     |  11 +
 .../tutorials/tutorial-append-data.html/index.html |  11 +
 .../tutorials/tutorial-append-data/index.html      |  24 +-
 .../tutorials/tutorial-batch-hadoop/index.html     |  11 +
 .../tutorial-batch-native.html/index.html          |  11 +
 .../tutorials/tutorial-batch-native/index.html     |  18 +-
 .../tutorials/tutorial-batch.html/index.html       |  11 +
 .../tutorials/tutorial-batch/index.html            |  34 +-
 .../tutorials/tutorial-compaction.html/index.html  |  11 +
 .../tutorials/tutorial-compaction/index.html       |  34 +-
 .../tutorials/tutorial-delete-data.html/index.html |  11 +
 .../tutorials/tutorial-delete-data/index.html      |  16 +-
 .../tutorials/tutorial-extern.html/index.html      |  11 +
 .../tutorials/tutorial-extern/index.html           |  26 +-
 .../tutorial-ingestion-spec.html/index.html        |  11 +
 .../tutorials/tutorial-ingestion-spec/index.html   |  22 +-
 .../38.0.0/tutorials/tutorial-jdbc.html/index.html |  11 +
 .../tutorials/tutorial-jdbc/index.html             |  10 +-
 .../tutorials/tutorial-kafka.html/index.html       |  11 +
 .../tutorials/tutorial-kafka/index.html            |  22 +-
 .../tutorial-kerberos-hadoop.html/index.html       |  11 +
 .../tutorials/tutorial-kerberos-hadoop/index.html  |  10 +-
 .../tutorials/tutorial-latest-by.html/index.html   |  11 +
 .../tutorials/tutorial-latest-by/index.html        |  20 +-
 .../tutorial-loading-batch-data.html/index.html    |  11 +
 .../index.html                                     |  11 +
 .../tutorial-msq-convert-spec.html/index.html      |  11 +
 .../tutorials/tutorial-msq-convert-spec/index.html |  15 +-
 .../tutorials/tutorial-msq-extern.html/index.html  |  11 +
 .../tutorials/tutorial-msq-extern/index.html       |  17 +-
 .../tutorial-query-deep-storage.html/index.html    |  11 +
 .../tutorial-query-deep-storage/index.html         |  20 +-
 .../tutorials/tutorial-query.html/index.html       |  11 +
 .../tutorials/tutorial-query/index.html            |  26 +-
 .../tutorials/tutorial-retention.html/index.html   |  11 +
 .../tutorials/tutorial-retention/index.html        |  22 +-
 .../tutorials/tutorial-rollup.html/index.html      |  11 +
 .../tutorials/tutorial-rollup/index.html           |  26 +-
 .../tutorial-sketches-theta.html/index.html        |  11 +
 .../tutorials/tutorial-sketches-theta/index.html   |  32 +-
 .../tutorials/tutorial-sql-null.html/index.html    |  11 +
 .../tutorials/tutorial-sql-null/index.html         |  14 +-
 .../tutorial-sql-query-view.html/index.html        |  11 +
 .../tutorials/tutorial-sql-query-view/index.html   |  36 +-
 .../tutorial-the-druid-cluster.html/index.html     |  11 +
 .../tutorials/tutorial-tranquility.html/index.html |  11 +
 .../tutorials/tutorial-transform-spec/index.html   |  11 +
 .../tutorials/tutorial-transform.html/index.html   |  11 +
 .../tutorials/tutorial-transform/index.html        |  24 +-
 .../tutorial-unnest-arrays.html/index.html         |  11 +
 .../tutorials/tutorial-unnest-arrays/index.html    |  18 +-
 .../tutorials/tutorial-update-data.html/index.html |  11 +
 .../tutorials/tutorial-update-data/index.html      |  36 +-
 .../automatic-compaction-api/index.html            |   6 +-
 .../api-reference/data-management-api/index.html   |   6 +-
 .../dynamic-configuration-api/index.html           |  32 +-
 docs/latest/api-reference/index.html               |   6 +-
 .../api-reference/json-querying-api/index.html     |   6 +-
 .../api-reference/legacy-metadata-api/index.html   |   6 +-
 docs/latest/api-reference/lookups-api/index.html   |   6 +-
 .../api-reference/retention-rules-api/index.html   |   6 +-
 .../api-reference/service-status-api/index.html    |  13 +-
 docs/latest/api-reference/sql-api/index.html       |   6 +-
 .../api-reference/sql-ingestion-api/index.html     |  13 +-
 docs/latest/api-reference/sql-jdbc/index.html      |   6 +-
 .../latest/api-reference/supervisor-api/index.html |  73 ++-
 docs/latest/api-reference/tasks-api/index.html     |   8 +-
 .../comparisons/druid-vs-elasticsearch/index.html  |   4 +-
 .../comparisons/druid-vs-key-value/index.html      |   4 +-
 docs/latest/comparisons/druid-vs-kudu/index.html   |   4 +-
 .../comparisons/druid-vs-redshift/index.html       |   4 +-
 docs/latest/comparisons/druid-vs-spark/index.html  |   4 +-
 .../comparisons/druid-vs-sql-on-hadoop/index.html  |   4 +-
 docs/latest/configuration/extensions/index.html    |   8 +-
 .../configuration/human-readable-byte/index.html   |   4 +-
 docs/latest/configuration/index.html               |  58 +-
 docs/latest/configuration/logging/index.html       |  10 +-
 .../automatic-compaction/index.html                |   6 +-
 .../cascading-reindexing/index.html                |   4 +-
 docs/latest/data-management/compaction/index.html  |   6 +-
 docs/latest/data-management/delete/index.html      |  15 +-
 docs/latest/data-management/index.html             |   6 +-
 .../data-management/manual-compaction/index.html   |   6 +-
 .../data-management/schema-changes/index.html      |   6 +-
 docs/latest/data-management/update/index.html      |   6 +-
 docs/latest/design/architecture/index.html         |   6 +-
 docs/latest/design/broker/index.html               |  10 +-
 docs/latest/design/coordinator/index.html          |  22 +-
 docs/latest/design/deep-storage/index.html         |   6 +-
 .../extensions-contrib/dropwizard/index.html       |   4 +-
 docs/latest/design/historical/index.html           |  12 +-
 docs/latest/design/index.html                      |   6 +-
 docs/latest/design/indexer/index.html              |   8 +-
 docs/latest/design/indexing-service/index.html     |   6 +-
 docs/latest/design/metadata-storage/index.html     |   6 +-
 docs/latest/design/middlemanager/index.html        |   6 +-
 docs/latest/design/overlord/index.html             |   6 +-
 docs/latest/design/peons/index.html                |   6 +-
 docs/latest/design/router/index.html               |   6 +-
 docs/latest/design/segments/index.html             |   6 +-
 docs/latest/design/storage/index.html              |   4 +-
 docs/latest/design/zookeeper/index.html            |  34 +-
 docs/latest/development/build/index.html           |   8 +-
 .../development/contribute-to-docs/index.html      |   6 +-
 docs/latest/development/experimental/index.html    |   4 +-
 .../extensions-contrib/aliyun-oss/index.html       |   4 +-
 .../ambari-metrics-emitter/index.html              |   4 +-
 .../extensions-contrib/cassandra/index.html        |   4 +-
 .../extensions-contrib/cloudfiles/index.html       |   4 +-
 .../compressed-big-decimal/index.html              |   4 +-
 .../extensions-contrib/consul/index.html           |   6 +-
 .../ddsketch-quantiles/index.html                  |   4 +-
 .../extensions-contrib/delta-lake/index.html       |   4 +-
 .../extensions-contrib/distinctcount/index.html    |   4 +-
 .../druid-exact-count-bitmap/index.html            |   4 +-
 .../druid-ranger-security/index.html               |   6 +-
 .../extensions-contrib/gce-extensions/index.html   |   4 +-
 .../extensions-contrib/graphite/index.html         |   4 +-
 .../extensions-contrib/iceberg/index.html          |   6 +-
 .../extensions-contrib/influx/index.html           |   4 +-
 .../extensions-contrib/influxdb-emitter/index.html |   4 +-
 .../extensions-contrib/kafka-emitter/index.html    |   4 +-
 .../momentsketch-quantiles/index.html              |   4 +-
 .../moving-average-query/index.html                |   4 +-
 .../openlineage-emitter.html/index.html            |  11 +
 .../openlineage-emitter/index.html                 |  34 ++
 .../extensions-contrib/opentsdb-emitter/index.html |   4 +-
 .../extensions-contrib/prometheus/index.html       |   4 +-
 .../rabbit-super-stream-injestion/index.html       |   4 +-
 .../extensions-contrib/redis-cache/index.html      |   6 +-
 .../spectator-histogram/index.html                 |   4 +-
 .../extensions-contrib/sqlserver/index.html        |   6 +-
 .../extensions-contrib/statsd/index.html           |   4 +-
 .../tdigestsketch-quantiles/index.html             |  17 +-
 .../extensions-contrib/thrift/index.html           |   4 +-
 .../extensions-contrib/time-min-max/index.html     |   4 +-
 .../approximate-histograms/index.html              |   6 +-
 .../development/extensions-core/avro/index.html    |   6 +-
 .../development/extensions-core/azure/index.html   |   6 +-
 .../extensions-core/bloom-filter/index.html        |   6 +-
 .../development/extensions-core/catalog/index.html |   4 +-
 .../datasketches-extension/index.html              |   6 +-
 .../extensions-core/datasketches-hll/index.html    |   6 +-
 .../extensions-core/datasketches-kll/index.html    |   6 +-
 .../datasketches-quantiles/index.html              |   6 +-
 .../extensions-core/datasketches-theta/index.html  |   6 +-
 .../extensions-core/datasketches-tuple/index.html  |   6 +-
 .../extensions-core/druid-aws-rds/index.html       |   4 +-
 .../druid-basic-security/index.html                |   6 +-
 .../extensions-core/druid-kerberos/index.html      |   6 +-
 .../extensions-core/druid-lookups/index.html       |   6 +-
 .../extensions-core/druid-pac4j/index.html         |   8 +-
 .../extensions-core/examples/index.html            |   6 +-
 .../development/extensions-core/google/index.html  |   6 +-
 .../development/extensions-core/hdfs/index.html    |   6 +-
 .../extensions-core/k8s-jobs/index.html            |  74 ++-
 .../extensions-core/kubernetes/index.html          |   6 +-
 .../development/extensions-core/mysql/index.html   |   6 +-
 .../development/extensions-core/orc/index.html     |   6 +-
 .../development/extensions-core/parquet/index.html |   8 +-
 .../extensions-core/postgresql/index.html          |   6 +-
 .../extensions-core/protobuf/index.html            |   6 +-
 .../development/extensions-core/s3/index.html      |   6 +-
 .../simple-client-sslcontext/index.html            |   6 +-
 .../development/extensions-core/stats/index.html   |   6 +-
 .../extensions-core/test-stats/index.html          |   6 +-
 docs/latest/development/javascript/index.html      |   6 +-
 docs/latest/development/modules/index.html         |   4 +-
 docs/latest/development/overview/index.html        |   4 +-
 docs/latest/development/versioning/index.html      |   4 +-
 .../ingestion/concurrent-append-replace/index.html |   4 +-
 docs/latest/ingestion/data-formats/index.html      |  18 +-
 docs/latest/ingestion/faq/index.html               |   4 +-
 docs/latest/ingestion/hadoop/index.html            |   8 +-
 docs/latest/ingestion/index.html                   |   6 +-
 docs/latest/ingestion/ingestion-spec/index.html    |  11 +-
 docs/latest/ingestion/input-sources/index.html     |   8 +-
 docs/latest/ingestion/kafka-ingestion/index.html   |  31 +-
 docs/latest/ingestion/kinesis-ingestion/index.html |   6 +-
 .../ingestion/native-batch-firehose/index.html     |   4 +-
 .../ingestion/native-batch-simple-task/index.html  |   4 +-
 docs/latest/ingestion/native-batch/index.html      |  10 +-
 docs/latest/ingestion/partitioning/index.html      |   4 +-
 docs/latest/ingestion/rollup/index.html            |   4 +-
 docs/latest/ingestion/schema-design/index.html     |  10 +-
 docs/latest/ingestion/schema-model/index.html      |   4 +-
 .../ingestion/standalone-realtime/index.html       |   6 +-
 docs/latest/ingestion/streaming/index.html         |   8 +-
 docs/latest/ingestion/supervisor/index.html        |  54 +-
 docs/latest/ingestion/tasks/index.html             |   4 +-
 docs/latest/ingestion/tranquility/index.html       |   4 +-
 docs/latest/misc/papers-and-talks/index.html       |   4 +-
 docs/latest/multi-stage-query/concepts/index.html  |   6 +-
 docs/latest/multi-stage-query/examples/index.html  |   4 +-
 docs/latest/multi-stage-query/index.html           |   7 +-
 .../multi-stage-query/known-issues/index.html      |   4 +-
 docs/latest/multi-stage-query/reference/index.html |  14 +-
 docs/latest/multi-stage-query/security/index.html  |  10 +-
 docs/latest/operations/alerts/index.html           |   6 +-
 docs/latest/operations/auth-ldap/index.html        |   6 +-
 docs/latest/operations/auth/index.html             |   6 +-
 .../operations/basic-cluster-tuning/index.html     |   6 +-
 .../operations/clean-metadata-store/index.html     |   6 +-
 .../operations/deep-storage-migration/index.html   |   4 +-
 docs/latest/operations/dump-segment/index.html     |   6 +-
 docs/latest/operations/durable-storage/index.html  |   4 +-
 .../operations/dynamic-config-provider/index.html  |   4 +-
 docs/latest/operations/export-metadata/index.html  |   4 +-
 .../latest/operations/high-availability/index.html |   8 +-
 docs/latest/operations/http-compression/index.html |   6 +-
 .../operations/insert-segment-to-db/index.html     |   6 +-
 docs/latest/operations/java/index.html             |  24 +-
 docs/latest/operations/kubernetes/index.html       |   8 +-
 .../operations/metadata-migration/index.html       |   4 +-
 docs/latest/operations/metrics/index.html          |  23 +-
 .../operations/migrate-from-firehose/index.html    |   4 +-
 docs/latest/operations/mixed-workloads/index.html  |   6 +-
 .../latest/operations/password-provider/index.html |   6 +-
 docs/latest/operations/pull-deps/index.html        |  18 +-
 docs/latest/operations/request-logging/index.html  |   6 +-
 docs/latest/operations/reset-cluster/index.html    |   6 +-
 docs/latest/operations/rolling-updates/index.html  |   6 +-
 .../operations/rule-configuration/index.html       |   6 +-
 .../latest/operations/security-overview/index.html |   8 +-
 .../operations/security-user-auth/index.html       |   4 +-
 .../operations/segment-optimization/index.html     |   6 +-
 docs/latest/operations/single-server/index.html    |   4 +-
 docs/latest/operations/tls-support/index.html      |   6 +-
 docs/latest/operations/web-console/index.html      |   6 +-
 docs/latest/querying/aggregations/index.html       |  13 +-
 docs/latest/querying/arrays/index.html             |   8 +-
 docs/latest/querying/caching/index.html            |   8 +-
 docs/latest/querying/dart/index.html               |   6 +-
 docs/latest/querying/datasource/index.html         |   6 +-
 .../querying/datasourcemetadataquery/index.html    |   8 +-
 docs/latest/querying/dimensionspecs/index.html     |   8 +-
 docs/latest/querying/filters/index.html            |   8 +-
 docs/latest/querying/geo/index.html                |   8 +-
 docs/latest/querying/granularities/index.html      |   8 +-
 docs/latest/querying/groupbyquery/index.html       |  12 +-
 docs/latest/querying/having/index.html             |   8 +-
 docs/latest/querying/hll-old/index.html            |   6 +-
 docs/latest/querying/index.html                    |   6 +-
 docs/latest/querying/joins/index.html              |   6 +-
 .../querying/kafka-extraction-namespace/index.html |   8 +-
 docs/latest/querying/limitspec/index.html          |   6 +-
 .../querying/lookups-cached-global/index.html      |   6 +-
 docs/latest/querying/lookups/index.html            |   6 +-
 docs/latest/querying/math-expr/index.html          |  19 +-
 .../querying/multi-value-dimensions/index.html     |   8 +-
 docs/latest/querying/multitenancy/index.html       |   6 +-
 docs/latest/querying/nested-columns/index.html     |   6 +-
 docs/latest/querying/post-aggregations/index.html  |   8 +-
 docs/latest/querying/projections/index.html        |   4 +-
 .../querying/query-context-reference/index.html    |   8 +-
 docs/latest/querying/query-context/index.html      |   6 +-
 docs/latest/querying/query-deep-storage/index.html |   4 +-
 docs/latest/querying/query-execution/index.html    |   4 +-
 docs/latest/querying/query-processing/index.html   |   6 +-
 docs/latest/querying/scan-query/index.html         |   8 +-
 docs/latest/querying/searchquery/index.html        |   8 +-
 .../querying/segmentmetadataquery/index.html       |   8 +-
 docs/latest/querying/select-query/index.html       |   6 +-
 docs/latest/querying/sorting-orders/index.html     |   6 +-
 docs/latest/querying/sql-aggregations/index.html   |   6 +-
 .../latest/querying/sql-array-functions/index.html |   6 +-
 docs/latest/querying/sql-data-types/index.html     |   6 +-
 docs/latest/querying/sql-functions/index.html      |   8 +-
 docs/latest/querying/sql-json-functions/index.html |   4 +-
 .../latest/querying/sql-metadata-tables/index.html |  10 +-
 .../sql-multivalue-string-functions/index.html     |   6 +-
 docs/latest/querying/sql-operators/index.html      |   6 +-
 docs/latest/querying/sql-query-context/index.html  |   8 +-
 docs/latest/querying/sql-scalar/index.html         |   6 +-
 docs/latest/querying/sql-translation/index.html    |   6 +-
 .../querying/sql-window-functions/index.html       |   8 +-
 docs/latest/querying/sql/index.html                |   8 +-
 docs/latest/querying/timeboundaryquery/index.html  |   8 +-
 docs/latest/querying/timeseriesquery/index.html    |   8 +-
 docs/latest/querying/tips-good-queries/index.html  |   6 +-
 docs/latest/querying/topnmetricspec/index.html     |   8 +-
 docs/latest/querying/topnquery/index.html          |   8 +-
 docs/latest/querying/troubleshooting/index.html    |   4 +-
 docs/latest/querying/using-caching/index.html      |   4 +-
 docs/latest/querying/virtual-columns/index.html    |   8 +-
 .../release-info/migr-ansi-sql-null/index.html     |   6 +-
 .../release-info/migr-front-coded-dict/index.html  |   6 +-
 docs/latest/release-info/migr-mvd-array/index.html |   4 +-
 .../release-info/migr-subquery-limit/index.html    |   4 +-
 .../latest/release-info/migration-guide/index.html |   6 +-
 docs/latest/release-info/release-notes/index.html  | 606 ++++++++++-----------
 docs/latest/release-info/upgrade-notes/index.html  |  61 ++-
 docs/latest/tutorials/cluster/index.html           |  16 +-
 docs/latest/tutorials/docker/index.html            |  16 +-
 docs/latest/tutorials/index.html                   |  22 +-
 .../tutorials/tutorial-append-data/index.html      |   8 +-
 .../tutorials/tutorial-batch-native/index.html     |   6 +-
 docs/latest/tutorials/tutorial-batch/index.html    |  30 +-
 .../tutorials/tutorial-compaction/index.html       |  16 +-
 .../tutorials/tutorial-delete-data/index.html      |  10 +-
 docs/latest/tutorials/tutorial-extern/index.html   |   8 +-
 .../tutorials/tutorial-ingestion-spec/index.html   |  12 +-
 docs/latest/tutorials/tutorial-jdbc/index.html     |   4 +-
 docs/latest/tutorials/tutorial-kafka/index.html    |  10 +-
 .../tutorials/tutorial-kerberos-hadoop/index.html  |   4 +-
 .../latest/tutorials/tutorial-latest-by/index.html |   6 +-
 .../tutorials/tutorial-msq-convert-spec/index.html |   9 +-
 .../tutorials/tutorial-msq-extern/index.html       |   9 +-
 .../tutorial-query-deep-storage/index.html         |   4 +-
 docs/latest/tutorials/tutorial-query/index.html    |   6 +-
 .../latest/tutorials/tutorial-retention/index.html |  10 +-
 docs/latest/tutorials/tutorial-rollup/index.html   |   6 +-
 .../tutorials/tutorial-sketches-theta/index.html   |   6 +-
 docs/latest/tutorials/tutorial-sql-null/index.html |   6 +-
 .../tutorials/tutorial-sql-query-view/index.html   |   6 +-
 .../latest/tutorials/tutorial-transform/index.html |   6 +-
 .../tutorials/tutorial-unnest-arrays/index.html    |   4 +-
 .../tutorials/tutorial-update-data/index.html      |   8 +-
 downloads/index.html                               |  14 +-
 druid-powered/index.html                           |   4 +-
 faq/index.html                                     |   4 +-
 index.html                                         |   6 +-
 js/version.js                                      |   8 +-
 libraries/index.html                               |   7 +-
 licensing/index.html                               |   4 +-
 lunr-index-1790866082241.json                      |   1 +
 lunr-index-1790866121654.json                      |   1 +
 lunr-index.json                                    |   2 +-
 search-doc-1790866082241.json                      |   1 +
 search-doc-1790866121654.json                      |   1 +
 search-doc.json                                    |   2 +-
 sitemap.xml                                        |   2 +-
 technology/index.html                              |   4 +-
 use-cases/index.html                               |   4 +-
 1410 files changed, 10358 insertions(+), 4766 deletions(-)

diff --git a/404.html b/404.html
index ab087e442..9b18582a9 100644
--- a/404.html
+++ b/404.html
@@ -5,8 +5,8 @@
 <meta name="generator" content="Docusaurus v3.7.0">
 <title data-rh="true">Page Not Found | Apache® Druid</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://druid.apache.org/img/druid_nav.png"><meta data-rh="true" name="twitter:image" content="https://druid.apache.org/img/druid_nav.png"><meta data-rh="true" property="og:url" content="https://druid.apache.org/404.html"><meta d [...]
 <script src="/js/clipboard.min.js"></script><link rel="stylesheet" href="/assets/css/styles.f3140859.css">
-<script src="/assets/js/runtime~main.3e1f3e8c.js" defer="defer"></script>
-<script src="/assets/js/main.b85ce480.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.8d7dd0d5.js" defer="defer"></script>
+<script src="/assets/js/main.c51034ff.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const n=new URLSearchParams(window.location.search).entries();for(var[t,e]of n)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentEle [...]
diff --git a/assets/js/01019b7b.e99cc2a0.js b/assets/js/01019b7b.e99cc2a0.js
new file mode 100644
index 000000000..15fc9fedd
--- /dev/null
+++ b/assets/js/01019b7b.e99cc2a0.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[7357],{9326:(e,r,n)=>{n.r(r),n.d(r,{assets:()=>a,contentTitle:()=>d,default:()=>h,frontMatter:()=>t,metadata:()=>s,toc:()=>l});const s=JSON.parse('{"id":"tutorials/cluster","title":"Clustered deployment","description":"\x3c!--","source":"@site/docs/latest/tutorials/cluster.md","sourceDirName":"tutorials","slug":"/tutorials/cluster","permalink":"/docs/latest/tutorials/cluster","draft":false,"unlisted":false,"tags":[],"version": [...]
\ No newline at end of file
diff --git a/assets/js/01286a6a.e77dcd3a.js b/assets/js/01286a6a.e77dcd3a.js
new file mode 100644
index 000000000..1b4d503c9
--- /dev/null
+++ b/assets/js/01286a6a.e77dcd3a.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[9980],{28453:(e,t,n)=>{n.d(t,{R:()=>a,x:()=>c});var o=n(96540);const s={},r=o.createContext(s);function a(e){const t=o.useContext(r);return o.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function c(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:a(e.components),o.createElement(r.Provider,{value:t},e.children)}},66340:(e,t,n)=>{n.r(t),n.d(t,{as [...]
\ No newline at end of file
diff --git a/assets/js/014c2dae.3142e4c5.js b/assets/js/014c2dae.3142e4c5.js
new file mode 100644
index 000000000..5a4542b89
--- /dev/null
+++ b/assets/js/014c2dae.3142e4c5.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[3369],{28453:(e,n,i)=>{i.d(n,{R:()=>s,x:()=>l});var t=i(96540);const a={},r=t.createContext(a);function s(e){const n=t.useContext(r);return t.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function l(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(a):e.components||a:s(e.components),t.createElement(r.Provider,{value:n},e.children)}},98852:(e,n,i)=>{i.r(n),i.d(n,{as [...]
\ No newline at end of file
diff --git a/assets/js/02626afc.22dc4772.js b/assets/js/02626afc.22dc4772.js
new file mode 100644
index 000000000..9e8e48b38
--- /dev/null
+++ b/assets/js/02626afc.22dc4772.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[8895],{28453:(e,n,t)=>{t.d(n,{R:()=>r,x:()=>a});var s=t(96540);const i={},d=s.createContext(i);function r(e){const n=s.useContext(d);return s.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function a(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:r(e.components),s.createElement(d.Provider,{value:n},e.children)}},32458:(e,n,t)=>{t.r(n),t.d(n,{as [...]
\ No newline at end of file
diff --git a/assets/js/035ea2c4.1c7eba73.js b/assets/js/035ea2c4.1c7eba73.js
new file mode 100644
index 000000000..958a15dac
--- /dev/null
+++ b/assets/js/035ea2c4.1c7eba73.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[2082],{28453:(e,s,i)=>{i.d(s,{R:()=>o,x:()=>r});var t=i(96540);const n={},a=t.createContext(n);function o(e){const s=t.useContext(a);return t.useMemo((function(){return"function"==typeof e?e(s):{...s,...e}}),[s,e])}function r(e){let s;return s=e.disableParentContext?"function"==typeof e.components?e.components(n):e.components||n:o(e.components),t.createElement(a.Provider,{value:s},e.children)}},29181:(e,s,i)=>{i.r(s),i.d(s,{as [...]
\ No newline at end of file
diff --git a/assets/js/0376c95c.aa54f3f3.js b/assets/js/0376c95c.aa54f3f3.js
new file mode 100644
index 000000000..245cc2dcd
--- /dev/null
+++ b/assets/js/0376c95c.aa54f3f3.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[6079],{28453:(e,t,n)=>{n.d(t,{R:()=>c,x:()=>a});var r=n(96540);const s={},o=r.createContext(s);function c(e){const t=r.useContext(o);return r.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function a(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:c(e.components),r.createElement(o.Provider,{value:t},e.children)}},52476:(e,t,n)=>{n.r(t),n.d(t,{as [...]
\ No newline at end of file
diff --git a/assets/js/03cd90d6.856e1f0a.js b/assets/js/03cd90d6.856e1f0a.js
new file mode 100644
index 000000000..b84b63d81
--- /dev/null
+++ b/assets/js/03cd90d6.856e1f0a.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[444],{28453:(e,n,r)=>{r.d(n,{R:()=>d,x:()=>c});var s=r(96540);const i={},l=s.createContext(i);function d(e){const n=s.useContext(l);return s.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function c(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:d(e.components),s.createElement(l.Provider,{value:n},e.children)}},36140:(e,n,r)=>{r.r(n),r.d(n,{ass [...]
\ No newline at end of file
diff --git a/assets/js/051a271c.e5876905.js b/assets/js/051a271c.e5876905.js
new file mode 100644
index 000000000..632563df5
--- /dev/null
+++ b/assets/js/051a271c.e5876905.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[6721],{10288:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>c,contentTitle:()=>d,default:()=>l,frontMatter:()=>o,metadata:()=>s,toc:()=>a});const s=JSON.parse('{"id":"development/extensions-contrib/prometheus","title":"Prometheus Emitter","description":"\x3c!--","source":"@site/docs/38.0.0/development/extensions-contrib/prometheus.md","sourceDirName":"development/extensions-contrib","slug":"/development/extensions-contrib/prometheus","per [...]
\ No newline at end of file
diff --git a/assets/js/05283ef2.f8a75c61.js b/assets/js/05283ef2.f8a75c61.js
new file mode 100644
index 000000000..ced5cd6f2
--- /dev/null
+++ b/assets/js/05283ef2.f8a75c61.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[2352],{28453:(e,t,r)=>{r.d(t,{R:()=>d,x:()=>c});var i=r(96540);const s={},n=i.createContext(s);function d(e){const t=i.useContext(n);return i.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function c(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:d(e.components),i.createElement(n.Provider,{value:t},e.children)}},90306:(e,t,r)=>{r.r(t),r.d(t,{as [...]
\ No newline at end of file
diff --git a/assets/js/05bce26a.cd3f8382.js b/assets/js/05bce26a.cd3f8382.js
new file mode 100644
index 000000000..17a52303e
--- /dev/null
+++ b/assets/js/05bce26a.cd3f8382.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[8985],{28453:(e,t,n)=>{n.d(t,{R:()=>a,x:()=>d});var o=n(96540);const s={},i=o.createContext(s);function a(e){const t=o.useContext(i);return o.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function d(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:a(e.components),o.createElement(i.Provider,{value:t},e.children)}},49393:(e,t,n)=>{n.r(t),n.d(t,{as [...]
\ No newline at end of file
diff --git a/assets/js/05f806af.b6280a55.js b/assets/js/05f806af.b6280a55.js
new file mode 100644
index 000000000..7cc2731c2
--- /dev/null
+++ b/assets/js/05f806af.b6280a55.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[3191],{28453:(e,n,s)=>{s.d(n,{R:()=>d,x:()=>l});var t=s(96540);const i={},r=t.createContext(i);function d(e){const n=t.useContext(r);return t.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function l(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:d(e.components),t.createElement(r.Provider,{value:n},e.children)}},98833:(e,n,s)=>{s.r(n),s.d(n,{as [...]
\ No newline at end of file
diff --git a/assets/js/06350a84.aee9fc07.js b/assets/js/06350a84.aee9fc07.js
new file mode 100644
index 000000000..3e5e1a6ee
--- /dev/null
+++ b/assets/js/06350a84.aee9fc07.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[6376],{6424:(e,t,s)=>{s.d(t,{A:()=>n});const n=s.p+"assets/images/tutorial-theta-06-4b588f7737377421937ed369bfe9a94e.png"},27553:(e,t,s)=>{s.d(t,{A:()=>n});const n=s.p+"assets/images/tutorial-theta-07-8c74460cb2ed72066ca3b0b3470657e0.png"},28453:(e,t,s)=>{s.d(t,{R:()=>o,x:()=>r});var n=s(96540);const i={},a=n.createContext(i);function o(e){const t=n.useContext(a);return n.useMemo((function(){return"function"==typeof e?e(t):{.. [...]
\ No newline at end of file
diff --git a/assets/js/0662c988.2789939c.js b/assets/js/0662c988.2789939c.js
new file mode 100644
index 000000000..1e3f37005
--- /dev/null
+++ b/assets/js/0662c988.2789939c.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[2685],{28453:(e,n,t)=>{t.d(n,{R:()=>s,x:()=>o});var i=t(96540);const r={},a=i.createContext(r);function s(e){const n=i.useContext(a);return i.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function o(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:s(e.components),i.createElement(a.Provider,{value:n},e.children)}},92919:(e,n,t)=>{t.r(n),t.d(n,{as [...]
\ No newline at end of file
diff --git a/assets/js/06ba3067.9d66bbb2.js b/assets/js/06ba3067.9d66bbb2.js
new file mode 100644
index 000000000..678fe25a4
--- /dev/null
+++ b/assets/js/06ba3067.9d66bbb2.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[2862],{28453:(e,n,t)=>{t.d(n,{R:()=>r,x:()=>a});var s=t(96540);const o={},i=s.createContext(o);function r(e){const n=s.useContext(i);return s.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function a(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(o):e.components||o:r(e.components),s.createElement(i.Provider,{value:n},e.children)}},30660:(e,n,t)=>{t.d(n,{A:()=>s}) [...]
\ No newline at end of file
diff --git a/assets/js/06bb6c62.ce1bf586.js b/assets/js/06bb6c62.ce1bf586.js
new file mode 100644
index 000000000..7f8035a72
--- /dev/null
+++ b/assets/js/06bb6c62.ce1bf586.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[8044],{28453:(e,r,n)=>{n.d(r,{R:()=>d,x:()=>c});var s=n(96540);const t={},i=s.createContext(t);function d(e){const r=s.useContext(i);return s.useMemo((function(){return"function"==typeof e?e(r):{...r,...e}}),[r,e])}function c(e){let r;return r=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:d(e.components),s.createElement(i.Provider,{value:r},e.children)}},59383:(e,r,n)=>{n.r(r),n.d(r,{as [...]
\ No newline at end of file
diff --git a/assets/js/06e4134d.f2364819.js b/assets/js/06e4134d.f2364819.js
new file mode 100644
index 000000000..5bea60240
--- /dev/null
+++ b/assets/js/06e4134d.f2364819.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[2706],{28453:(e,n,r)=>{r.d(n,{R:()=>o,x:()=>a});var t=r(96540);const i={},s=t.createContext(i);function o(e){const n=t.useContext(s);return t.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function a(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:o(e.components),t.createElement(s.Provider,{value:n},e.children)}},55506:(e,n,r)=>{r.r(n),r.d(n,{as [...]
\ No newline at end of file
diff --git a/assets/js/0723c27f.faa76609.js b/assets/js/0723c27f.faa76609.js
new file mode 100644
index 000000000..bf3a7e7b7
--- /dev/null
+++ b/assets/js/0723c27f.faa76609.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[2553],{28453:(e,t,i)=>{i.d(t,{R:()=>d,x:()=>o});var r=i(96540);const n={},s=r.createContext(n);function d(e){const t=r.useContext(s);return r.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function o(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(n):e.components||n:d(e.components),r.createElement(s.Provider,{value:t},e.children)}},41900:(e,t,i)=>{i.r(t),i.d(t,{as [...]
\ No newline at end of file
diff --git a/assets/js/07688e98.883da2d8.js b/assets/js/07688e98.883da2d8.js
new file mode 100644
index 000000000..405db47c2
--- /dev/null
+++ b/assets/js/07688e98.883da2d8.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[6548],{11039:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>c,contentTitle:()=>a,default:()=>d,frontMatter:()=>i,metadata:()=>s,toc:()=>l});const s=JSON.parse('{"id":"development/extensions-core/examples","title":"Extension Examples","description":"\x3c!--","source":"@site/docs/38.0.0/development/extensions-core/examples.md","sourceDirName":"development/extensions-core","slug":"/development/extensions-core/examples","permalink":"/docs/38. [...]
\ No newline at end of file
diff --git a/assets/js/07e4767b.7bb04302.js b/assets/js/07e4767b.7bb04302.js
new file mode 100644
index 000000000..5ea8c1b40
--- /dev/null
+++ b/assets/js/07e4767b.7bb04302.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[8707],{28453:(e,r,n)=>{n.d(r,{R:()=>o,x:()=>a});var i=n(96540);const s={},t=i.createContext(s);function o(e){const r=i.useContext(t);return i.useMemo((function(){return"function"==typeof e?e(r):{...r,...e}}),[r,e])}function a(e){let r;return r=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:o(e.components),i.createElement(t.Provider,{value:r},e.children)}},83602:(e,r,n)=>{n.r(r),n.d(r,{as [...]
\ No newline at end of file
diff --git a/assets/js/0885b04e.4aeedf01.js b/assets/js/0885b04e.4aeedf01.js
new file mode 100644
index 000000000..57eea22f1
--- /dev/null
+++ b/assets/js/0885b04e.4aeedf01.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[6493],{28453:(e,r,s)=>{s.d(r,{R:()=>d,x:()=>l});var n=s(96540);const t={},i=n.createContext(t);function d(e){const r=n.useContext(i);return n.useMemo((function(){return"function"==typeof e?e(r):{...r,...e}}),[r,e])}function l(e){let r;return r=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:d(e.components),n.createElement(i.Provider,{value:r},e.children)}},29890:(e,r,s)=>{s.r(r),s.d(r,{as [...]
\ No newline at end of file
diff --git a/assets/js/0aa24f18.a30292f4.js b/assets/js/0aa24f18.a30292f4.js
new file mode 100644
index 000000000..b90b5ca83
--- /dev/null
+++ b/assets/js/0aa24f18.a30292f4.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[94],{28453:(e,n,t)=>{t.d(n,{R:()=>o,x:()=>l});var i=t(96540);const r={},s=i.createContext(r);function o(e){const n=i.useContext(s);return i.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function l(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:o(e.components),i.createElement(s.Provider,{value:n},e.children)}},45873:(e,n,t)=>{t.r(n),t.d(n,{asse [...]
\ No newline at end of file
diff --git a/assets/js/0ab30f6e.4e9971ad.js b/assets/js/0ab30f6e.4e9971ad.js
new file mode 100644
index 000000000..52b6bf08c
--- /dev/null
+++ b/assets/js/0ab30f6e.4e9971ad.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[446],{28453:(e,n,i)=>{i.d(n,{R:()=>o,x:()=>l});var t=i(96540);const r={},s=t.createContext(r);function o(e){const n=t.useContext(s);return t.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function l(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:o(e.components),t.createElement(s.Provider,{value:n},e.children)}},91765:(e,n,i)=>{i.r(n),i.d(n,{ass [...]
\ No newline at end of file
diff --git a/assets/js/0b1078cf.93a0071b.js b/assets/js/0b1078cf.93a0071b.js
new file mode 100644
index 000000000..901f24cc3
--- /dev/null
+++ b/assets/js/0b1078cf.93a0071b.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[2736],{18244:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>l,contentTitle:()=>o,default:()=>h,frontMatter:()=>i,metadata:()=>r,toc:()=>d});const r=JSON.parse('{"id":"tutorials/tutorial-msq-extern","title":"Load files with SQL-based ingestion","description":"How to generate a query that references externally hosted data","source":"@site/docs/latest/tutorials/tutorial-msq-extern.md","sourceDirName":"tutorials","slug":"/tutorials/tutorial-m [...]
\ No newline at end of file
diff --git a/assets/js/0b432fa0.883bd5b7.js b/assets/js/0b432fa0.883bd5b7.js
new file mode 100644
index 000000000..072d2192c
--- /dev/null
+++ b/assets/js/0b432fa0.883bd5b7.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[861],{28453:(e,r,o)=>{o.d(r,{R:()=>i,x:()=>d});var n=o(96540);const s={},t=n.createContext(s);function i(e){const r=n.useContext(t);return n.useMemo((function(){return"function"==typeof e?e(r):{...r,...e}}),[r,e])}function d(e){let r;return r=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:i(e.components),n.createElement(t.Provider,{value:r},e.children)}},99202:(e,r,o)=>{o.r(r),o.d(r,{ass [...]
\ No newline at end of file
diff --git a/assets/js/0c39a6da.1bd4aca6.js b/assets/js/0c39a6da.1bd4aca6.js
new file mode 100644
index 000000000..a617bb2bb
--- /dev/null
+++ b/assets/js/0c39a6da.1bd4aca6.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[8764],{28453:(e,n,i)=>{i.d(n,{R:()=>t,x:()=>l});var r=i(96540);const s={},a=r.createContext(s);function t(e){const n=r.useContext(a);return r.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function l(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:t(e.components),r.createElement(a.Provider,{value:n},e.children)}},54721:(e,n,i)=>{i.r(n),i.d(n,{as [...]
\ No newline at end of file
diff --git a/assets/js/0c5549ae.638752cc.js b/assets/js/0c5549ae.638752cc.js
new file mode 100644
index 000000000..2f8b779f3
--- /dev/null
+++ b/assets/js/0c5549ae.638752cc.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[1165],{25146:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>r,contentTitle:()=>d,default:()=>m,frontMatter:()=>o,metadata:()=>n,toc:()=>c});const n=JSON.parse('{"id":"data-management/index","title":"Data management","description":"\x3c!--","source":"@site/docs/latest/data-management/index.md","sourceDirName":"data-management","slug":"/data-management/","permalink":"/docs/latest/data-management/","draft":false,"unlisted":false,"tags":[],"v [...]
\ No newline at end of file
diff --git a/assets/js/0c7364f1.e8280b2a.js b/assets/js/0c7364f1.e8280b2a.js
new file mode 100644
index 000000000..1817fe326
--- /dev/null
+++ b/assets/js/0c7364f1.e8280b2a.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[5583],{28453:(e,n,s)=>{s.d(n,{R:()=>l,x:()=>d});var t=s(96540);const r={},i=t.createContext(r);function l(e){const n=t.useContext(i);return t.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function d(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:l(e.components),t.createElement(i.Provider,{value:n},e.children)}},93940:(e,n,s)=>{s.r(n),s.d(n,{as [...]
\ No newline at end of file
diff --git a/assets/js/0d6feef1.c018d63d.js b/assets/js/0d6feef1.c018d63d.js
new file mode 100644
index 000000000..b33159670
--- /dev/null
+++ b/assets/js/0d6feef1.c018d63d.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[1694],{28453:(e,n,r)=>{r.d(n,{R:()=>a,x:()=>c});var s=r(96540);const i={},t=s.createContext(i);function a(e){const n=s.useContext(t);return s.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function c(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:a(e.components),s.createElement(t.Provider,{value:n},e.children)}},99811:(e,n,r)=>{r.r(n),r.d(n,{as [...]
\ No newline at end of file
diff --git a/assets/js/0da73aae.b28e8c24.js b/assets/js/0da73aae.b28e8c24.js
new file mode 100644
index 000000000..d4dd63636
--- /dev/null
+++ b/assets/js/0da73aae.b28e8c24.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[7781],{26380:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>c,contentTitle:()=>r,default:()=>d,frontMatter:()=>s,metadata:()=>o,toc:()=>l});const o=JSON.parse('{"id":"data-management/compaction","title":"Compaction","description":"Defines compaction and automatic compaction (auto-compaction or autocompaction) for segment optimization. Use cases and strategies for compaction. Describes compaction task configuration.","source":"@site/docs/3 [...]
\ No newline at end of file
diff --git a/assets/js/0e461f11.292b4848.js b/assets/js/0e461f11.292b4848.js
new file mode 100644
index 000000000..4a2cb807a
--- /dev/null
+++ b/assets/js/0e461f11.292b4848.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[1659],{7952:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>d,contentTitle:()=>o,default:()=>u,frontMatter:()=>r,metadata:()=>i,toc:()=>l});const i=JSON.parse('{"id":"design/index","title":"Introduction to Apache Druid","description":"\x3c!--","source":"@site/docs/latest/design/index.md","sourceDirName":"design","slug":"/design/","permalink":"/docs/latest/design/","draft":false,"unlisted":false,"tags":[],"version":"current","frontMatter":{ [...]
\ No newline at end of file
diff --git a/assets/js/0e9c571e.7f460ee4.js b/assets/js/0e9c571e.7f460ee4.js
new file mode 100644
index 000000000..683dd7cc2
--- /dev/null
+++ b/assets/js/0e9c571e.7f460ee4.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[4048],{13776:(e,t,n)=>{n.d(t,{A:()=>a});const a=n.p+"assets/images/tutorial-compaction-07-e6e0a2617410595ee7ce54d48ea43e7b.png"},17606:(e,t,n)=>{n.d(t,{A:()=>a});const a=n.p+"assets/images/tutorial-compaction-01-122ba6887d51536c0799f2b4f105f00c.png"},20025:(e,t,n)=>{n.d(t,{A:()=>a});const a=n.p+"assets/images/tutorial-compaction-06-d55426f79668b103a03066b3fb602d1b.png"},27595:(e,t,n)=>{n.d(t,{A:()=>a});const a=n.p+"assets/imag [...]
\ No newline at end of file
diff --git a/assets/js/0f7339bc.7f5a1ca3.js b/assets/js/0f7339bc.7f5a1ca3.js
new file mode 100644
index 000000000..d13b2bd77
--- /dev/null
+++ b/assets/js/0f7339bc.7f5a1ca3.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[7530],{28453:(e,n,r)=>{r.d(n,{R:()=>l,x:()=>t});var a=r(96540);const i={},s=a.createContext(i);function l(e){const n=a.useContext(s);return a.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function t(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:l(e.components),a.createElement(s.Provider,{value:n},e.children)}},54882:(e,n,r)=>{r.r(n),r.d(n,{as [...]
\ No newline at end of file
diff --git a/assets/js/0ffea84f.4bf40032.js b/assets/js/0ffea84f.4bf40032.js
new file mode 100644
index 000000000..784238552
--- /dev/null
+++ b/assets/js/0ffea84f.4bf40032.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[6759],{28453:(e,r,i)=>{i.d(r,{R:()=>d,x:()=>o});var s=i(96540);const t={},n=s.createContext(t);function d(e){const r=s.useContext(n);return s.useMemo((function(){return"function"==typeof e?e(r):{...r,...e}}),[r,e])}function o(e){let r;return r=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:d(e.components),s.createElement(n.Provider,{value:r},e.children)}},59904:(e,r,i)=>{i.r(r),i.d(r,{as [...]
\ No newline at end of file
diff --git a/assets/js/10049722.4fbe5675.js b/assets/js/10049722.4fbe5675.js
new file mode 100644
index 000000000..a4dc08df6
--- /dev/null
+++ b/assets/js/10049722.4fbe5675.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[344],{10692:(e,s,n)=>{n.r(s),n.d(s,{assets:()=>c,contentTitle:()=>o,default:()=>a,frontMatter:()=>d,metadata:()=>i,toc:()=>l});const i=JSON.parse('{"id":"development/extensions-core/s3","title":"S3-compatible","description":"\x3c!--","source":"@site/docs/38.0.0/development/extensions-core/s3.md","sourceDirName":"development/extensions-core","slug":"/development/extensions-core/s3","permalink":"/docs/38.0.0/development/extensio [...]
\ No newline at end of file
diff --git a/assets/js/1141b6df.ab543e08.js b/assets/js/1141b6df.ab543e08.js
new file mode 100644
index 000000000..f9c51f58b
--- /dev/null
+++ b/assets/js/1141b6df.ab543e08.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[6658],{28453:(e,n,s)=>{s.d(n,{R:()=>o,x:()=>d});var i=s(96540);const t={},r=i.createContext(t);function o(e){const n=i.useContext(r);return i.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function d(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:o(e.components),i.createElement(r.Provider,{value:n},e.children)}},99905:(e,n,s)=>{s.r(n),s.d(n,{as [...]
\ No newline at end of file
diff --git a/assets/js/11a80721.527491a6.js b/assets/js/11a80721.527491a6.js
new file mode 100644
index 000000000..b207fe268
--- /dev/null
+++ b/assets/js/11a80721.527491a6.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[3838],{28453:(e,n,r)=>{r.d(n,{R:()=>i,x:()=>o});var t=r(96540);const d={},s=t.createContext(d);function i(e){const n=t.useContext(s);return t.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function o(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(d):e.components||d:i(e.components),t.createElement(s.Provider,{value:n},e.children)}},80135:(e,n,r)=>{r.r(n),r.d(n,{as [...]
\ No newline at end of file
diff --git a/assets/js/12d97def.b28c4cbb.js b/assets/js/12d97def.b28c4cbb.js
new file mode 100644
index 000000000..61ae0164e
--- /dev/null
+++ b/assets/js/12d97def.b28c4cbb.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[6995],{1903:(e,n,s)=>{s.r(n),s.d(n,{assets:()=>d,contentTitle:()=>a,default:()=>h,frontMatter:()=>o,metadata:()=>i,toc:()=>l});const i=JSON.parse('{"id":"ingestion/kinesis-ingestion","title":"Amazon Kinesis ingestion","description":"\x3c!--","source":"@site/docs/latest/ingestion/kinesis-ingestion.md","sourceDirName":"ingestion","slug":"/ingestion/kinesis-ingestion","permalink":"/docs/latest/ingestion/kinesis-ingestion","draft" [...]
\ No newline at end of file
diff --git a/assets/js/13ec796f.f0c3d64d.js b/assets/js/13ec796f.f0c3d64d.js
new file mode 100644
index 000000000..8cf507634
--- /dev/null
+++ b/assets/js/13ec796f.f0c3d64d.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[3371],{2359:(e,n,t)=>{t.d(n,{A:()=>r});const r=t.p+"assets/images/set-query-context-set-context-parameters-ccf3f79f17d340885cdc1ac2abcce475.png"},12580:(e,n,t)=>{t.d(n,{A:()=>r});const r=t.p+"assets/images/set-query-context-insert-query-1b529775997809462304c3f3559d5b01.png"},16296:(e,n,t)=>{t.d(n,{A:()=>r});const r=t.p+"assets/images/set-query-context-run-the-query-264eafd1c2a9315007a089c3c6fa24ae.png"},28453:(e,n,t)=>{t.d(n,{ [...]
\ No newline at end of file
diff --git a/assets/js/147fd7c7.64713e85.js b/assets/js/147fd7c7.64713e85.js
new file mode 100644
index 000000000..96eea88e4
--- /dev/null
+++ b/assets/js/147fd7c7.64713e85.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[6502],{28453:(e,t,n)=>{n.d(t,{R:()=>r,x:()=>o});var i=n(96540);const a={},s=i.createContext(a);function r(e){const t=i.useContext(s);return i.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function o(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(a):e.components||a:r(e.components),i.createElement(s.Provider,{value:t},e.children)}},61889:(e,t,n)=>{n.r(t),n.d(t,{as [...]
\ No newline at end of file
diff --git a/assets/js/1632a4ec.cddcfe22.js b/assets/js/1632a4ec.cddcfe22.js
new file mode 100644
index 000000000..b91a12ed7
--- /dev/null
+++ b/assets/js/1632a4ec.cddcfe22.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[8190],{28453:(e,n,t)=>{t.d(n,{R:()=>i,x:()=>l});var s=t(96540);const r={},a=s.createContext(r);function i(e){const n=s.useContext(a);return s.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function l(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:i(e.components),s.createElement(a.Provider,{value:n},e.children)}},79759:(e,n,t)=>{t.r(n),t.d(n,{as [...]
\ No newline at end of file
diff --git a/assets/js/170acdd4.414b3f35.js b/assets/js/170acdd4.414b3f35.js
new file mode 100644
index 000000000..cc0f5d06d
--- /dev/null
+++ b/assets/js/170acdd4.414b3f35.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[7475],{28453:(e,r,n)=>{n.d(r,{R:()=>a,x:()=>o});var t=n(96540);const s={},i=t.createContext(s);function a(e){const r=t.useContext(i);return t.useMemo((function(){return"function"==typeof e?e(r):{...r,...e}}),[r,e])}function o(e){let r;return r=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:a(e.components),t.createElement(i.Provider,{value:r},e.children)}},65537:(e,r,n)=>{n.d(r,{A:()=>q}) [...]
\ No newline at end of file
diff --git a/assets/js/180c7d3d.20564914.js b/assets/js/180c7d3d.20564914.js
new file mode 100644
index 000000000..a4dd808cd
--- /dev/null
+++ b/assets/js/180c7d3d.20564914.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[4627],{28453:(e,t,n)=>{n.d(t,{R:()=>s,x:()=>r});var a=n(96540);const o={},i=a.createContext(o);function s(e){const t=a.useContext(i);return a.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function r(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(o):e.components||o:s(e.components),a.createElement(i.Provider,{value:t},e.children)}},64987:(e,t,n)=>{n.r(t),n.d(t,{as [...]
\ No newline at end of file
diff --git a/assets/js/18522cd4.ae771c75.js b/assets/js/18522cd4.ae771c75.js
new file mode 100644
index 000000000..94abd2312
--- /dev/null
+++ b/assets/js/18522cd4.ae771c75.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[9424],{28453:(e,n,i)=>{i.d(n,{R:()=>o,x:()=>d});var s=i(96540);const t={},r=s.createContext(t);function o(e){const n=s.useContext(r);return s.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function d(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:o(e.components),s.createElement(r.Provider,{value:n},e.children)}},88164:(e,n,i)=>{i.r(n),i.d(n,{as [...]
\ No newline at end of file
diff --git a/assets/js/190d4fd7.7782dd10.js b/assets/js/190d4fd7.7782dd10.js
new file mode 100644
index 000000000..ed8d21855
--- /dev/null
+++ b/assets/js/190d4fd7.7782dd10.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[88],{28453:(e,s,r)=>{r.d(s,{R:()=>d,x:()=>o});var i=r(96540);const n={},t=i.createContext(n);function d(e){const s=i.useContext(t);return i.useMemo((function(){return"function"==typeof e?e(s):{...s,...e}}),[s,e])}function o(e){let s;return s=e.disableParentContext?"function"==typeof e.components?e.components(n):e.components||n:d(e.components),i.createElement(t.Provider,{value:s},e.children)}},68645:(e,s,r)=>{r.r(s),r.d(s,{asse [...]
\ No newline at end of file
diff --git a/assets/js/191349c1.3d42138d.js b/assets/js/191349c1.3d42138d.js
new file mode 100644
index 000000000..856a7d518
--- /dev/null
+++ b/assets/js/191349c1.3d42138d.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[4924],{28453:(e,n,t)=>{t.d(n,{R:()=>a,x:()=>r});var o=t(96540);const s={},i=o.createContext(s);function a(e){const n=o.useContext(i);return o.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function r(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:a(e.components),o.createElement(i.Provider,{value:n},e.children)}},34372:(e,n,t)=>{t.r(n),t.d(n,{as [...]
\ No newline at end of file
diff --git a/assets/js/19153eab.7814e74a.js b/assets/js/19153eab.7814e74a.js
new file mode 100644
index 000000000..e2c3f45cb
--- /dev/null
+++ b/assets/js/19153eab.7814e74a.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[6982],{28453:(e,n,t)=>{t.d(n,{R:()=>r,x:()=>a});var i=t(96540);const s={},o=i.createContext(s);function r(e){const n=i.useContext(o);return i.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function a(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:r(e.components),i.createElement(o.Provider,{value:n},e.children)}},90477:(e,n,t)=>{t.r(n),t.d(n,{as [...]
\ No newline at end of file
diff --git a/assets/js/1981460b.809255d9.js b/assets/js/1981460b.809255d9.js
new file mode 100644
index 000000000..c3b6ac5d0
--- /dev/null
+++ b/assets/js/1981460b.809255d9.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[3804],{28453:(e,o,n)=>{n.d(o,{R:()=>r,x:()=>d});var s=n(96540);const t={},i=s.createContext(t);function r(e){const o=s.useContext(i);return s.useMemo((function(){return"function"==typeof e?e(o):{...o,...e}}),[o,e])}function d(e){let o;return o=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:r(e.components),s.createElement(i.Provider,{value:o},e.children)}},80862:(e,o,n)=>{n.r(o),n.d(o,{as [...]
\ No newline at end of file
diff --git a/assets/js/19bdf367.8482f17a.js b/assets/js/19bdf367.8482f17a.js
new file mode 100644
index 000000000..67dd935ee
--- /dev/null
+++ b/assets/js/19bdf367.8482f17a.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[4939],{28453:(e,n,r)=>{r.d(n,{R:()=>a,x:()=>i});var s=r(96540);const t={},l=s.createContext(t);function a(e){const n=s.useContext(l);return s.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function i(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:a(e.components),s.createElement(l.Provider,{value:n},e.children)}},36078:(e,n,r)=>{r.r(n),r.d(n,{as [...]
\ No newline at end of file
diff --git a/assets/js/1a239e8f.f8b1097b.js b/assets/js/1a239e8f.f8b1097b.js
new file mode 100644
index 000000000..1e20f49d6
--- /dev/null
+++ b/assets/js/1a239e8f.f8b1097b.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[3324],{28453:(e,t,n)=>{n.d(t,{R:()=>a,x:()=>r});var s=n(96540);const o={},i=s.createContext(o);function a(e){const t=s.useContext(i);return s.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function r(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(o):e.components||o:a(e.components),s.createElement(i.Provider,{value:t},e.children)}},83916:(e,t,n)=>{n.r(t),n.d(t,{as [...]
\ No newline at end of file
diff --git a/assets/js/1be4f6d4.9a8a0d41.js b/assets/js/1be4f6d4.9a8a0d41.js
new file mode 100644
index 000000000..45835bb01
--- /dev/null
+++ b/assets/js/1be4f6d4.9a8a0d41.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[8025],{27146:(e,s,t)=>{t.r(s),t.d(s,{assets:()=>l,contentTitle:()=>c,default:()=>h,frontMatter:()=>i,metadata:()=>d,toc:()=>o});const d=JSON.parse('{"id":"development/extensions-contrib/cloudfiles","title":"Rackspace Cloud Files","description":"\x3c!--","source":"@site/docs/38.0.0/development/extensions-contrib/cloudfiles.md","sourceDirName":"development/extensions-contrib","slug":"/development/extensions-contrib/cloudfiles"," [...]
\ No newline at end of file
diff --git a/assets/js/1c5c8328.0566b005.js b/assets/js/1c5c8328.0566b005.js
new file mode 100644
index 000000000..ea364a633
--- /dev/null
+++ b/assets/js/1c5c8328.0566b005.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[8278],{18835:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>a,default:()=>h,frontMatter:()=>d,metadata:()=>s,toc:()=>o});const s=JSON.parse('{"id":"tutorials/tutorial-latest-by","title":"Query for latest values","description":"How to use LATEST_BY or deltas for up-to-date values.","source":"@site/docs/38.0.0/tutorials/tutorial-latest-by.md","sourceDirName":"tutorials","slug":"/tutorials/tutorial-latest-by","permalink":" [...]
\ No newline at end of file
diff --git a/assets/js/1c6ec3f0.a2b2eed1.js b/assets/js/1c6ec3f0.a2b2eed1.js
new file mode 100644
index 000000000..73e9d483e
--- /dev/null
+++ b/assets/js/1c6ec3f0.a2b2eed1.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[9332],{28453:(e,t,i)=>{i.d(t,{R:()=>r,x:()=>o});var n=i(96540);const s={},a=n.createContext(s);function r(e){const t=n.useContext(a);return n.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function o(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:r(e.components),n.createElement(a.Provider,{value:t},e.children)}},63030:(e,t,i)=>{i.d(t,{A:()=>n}) [...]
\ No newline at end of file
diff --git a/assets/js/1d1b1557.04bad583.js b/assets/js/1d1b1557.04bad583.js
new file mode 100644
index 000000000..bc041f271
--- /dev/null
+++ b/assets/js/1d1b1557.04bad583.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[4627],{28453:(e,n,r)=>{r.d(n,{R:()=>o,x:()=>d});var s=r(96540);const t={},i=s.createContext(t);function o(e){const n=s.useContext(i);return s.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function d(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:o(e.components),s.createElement(i.Provider,{value:n},e.children)}},45468:(e,n,r)=>{r.r(n),r.d(n,{as [...]
\ No newline at end of file
diff --git a/assets/js/1e4cef5a.dbc20c14.js b/assets/js/1e4cef5a.dbc20c14.js
new file mode 100644
index 000000000..810337efb
--- /dev/null
+++ b/assets/js/1e4cef5a.dbc20c14.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[4901],{28453:(e,t,s)=>{s.d(t,{R:()=>o,x:()=>c});var n=s(96540);const i={},a=n.createContext(i);function o(e){const t=n.useContext(a);return n.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function c(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:o(e.components),n.createElement(a.Provider,{value:t},e.children)}},42243:(e,t,s)=>{s.r(t),s.d(t,{as [...]
\ No newline at end of file
diff --git a/assets/js/1e878fa2.8993ac9f.js b/assets/js/1e878fa2.8993ac9f.js
new file mode 100644
index 000000000..0185c115e
--- /dev/null
+++ b/assets/js/1e878fa2.8993ac9f.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[1033],{28453:(e,n,a)=>{a.d(n,{R:()=>i,x:()=>o});var t=a(96540);const s={},r=t.createContext(s);function i(e){const n=t.useContext(r);return t.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function o(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:i(e.components),t.createElement(r.Provider,{value:n},e.children)}},68230:(e,n,a)=>{a.r(n),a.d(n,{as [...]
\ No newline at end of file
diff --git a/assets/js/1f3e2656.9fa011f3.js b/assets/js/1f3e2656.9fa011f3.js
new file mode 100644
index 000000000..37a3f9731
--- /dev/null
+++ b/assets/js/1f3e2656.9fa011f3.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[8591],{18931:(e,t,s)=>{s.r(t),s.d(t,{assets:()=>i,contentTitle:()=>c,default:()=>h,frontMatter:()=>o,metadata:()=>n,toc:()=>l});const n=JSON.parse('{"id":"development/extensions-core/datasketches-tuple","title":"DataSketches Tuple Sketch module","description":"\x3c!--","source":"@site/docs/38.0.0/development/extensions-core/datasketches-tuple.md","sourceDirName":"development/extensions-core","slug":"/development/extensions-cor [...]
\ No newline at end of file
diff --git a/assets/js/20051c94.4ad61e10.js b/assets/js/20051c94.4ad61e10.js
new file mode 100644
index 000000000..7d843259a
--- /dev/null
+++ b/assets/js/20051c94.4ad61e10.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[2591],{28453:(e,n,o)=>{o.d(n,{R:()=>a,x:()=>d});var t=o(96540);const s={},i=t.createContext(s);function a(e){const n=t.useContext(i);return t.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function d(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:a(e.components),t.createElement(i.Provider,{value:n},e.children)}},99952:(e,n,o)=>{o.r(n),o.d(n,{as [...]
\ No newline at end of file
diff --git a/assets/js/2180ce0f.43344f40.js b/assets/js/2180ce0f.43344f40.js
new file mode 100644
index 000000000..c0a88ef61
--- /dev/null
+++ b/assets/js/2180ce0f.43344f40.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[790],{28453:(e,i,r)=>{r.d(i,{R:()=>s,x:()=>l});var t=r(96540);const n={},o=t.createContext(n);function s(e){const i=t.useContext(o);return t.useMemo((function(){return"function"==typeof e?e(i):{...i,...e}}),[i,e])}function l(e){let i;return i=e.disableParentContext?"function"==typeof e.components?e.components(n):e.components||n:s(e.components),t.createElement(o.Provider,{value:i},e.children)}},39154:(e,i,r)=>{r.r(i),r.d(i,{ass [...]
\ No newline at end of file
diff --git a/assets/js/218ecc56.a0fa4349.js b/assets/js/218ecc56.a0fa4349.js
new file mode 100644
index 000000000..13445ce9a
--- /dev/null
+++ b/assets/js/218ecc56.a0fa4349.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[2474],{16541:(e,r,n)=>{n.r(r),n.d(r,{assets:()=>d,contentTitle:()=>a,default:()=>h,frontMatter:()=>s,metadata:()=>t,toc:()=>c});const t=JSON.parse('{"id":"design/router","title":"Router service","description":"\x3c!--","source":"@site/docs/38.0.0/design/router.md","sourceDirName":"design","slug":"/design/router","permalink":"/docs/38.0.0/design/router","draft":false,"unlisted":false,"tags":[],"version":"current","frontMatter": [...]
\ No newline at end of file
diff --git a/assets/js/21e0fc71.e4bceb04.js b/assets/js/21e0fc71.e4bceb04.js
new file mode 100644
index 000000000..78d50ddf4
--- /dev/null
+++ b/assets/js/21e0fc71.e4bceb04.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[2478],{24294:(e,n,s)=>{s.r(n),s.d(n,{assets:()=>o,contentTitle:()=>t,default:()=>h,frontMatter:()=>a,metadata:()=>i,toc:()=>c});const i=JSON.parse('{"id":"design/indexing-service","title":"Indexing Service","description":"\x3c!--","source":"@site/docs/38.0.0/design/indexing-service.md","sourceDirName":"design","slug":"/design/indexing-service","permalink":"/docs/38.0.0/design/indexing-service","draft":false,"unlisted":false,"t [...]
\ No newline at end of file
diff --git a/assets/js/2229e2e2.6d7c629b.js b/assets/js/2229e2e2.6d7c629b.js
new file mode 100644
index 000000000..c3d48e56a
--- /dev/null
+++ b/assets/js/2229e2e2.6d7c629b.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[688],{28453:(e,n,i)=>{i.d(n,{R:()=>s,x:()=>o});var t=i(96540);const a={},r=t.createContext(a);function s(e){const n=t.useContext(r);return t.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function o(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(a):e.components||a:s(e.components),t.createElement(r.Provider,{value:n},e.children)}},70966:(e,n,i)=>{i.r(n),i.d(n,{ass [...]
\ No newline at end of file
diff --git a/assets/js/2267c0c5.a8e931e6.js b/assets/js/2267c0c5.a8e931e6.js
new file mode 100644
index 000000000..ba4eee02a
--- /dev/null
+++ b/assets/js/2267c0c5.a8e931e6.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[4411],{28453:(e,r,n)=>{n.d(r,{R:()=>o,x:()=>d});var i=n(96540);const s={},t=i.createContext(s);function o(e){const r=i.useContext(t);return i.useMemo((function(){return"function"==typeof e?e(r):{...r,...e}}),[r,e])}function d(e){let r;return r=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:o(e.components),i.createElement(t.Provider,{value:r},e.children)}},52447:(e,r,n)=>{n.r(r),n.d(r,{as [...]
\ No newline at end of file
diff --git a/assets/js/22d3ac79.9fec1c6f.js b/assets/js/22d3ac79.9fec1c6f.js
new file mode 100644
index 000000000..986572a37
--- /dev/null
+++ b/assets/js/22d3ac79.9fec1c6f.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[5132],{10185:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>o,contentTitle:()=>i,default:()=>h,frontMatter:()=>d,metadata:()=>s,toc:()=>l});const s=JSON.parse('{"id":"api-reference/legacy-metadata-api","title":"Legacy metadata API","description":"\x3c!--","source":"@site/docs/38.0.0/api-reference/legacy-metadata-api.md","sourceDirName":"api-reference","slug":"/api-reference/legacy-metadata-api","permalink":"/docs/38.0.0/api-reference/lega [...]
\ No newline at end of file
diff --git a/assets/js/2334.0f26b8ba.js b/assets/js/2334.0f26b8ba.js
new file mode 100644
index 000000000..92b598791
--- /dev/null
+++ b/assets/js/2334.0f26b8ba.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[2334],{697:(e,n,t)=>{t.d(n,{T:()=>r.T});var r=t(37981)},9703:(e,n,t)=>{t.d(n,{A:()=>u});var r=t(88496),o=t(92049),i=t(53098);const u=function(e){return"string"==typeof e||!(0,o.A)(e)&&(0,i.A)(e)&&"[object String]"==(0,r.A)(e)}},16145:(e,n,t)=>{t.d(n,{A:()=>c});var r=t(23958),o=t(38446),i=t(27422);const u=function(e){return function(n,t,u){var a=Object(n);if(!(0,o.A)(n)){var s=(0,r.A)(t,3);n=(0,i.A)(n),t=function(e){return s(a[ [...]
\ No newline at end of file
diff --git a/assets/js/2399dcd6.5c7c7331.js b/assets/js/2399dcd6.5c7c7331.js
new file mode 100644
index 000000000..e9d3bfcdc
--- /dev/null
+++ b/assets/js/2399dcd6.5c7c7331.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[925],{28453:(e,n,i)=>{i.d(n,{R:()=>l,x:()=>c});var s=i(96540);const r={},t=s.createContext(r);function l(e){const n=s.useContext(t);return s.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function c(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:l(e.components),s.createElement(t.Provider,{value:n},e.children)}},31610:(e,n,i)=>{i.r(n),i.d(n,{ass [...]
\ No newline at end of file
diff --git a/assets/js/23bb455c.b09dff15.js b/assets/js/23bb455c.b09dff15.js
new file mode 100644
index 000000000..d2e836f1f
--- /dev/null
+++ b/assets/js/23bb455c.b09dff15.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[6735],{5904:(e,r,o)=>{o.r(r),o.d(r,{assets:()=>s,contentTitle:()=>d,default:()=>u,frontMatter:()=>a,metadata:()=>i,toc:()=>l});const i=JSON.parse('{"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 config [...]
\ No newline at end of file
diff --git a/assets/js/23c56158.69385d2f.js b/assets/js/23c56158.69385d2f.js
new file mode 100644
index 000000000..c35ced2ee
--- /dev/null
+++ b/assets/js/23c56158.69385d2f.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[7182],{28453:(e,n,i)=>{i.d(n,{R:()=>o,x:()=>r});var s=i(96540);const t={},a=s.createContext(t);function o(e){const n=s.useContext(a);return s.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function r(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:o(e.components),s.createElement(a.Provider,{value:n},e.children)}},81350:(e,n,i)=>{i.r(n),i.d(n,{as [...]
\ No newline at end of file
diff --git a/assets/js/2417a5c5.704eff14.js b/assets/js/2417a5c5.704eff14.js
new file mode 100644
index 000000000..d2f75dfa8
--- /dev/null
+++ b/assets/js/2417a5c5.704eff14.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[915],{28453:(e,t,s)=>{s.d(t,{R:()=>i,x:()=>o});var n=s(96540);const d={},r=n.createContext(d);function i(e){const t=n.useContext(r);return n.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function o(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(d):e.components||d:i(e.components),n.createElement(r.Provider,{value:t},e.children)}},77093:(e,t,s)=>{s.r(t),s.d(t,{ass [...]
\ No newline at end of file
diff --git a/assets/js/248aeefe.ae4475ea.js b/assets/js/248aeefe.ae4475ea.js
new file mode 100644
index 000000000..fc91323d0
--- /dev/null
+++ b/assets/js/248aeefe.ae4475ea.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[4821],{16730:(e,t,a)=>{a.d(t,{A:()=>s});const s=a.p+"assets/images/tutorial-kafka-data-loader-10-6a55a1befc9900c50ed7f8f3f14071ed.png"},20989:(e,t,a)=>{a.d(t,{A:()=>s});const s=a.p+"assets/images/tutorial-kafka-data-loader-08-d9ba2317e15b6ef9c5462777c9607599.png"},22915:(e,t,a)=>{a.d(t,{A:()=>s});const s=a.p+"assets/images/tutorial-kafka-data-loader-11-74188b46ff51c655a03d12c5a838b33f.png"},28380:(e,t,a)=>{a.d(t,{A:()=>s});con [...]
\ No newline at end of file
diff --git a/assets/js/25852f5b.8d276b07.js b/assets/js/25852f5b.8d276b07.js
new file mode 100644
index 000000000..1528b72d6
--- /dev/null
+++ b/assets/js/25852f5b.8d276b07.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[9e3],{17176:(e,r,n)=>{n.r(r),n.d(r,{assets:()=>l,contentTitle:()=>c,default:()=>h,frontMatter:()=>d,metadata:()=>s,toc:()=>a});const s=JSON.parse('{"id":"querying/sql-multivalue-string-functions","title":"SQL multi-value string functions","description":"\x3c!--","source":"@site/docs/38.0.0/querying/sql-multivalue-string-functions.md","sourceDirName":"querying","slug":"/querying/sql-multivalue-string-functions","permalink":"/do [...]
\ No newline at end of file
diff --git a/assets/js/2590e039.a3197b30.js b/assets/js/2590e039.a3197b30.js
new file mode 100644
index 000000000..94682cc80
--- /dev/null
+++ b/assets/js/2590e039.a3197b30.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[8556],{28453:(e,t,s)=>{s.d(t,{R:()=>r,x:()=>i});var a=s(96540);const n={},o=a.createContext(n);function r(e){const t=a.useContext(o);return a.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function i(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(n):e.components||n:r(e.components),a.createElement(o.Provider,{value:t},e.children)}},39907:(e,t,s)=>{s.r(t),s.d(t,{as [...]
\ No newline at end of file
diff --git a/assets/js/25cf291e.4a07da02.js b/assets/js/25cf291e.4a07da02.js
new file mode 100644
index 000000000..c0777794a
--- /dev/null
+++ b/assets/js/25cf291e.4a07da02.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[3602],{1530:(e,s,t)=>{t.d(s,{A:()=>i});const i=t.p+"assets/images/supervisor-info-dialog-300a1e58533b10622fd945eca74911e4.png"},28453:(e,s,t)=>{t.d(s,{R:()=>o,x:()=>d});var i=t(96540);const n={},r=i.createContext(n);function o(e){const s=i.useContext(r);return i.useMemo((function(){return"function"==typeof e?e(s):{...s,...e}}),[s,e])}function d(e){let s;return s=e.disableParentContext?"function"==typeof e.components?e.componen [...]
\ No newline at end of file
diff --git a/assets/js/263ec29f.0cf5898d.js b/assets/js/263ec29f.0cf5898d.js
new file mode 100644
index 000000000..e1ca47eda
--- /dev/null
+++ b/assets/js/263ec29f.0cf5898d.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[4657],{28453:(e,n,i)=>{i.d(n,{R:()=>d,x:()=>c});var t=i(96540);const r={},s=t.createContext(r);function d(e){const n=t.useContext(s);return t.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function c(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:d(e.components),t.createElement(s.Provider,{value:n},e.children)}},81606:(e,n,i)=>{i.r(n),i.d(n,{as [...]
\ No newline at end of file
diff --git a/assets/js/274a38ba.8941935f.js b/assets/js/274a38ba.8941935f.js
new file mode 100644
index 000000000..839dbb88b
--- /dev/null
+++ b/assets/js/274a38ba.8941935f.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[6301],{13656:(e,s,n)=>{n.r(s),n.d(s,{assets:()=>a,contentTitle:()=>d,default:()=>h,frontMatter:()=>o,metadata:()=>t,toc:()=>c});const t=JSON.parse('{"id":"ingestion/index","title":"Ingestion overview","description":"\x3c!--","source":"@site/docs/latest/ingestion/index.md","sourceDirName":"ingestion","slug":"/ingestion/","permalink":"/docs/latest/ingestion/","draft":false,"unlisted":false,"tags":[],"version":"current","frontMat [...]
\ No newline at end of file
diff --git a/assets/js/2785fc82.8f2b34bc.js b/assets/js/2785fc82.8f2b34bc.js
new file mode 100644
index 000000000..a1a843346
--- /dev/null
+++ b/assets/js/2785fc82.8f2b34bc.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[5400],{28453:(e,d,n)=>{n.d(d,{R:()=>t,x:()=>c});var i=n(96540);const s={},r=i.createContext(s);function t(e){const d=i.useContext(r);return i.useMemo((function(){return"function"==typeof e?e(d):{...d,...e}}),[d,e])}function c(e){let d;return d=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:t(e.components),i.createElement(r.Provider,{value:d},e.children)}},52113:(e,d,n)=>{n.r(d),n.d(d,{as [...]
\ No newline at end of file
diff --git a/assets/js/278e5cb2.9d10f66e.js b/assets/js/278e5cb2.9d10f66e.js
new file mode 100644
index 000000000..c134a106d
--- /dev/null
+++ b/assets/js/278e5cb2.9d10f66e.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[4867],{28453:(e,o,n)=>{n.d(o,{R:()=>l,x:()=>r});var t=n(96540);const s={},i=t.createContext(s);function l(e){const o=t.useContext(i);return t.useMemo((function(){return"function"==typeof e?e(o):{...o,...e}}),[o,e])}function r(e){let o;return o=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:l(e.components),t.createElement(i.Provider,{value:o},e.children)}},93121:(e,o,n)=>{n.r(o),n.d(o,{as [...]
\ No newline at end of file
diff --git a/assets/js/27d22fb6.6092bdef.js b/assets/js/27d22fb6.6092bdef.js
new file mode 100644
index 000000000..71bace920
--- /dev/null
+++ b/assets/js/27d22fb6.6092bdef.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[8212],{28453:(e,r,s)=>{s.d(r,{R:()=>d,x:()=>a});var t=s(96540);const n={},o=t.createContext(n);function d(e){const r=t.useContext(o);return t.useMemo((function(){return"function"==typeof e?e(r):{...r,...e}}),[r,e])}function a(e){let r;return r=e.disableParentContext?"function"==typeof e.components?e.components(n):e.components||n:d(e.components),t.createElement(o.Provider,{value:r},e.children)}},49405:(e,r,s)=>{s.r(r),s.d(r,{as [...]
\ No newline at end of file
diff --git a/assets/js/28797c76.60b08645.js b/assets/js/28797c76.60b08645.js
new file mode 100644
index 000000000..6bbdf414c
--- /dev/null
+++ b/assets/js/28797c76.60b08645.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[7728],{28453:(e,t,i)=>{i.d(t,{R:()=>o,x:()=>l});var a=i(96540);const r={},n=a.createContext(r);function o(e){const t=a.useContext(n);return a.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function l(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:o(e.components),a.createElement(n.Provider,{value:t},e.children)}},70045:(e,t,i)=>{i.r(t),i.d(t,{as [...]
\ No newline at end of file
diff --git a/assets/js/28a00931.57dd6fa5.js b/assets/js/28a00931.57dd6fa5.js
new file mode 100644
index 000000000..afedef063
--- /dev/null
+++ b/assets/js/28a00931.57dd6fa5.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[9167],{28453:(e,n,i)=>{i.d(n,{R:()=>d,x:()=>a});var s=i(96540);const t={},r=s.createContext(t);function d(e){const n=s.useContext(r);return s.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function a(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:d(e.components),s.createElement(r.Provider,{value:n},e.children)}},65363:(e,n,i)=>{i.r(n),i.d(n,{as [...]
\ No newline at end of file
diff --git a/assets/js/292ba8e7.8760ce0a.js b/assets/js/292ba8e7.8760ce0a.js
new file mode 100644
index 000000000..23a8a71e6
--- /dev/null
+++ b/assets/js/292ba8e7.8760ce0a.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[947],{28453:(e,n,s)=>{s.d(n,{R:()=>d,x:()=>o});var t=s(96540);const i={},r=t.createContext(i);function d(e){const n=t.useContext(r);return t.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function o(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:d(e.components),t.createElement(r.Provider,{value:n},e.children)}},79692:(e,n,s)=>{s.r(n),s.d(n,{ass [...]
\ No newline at end of file
diff --git a/assets/js/293487cb.c5bd652c.js b/assets/js/293487cb.c5bd652c.js
new file mode 100644
index 000000000..2e139b25c
--- /dev/null
+++ b/assets/js/293487cb.c5bd652c.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[361],{28453:(e,n,s)=>{s.d(n,{R:()=>o,x:()=>d});var i=s(96540);const t={},r=i.createContext(t);function o(e){const n=i.useContext(r);return i.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function d(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:o(e.components),i.createElement(r.Provider,{value:n},e.children)}},43029:(e,n,s)=>{s.r(n),s.d(n,{ass [...]
\ No newline at end of file
diff --git a/assets/js/2a0e00fd.c971ec74.js b/assets/js/2a0e00fd.c971ec74.js
new file mode 100644
index 000000000..96d53666d
--- /dev/null
+++ b/assets/js/2a0e00fd.c971ec74.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[9499],{5980:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>d,contentTitle:()=>a,default:()=>u,frontMatter:()=>r,metadata:()=>s,toc:()=>c});const s=JSON.parse('{"id":"ingestion/standalone-realtime","title":"Realtime Process","description":"\x3c!--","source":"@site/docs/38.0.0/ingestion/standalone-realtime.md","sourceDirName":"ingestion","slug":"/ingestion/standalone-realtime","permalink":"/docs/38.0.0/ingestion/standalone-realtime","draft" [...]
\ No newline at end of file
diff --git a/assets/js/2b561dad.3ea0cef2.js b/assets/js/2b561dad.3ea0cef2.js
new file mode 100644
index 000000000..45029f8b7
--- /dev/null
+++ b/assets/js/2b561dad.3ea0cef2.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[5910],{15048:(e,n,a)=>{a.r(n),a.d(n,{assets:()=>d,contentTitle:()=>o,default:()=>u,frontMatter:()=>t,metadata:()=>r,toc:()=>c});const r=JSON.parse('{"id":"operations/java","title":"Java runtime","description":"\x3c!--","source":"@site/docs/38.0.0/operations/java.md","sourceDirName":"operations","slug":"/operations/java","permalink":"/docs/38.0.0/operations/java","draft":false,"unlisted":false,"tags":[],"version":"current","fro [...]
\ No newline at end of file
diff --git a/assets/js/2b7bc668.99d0730d.js b/assets/js/2b7bc668.99d0730d.js
new file mode 100644
index 000000000..2b15f0f9c
--- /dev/null
+++ b/assets/js/2b7bc668.99d0730d.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[8533],{28453:(e,t,r)=>{r.d(t,{R:()=>a,x:()=>d});var n=r(96540);const i={},s=n.createContext(i);function a(e){const t=n.useContext(s);return n.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function d(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:a(e.components),n.createElement(s.Provider,{value:t},e.children)}},31416:(e,t,r)=>{r.r(t),r.d(t,{as [...]
\ No newline at end of file
diff --git a/assets/js/2d106cb4.732a892e.js b/assets/js/2d106cb4.732a892e.js
new file mode 100644
index 000000000..79708b69c
--- /dev/null
+++ b/assets/js/2d106cb4.732a892e.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[3089],{28353:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>d,contentTitle:()=>i,default:()=>h,frontMatter:()=>r,metadata:()=>s,toc:()=>c});const s=JSON.parse('{"id":"querying/kafka-extraction-namespace","title":"Apache Kafka Lookups","description":"\x3c!--","source":"@site/docs/38.0.0/querying/kafka-extraction-namespace.md","sourceDirName":"querying","slug":"/querying/kafka-extraction-namespace","permalink":"/docs/38.0.0/querying/kafka-e [...]
\ No newline at end of file
diff --git a/assets/js/2de98abf.71b7e6d2.js b/assets/js/2de98abf.71b7e6d2.js
new file mode 100644
index 000000000..294049186
--- /dev/null
+++ b/assets/js/2de98abf.71b7e6d2.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[9122],{28453:(e,t,n)=>{n.d(t,{R:()=>r,x:()=>o});var s=n(96540);const a={},i=s.createContext(a);function r(e){const t=s.useContext(i);return s.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function o(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(a):e.components||a:r(e.components),s.createElement(i.Provider,{value:t},e.children)}},85350:(e,t,n)=>{n.r(t),n.d(t,{as [...]
\ No newline at end of file
diff --git a/assets/js/2e9f2bbf.a65b5d97.js b/assets/js/2e9f2bbf.a65b5d97.js
new file mode 100644
index 000000000..3387354fe
--- /dev/null
+++ b/assets/js/2e9f2bbf.a65b5d97.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[641],{28453:(e,n,i)=>{i.d(n,{R:()=>r,x:()=>a});var s=i(96540);const t={},o=s.createContext(t);function r(e){const n=s.useContext(o);return s.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function a(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:r(e.components),s.createElement(o.Provider,{value:n},e.children)}},40166:(e,n,i)=>{i.r(n),i.d(n,{ass [...]
\ No newline at end of file
diff --git a/assets/js/2ec3a9a7.0b35fb39.js b/assets/js/2ec3a9a7.0b35fb39.js
new file mode 100644
index 000000000..bf696028c
--- /dev/null
+++ b/assets/js/2ec3a9a7.0b35fb39.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[3408],{28453:(e,t,n)=>{n.d(t,{R:()=>o,x:()=>s});var r=n(96540);const a={},i=r.createContext(a);function o(e){const t=r.useContext(i);return r.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function s(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(a):e.components||a:o(e.components),r.createElement(i.Provider,{value:t},e.children)}},56279:(e,t,n)=>{n.r(t),n.d(t,{as [...]
\ No newline at end of file
diff --git a/assets/js/2fbe7d8e.80bee6e5.js b/assets/js/2fbe7d8e.80bee6e5.js
new file mode 100644
index 000000000..ac69a1642
--- /dev/null
+++ b/assets/js/2fbe7d8e.80bee6e5.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[5392],{28453:(e,n,r)=>{r.d(n,{R:()=>l,x:()=>a});var s=r(96540);const i={},t=s.createContext(i);function l(e){const n=s.useContext(t);return s.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function a(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:l(e.components),s.createElement(t.Provider,{value:n},e.children)}},82279:(e,n,r)=>{r.r(n),r.d(n,{as [...]
\ No newline at end of file
diff --git a/assets/js/2feb98fa.d726a35d.js b/assets/js/2feb98fa.d726a35d.js
new file mode 100644
index 000000000..061fdfeba
--- /dev/null
+++ b/assets/js/2feb98fa.d726a35d.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[5958],{28453:(e,s,n)=>{n.d(s,{R:()=>d,x:()=>a});var t=n(96540);const r={},i=t.createContext(r);function d(e){const s=t.useContext(i);return t.useMemo((function(){return"function"==typeof e?e(s):{...s,...e}}),[s,e])}function a(e){let s;return s=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:d(e.components),t.createElement(i.Provider,{value:s},e.children)}},82180:(e,s,n)=>{n.r(s),n.d(s,{as [...]
\ No newline at end of file
diff --git a/assets/js/31a90d79.fa12c4a6.js b/assets/js/31a90d79.fa12c4a6.js
new file mode 100644
index 000000000..fc585aad0
--- /dev/null
+++ b/assets/js/31a90d79.fa12c4a6.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[9889],{24909:(e,s,n)=>{n.r(s),n.d(s,{assets:()=>l,contentTitle:()=>a,default:()=>h,frontMatter:()=>o,metadata:()=>t,toc:()=>d});const t=JSON.parse('{"id":"ingestion/tasks","title":"Task reference","description":"\x3c!--","source":"@site/docs/38.0.0/ingestion/tasks.md","sourceDirName":"ingestion","slug":"/ingestion/tasks","permalink":"/docs/38.0.0/ingestion/tasks","draft":false,"unlisted":false,"tags":[],"version":"current","fr [...]
\ No newline at end of file
diff --git a/assets/js/327b842b.d2980052.js b/assets/js/327b842b.d2980052.js
new file mode 100644
index 000000000..39c4a3d44
--- /dev/null
+++ b/assets/js/327b842b.d2980052.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[4955],{28453:(e,t,s)=>{s.d(t,{R:()=>c,x:()=>i});var n=s(96540);const o={},r=n.createContext(o);function c(e){const t=n.useContext(r);return n.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function i(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(o):e.components||o:c(e.components),n.createElement(r.Provider,{value:t},e.children)}},78206:(e,t,s)=>{s.r(t),s.d(t,{as [...]
\ No newline at end of file
diff --git a/assets/js/32f5b141.61058e4d.js b/assets/js/32f5b141.61058e4d.js
new file mode 100644
index 000000000..60b4e0172
--- /dev/null
+++ b/assets/js/32f5b141.61058e4d.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[1473],{28453:(e,n,t)=>{t.d(n,{R:()=>o,x:()=>l});var i=t(96540);const r={},s=i.createContext(r);function o(e){const n=i.useContext(s);return i.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function l(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:o(e.components),i.createElement(s.Provider,{value:n},e.children)}},90846:(e,n,t)=>{t.r(n),t.d(n,{as [...]
\ No newline at end of file
diff --git a/assets/js/32fb84ff.529a541b.js b/assets/js/32fb84ff.529a541b.js
new file mode 100644
index 000000000..857ffeaa1
--- /dev/null
+++ b/assets/js/32fb84ff.529a541b.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[8560],{28453:(e,s,r)=>{r.d(s,{R:()=>i,x:()=>d});var o=r(96540);const t={},n=o.createContext(t);function i(e){const s=o.useContext(n);return o.useMemo((function(){return"function"==typeof e?e(s):{...s,...e}}),[s,e])}function d(e){let s;return s=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:i(e.components),o.createElement(n.Provider,{value:s},e.children)}},38695:(e,s,r)=>{r.r(s),r.d(s,{as [...]
\ No newline at end of file
diff --git a/assets/js/337cc2af.bbc1beb0.js b/assets/js/337cc2af.bbc1beb0.js
new file mode 100644
index 000000000..b9fa962ef
--- /dev/null
+++ b/assets/js/337cc2af.bbc1beb0.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[8421],{28453:(e,n,t)=>{t.d(n,{R:()=>o,x:()=>l});var i=t(96540);const s={},r=i.createContext(s);function o(e){const n=i.useContext(r);return i.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function l(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:o(e.components),i.createElement(r.Provider,{value:n},e.children)}},62969:(e,n,t)=>{t.r(n),t.d(n,{as [...]
\ No newline at end of file
diff --git a/assets/js/338208dd.5a46536b.js b/assets/js/338208dd.5a46536b.js
new file mode 100644
index 000000000..385628c69
--- /dev/null
+++ b/assets/js/338208dd.5a46536b.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[827],{16509:(e,t,s)=>{s.r(t),s.d(t,{assets:()=>u,contentTitle:()=>i,default:()=>p,frontMatter:()=>o,metadata:()=>n,toc:()=>d});const n=JSON.parse('{"id":"comparisons/druid-vs-kudu","title":"Apache Druid vs Kudu","description":"\x3c!--","source":"@site/docs/38.0.0/comparisons/druid-vs-kudu.md","sourceDirName":"comparisons","slug":"/comparisons/druid-vs-kudu","permalink":"/docs/38.0.0/comparisons/druid-vs-kudu","draft":false,"un [...]
\ No newline at end of file
diff --git a/assets/js/33892386.88279598.js b/assets/js/33892386.88279598.js
new file mode 100644
index 000000000..fc179bd74
--- /dev/null
+++ b/assets/js/33892386.88279598.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[867],{9199:(e,t,s)=>{s.r(t),s.d(t,{assets:()=>a,contentTitle:()=>c,default:()=>h,frontMatter:()=>o,metadata:()=>n,toc:()=>l});const n=JSON.parse('{"id":"operations/alerts","title":"Alerts","description":"\x3c!--","source":"@site/docs/38.0.0/operations/alerts.md","sourceDirName":"operations","slug":"/operations/alerts","permalink":"/docs/38.0.0/operations/alerts","draft":false,"unlisted":false,"tags":[],"version":"current","fro [...]
\ No newline at end of file
diff --git a/assets/js/33d88741.9f66143d.js b/assets/js/33d88741.9f66143d.js
new file mode 100644
index 000000000..eaf32601e
--- /dev/null
+++ b/assets/js/33d88741.9f66143d.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[4343],{9381:(e,t,n)=>{n.d(t,{A:()=>i});const i=n.p+"assets/images/tutorial-retention-05-54500f6be8508fb4ddf4468830bd94cd.png"},28453:(e,t,n)=>{n.d(t,{R:()=>a,x:()=>o});var i=n(96540);const r={},s=i.createContext(r);function a(e){const t=i.useContext(s);return i.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function o(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.component [...]
\ No newline at end of file
diff --git a/assets/js/346676e9.a4effb52.js b/assets/js/346676e9.a4effb52.js
new file mode 100644
index 000000000..2d6d956c4
--- /dev/null
+++ b/assets/js/346676e9.a4effb52.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[503],{24035:(e,d,n)=>{n.r(d),n.d(d,{assets:()=>l,contentTitle:()=>t,default:()=>a,frontMatter:()=>c,metadata:()=>i,toc:()=>o});const i=JSON.parse('{"id":"development/extensions-contrib/redis-cache","title":"Druid Redis Cache","description":"\x3c!--","source":"@site/docs/38.0.0/development/extensions-contrib/redis-cache.md","sourceDirName":"development/extensions-contrib","slug":"/development/extensions-contrib/redis-cache","pe [...]
\ No newline at end of file
diff --git a/assets/js/346f2d1f.001e6b30.js b/assets/js/346f2d1f.001e6b30.js
new file mode 100644
index 000000000..33b129a8b
--- /dev/null
+++ b/assets/js/346f2d1f.001e6b30.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[3101],{19167:(e,s,t)=>{t.r(s),t.d(s,{assets:()=>c,contentTitle:()=>i,default:()=>l,frontMatter:()=>o,metadata:()=>a,toc:()=>d});const a=JSON.parse('{"id":"comparisons/druid-vs-elasticsearch","title":"Apache Druid vs Elasticsearch","description":"\x3c!--","source":"@site/docs/38.0.0/comparisons/druid-vs-elasticsearch.md","sourceDirName":"comparisons","slug":"/comparisons/druid-vs-elasticsearch","permalink":"/docs/38.0.0/compari [...]
\ No newline at end of file
diff --git a/assets/js/34fe466c.23113d36.js b/assets/js/34fe466c.23113d36.js
new file mode 100644
index 000000000..3a03b8811
--- /dev/null
+++ b/assets/js/34fe466c.23113d36.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[662],{28453:(e,n,o)=>{o.d(n,{R:()=>s,x:()=>l});var t=o(96540);const i={},r=t.createContext(i);function s(e){const n=t.useContext(r);return t.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function l(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:s(e.components),t.createElement(r.Provider,{value:n},e.children)}},89088:(e,n,o)=>{o.r(n),o.d(n,{ass [...]
\ No newline at end of file
diff --git a/assets/js/3588a834.f8f550ed.js b/assets/js/3588a834.f8f550ed.js
new file mode 100644
index 000000000..48af935f7
--- /dev/null
+++ b/assets/js/3588a834.f8f550ed.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[2025],{28453:(e,n,i)=>{i.d(n,{R:()=>s,x:()=>o});var t=i(96540);const a={},r=t.createContext(a);function s(e){const n=t.useContext(r);return t.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function o(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(a):e.components||a:s(e.components),t.createElement(r.Provider,{value:n},e.children)}},78719:(e,n,i)=>{i.r(n),i.d(n,{as [...]
\ No newline at end of file
diff --git a/assets/js/35ed644f.446133ea.js b/assets/js/35ed644f.446133ea.js
new file mode 100644
index 000000000..9cc25a35f
--- /dev/null
+++ b/assets/js/35ed644f.446133ea.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[4984],{28453:(e,n,s)=>{s.d(n,{R:()=>o,x:()=>d});var r=s(96540);const t={},i=r.createContext(t);function o(e){const n=r.useContext(i);return r.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function d(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:o(e.components),r.createElement(i.Provider,{value:n},e.children)}},95440:(e,n,s)=>{s.r(n),s.d(n,{as [...]
\ No newline at end of file
diff --git a/assets/js/3624.c2d2ffbb.js b/assets/js/3624.c2d2ffbb.js
new file mode 100644
index 000000000..9e530f575
--- /dev/null
+++ b/assets/js/3624.c2d2ffbb.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[3624],{2634:(t,n,r)=>{r.d(n,{A:()=>e});const e=function(t,n){for(var r=-1,e=null==t?0:t.length,o=0,c=[];++r<e;){var u=t[r];n(u,r,t)&&(c[o++]=u)}return c}},6240:(t,n,r)=>{r.d(n,{A:()=>c});var e=r(79841),o=r(38446);const c=function(t,n){return function(r,e){if(null==r)return r;if(!(0,o.A)(r))return t(r,e);for(var c=r.length,u=n?c:-1,a=Object(r);(n?u--:++u<c)&&!1!==e(a[u],u,a););return r}}(e.A)},7819:(t,n,r)=>{r.d(n,{A:()=>A});va [...]
\ No newline at end of file
diff --git a/assets/js/36497d9a.5ae47e2d.js b/assets/js/36497d9a.5ae47e2d.js
new file mode 100644
index 000000000..0d0b8c6f4
--- /dev/null
+++ b/assets/js/36497d9a.5ae47e2d.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[6866],{28453:(e,n,s)=>{s.d(n,{R:()=>o,x:()=>c});var r=s(96540);const t={},i=r.createContext(t);function o(e){const n=r.useContext(i);return r.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function c(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:o(e.components),r.createElement(i.Provider,{value:n},e.children)}},34616:(e,n,s)=>{s.r(n),s.d(n,{as [...]
\ No newline at end of file
diff --git a/assets/js/3698f0ce.3ccd6bb4.js b/assets/js/3698f0ce.3ccd6bb4.js
new file mode 100644
index 000000000..e71f12aaa
--- /dev/null
+++ b/assets/js/3698f0ce.3ccd6bb4.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[6037],{28453:(e,t,n)=>{n.d(t,{R:()=>o,x:()=>d});var s=n(96540);const r={},i=s.createContext(r);function o(e){const t=s.useContext(i);return s.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function d(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:o(e.components),s.createElement(i.Provider,{value:t},e.children)}},44522:(e,t,n)=>{n.r(t),n.d(t,{as [...]
\ No newline at end of file
diff --git a/assets/js/37051026.d9b176e2.js b/assets/js/37051026.d9b176e2.js
new file mode 100644
index 000000000..18ee30812
--- /dev/null
+++ b/assets/js/37051026.d9b176e2.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[4375],{28453:(e,n,r)=>{r.d(n,{R:()=>d,x:()=>o});var t=r(96540);const s={},i=t.createContext(s);function d(e){const n=t.useContext(i);return t.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function o(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:d(e.components),t.createElement(i.Provider,{value:n},e.children)}},65537:(e,n,r)=>{r.d(n,{A:()=>k}) [...]
\ No newline at end of file
diff --git a/assets/js/38421e70.9112dc26.js b/assets/js/38421e70.9112dc26.js
new file mode 100644
index 000000000..0ad64fdcb
--- /dev/null
+++ b/assets/js/38421e70.9112dc26.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[6003],{28453:(e,i,t)=>{t.d(i,{R:()=>s,x:()=>a});var r=t(96540);const o={},n=r.createContext(o);function s(e){const i=r.useContext(n);return r.useMemo((function(){return"function"==typeof e?e(i):{...i,...e}}),[i,e])}function a(e){let i;return i=e.disableParentContext?"function"==typeof e.components?e.components(o):e.components||o:s(e.components),r.createElement(n.Provider,{value:i},e.children)}},36791:(e,i,t)=>{t.r(i),t.d(i,{as [...]
\ No newline at end of file
diff --git a/assets/js/38aaa58c.bbd07ddf.js b/assets/js/38aaa58c.bbd07ddf.js
new file mode 100644
index 000000000..9b2ad3d07
--- /dev/null
+++ b/assets/js/38aaa58c.bbd07ddf.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[2825],{4793:(e,t,a)=>{a.d(t,{A:()=>s});const s=a.p+"assets/images/tutorial-batch-data-loader-11-e176f4b04d11f4cd667780fef55aceaf.png"},26907:(e,t,a)=>{a.d(t,{A:()=>s});const s="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAF8AAAAXCAYAAABtR5P0AAAAAXNSR0IArs4c6QAAAERlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAA6ABAAMAAAABAAEAAKACAAQAAAABAAAAX6ADAAQAAAABAAAAFwAAAAAdsfvDAAAKwklEQVRoBe1ZeVDV5xU9vKdsArKIoqIoyiayKBFXEGQRUVyqNS5Zamw1M2b [...]
\ No newline at end of file
diff --git a/assets/js/38d110d6.6d122b02.js b/assets/js/38d110d6.6d122b02.js
new file mode 100644
index 000000000..bfe7ea837
--- /dev/null
+++ b/assets/js/38d110d6.6d122b02.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[9694],{23767:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>l,contentTitle:()=>u,default:()=>h,frontMatter:()=>c,metadata:()=>r,toc:()=>d});const r=JSON.parse('{"id":"querying/projections","title":"Query projections","description":"Speed up your queries by defining projections that pre-aggreate data for you.","source":"@site/docs/38.0.0/querying/projections.md","sourceDirName":"querying","slug":"/querying/projections","permalink":"/docs/3 [...]
\ No newline at end of file
diff --git a/assets/js/392ede42.38c25647.js b/assets/js/392ede42.38c25647.js
new file mode 100644
index 000000000..88696b974
--- /dev/null
+++ b/assets/js/392ede42.38c25647.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[7755],{28453:(e,s,r)=>{r.d(s,{R:()=>d,x:()=>a});var t=r(96540);const n={},o=t.createContext(n);function d(e){const s=t.useContext(o);return t.useMemo((function(){return"function"==typeof e?e(s):{...s,...e}}),[s,e])}function a(e){let s;return s=e.disableParentContext?"function"==typeof e.components?e.components(n):e.components||n:d(e.components),t.createElement(o.Provider,{value:s},e.children)}},71926:(e,s,r)=>{r.r(s),r.d(s,{as [...]
\ No newline at end of file
diff --git a/assets/js/39d167e5.5f0ad8af.js b/assets/js/39d167e5.5f0ad8af.js
new file mode 100644
index 000000000..38cbe6ae6
--- /dev/null
+++ b/assets/js/39d167e5.5f0ad8af.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[9369],{28453:(e,n,i)=>{i.d(n,{R:()=>t,x:()=>c});var s=i(96540);const r={},o=s.createContext(r);function t(e){const n=s.useContext(o);return s.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function c(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:t(e.components),s.createElement(o.Provider,{value:n},e.children)}},91360:(e,n,i)=>{i.r(n),i.d(n,{as [...]
\ No newline at end of file
diff --git a/assets/js/3a74134f.d03aa055.js b/assets/js/3a74134f.d03aa055.js
new file mode 100644
index 000000000..e8f6124e5
--- /dev/null
+++ b/assets/js/3a74134f.d03aa055.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[5200],{28453:(e,t,n)=>{n.d(t,{R:()=>l,x:()=>d});var s=n(96540);const a={},i=s.createContext(a);function l(e){const t=s.useContext(i);return s.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function d(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(a):e.components||a:l(e.components),s.createElement(i.Provider,{value:t},e.children)}},48037:(e,t,n)=>{n.r(t),n.d(t,{as [...]
\ No newline at end of file
diff --git a/assets/js/3b838b38.64bdc876.js b/assets/js/3b838b38.64bdc876.js
new file mode 100644
index 000000000..a0e0d2195
--- /dev/null
+++ b/assets/js/3b838b38.64bdc876.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[768],{28453:(e,i,n)=>{n.d(i,{R:()=>o,x:()=>a});var r=n(96540);const t={},s=r.createContext(t);function o(e){const i=r.useContext(s);return r.useMemo((function(){return"function"==typeof e?e(i):{...i,...e}}),[i,e])}function a(e){let i;return i=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:o(e.components),r.createElement(s.Provider,{value:i},e.children)}},63948:(e,i,n)=>{n.r(i),n.d(i,{ass [...]
\ No newline at end of file
diff --git a/assets/js/3b886b08.1d3415bb.js b/assets/js/3b886b08.1d3415bb.js
new file mode 100644
index 000000000..1a8006114
--- /dev/null
+++ b/assets/js/3b886b08.1d3415bb.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[6440],{28453:(e,n,i)=>{i.d(n,{R:()=>r,x:()=>o});var t=i(96540);const a={},s=t.createContext(a);function r(e){const n=t.useContext(s);return t.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function o(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(a):e.components||a:r(e.components),t.createElement(s.Provider,{value:n},e.children)}},40297:(e,n,i)=>{i.r(n),i.d(n,{as [...]
\ No newline at end of file
diff --git a/assets/js/3ba5c2fc.4fe3159b.js b/assets/js/3ba5c2fc.4fe3159b.js
new file mode 100644
index 000000000..74036a902
--- /dev/null
+++ b/assets/js/3ba5c2fc.4fe3159b.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[8108],{28453:(e,r,i)=>{i.d(r,{R:()=>o,x:()=>a});var t=i(96540);const n={},s=t.createContext(n);function o(e){const r=t.useContext(s);return t.useMemo((function(){return"function"==typeof e?e(r):{...r,...e}}),[r,e])}function a(e){let r;return r=e.disableParentContext?"function"==typeof e.components?e.components(n):e.components||n:o(e.components),t.createElement(s.Provider,{value:r},e.children)}},49070:(e,r,i)=>{i.r(r),i.d(r,{as [...]
\ No newline at end of file
diff --git a/assets/js/3bbd7287.88b11773.js b/assets/js/3bbd7287.88b11773.js
new file mode 100644
index 000000000..2c2fe6140
--- /dev/null
+++ b/assets/js/3bbd7287.88b11773.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[8966],{4536:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>c,contentTitle:()=>r,default:()=>h,frontMatter:()=>a,metadata:()=>i,toc:()=>d});const i=JSON.parse('{"id":"design/coordinator","title":"Coordinator service","description":"\x3c!--","source":"@site/docs/38.0.0/design/coordinator.md","sourceDirName":"design","slug":"/design/coordinator","permalink":"/docs/38.0.0/design/coordinator","draft":false,"unlisted":false,"tags":[],"version": [...]
\ No newline at end of file
diff --git a/assets/js/3c296afa.e3111d61.js b/assets/js/3c296afa.e3111d61.js
new file mode 100644
index 000000000..b2f596546
--- /dev/null
+++ b/assets/js/3c296afa.e3111d61.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[1334],{9897:(e,o,t)=>{t.r(o),t.d(o,{assets:()=>l,contentTitle:()=>d,default:()=>h,frontMatter:()=>s,metadata:()=>n,toc:()=>c});const n=JSON.parse('{"id":"development/extensions-core/google","title":"Google Cloud Storage","description":"\x3c!--","source":"@site/docs/38.0.0/development/extensions-core/google.md","sourceDirName":"development/extensions-core","slug":"/development/extensions-core/google","permalink":"/docs/38.0.0/d [...]
\ No newline at end of file
diff --git a/assets/js/3c48ffe5.2f1d8302.js b/assets/js/3c48ffe5.2f1d8302.js
new file mode 100644
index 000000000..6f4952c07
--- /dev/null
+++ b/assets/js/3c48ffe5.2f1d8302.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[2787],{28453:(e,n,r)=>{r.d(n,{R:()=>l,x:()=>d});var s=r(96540);const i={},t=s.createContext(i);function l(e){const n=s.useContext(t);return s.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function d(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:l(e.components),s.createElement(t.Provider,{value:n},e.children)}},85088:(e,n,r)=>{r.r(n),r.d(n,{as [...]
\ No newline at end of file
diff --git a/assets/js/3ccbe206.53e448d8.js b/assets/js/3ccbe206.53e448d8.js
new file mode 100644
index 000000000..a38d4fe3b
--- /dev/null
+++ b/assets/js/3ccbe206.53e448d8.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[9597],{11438:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>c,contentTitle:()=>o,default:()=>p,frontMatter:()=>d,metadata:()=>s,toc:()=>u});const s=JSON.parse('{"id":"api-reference/sql-ingestion-api","title":"SQL-based ingestion API","description":"\x3c!--","source":"@site/docs/latest/api-reference/sql-ingestion-api.md","sourceDirName":"api-reference","slug":"/api-reference/sql-ingestion-api","permalink":"/docs/latest/api-reference/sql-in [...]
\ No newline at end of file
diff --git a/assets/js/3d095abc.f3f5051d.js b/assets/js/3d095abc.f3f5051d.js
new file mode 100644
index 000000000..a5518fe79
--- /dev/null
+++ b/assets/js/3d095abc.f3f5051d.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[824],{18523:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>l,contentTitle:()=>a,default:()=>h,frontMatter:()=>d,metadata:()=>s,toc:()=>c});const s=JSON.parse('{"id":"tutorials/tutorial-update-data","title":"Update data","description":"Learn how to update data in Apache\xae Druid.","source":"@site/docs/latest/tutorials/tutorial-update-data.md","sourceDirName":"tutorials","slug":"/tutorials/tutorial-update-data","permalink":"/docs/latest/tu [...]
\ No newline at end of file
diff --git a/assets/js/3e06b534.74538172.js b/assets/js/3e06b534.74538172.js
new file mode 100644
index 000000000..cfb52055f
--- /dev/null
+++ b/assets/js/3e06b534.74538172.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[1111],{18866:(e,n,s)=>{s.r(n),s.d(n,{assets:()=>d,contentTitle:()=>r,default:()=>h,frontMatter:()=>l,metadata:()=>o,toc:()=>c});const o=JSON.parse('{"id":"querying/lookups-cached-global","title":"Globally Cached Lookups","description":"\x3c!--","source":"@site/docs/latest/querying/lookups-cached-global.md","sourceDirName":"querying","slug":"/querying/lookups-cached-global","permalink":"/docs/latest/querying/lookups-cached-glob [...]
\ No newline at end of file
diff --git a/assets/js/3ee2af08.214578f5.js b/assets/js/3ee2af08.214578f5.js
new file mode 100644
index 000000000..8d2adff76
--- /dev/null
+++ b/assets/js/3ee2af08.214578f5.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[8699],{28453:(e,n,t)=>{t.d(n,{R:()=>o,x:()=>s});var r=t(96540);const a={},i=r.createContext(a);function o(e){const n=r.useContext(i);return r.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function s(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(a):e.components||a:o(e.components),r.createElement(i.Provider,{value:n},e.children)}},57378:(e,n,t)=>{t.r(n),t.d(n,{as [...]
\ No newline at end of file
diff --git a/assets/js/3f8e7beb.b4e68e7e.js b/assets/js/3f8e7beb.b4e68e7e.js
new file mode 100644
index 000000000..f5c90e2cb
--- /dev/null
+++ b/assets/js/3f8e7beb.b4e68e7e.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[4207],{16043:(e,t,n)=>{n.d(t,{A:()=>s});const s=n.p+"assets/images/tutorial-deletion-03-09b79439abe874b5e8d765b249b28d89.png"},28453:(e,t,n)=>{n.d(t,{R:()=>i,x:()=>d});var s=n(96540);const a={},l=s.createContext(a);function i(e){const t=s.useContext(l);return s.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function d(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.component [...]
\ No newline at end of file
diff --git a/assets/js/3fc4ca5f.dc567559.js b/assets/js/3fc4ca5f.dc567559.js
new file mode 100644
index 000000000..e7f3a43c8
--- /dev/null
+++ b/assets/js/3fc4ca5f.dc567559.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[7772],{28453:(e,s,t)=>{t.d(s,{R:()=>o,x:()=>a});var r=t(96540);const n={},i=r.createContext(n);function o(e){const s=r.useContext(i);return r.useMemo((function(){return"function"==typeof e?e(s):{...s,...e}}),[s,e])}function a(e){let s;return s=e.disableParentContext?"function"==typeof e.components?e.components(n):e.components||n:o(e.components),r.createElement(i.Provider,{value:s},e.children)}},85609:(e,s,t)=>{t.r(s),t.d(s,{as [...]
\ No newline at end of file
diff --git a/assets/js/40d22985.83d61213.js b/assets/js/40d22985.83d61213.js
new file mode 100644
index 000000000..75c8b6f69
--- /dev/null
+++ b/assets/js/40d22985.83d61213.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[1307],{28453:(e,t,s)=>{s.d(t,{R:()=>i,x:()=>o});var n=s(96540);const d={},r=n.createContext(d);function i(e){const t=n.useContext(r);return n.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function o(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(d):e.components||d:i(e.components),n.createElement(r.Provider,{value:t},e.children)}},51463:(e,t,s)=>{s.r(t),s.d(t,{as [...]
\ No newline at end of file
diff --git a/assets/js/412ee224.c1129948.js b/assets/js/412ee224.c1129948.js
new file mode 100644
index 000000000..c9b7d07af
--- /dev/null
+++ b/assets/js/412ee224.c1129948.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[7722],{28453:(e,s,d)=>{d.d(s,{R:()=>n,x:()=>c});var r=d(96540);const i={},t=r.createContext(i);function n(e){const s=r.useContext(t);return r.useMemo((function(){return"function"==typeof e?e(s):{...s,...e}}),[s,e])}function c(e){let s;return s=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:n(e.components),r.createElement(t.Provider,{value:s},e.children)}},42055:(e,s,d)=>{d.r(s),d.d(s,{as [...]
\ No newline at end of file
diff --git a/assets/js/414403c6.4210d691.js b/assets/js/414403c6.4210d691.js
new file mode 100644
index 000000000..0b5748039
--- /dev/null
+++ b/assets/js/414403c6.4210d691.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[8230],{28453:(e,s,n)=>{n.d(s,{R:()=>d,x:()=>o});var i=n(96540);const r={},t=i.createContext(r);function d(e){const s=i.useContext(t);return i.useMemo((function(){return"function"==typeof e?e(s):{...s,...e}}),[s,e])}function o(e){let s;return s=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:d(e.components),i.createElement(t.Provider,{value:s},e.children)}},44102:(e,s,n)=>{n.r(s),n.d(s,{as [...]
\ No newline at end of file
diff --git a/assets/js/4190.5abbba1e.js b/assets/js/4190.5abbba1e.js
new file mode 100644
index 000000000..4231ef63f
--- /dev/null
+++ b/assets/js/4190.5abbba1e.js
@@ -0,0 +1,2 @@
+/*! For license information please see 4190.5abbba1e.js.LICENSE.txt */
+(self.webpackChunk=self.webpackChunk||[]).push([[4190],{16220:(e,t,n)=>{"use strict";var i,r=n(71337);function s(e){return e.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g,"\\$&")}e.exports={isArray:null,isFunction:null,isObject:null,bind:null,each:null,map:null,mixin:null,isMsie:function(e){if(void 0===e&&(e=navigator.userAgent),/(msie|trident)/i.test(e)){var t=e.match(/(msie |rv:)(\d+(.\d+)?)/i);if(t)return t[2]}return!1},escapeRegExChars:function(e){return e.replace(/[\-\[\]\/\{\}\(\)\ [...]
\ No newline at end of file
diff --git a/assets/js/4190.5abbba1e.js.LICENSE.txt b/assets/js/4190.5abbba1e.js.LICENSE.txt
new file mode 100644
index 000000000..1cf473c23
--- /dev/null
+++ b/assets/js/4190.5abbba1e.js.LICENSE.txt
@@ -0,0 +1,61 @@
+/*!
+ * lunr.Builder
+ * Copyright (C) 2020 Oliver Nightingale
+ */
+
+/*!
+ * lunr.Index
+ * Copyright (C) 2020 Oliver Nightingale
+ */
+
+/*!
+ * lunr.Pipeline
+ * Copyright (C) 2020 Oliver Nightingale
+ */
+
+/*!
+ * lunr.Set
+ * Copyright (C) 2020 Oliver Nightingale
+ */
+
+/*!
+ * lunr.TokenSet
+ * Copyright (C) 2020 Oliver Nightingale
+ */
+
+/*!
+ * lunr.Vector
+ * Copyright (C) 2020 Oliver Nightingale
+ */
+
+/*!
+ * lunr.stemmer
+ * Copyright (C) 2020 Oliver Nightingale
+ * Includes code from - http://tartarus.org/~martin/PorterStemmer/js.txt
+ */
+
+/*!
+ * lunr.stopWordFilter
+ * Copyright (C) 2020 Oliver Nightingale
+ */
+
+/*!
+ * lunr.tokenizer
+ * Copyright (C) 2020 Oliver Nightingale
+ */
+
+/*!
+ * lunr.trimmer
+ * Copyright (C) 2020 Oliver Nightingale
+ */
+
+/*!
+ * lunr.utils
+ * Copyright (C) 2020 Oliver Nightingale
+ */
+
+/**
+ * lunr - http://lunrjs.com - A bit like Solr, but much smaller and not as bright - 2.3.9
+ * Copyright (C) 2020 Oliver Nightingale
+ * @license MIT
+ */
diff --git a/assets/js/4245e8d3.c7dddb16.js b/assets/js/4245e8d3.c7dddb16.js
new file mode 100644
index 000000000..f8c4995fd
--- /dev/null
+++ b/assets/js/4245e8d3.c7dddb16.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[6816],{28453:(e,n,t)=>{t.d(n,{R:()=>r,x:()=>o});var a=t(96540);const i={},s=a.createContext(i);function r(e){const n=a.useContext(s);return a.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function o(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:r(e.components),a.createElement(s.Provider,{value:n},e.children)}},83109:(e,n,t)=>{t.r(n),t.d(n,{as [...]
\ No newline at end of file
diff --git a/assets/js/42be3a3f.1cedaa43.js b/assets/js/42be3a3f.1cedaa43.js
new file mode 100644
index 000000000..ff912dbe2
--- /dev/null
+++ b/assets/js/42be3a3f.1cedaa43.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[929],{11026:(e,r,s)=>{s.r(r),s.d(r,{assets:()=>c,contentTitle:()=>a,default:()=>h,frontMatter:()=>o,metadata:()=>t,toc:()=>d});const t=JSON.parse('{"id":"design/broker","title":"Broker service","description":"\x3c!--","source":"@site/docs/latest/design/broker.md","sourceDirName":"design","slug":"/design/broker","permalink":"/docs/latest/design/broker","draft":false,"unlisted":false,"tags":[],"version":"current","frontMatter":{ [...]
\ No newline at end of file
diff --git a/assets/js/4374d1d5.ce4354ba.js b/assets/js/4374d1d5.ce4354ba.js
new file mode 100644
index 000000000..2314a77dd
--- /dev/null
+++ b/assets/js/4374d1d5.ce4354ba.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[9525],{28453:(e,n,t)=>{t.d(n,{R:()=>o,x:()=>r});var s=t(96540);const i={},a=s.createContext(i);function o(e){const n=s.useContext(a);return s.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function r(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:o(e.components),s.createElement(a.Provider,{value:n},e.children)}},35225:(e,n,t)=>{t.d(n,{A:()=>s}) [...]
\ No newline at end of file
diff --git a/assets/js/43c5580d.daeda3e4.js b/assets/js/43c5580d.daeda3e4.js
new file mode 100644
index 000000000..bfcc7de47
--- /dev/null
+++ b/assets/js/43c5580d.daeda3e4.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[1007],{28453:(e,s,i)=>{i.d(s,{R:()=>t,x:()=>a});var n=i(96540);const r={},o=n.createContext(r);function t(e){const s=n.useContext(o);return n.useMemo((function(){return"function"==typeof e?e(s):{...s,...e}}),[s,e])}function a(e){let s;return s=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:t(e.components),n.createElement(o.Provider,{value:s},e.children)}},81686:(e,s,i)=>{i.r(s),i.d(s,{as [...]
\ No newline at end of file
diff --git a/assets/js/445bf8fb.7a78be4b.js b/assets/js/445bf8fb.7a78be4b.js
new file mode 100644
index 000000000..a19629bd1
--- /dev/null
+++ b/assets/js/445bf8fb.7a78be4b.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[8104],{6538:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>c,contentTitle:()=>a,default:()=>h,frontMatter:()=>r,metadata:()=>s,toc:()=>l});const s=JSON.parse('{"id":"development/extensions-contrib/iceberg","title":"Iceberg extension","description":"\x3c!--","source":"@site/docs/latest/development/extensions-contrib/iceberg.md","sourceDirName":"development/extensions-contrib","slug":"/development/extensions-contrib/iceberg","permalink":"/d [...]
\ No newline at end of file
diff --git a/assets/js/44c1092b.db5f2160.js b/assets/js/44c1092b.db5f2160.js
new file mode 100644
index 000000000..4822cfc1d
--- /dev/null
+++ b/assets/js/44c1092b.db5f2160.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[2782],{3213:(e,n,l)=>{l.r(n),l.d(n,{assets:()=>d,contentTitle:()=>u,default:()=>m,frontMatter:()=>o,metadata:()=>r,toc:()=>c});const r=JSON.parse('{"id":"release-info/migr-ansi-sql-null","title":"Migration guide: SQL compliant mode","description":"\x3c!--","source":"@site/docs/38.0.0/release-info/migr-ansi-sql-null.md","sourceDirName":"release-info","slug":"/release-info/migr-ansi-sql-null","permalink":"/docs/38.0.0/release-in [...]
\ No newline at end of file
diff --git a/assets/js/44f44d7b.98482953.js b/assets/js/44f44d7b.98482953.js
new file mode 100644
index 000000000..879681676
--- /dev/null
+++ b/assets/js/44f44d7b.98482953.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[6946],{28453:(e,t,a)=>{a.d(t,{R:()=>n,x:()=>o});var s=a(96540);const r={},i=s.createContext(r);function n(e){const t=s.useContext(i);return s.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function o(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:n(e.components),s.createElement(i.Provider,{value:t},e.children)}},86896:(e,t,a)=>{a.r(t),a.d(t,{as [...]
\ No newline at end of file
diff --git a/assets/js/45247bbe.1b5326a6.js b/assets/js/45247bbe.1b5326a6.js
new file mode 100644
index 000000000..d668915b3
--- /dev/null
+++ b/assets/js/45247bbe.1b5326a6.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[212],{28453:(e,t,a)=>{a.d(t,{R:()=>d,x:()=>i});var s=a(96540);const r={},n=s.createContext(r);function d(e){const t=s.useContext(n);return s.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function i(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:d(e.components),s.createElement(n.Provider,{value:t},e.children)}},30302:(e,t,a)=>{a.r(t),a.d(t,{ass [...]
\ No newline at end of file
diff --git a/assets/js/45535480.12dd90c1.js b/assets/js/45535480.12dd90c1.js
new file mode 100644
index 000000000..1df7d3a45
--- /dev/null
+++ b/assets/js/45535480.12dd90c1.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[9129],{28453:(e,n,s)=>{s.d(n,{R:()=>i,x:()=>l});var r=s(96540);const a={},t=r.createContext(a);function i(e){const n=r.useContext(t);return r.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function l(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(a):e.components||a:i(e.components),r.createElement(t.Provider,{value:n},e.children)}},33603:(e,n,s)=>{s.r(n),s.d(n,{as [...]
\ No newline at end of file
diff --git a/assets/js/458bce1b.c3c6e138.js b/assets/js/458bce1b.c3c6e138.js
new file mode 100644
index 000000000..82c7579eb
--- /dev/null
+++ b/assets/js/458bce1b.c3c6e138.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[3977],{28453:(e,n,l)=>{l.d(n,{R:()=>s,x:()=>a});var r=l(96540);const i={},t=r.createContext(i);function s(e){const n=r.useContext(t);return r.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function a(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:s(e.components),r.createElement(t.Provider,{value:n},e.children)}},41516:(e,n,l)=>{l.r(n),l.d(n,{as [...]
\ No newline at end of file
diff --git a/assets/js/45f88f22.2c914bce.js b/assets/js/45f88f22.2c914bce.js
new file mode 100644
index 000000000..50b187fb5
--- /dev/null
+++ b/assets/js/45f88f22.2c914bce.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[1222],{27545:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>a,contentTitle:()=>d,default:()=>h,frontMatter:()=>o,metadata:()=>s,toc:()=>c});const s=JSON.parse('{"id":"development/extensions-core/datasketches-hll","title":"DataSketches HLL Sketch module","description":"\x3c!--","source":"@site/docs/38.0.0/development/extensions-core/datasketches-hll.md","sourceDirName":"development/extensions-core","slug":"/development/extensions-core/data [...]
\ No newline at end of file
diff --git a/assets/js/46a2378c.badf56b0.js b/assets/js/46a2378c.badf56b0.js
new file mode 100644
index 000000000..31e99b8a8
--- /dev/null
+++ b/assets/js/46a2378c.badf56b0.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[2581],{28453:(e,t,s)=>{s.d(t,{R:()=>i,x:()=>d});var o=s(96540);const n={},r=o.createContext(n);function i(e){const t=o.useContext(r);return o.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function d(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(n):e.components||n:i(e.components),o.createElement(r.Provider,{value:t},e.children)}},49193:(e,t,s)=>{s.r(t),s.d(t,{as [...]
\ No newline at end of file
diff --git a/assets/js/49978ae3.6539e809.js b/assets/js/49978ae3.6539e809.js
new file mode 100644
index 000000000..8dbf47754
--- /dev/null
+++ b/assets/js/49978ae3.6539e809.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[4023],{28453:(e,n,t)=>{t.d(n,{R:()=>o,x:()=>d});var a=t(96540);const i={},s=a.createContext(i);function o(e){const n=a.useContext(s);return a.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function d(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:o(e.components),a.createElement(s.Provider,{value:n},e.children)}},65564:(e,n,t)=>{t.r(n),t.d(n,{as [...]
\ No newline at end of file
diff --git a/assets/js/49dd0ed7.475ea995.js b/assets/js/49dd0ed7.475ea995.js
new file mode 100644
index 000000000..d0da5a494
--- /dev/null
+++ b/assets/js/49dd0ed7.475ea995.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[7196],{20194:(e,r,o)=>{o.r(r),o.d(r,{assets:()=>a,contentTitle:()=>d,default:()=>h,frontMatter:()=>i,metadata:()=>n,toc:()=>c});const n=JSON.parse('{"id":"design/zookeeper","title":"ZooKeeper","description":"\x3c!--","source":"@site/docs/38.0.0/design/zookeeper.md","sourceDirName":"design","slug":"/design/zookeeper","permalink":"/docs/38.0.0/design/zookeeper","draft":false,"unlisted":false,"tags":[],"version":"current","frontM [...]
\ No newline at end of file
diff --git a/assets/js/4a060e30.cddb7dd5.js b/assets/js/4a060e30.cddb7dd5.js
new file mode 100644
index 000000000..f77a9eb02
--- /dev/null
+++ b/assets/js/4a060e30.cddb7dd5.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[3248],{28453:(e,t,n)=>{n.d(t,{R:()=>s,x:()=>o});var i=n(96540);const r={},a=i.createContext(r);function s(e){const t=i.useContext(a);return i.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function o(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:s(e.components),i.createElement(a.Provider,{value:t},e.children)}},71857:(e,t,n)=>{n.r(t),n.d(t,{as [...]
\ No newline at end of file
diff --git a/assets/js/4c6256b5.4fd6f7bc.js b/assets/js/4c6256b5.4fd6f7bc.js
new file mode 100644
index 000000000..eb7c9d1c1
--- /dev/null
+++ b/assets/js/4c6256b5.4fd6f7bc.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[9710],{28453:(e,s,r)=>{r.d(s,{R:()=>i,x:()=>l});var t=r(96540);const n={},d=t.createContext(n);function i(e){const s=t.useContext(d);return t.useMemo((function(){return"function"==typeof e?e(s):{...s,...e}}),[s,e])}function l(e){let s;return s=e.disableParentContext?"function"==typeof e.components?e.components(n):e.components||n:i(e.components),t.createElement(d.Provider,{value:s},e.children)}},61689:(e,s,r)=>{r.r(s),r.d(s,{as [...]
\ No newline at end of file
diff --git a/assets/js/4cf66254.ee4285e4.js b/assets/js/4cf66254.ee4285e4.js
new file mode 100644
index 000000000..86be638e0
--- /dev/null
+++ b/assets/js/4cf66254.ee4285e4.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[1871],{3891:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>l,contentTitle:()=>o,default:()=>c,frontMatter:()=>a,metadata:()=>i,toc:()=>d});const i=JSON.parse('{"id":"tutorials/tutorial-query","title":"Query data","description":"\x3c!--","source":"@site/docs/latest/tutorials/tutorial-query.md","sourceDirName":"tutorials","slug":"/tutorials/tutorial-query","permalink":"/docs/latest/tutorials/tutorial-query","draft":false,"unlisted":false,"t [...]
\ No newline at end of file
diff --git a/assets/js/4d049ca5.d671c87e.js b/assets/js/4d049ca5.d671c87e.js
new file mode 100644
index 000000000..d4564c062
--- /dev/null
+++ b/assets/js/4d049ca5.d671c87e.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[7501],{28453:(e,n,s)=>{s.d(n,{R:()=>d,x:()=>a});var r=s(96540);const t={},i=r.createContext(t);function d(e){const n=r.useContext(i);return r.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function a(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:d(e.components),r.createElement(i.Provider,{value:n},e.children)}},31995:(e,n,s)=>{s.r(n),s.d(n,{as [...]
\ No newline at end of file
diff --git a/assets/js/4d5affe9.9d7bda07.js b/assets/js/4d5affe9.9d7bda07.js
new file mode 100644
index 000000000..eaebe19bf
--- /dev/null
+++ b/assets/js/4d5affe9.9d7bda07.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[5435],{2057:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>a,default:()=>h,frontMatter:()=>d,metadata:()=>s,toc:()=>o});const s=JSON.parse('{"id":"tutorials/tutorial-latest-by","title":"Query for latest values","description":"How to use LATEST_BY or deltas for up-to-date values.","source":"@site/docs/latest/tutorials/tutorial-latest-by.md","sourceDirName":"tutorials","slug":"/tutorials/tutorial-latest-by","permalink":"/ [...]
\ No newline at end of file
diff --git a/assets/js/4e2cef3e.c3e91cb3.js b/assets/js/4e2cef3e.c3e91cb3.js
new file mode 100644
index 000000000..716a38a5a
--- /dev/null
+++ b/assets/js/4e2cef3e.c3e91cb3.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[3946],{6225:(e,n,o)=>{o.r(n),o.d(n,{assets:()=>a,contentTitle:()=>l,default:()=>g,frontMatter:()=>s,metadata:()=>t,toc:()=>d});const t=JSON.parse('{"id":"configuration/logging","title":"Logging","description":"\x3c!--","source":"@site/docs/38.0.0/configuration/logging.md","sourceDirName":"configuration","slug":"/configuration/logging","permalink":"/docs/38.0.0/configuration/logging","draft":false,"unlisted":false,"tags":[],"ve [...]
\ No newline at end of file
diff --git a/assets/js/4e72a206.d03ecc7a.js b/assets/js/4e72a206.d03ecc7a.js
new file mode 100644
index 000000000..0afe70525
--- /dev/null
+++ b/assets/js/4e72a206.d03ecc7a.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[8326],{28453:(e,r,i)=>{i.d(r,{R:()=>a,x:()=>o});var n=i(96540);const t={},s=n.createContext(t);function a(e){const r=n.useContext(s);return n.useMemo((function(){return"function"==typeof e?e(r):{...r,...e}}),[r,e])}function o(e){let r;return r=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:a(e.components),n.createElement(s.Provider,{value:r},e.children)}},79518:(e,r,i)=>{i.r(r),i.d(r,{as [...]
\ No newline at end of file
diff --git a/assets/js/4eca944b.bae50e0d.js b/assets/js/4eca944b.bae50e0d.js
new file mode 100644
index 000000000..6d5d6dd57
--- /dev/null
+++ b/assets/js/4eca944b.bae50e0d.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[4199],{28453:(e,r,n)=>{n.d(r,{R:()=>d,x:()=>t});var s=n(96540);const i={},o=s.createContext(i);function d(e){const r=s.useContext(o);return s.useMemo((function(){return"function"==typeof e?e(r):{...r,...e}}),[r,e])}function t(e){let r;return r=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:d(e.components),s.createElement(o.Provider,{value:r},e.children)}},82792:(e,r,n)=>{n.r(r),n.d(r,{as [...]
\ No newline at end of file
diff --git a/assets/js/4ed23b24.c2f75ab1.js b/assets/js/4ed23b24.c2f75ab1.js
new file mode 100644
index 000000000..a91494a3c
--- /dev/null
+++ b/assets/js/4ed23b24.c2f75ab1.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[1893],{28453:(e,n,s)=>{s.d(n,{R:()=>a,x:()=>o});var t=s(96540);const i={},r=t.createContext(i);function a(e){const n=t.useContext(r);return t.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function o(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:a(e.components),t.createElement(r.Provider,{value:n},e.children)}},89255:(e,n,s)=>{s.r(n),s.d(n,{as [...]
\ No newline at end of file
diff --git a/assets/js/4ff6a9f2.bf8832a4.js b/assets/js/4ff6a9f2.bf8832a4.js
new file mode 100644
index 000000000..3528719f2
--- /dev/null
+++ b/assets/js/4ff6a9f2.bf8832a4.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[1151],{28453:(e,n,s)=>{s.d(n,{R:()=>o,x:()=>c});var i=s(96540);const t={},r=i.createContext(t);function o(e){const n=i.useContext(r);return i.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function c(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:o(e.components),i.createElement(r.Provider,{value:n},e.children)}},90945:(e,n,s)=>{s.r(n),s.d(n,{as [...]
\ No newline at end of file
diff --git a/assets/js/502c5633.eee5129f.js b/assets/js/502c5633.eee5129f.js
new file mode 100644
index 000000000..4d3b9a721
--- /dev/null
+++ b/assets/js/502c5633.eee5129f.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[1714],{22516:(e,r,s)=>{s.r(r),s.d(r,{assets:()=>d,contentTitle:()=>t,default:()=>h,frontMatter:()=>a,metadata:()=>n,toc:()=>l});const n=JSON.parse('{"id":"design/architecture","title":"Architecture","description":"\x3c!--","source":"@site/docs/38.0.0/design/architecture.md","sourceDirName":"design","slug":"/design/architecture","permalink":"/docs/38.0.0/design/architecture","draft":false,"unlisted":false,"tags":[],"version":"c [...]
\ No newline at end of file
diff --git a/assets/js/508da023.e01065ed.js b/assets/js/508da023.e01065ed.js
new file mode 100644
index 000000000..6c9c71314
--- /dev/null
+++ b/assets/js/508da023.e01065ed.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[2286],{28453:(e,i,r)=>{r.d(i,{R:()=>s,x:()=>a});var o=r(96540);const t={},n=o.createContext(t);function s(e){const i=o.useContext(n);return o.useMemo((function(){return"function"==typeof e?e(i):{...i,...e}}),[i,e])}function a(e){let i;return i=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:s(e.components),o.createElement(n.Provider,{value:i},e.children)}},55027:(e,i,r)=>{r.r(i),r.d(i,{as [...]
\ No newline at end of file
diff --git a/assets/js/50e8131a.d743a739.js b/assets/js/50e8131a.d743a739.js
new file mode 100644
index 000000000..7c26e3cbf
--- /dev/null
+++ b/assets/js/50e8131a.d743a739.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[2445],{28453:(e,n,i)=>{i.d(n,{R:()=>d,x:()=>s});var o=i(96540);const r={},t=o.createContext(r);function d(e){const n=o.useContext(t);return o.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function s(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:d(e.components),o.createElement(t.Provider,{value:n},e.children)}},75627:(e,n,i)=>{i.r(n),i.d(n,{as [...]
\ No newline at end of file
diff --git a/assets/js/5143ed09.b2d83c63.js b/assets/js/5143ed09.b2d83c63.js
new file mode 100644
index 000000000..bc841d7a9
--- /dev/null
+++ b/assets/js/5143ed09.b2d83c63.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[3104],{28453:(e,t,n)=>{n.d(t,{R:()=>d,x:()=>l});var s=n(96540);const r={},i=s.createContext(r);function d(e){const t=s.useContext(i);return s.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function l(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:d(e.components),s.createElement(i.Provider,{value:t},e.children)}},64074:(e,t,n)=>{n.r(t),n.d(t,{as [...]
\ No newline at end of file
diff --git a/assets/js/51a3a77a.b2a765c0.js b/assets/js/51a3a77a.b2a765c0.js
new file mode 100644
index 000000000..249fb1970
--- /dev/null
+++ b/assets/js/51a3a77a.b2a765c0.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[4934],{28453:(e,t,o)=>{o.d(t,{R:()=>a,x:()=>i});var r=o(96540);const s={},n=r.createContext(s);function a(e){const t=r.useContext(n);return r.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function i(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:a(e.components),r.createElement(n.Provider,{value:t},e.children)}},31182:(e,t,o)=>{o.r(t),o.d(t,{as [...]
\ No newline at end of file
diff --git a/assets/js/51e623d9.15c717e0.js b/assets/js/51e623d9.15c717e0.js
new file mode 100644
index 000000000..50591414f
--- /dev/null
+++ b/assets/js/51e623d9.15c717e0.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[3380],{2448:e=>{e.exports=JSON.parse('{"version":{"pluginId":"default","version":"current","label":"Next","banner":null,"badge":false,"noIndex":false,"className":"docs-version-current","isLast":true,"docsSidebars":{"docs":[{"type":"link","label":"Introduction to Apache Druid","href":"/docs/latest/design/","docId":"design/index","unlisted":false},{"type":"category","label":"Getting started","items":[{"type":"link","label":"Sing [...]
\ No newline at end of file
diff --git a/assets/js/52b6c25c.cd619eca.js b/assets/js/52b6c25c.cd619eca.js
new file mode 100644
index 000000000..3059f6c15
--- /dev/null
+++ b/assets/js/52b6c25c.cd619eca.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[3685],{28453:(e,n,t)=>{t.d(n,{R:()=>r,x:()=>c});var o=t(96540);const s={},i=o.createContext(s);function r(e){const n=o.useContext(i);return o.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function c(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:r(e.components),o.createElement(i.Provider,{value:n},e.children)}},54907:(e,n,t)=>{t.r(n),t.d(n,{as [...]
\ No newline at end of file
diff --git a/assets/js/52ea51d8.4c2d427c.js b/assets/js/52ea51d8.4c2d427c.js
new file mode 100644
index 000000000..42a2e334c
--- /dev/null
+++ b/assets/js/52ea51d8.4c2d427c.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[5610],{2724:(e,n,r)=>{r.r(n),r.d(n,{assets:()=>u,contentTitle:()=>d,default:()=>p,frontMatter:()=>o,metadata:()=>l,toc:()=>c});const l=JSON.parse('{"id":"api-reference/retention-rules-api","title":"Retention rules API","description":"\x3c!--","source":"@site/docs/38.0.0/api-reference/retention-rules-api.md","sourceDirName":"api-reference","slug":"/api-reference/retention-rules-api","permalink":"/docs/38.0.0/api-reference/reten [...]
\ No newline at end of file
diff --git a/assets/js/53183842.2b60f6d4.js b/assets/js/53183842.2b60f6d4.js
new file mode 100644
index 000000000..87a7da23b
--- /dev/null
+++ b/assets/js/53183842.2b60f6d4.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[335],{28453:(e,r,i)=>{i.d(r,{R:()=>s,x:()=>o});var t=i(96540);const d={},n=t.createContext(d);function s(e){const r=t.useContext(n);return t.useMemo((function(){return"function"==typeof e?e(r):{...r,...e}}),[r,e])}function o(e){let r;return r=e.disableParentContext?"function"==typeof e.components?e.components(d):e.components||d:s(e.components),t.createElement(n.Provider,{value:r},e.children)}},69245:(e,r,i)=>{i.r(r),i.d(r,{ass [...]
\ No newline at end of file
diff --git a/assets/js/537e28c3.897fdcce.js b/assets/js/537e28c3.897fdcce.js
new file mode 100644
index 000000000..fec1e333c
--- /dev/null
+++ b/assets/js/537e28c3.897fdcce.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[6207],{15700:(e,s,n)=>{n.r(s),n.d(s,{assets:()=>a,contentTitle:()=>i,default:()=>h,frontMatter:()=>o,metadata:()=>t,toc:()=>l});const t=JSON.parse('{"id":"development/extensions-core/postgresql","title":"PostgreSQL metadata store","description":"\x3c!--","source":"@site/docs/38.0.0/development/extensions-core/postgresql.md","sourceDirName":"development/extensions-core","slug":"/development/extensions-core/postgresql","permalin [...]
\ No newline at end of file
diff --git a/assets/js/53d3b615.301fc63a.js b/assets/js/53d3b615.301fc63a.js
new file mode 100644
index 000000000..6c113c80d
--- /dev/null
+++ b/assets/js/53d3b615.301fc63a.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[42],{19228:(e,i,n)=>{n.r(i),n.d(i,{assets:()=>d,contentTitle:()=>a,default:()=>l,frontMatter:()=>o,metadata:()=>r,toc:()=>c});const r=JSON.parse('{"id":"development/extensions-contrib/druid-ranger-security","title":"Apache Ranger Security","description":"\x3c!--","source":"@site/docs/38.0.0/development/extensions-contrib/druid-ranger-security.md","sourceDirName":"development/extensions-contrib","slug":"/development/extensions- [...]
\ No newline at end of file
diff --git a/assets/js/5410.887f1259.js b/assets/js/5410.887f1259.js
new file mode 100644
index 000000000..27bd43052
--- /dev/null
+++ b/assets/js/5410.887f1259.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[5410],{697:(t,e,r)=>{r.d(e,{T:()=>s.T});var s=r(37981)},37981:(t,e,r)=>{r.d(e,{T:()=>f});var s=r(39142),a=r(89610),i=r(27422),n=r(71711),o=r(66401),l=r(8058),c=r(69592),d=r(13588),h=r(24326),g=r(99902),u=r(53533);const p=(0,h.A)((function(t){return(0,g.A)((0,d.A)(t,1,u.A,!0))}));var y=r(38207),b=r(89463),x="\0";class f{constructor(t={}){this._isDirected=!Object.prototype.hasOwnProperty.call(t,"directed")||t.directed,this._isMu [...]
\ No newline at end of file
diff --git a/assets/js/54a411b6.44b79f5e.js b/assets/js/54a411b6.44b79f5e.js
new file mode 100644
index 000000000..b50d39428
--- /dev/null
+++ b/assets/js/54a411b6.44b79f5e.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[7397],{28453:(e,t,r)=>{r.d(t,{R:()=>o,x:()=>d});var n=r(96540);const s={},i=n.createContext(s);function o(e){const t=n.useContext(i);return n.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function d(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:o(e.components),n.createElement(i.Provider,{value:t},e.children)}},43798:(e,t,r)=>{r.r(t),r.d(t,{as [...]
\ No newline at end of file
diff --git a/assets/js/55a46dea.41f2bb8c.js b/assets/js/55a46dea.41f2bb8c.js
new file mode 100644
index 000000000..6f889adc9
--- /dev/null
+++ b/assets/js/55a46dea.41f2bb8c.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[494],{28453:(e,n,t)=>{t.d(n,{R:()=>o,x:()=>a});var r=t(96540);const s={},i=r.createContext(s);function o(e){const n=r.useContext(i);return r.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function a(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:o(e.components),r.createElement(i.Provider,{value:n},e.children)}},76641:(e,n,t)=>{t.r(n),t.d(n,{ass [...]
\ No newline at end of file
diff --git a/assets/js/55e202dc.952f3154.js b/assets/js/55e202dc.952f3154.js
new file mode 100644
index 000000000..b5868867b
--- /dev/null
+++ b/assets/js/55e202dc.952f3154.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[7153],{14940:(e,r,s)=>{s.r(r),s.d(r,{assets:()=>c,contentTitle:()=>o,default:()=>h,frontMatter:()=>d,metadata:()=>i,toc:()=>l});const i=JSON.parse('{"id":"configuration/index","title":"Configuration reference","description":"\x3c!--","source":"@site/docs/latest/configuration/index.md","sourceDirName":"configuration","slug":"/configuration/","permalink":"/docs/latest/configuration/","draft":false,"unlisted":false,"tags":[],"ver [...]
\ No newline at end of file
diff --git a/assets/js/560cfc62.2a5a04dd.js b/assets/js/560cfc62.2a5a04dd.js
new file mode 100644
index 000000000..82881cf80
--- /dev/null
+++ b/assets/js/560cfc62.2a5a04dd.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[520],{23309:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>a,contentTitle:()=>d,default:()=>h,frontMatter:()=>c,metadata:()=>s,toc:()=>o});const s=JSON.parse('{"id":"development/extensions-contrib/tdigestsketch-quantiles","title":"T-Digest Quantiles Sketch module","description":"\x3c!--","source":"@site/docs/38.0.0/development/extensions-contrib/tdigestsketch-quantiles.md","sourceDirName":"development/extensions-contrib","slug":"/developm [...]
\ No newline at end of file
diff --git a/assets/js/56374a56.50ee6e48.js b/assets/js/56374a56.50ee6e48.js
new file mode 100644
index 000000000..cf1722059
--- /dev/null
+++ b/assets/js/56374a56.50ee6e48.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[492],{28453:(e,t,r)=>{r.d(t,{R:()=>a,x:()=>d});var n=r(96540);const i={},s=n.createContext(i);function a(e){const t=n.useContext(s);return n.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function d(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:a(e.components),n.createElement(s.Provider,{value:t},e.children)}},59325:(e,t,r)=>{r.r(t),r.d(t,{ass [...]
\ No newline at end of file
diff --git a/assets/js/567f2b24.ad6765c1.js b/assets/js/567f2b24.ad6765c1.js
new file mode 100644
index 000000000..f02e87dda
--- /dev/null
+++ b/assets/js/567f2b24.ad6765c1.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[2935],{28453:(e,s,n)=>{n.d(s,{R:()=>a,x:()=>o});var r=n(96540);const i={},t=r.createContext(i);function a(e){const s=r.useContext(t);return r.useMemo((function(){return"function"==typeof e?e(s):{...s,...e}}),[s,e])}function o(e){let s;return s=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:a(e.components),r.createElement(t.Provider,{value:s},e.children)}},30987:(e,s,n)=>{n.r(s),n.d(s,{as [...]
\ No newline at end of file
diff --git a/assets/js/56b3824f.b6442089.js b/assets/js/56b3824f.b6442089.js
new file mode 100644
index 000000000..ad82a6236
--- /dev/null
+++ b/assets/js/56b3824f.b6442089.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[8843],{28453:(e,t,n)=>{n.d(t,{R:()=>c,x:()=>a});var o=n(96540);const s={},r=o.createContext(s);function c(e){const t=o.useContext(r);return o.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function a(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:c(e.components),o.createElement(r.Provider,{value:t},e.children)}},73396:(e,t,n)=>{n.r(t),n.d(t,{as [...]
\ No newline at end of file
diff --git a/assets/js/584565a4.cc72cfee.js b/assets/js/584565a4.cc72cfee.js
new file mode 100644
index 000000000..84cba5a82
--- /dev/null
+++ b/assets/js/584565a4.cc72cfee.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[8481],{28453:(e,t,s)=>{s.d(t,{R:()=>n,x:()=>c});var d=s(96540);const r={},i=d.createContext(r);function n(e){const t=d.useContext(i);return d.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function c(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:n(e.components),d.createElement(i.Provider,{value:t},e.children)}},31252:(e,t,s)=>{s.r(t),s.d(t,{as [...]
\ No newline at end of file
diff --git a/assets/js/591db6fe.fcce3840.js b/assets/js/591db6fe.fcce3840.js
new file mode 100644
index 000000000..2d4d064c8
--- /dev/null
+++ b/assets/js/591db6fe.fcce3840.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[2605],{28453:(e,n,s)=>{s.d(n,{R:()=>i,x:()=>l});var r=s(96540);const a={},t=r.createContext(a);function i(e){const n=r.useContext(t);return r.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function l(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(a):e.components||a:i(e.components),r.createElement(t.Provider,{value:n},e.children)}},65537:(e,n,s)=>{s.d(n,{A:()=>b}) [...]
\ No newline at end of file
diff --git a/assets/js/59acd16c.27c9eb65.js b/assets/js/59acd16c.27c9eb65.js
new file mode 100644
index 000000000..b8028cad5
--- /dev/null
+++ b/assets/js/59acd16c.27c9eb65.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[6417],{14861:(e,t,s)=>{s.r(t),s.d(t,{assets:()=>c,contentTitle:()=>o,default:()=>a,frontMatter:()=>i,metadata:()=>r,toc:()=>l});const r=JSON.parse('{"id":"development/extensions-core/simple-client-sslcontext","title":"Simple SSLContext Provider Module","description":"\x3c!--","source":"@site/docs/latest/development/extensions-core/simple-client-sslcontext.md","sourceDirName":"development/extensions-core","slug":"/development/e [...]
\ No newline at end of file
diff --git a/assets/js/5a08e3a4.1067033e.js b/assets/js/5a08e3a4.1067033e.js
new file mode 100644
index 000000000..2a8df2306
--- /dev/null
+++ b/assets/js/5a08e3a4.1067033e.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[4546],{28453:(e,n,s)=>{s.d(n,{R:()=>l,x:()=>i});var r=s(96540);const a={},t=r.createContext(a);function l(e){const n=r.useContext(t);return r.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function i(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(a):e.components||a:l(e.components),r.createElement(t.Provider,{value:n},e.children)}},34979:(e,n,s)=>{s.r(n),s.d(n,{as [...]
\ No newline at end of file
diff --git a/assets/js/5a21bdc0.ae97a92e.js b/assets/js/5a21bdc0.ae97a92e.js
new file mode 100644
index 000000000..e25ebf7d9
--- /dev/null
+++ b/assets/js/5a21bdc0.ae97a92e.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[9161],{28453:(e,t,n)=>{n.d(t,{R:()=>c,x:()=>i});var r=n(96540);const s={},o=r.createContext(s);function c(e){const t=r.useContext(o);return r.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function i(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:c(e.components),r.createElement(o.Provider,{value:t},e.children)}},62808:(e,t,n)=>{n.r(t),n.d(t,{as [...]
\ No newline at end of file
diff --git a/assets/js/5aad1f90.5295d796.js b/assets/js/5aad1f90.5295d796.js
new file mode 100644
index 000000000..acb7ab1dd
--- /dev/null
+++ b/assets/js/5aad1f90.5295d796.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[2016],{28453:(e,n,a)=>{a.d(n,{R:()=>l,x:()=>t});var r=a(96540);const i={},s=r.createContext(i);function l(e){const n=r.useContext(s);return r.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function t(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:l(e.components),r.createElement(s.Provider,{value:n},e.children)}},57327:(e,n,a)=>{a.r(n),a.d(n,{as [...]
\ No newline at end of file
diff --git a/assets/js/5ba01544.2c2c322c.js b/assets/js/5ba01544.2c2c322c.js
new file mode 100644
index 000000000..3e5e6659c
--- /dev/null
+++ b/assets/js/5ba01544.2c2c322c.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[423],{4977:(e,n,s)=>{s.d(n,{A:()=>t});const t=s.p+"assets/images/nested-return-json-a456b98c2e405203a1d96930cd7af001.png"},9295:(e,n,s)=>{s.d(n,{A:()=>t});const t=s.p+"assets/images/nested-retrieve-json-facaa1be9754d33d32e59c6f2c2d8f73.png"},19475:(e,n,s)=>{s.d(n,{A:()=>t});const t=s.p+"assets/images/nested-group-aggregate-ec3088ac449e81177b38ab9d9c39ec49.png"},28453:(e,n,s)=>{s.d(n,{R:()=>i,x:()=>o});var t=s(96540);const a={} [...]
\ No newline at end of file
diff --git a/assets/js/5bcd0a3f.c0eaa141.js b/assets/js/5bcd0a3f.c0eaa141.js
new file mode 100644
index 000000000..04d77bb1e
--- /dev/null
+++ b/assets/js/5bcd0a3f.c0eaa141.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[2529],{6667:(e,t,a)=>{a.d(t,{A:()=>s});const s=a.p+"assets/images/diagram-7-d555dcc7d678f7af3f971ef9b7a4a87b.png"},27620:(e,t,a)=>{a.d(t,{A:()=>s});const s=a.p+"assets/images/scatter_gather_diagram-c2f8e92c7b72ec4c5c8a734aca8b0771.png"},28453:(e,t,a)=>{a.d(t,{R:()=>i,x:()=>o});var s=a(96540);const r={},n=s.createContext(r);function i(e){const t=s.useContext(n);return s.useMemo((function(){return"function"==typeof e?e(t):{...t, [...]
\ No newline at end of file
diff --git a/assets/js/5bf6eab6.a0f1f33d.js b/assets/js/5bf6eab6.a0f1f33d.js
new file mode 100644
index 000000000..90788cadc
--- /dev/null
+++ b/assets/js/5bf6eab6.a0f1f33d.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[5996],{28453:(e,n,s)=>{s.d(n,{R:()=>c,x:()=>d});var t=s(96540);const r={},i=t.createContext(r);function c(e){const n=t.useContext(i);return t.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function d(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:c(e.components),t.createElement(i.Provider,{value:n},e.children)}},51594:(e,n,s)=>{s.r(n),s.d(n,{as [...]
\ No newline at end of file
diff --git a/assets/js/5c76467a.4c321678.js b/assets/js/5c76467a.4c321678.js
new file mode 100644
index 000000000..d4474b178
--- /dev/null
+++ b/assets/js/5c76467a.4c321678.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[2510],{28453:(e,n,r)=>{r.d(n,{R:()=>a,x:()=>i});var l=r(96540);const s={},t=l.createContext(s);function a(e){const n=l.useContext(t);return l.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function i(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:a(e.components),l.createElement(t.Provider,{value:n},e.children)}},65537:(e,n,r)=>{r.d(n,{A:()=>b}) [...]
\ No newline at end of file
diff --git a/assets/js/5dfb6a3e.0b6ac99a.js b/assets/js/5dfb6a3e.0b6ac99a.js
new file mode 100644
index 000000000..df80c8961
--- /dev/null
+++ b/assets/js/5dfb6a3e.0b6ac99a.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[9071],{28453:(e,r,s)=>{s.d(r,{R:()=>t,x:()=>n});var o=s(96540);const d={},i=o.createContext(d);function t(e){const r=o.useContext(i);return o.useMemo((function(){return"function"==typeof e?e(r):{...r,...e}}),[r,e])}function n(e){let r;return r=e.disableParentContext?"function"==typeof e.components?e.components(d):e.components||d:t(e.components),o.createElement(i.Provider,{value:r},e.children)}},36757:(e,r,s)=>{s.r(r),s.d(r,{as [...]
\ No newline at end of file
diff --git a/assets/js/5e2a47b6.26d73b27.js b/assets/js/5e2a47b6.26d73b27.js
new file mode 100644
index 000000000..af6e32018
--- /dev/null
+++ b/assets/js/5e2a47b6.26d73b27.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[5750],{28453:(e,r,i)=>{i.d(r,{R:()=>o,x:()=>a});var n=i(96540);const t={},s=n.createContext(t);function o(e){const r=n.useContext(s);return n.useMemo((function(){return"function"==typeof e?e(r):{...r,...e}}),[r,e])}function a(e){let r;return r=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:o(e.components),n.createElement(s.Provider,{value:r},e.children)}},89849:(e,r,i)=>{i.r(r),i.d(r,{as [...]
\ No newline at end of file
diff --git a/assets/js/5e8b8f05.ac871602.js b/assets/js/5e8b8f05.ac871602.js
new file mode 100644
index 000000000..e1291b31c
--- /dev/null
+++ b/assets/js/5e8b8f05.ac871602.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[2860],{9884:(e,n,o)=>{o.r(n),o.d(n,{assets:()=>r,contentTitle:()=>c,default:()=>p,frontMatter:()=>s,metadata:()=>t,toc:()=>d});const t=JSON.parse('{"id":"data-management/automatic-compaction","title":"Automatic compaction","description":"\x3c!--","source":"@site/docs/38.0.0/data-management/automatic-compaction.md","sourceDirName":"data-management","slug":"/data-management/automatic-compaction","permalink":"/docs/38.0.0/data-ma [...]
\ No newline at end of file
diff --git a/assets/js/5e9ea8d6.5ce5fe8f.js b/assets/js/5e9ea8d6.5ce5fe8f.js
new file mode 100644
index 000000000..126febc86
--- /dev/null
+++ b/assets/js/5e9ea8d6.5ce5fe8f.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[6078],{332:(e,s,n)=>{n.r(s),n.d(s,{assets:()=>d,contentTitle:()=>l,default:()=>h,frontMatter:()=>a,metadata:()=>t,toc:()=>o});const t=JSON.parse('{"id":"querying/sql-data-types","title":"SQL data types","description":"\x3c!--","source":"@site/docs/latest/querying/sql-data-types.md","sourceDirName":"querying","slug":"/querying/sql-data-types","permalink":"/docs/latest/querying/sql-data-types","draft":false,"unlisted":false,"tag [...]
\ No newline at end of file
diff --git a/assets/js/5eba74a6.55174c2f.js b/assets/js/5eba74a6.55174c2f.js
new file mode 100644
index 000000000..60b73a46e
--- /dev/null
+++ b/assets/js/5eba74a6.55174c2f.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[3286],{18145:(e,i,n)=>{n.r(i),n.d(i,{assets:()=>o,contentTitle:()=>c,default:()=>p,frontMatter:()=>a,metadata:()=>s,toc:()=>l});const s=JSON.parse('{"id":"api-reference/api-reference","title":"API reference","description":"\x3c!--","source":"@site/docs/latest/api-reference/api-reference.md","sourceDirName":"api-reference","slug":"/api-reference/","permalink":"/docs/latest/api-reference/","draft":false,"unlisted":false,"tags":[ [...]
\ No newline at end of file
diff --git a/assets/js/5f349eee.92b51761.js b/assets/js/5f349eee.92b51761.js
new file mode 100644
index 000000000..48f50cefb
--- /dev/null
+++ b/assets/js/5f349eee.92b51761.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[3791],{23789:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>c,contentTitle:()=>a,default:()=>u,frontMatter:()=>r,metadata:()=>s,toc:()=>l});const s=JSON.parse('{"id":"ingestion/streaming","title":"Streaming ingestion","description":"\x3c!--","source":"@site/docs/latest/ingestion/streaming.md","sourceDirName":"ingestion","slug":"/ingestion/streaming","permalink":"/docs/latest/ingestion/streaming","draft":false,"unlisted":false,"tags":[],"v [...]
\ No newline at end of file
diff --git a/assets/js/5fc6e3bb.a9ec9136.js b/assets/js/5fc6e3bb.a9ec9136.js
new file mode 100644
index 000000000..b382aa6ee
--- /dev/null
+++ b/assets/js/5fc6e3bb.a9ec9136.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[6117],{28453:(e,n,t)=>{t.d(n,{R:()=>o,x:()=>l});var i=t(96540);const r={},s=i.createContext(r);function o(e){const n=i.useContext(s);return i.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function l(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:o(e.components),i.createElement(s.Provider,{value:n},e.children)}},55130:(e,n,t)=>{t.r(n),t.d(n,{as [...]
\ No newline at end of file
diff --git a/assets/js/5ff9c08d.090aa0a6.js b/assets/js/5ff9c08d.090aa0a6.js
new file mode 100644
index 000000000..aa650d89b
--- /dev/null
+++ b/assets/js/5ff9c08d.090aa0a6.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[3288],{28453:(e,n,r)=>{r.d(n,{R:()=>l,x:()=>o});var i=r(96540);const s={},t=i.createContext(s);function l(e){const n=i.useContext(t);return i.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function o(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:l(e.components),i.createElement(t.Provider,{value:n},e.children)}},57943:(e,n,r)=>{r.r(n),r.d(n,{as [...]
\ No newline at end of file
diff --git a/assets/js/5ffc9c90.ae2db2f4.js b/assets/js/5ffc9c90.ae2db2f4.js
new file mode 100644
index 000000000..9f82bdb31
--- /dev/null
+++ b/assets/js/5ffc9c90.ae2db2f4.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[3596],{6792:(e,t,s)=>{s.r(t),s.d(t,{assets:()=>l,contentTitle:()=>c,default:()=>h,frontMatter:()=>i,metadata:()=>n,toc:()=>o});const n=JSON.parse('{"id":"tutorials/tutorial-rollup","title":"Aggregate data with rollup","description":"\x3c!--","source":"@site/docs/latest/tutorials/tutorial-rollup.md","sourceDirName":"tutorials","slug":"/tutorials/tutorial-rollup","permalink":"/docs/latest/tutorials/tutorial-rollup","draft":false [...]
\ No newline at end of file
diff --git a/assets/js/60b9c99e.c2124e1d.js b/assets/js/60b9c99e.c2124e1d.js
new file mode 100644
index 000000000..3b4e40403
--- /dev/null
+++ b/assets/js/60b9c99e.c2124e1d.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[2148],{7944:(e,s,n)=>{n.d(s,{A:()=>t});const t=n.p+"assets/images/web-console-07-supervisors-dc27d65a42df39922d4ad9cff556faf8.png"},10931:(e,s,n)=>{n.r(s),n.d(s,{assets:()=>l,contentTitle:()=>a,default:()=>d,frontMatter:()=>o,metadata:()=>t,toc:()=>c});const t=JSON.parse('{"id":"operations/web-console","title":"Web console","description":"\x3c!--","source":"@site/docs/latest/operations/web-console.md","sourceDirName":"operatio [...]
\ No newline at end of file
diff --git a/assets/js/615c06f6.0aaf9caa.js b/assets/js/615c06f6.0aaf9caa.js
new file mode 100644
index 000000000..224325c77
--- /dev/null
+++ b/assets/js/615c06f6.0aaf9caa.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[9990],{4165:(e,r,n)=>{n.r(r),n.d(r,{assets:()=>d,contentTitle:()=>a,default:()=>h,frontMatter:()=>o,metadata:()=>i,toc:()=>l});const i=JSON.parse('{"id":"querying/groupbyquery","title":"GroupBy queries","description":"\x3c!--","source":"@site/docs/latest/querying/groupbyquery.md","sourceDirName":"querying","slug":"/querying/groupbyquery","permalink":"/docs/latest/querying/groupbyquery","draft":false,"unlisted":false,"tags":[], [...]
\ No newline at end of file
diff --git a/assets/js/61d222c8.fb36d5bb.js b/assets/js/61d222c8.fb36d5bb.js
new file mode 100644
index 000000000..1c7a27f9e
--- /dev/null
+++ b/assets/js/61d222c8.fb36d5bb.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[1503],{28453:(e,s,t)=>{t.d(s,{R:()=>o,x:()=>a});var r=t(96540);const n={},i=r.createContext(n);function o(e){const s=r.useContext(i);return r.useMemo((function(){return"function"==typeof e?e(s):{...s,...e}}),[s,e])}function a(e){let s;return s=e.disableParentContext?"function"==typeof e.components?e.components(n):e.components||n:o(e.components),r.createElement(i.Provider,{value:s},e.children)}},80044:(e,s,t)=>{t.r(s),t.d(s,{as [...]
\ No newline at end of file
diff --git a/assets/js/63a5d816.afd6f895.js b/assets/js/63a5d816.afd6f895.js
new file mode 100644
index 000000000..d13cbfbba
--- /dev/null
+++ b/assets/js/63a5d816.afd6f895.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[4801],{28453:(e,s,t)=>{t.d(s,{R:()=>a,x:()=>o});var n=t(96540);const r={},i=n.createContext(r);function a(e){const s=n.useContext(i);return n.useMemo((function(){return"function"==typeof e?e(s):{...s,...e}}),[s,e])}function o(e){let s;return s=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:a(e.components),n.createElement(i.Provider,{value:s},e.children)}},72309:(e,s,t)=>{t.r(s),t.d(s,{as [...]
\ No newline at end of file
diff --git a/assets/js/64e4fb09.9cbbb85f.js b/assets/js/64e4fb09.9cbbb85f.js
new file mode 100644
index 000000000..06347dbc7
--- /dev/null
+++ b/assets/js/64e4fb09.9cbbb85f.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[5395],{28453:(e,r,s)=>{s.d(r,{R:()=>o,x:()=>a});var t=s(96540);const i={},n=t.createContext(i);function o(e){const r=t.useContext(n);return t.useMemo((function(){return"function"==typeof e?e(r):{...r,...e}}),[r,e])}function a(e){let r;return r=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:o(e.components),t.createElement(n.Provider,{value:r},e.children)}},99253:(e,r,s)=>{s.r(r),s.d(r,{as [...]
\ No newline at end of file
diff --git a/assets/js/65cc2304.f56240a8.js b/assets/js/65cc2304.f56240a8.js
new file mode 100644
index 000000000..f76e0bc48
--- /dev/null
+++ b/assets/js/65cc2304.f56240a8.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[6535],{28453:(e,n,c)=>{c.d(n,{R:()=>t,x:()=>s});var r=c(96540);const i={},o=r.createContext(i);function t(e){const n=r.useContext(o);return r.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function s(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:t(e.components),r.createElement(o.Provider,{value:n},e.children)}},54303:(e,n,c)=>{c.r(n),c.d(n,{as [...]
\ No newline at end of file
diff --git a/assets/js/6749.edf96ea3.js b/assets/js/6749.edf96ea3.js
new file mode 100644
index 000000000..b8cdb4e4a
--- /dev/null
+++ b/assets/js/6749.edf96ea3.js
@@ -0,0 +1,2 @@
+/*! For license information please see 6749.edf96ea3.js.LICENSE.txt */
+(self.webpackChunk=self.webpackChunk||[]).push([[6749],{241:(t,e,r)=>{"use strict";r.d(e,{A:()=>n});const n=r(41917).A.Symbol},1282:(t,e,r)=>{"use strict";r.d(e,{DA:()=>k,IU:()=>D,U:()=>E,U7:()=>we,U_:()=>_e,Zk:()=>h,aP:()=>be,gh:()=>ve,lC:()=>d,on:()=>Ce});var n=r(64532),i=r(33115),a=r(62255),o=r(8159),s=r(10009),l=r(20007),c=r(29893),h=(0,s.K2)((async(t,e,r)=>{let n;const i=e.useHtmlLabels||(0,s._3)((0,s.D7)()?.htmlLabels);n=r||"node default";const c=t.insert("g").attr("class",n).attr( [...]
\ No newline at end of file
diff --git a/assets/js/6749.edf96ea3.js.LICENSE.txt b/assets/js/6749.edf96ea3.js.LICENSE.txt
new file mode 100644
index 000000000..6f7ee2a5d
--- /dev/null
+++ b/assets/js/6749.edf96ea3.js.LICENSE.txt
@@ -0,0 +1,9 @@
+/*! @license DOMPurify 3.2.4 | (c) Cure53 and other contributors | Released under the Apache license 2.0 and Mozilla Public License 2.0 | github.com/cure53/DOMPurify/blob/3.2.4/LICENSE */
+
+/*! Bundled license information:
+
+js-yaml/dist/js-yaml.mjs:
+  (*! js-yaml 4.1.0 https://github.com/nodeca/js-yaml @license MIT *)
+*/
+
+/*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */
diff --git a/assets/js/6854a98b.ce1658dc.js b/assets/js/6854a98b.ce1658dc.js
new file mode 100644
index 000000000..922d43ad8
--- /dev/null
+++ b/assets/js/6854a98b.ce1658dc.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[1514],{28453:(e,t,i)=>{i.d(t,{R:()=>a,x:()=>o});var s=i(96540);const r={},n=s.createContext(r);function a(e){const t=s.useContext(n);return s.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function o(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:a(e.components),s.createElement(n.Provider,{value:t},e.children)}},37942:(e,t,i)=>{i.d(t,{A:()=>s}) [...]
\ No newline at end of file
diff --git a/assets/js/6865240a.20cb1a57.js b/assets/js/6865240a.20cb1a57.js
new file mode 100644
index 000000000..13904f470
--- /dev/null
+++ b/assets/js/6865240a.20cb1a57.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[8297],{9498:(e,n,o)=>{o.d(n,{A:()=>t});const t=o.p+"assets/images/compaction-config-2d5e391fe681a9c978060c383357b531.png"},22860:(e,n,o)=>{o.r(n),o.d(n,{assets:()=>r,contentTitle:()=>c,default:()=>p,frontMatter:()=>s,metadata:()=>t,toc:()=>d});const t=JSON.parse('{"id":"data-management/automatic-compaction","title":"Automatic compaction","description":"\x3c!--","source":"@site/docs/latest/data-management/automatic-compaction.m [...]
\ No newline at end of file
diff --git a/assets/js/688a6cad.ff6ce018.js b/assets/js/688a6cad.ff6ce018.js
new file mode 100644
index 000000000..45f52c157
--- /dev/null
+++ b/assets/js/688a6cad.ff6ce018.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[2258],{28453:(e,n,t)=>{t.d(n,{R:()=>o,x:()=>a});var s=t(96540);const i={},r=s.createContext(i);function o(e){const n=s.useContext(r);return s.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function a(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:o(e.components),s.createElement(r.Provider,{value:n},e.children)}},45843:(e,n,t)=>{t.r(n),t.d(n,{as [...]
\ No newline at end of file
diff --git a/assets/js/6aa8853e.c989a6dd.js b/assets/js/6aa8853e.c989a6dd.js
new file mode 100644
index 000000000..a5f5ad1f5
--- /dev/null
+++ b/assets/js/6aa8853e.c989a6dd.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[7590],{28453:(e,n,t)=>{t.d(n,{R:()=>i,x:()=>a});var d=t(96540);const s={},r=d.createContext(s);function i(e){const n=d.useContext(r);return d.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function a(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:i(e.components),d.createElement(r.Provider,{value:n},e.children)}},38755:(e,n,t)=>{t.r(n),t.d(n,{as [...]
\ No newline at end of file
diff --git a/assets/js/6ace79fe.0a3f3461.js b/assets/js/6ace79fe.0a3f3461.js
new file mode 100644
index 000000000..db8c68c51
--- /dev/null
+++ b/assets/js/6ace79fe.0a3f3461.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[1927],{28453:(e,s,r)=>{r.d(s,{R:()=>i,x:()=>d});var n=r(96540);const l={},a=n.createContext(l);function i(e){const s=n.useContext(a);return n.useMemo((function(){return"function"==typeof e?e(s):{...s,...e}}),[s,e])}function d(e){let s;return s=e.disableParentContext?"function"==typeof e.components?e.components(l):e.components||l:i(e.components),n.createElement(a.Provider,{value:s},e.children)}},31124:(e,s,r)=>{r.r(s),r.d(s,{as [...]
\ No newline at end of file
diff --git a/assets/js/6bb9967c.94d48728.js b/assets/js/6bb9967c.94d48728.js
new file mode 100644
index 000000000..3d7474067
--- /dev/null
+++ b/assets/js/6bb9967c.94d48728.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[7835],{28453:(e,t,i)=>{i.d(t,{R:()=>a,x:()=>o});var s=i(96540);const r={},n=s.createContext(r);function a(e){const t=s.useContext(n);return s.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function o(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:a(e.components),s.createElement(n.Provider,{value:t},e.children)}},34142:(e,t,i)=>{i.d(t,{A:()=>s}) [...]
\ No newline at end of file
diff --git a/assets/js/6c4a74e3.7b45dce1.js b/assets/js/6c4a74e3.7b45dce1.js
new file mode 100644
index 000000000..bc0bd5aeb
--- /dev/null
+++ b/assets/js/6c4a74e3.7b45dce1.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[8962],{20978:(e,s,n)=>{n.r(s),n.d(s,{assets:()=>c,contentTitle:()=>o,default:()=>a,frontMatter:()=>d,metadata:()=>i,toc:()=>l});const i=JSON.parse('{"id":"development/extensions-contrib/aliyun-oss","title":"Aliyun OSS","description":"\x3c!--","source":"@site/docs/38.0.0/development/extensions-contrib/aliyun-oss-extensions.md","sourceDirName":"development/extensions-contrib","slug":"/development/extensions-contrib/aliyun-oss"," [...]
\ No newline at end of file
diff --git a/assets/js/6c62c6c7.505187de.js b/assets/js/6c62c6c7.505187de.js
new file mode 100644
index 000000000..b464c4b03
--- /dev/null
+++ b/assets/js/6c62c6c7.505187de.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[6575],{24269:(e,n,i)=>{i.r(n),i.d(n,{assets:()=>d,contentTitle:()=>a,default:()=>h,frontMatter:()=>r,metadata:()=>s,toc:()=>c});const s=JSON.parse('{"id":"ingestion/kafka-ingestion","title":"Apache Kafka ingestion","description":"Overview of the Kafka indexing service for Druid. Includes example supervisor specs to help you get started.","source":"@site/docs/latest/ingestion/kafka-ingestion.md","sourceDirName":"ingestion","slu [...]
\ No newline at end of file
diff --git a/assets/js/6d081973.8ec912d2.js b/assets/js/6d081973.8ec912d2.js
new file mode 100644
index 000000000..c780a1f60
--- /dev/null
+++ b/assets/js/6d081973.8ec912d2.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[9049],{28453:(e,r,s)=>{s.d(r,{R:()=>d,x:()=>l});var n=s(96540);const t={},i=n.createContext(t);function d(e){const r=n.useContext(i);return n.useMemo((function(){return"function"==typeof e?e(r):{...r,...e}}),[r,e])}function l(e){let r;return r=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:d(e.components),n.createElement(i.Provider,{value:r},e.children)}},91285:(e,r,s)=>{s.r(r),s.d(r,{as [...]
\ No newline at end of file
diff --git a/assets/js/6d57fd4e.a582f804.js b/assets/js/6d57fd4e.a582f804.js
new file mode 100644
index 000000000..6d8418355
--- /dev/null
+++ b/assets/js/6d57fd4e.a582f804.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[6922],{15667:(e,r,t)=>{t.r(r),t.d(r,{assets:()=>d,contentTitle:()=>u,default:()=>p,frontMatter:()=>l,metadata:()=>n,toc:()=>c});const n=JSON.parse('{"id":"tutorials/tutorial-extern","title":"Export query results","description":"How to use EXTERN to export query results.","source":"@site/docs/38.0.0/tutorials/tutorial-extern.md","sourceDirName":"tutorials","slug":"/tutorials/tutorial-extern","permalink":"/docs/38.0.0/tutorials/ [...]
\ No newline at end of file
diff --git a/assets/js/6d6585fc.4da53b43.js b/assets/js/6d6585fc.4da53b43.js
new file mode 100644
index 000000000..e6f2abb9b
--- /dev/null
+++ b/assets/js/6d6585fc.4da53b43.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[3942],{28453:(e,s,d)=>{d.d(s,{R:()=>n,x:()=>c});var r=d(96540);const i={},t=r.createContext(i);function n(e){const s=r.useContext(t);return r.useMemo((function(){return"function"==typeof e?e(s):{...s,...e}}),[s,e])}function c(e){let s;return s=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:n(e.components),r.createElement(t.Provider,{value:s},e.children)}},61010:(e,s,d)=>{d.r(s),d.d(s,{as [...]
\ No newline at end of file
diff --git a/assets/js/6e2381c8.e37896a9.js b/assets/js/6e2381c8.e37896a9.js
new file mode 100644
index 000000000..b9bf231bf
--- /dev/null
+++ b/assets/js/6e2381c8.e37896a9.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[5033],{28453:(e,s,i)=>{i.d(s,{R:()=>d,x:()=>o});var n=i(96540);const t={},r=n.createContext(t);function d(e){const s=n.useContext(r);return n.useMemo((function(){return"function"==typeof e?e(s):{...s,...e}}),[s,e])}function o(e){let s;return s=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:d(e.components),n.createElement(r.Provider,{value:s},e.children)}},41944:(e,s,i)=>{i.r(s),i.d(s,{as [...]
\ No newline at end of file
diff --git a/assets/js/6e7e0264.c45e7496.js b/assets/js/6e7e0264.c45e7496.js
new file mode 100644
index 000000000..4b32f1393
--- /dev/null
+++ b/assets/js/6e7e0264.c45e7496.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[2304],{28453:(e,n,t)=>{t.d(n,{R:()=>o,x:()=>c});var r=t(96540);const i={},s=r.createContext(i);function o(e){const n=r.useContext(s);return r.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function c(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:o(e.components),r.createElement(s.Provider,{value:n},e.children)}},40224:(e,n,t)=>{t.d(n,{A:()=>r}) [...]
\ No newline at end of file
diff --git a/assets/js/6ee1ea49.4b8fd745.js b/assets/js/6ee1ea49.4b8fd745.js
new file mode 100644
index 000000000..89d2eb39d
--- /dev/null
+++ b/assets/js/6ee1ea49.4b8fd745.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[2261],{6789:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>p,contentTitle:()=>o,default:()=>g,frontMatter:()=>s,metadata:()=>i,toc:()=>m});const i=JSON.parse('{"id":"multi-stage-query/examples","title":"SQL-based ingestion query examples","description":"\x3c!--","source":"@site/docs/38.0.0/multi-stage-query/examples.md","sourceDirName":"multi-stage-query","slug":"/multi-stage-query/examples","permalink":"/docs/38.0.0/multi-stage-query/exa [...]
\ No newline at end of file
diff --git a/assets/js/6fd83e05.ec5e1a08.js b/assets/js/6fd83e05.ec5e1a08.js
new file mode 100644
index 000000000..4a509e125
--- /dev/null
+++ b/assets/js/6fd83e05.ec5e1a08.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[9696],{28453:(e,t,s)=>{s.d(t,{R:()=>r,x:()=>i});var n=s(96540);const o={},a=n.createContext(o);function r(e){const t=n.useContext(a);return n.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function i(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(o):e.components||o:r(e.components),n.createElement(a.Provider,{value:t},e.children)}},53480:(e,t,s)=>{s.r(t),s.d(t,{as [...]
\ No newline at end of file
diff --git a/assets/js/6ffd2f42.00f0355d.js b/assets/js/6ffd2f42.00f0355d.js
new file mode 100644
index 000000000..489694263
--- /dev/null
+++ b/assets/js/6ffd2f42.00f0355d.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[4479],{28453:(e,n,i)=>{i.d(n,{R:()=>r,x:()=>a});var s=i(96540);const t={},o=s.createContext(t);function r(e){const n=s.useContext(o);return s.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function a(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:r(e.components),s.createElement(o.Provider,{value:n},e.children)}},75027:(e,n,i)=>{i.r(n),i.d(n,{as [...]
\ No newline at end of file
diff --git a/assets/js/704b58a6.e5b4a67e.js b/assets/js/704b58a6.e5b4a67e.js
new file mode 100644
index 000000000..94a1b6640
--- /dev/null
+++ b/assets/js/704b58a6.e5b4a67e.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[7322],{28453:(e,n,i)=>{i.d(n,{R:()=>l,x:()=>c});var s=i(96540);const r={},t=s.createContext(r);function l(e){const n=s.useContext(t);return s.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function c(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:l(e.components),s.createElement(t.Provider,{value:n},e.children)}},99128:(e,n,i)=>{i.r(n),i.d(n,{as [...]
\ No newline at end of file
diff --git a/assets/js/712138dd.a6d462b2.js b/assets/js/712138dd.a6d462b2.js
new file mode 100644
index 000000000..f2a9b272e
--- /dev/null
+++ b/assets/js/712138dd.a6d462b2.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[4061],{28453:(e,n,i)=>{i.d(n,{R:()=>r,x:()=>a});var s=i(96540);const t={},l=s.createContext(t);function r(e){const n=s.useContext(l);return s.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function a(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:r(e.components),s.createElement(l.Provider,{value:n},e.children)}},91041:(e,n,i)=>{i.r(n),i.d(n,{as [...]
\ No newline at end of file
diff --git a/assets/js/71de5257.157d1393.js b/assets/js/71de5257.157d1393.js
new file mode 100644
index 000000000..4f8d9c510
--- /dev/null
+++ b/assets/js/71de5257.157d1393.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[127],{28453:(e,n,r)=>{r.d(n,{R:()=>d,x:()=>o});var i=r(96540);const s={},t=i.createContext(s);function d(e){const n=i.useContext(t);return i.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function o(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:d(e.components),i.createElement(t.Provider,{value:n},e.children)}},31171:(e,n,r)=>{r.r(n),r.d(n,{ass [...]
\ No newline at end of file
diff --git a/assets/js/72206c87.ee5094af.js b/assets/js/72206c87.ee5094af.js
new file mode 100644
index 000000000..9e0759df6
--- /dev/null
+++ b/assets/js/72206c87.ee5094af.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[460],{28453:(e,t,a)=>{a.d(t,{R:()=>r,x:()=>i});var s=a(96540);const n={},o=s.createContext(n);function r(e){const t=s.useContext(o);return s.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function i(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(n):e.components||n:r(e.components),s.createElement(o.Provider,{value:t},e.children)}},49659:(e,t,a)=>{a.r(t),a.d(t,{ass [...]
\ No newline at end of file
diff --git a/assets/js/722cf1ee.07781518.js b/assets/js/722cf1ee.07781518.js
new file mode 100644
index 000000000..982b762ea
--- /dev/null
+++ b/assets/js/722cf1ee.07781518.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[6800],{28453:(e,n,s)=>{s.d(n,{R:()=>d,x:()=>o});var t=s(96540);const i={},r=t.createContext(i);function d(e){const n=t.useContext(r);return t.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function o(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:d(e.components),t.createElement(r.Provider,{value:n},e.children)}},91653:(e,n,s)=>{s.r(n),s.d(n,{as [...]
\ No newline at end of file
diff --git a/assets/js/723062a3.55fe2040.js b/assets/js/723062a3.55fe2040.js
new file mode 100644
index 000000000..81cbb057c
--- /dev/null
+++ b/assets/js/723062a3.55fe2040.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[5069],{28453:(e,n,i)=>{i.d(n,{R:()=>r,x:()=>d});var s=i(96540);const a={},t=s.createContext(a);function r(e){const n=s.useContext(t);return s.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function d(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(a):e.components||a:r(e.components),s.createElement(t.Provider,{value:n},e.children)}},48149:(e,n,i)=>{i.r(n),i.d(n,{as [...]
\ No newline at end of file
diff --git a/assets/js/740ee517.fb959d8a.js b/assets/js/740ee517.fb959d8a.js
new file mode 100644
index 000000000..fecfa55e8
--- /dev/null
+++ b/assets/js/740ee517.fb959d8a.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[9029],{20519:(e,r,s)=>{s.r(r),s.d(r,{assets:()=>c,contentTitle:()=>o,default:()=>h,frontMatter:()=>d,metadata:()=>t,toc:()=>l});const t=JSON.parse('{"id":"querying/sql-query-context","title":"SQL query context","description":"\x3c!--","source":"@site/docs/latest/querying/sql-query-context.md","sourceDirName":"querying","slug":"/querying/sql-query-context","permalink":"/docs/latest/querying/sql-query-context","draft":false,"unl [...]
\ No newline at end of file
diff --git a/assets/js/755987a3.da8ea95a.js b/assets/js/755987a3.da8ea95a.js
new file mode 100644
index 000000000..a238edbee
--- /dev/null
+++ b/assets/js/755987a3.da8ea95a.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[6062],{182:(e,t,n)=>{n.d(t,{A:()=>i});const i=n.p+"assets/images/tutorial-retention-06-8c3d36ef058fbe029fe3ef423d2341de.png"},7294:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>a,default:()=>h,frontMatter:()=>o,metadata:()=>i,toc:()=>d});const i=JSON.parse('{"id":"tutorials/tutorial-retention","title":"Configure data retention","description":"\x3c!--","source":"@site/docs/38.0.0/tutorials/tutorial-retention.md","source [...]
\ No newline at end of file
diff --git a/assets/js/769d5196.11401b14.js b/assets/js/769d5196.11401b14.js
new file mode 100644
index 000000000..07b9e813e
--- /dev/null
+++ b/assets/js/769d5196.11401b14.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[4016],{28453:(e,n,t)=>{t.d(n,{R:()=>a,x:()=>o});var r=t(96540);const i={},s=r.createContext(i);function a(e){const n=r.useContext(s);return r.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function o(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:a(e.components),r.createElement(s.Provider,{value:n},e.children)}},73430:(e,n,t)=>{t.d(n,{A:()=>r}) [...]
\ No newline at end of file
diff --git a/assets/js/77f7adac.b0731785.js b/assets/js/77f7adac.b0731785.js
new file mode 100644
index 000000000..7e7a0c473
--- /dev/null
+++ b/assets/js/77f7adac.b0731785.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[6127],{28453:(e,s,t)=>{t.d(s,{R:()=>o,x:()=>d});var n=t(96540);const r={},i=n.createContext(r);function o(e){const s=n.useContext(i);return n.useMemo((function(){return"function"==typeof e?e(s):{...s,...e}}),[s,e])}function d(e){let s;return s=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:o(e.components),n.createElement(i.Provider,{value:s},e.children)}},35278:(e,s,t)=>{t.r(s),t.d(s,{as [...]
\ No newline at end of file
diff --git a/assets/js/78df240a.d46fce2c.js b/assets/js/78df240a.d46fce2c.js
new file mode 100644
index 000000000..76329fc9e
--- /dev/null
+++ b/assets/js/78df240a.d46fce2c.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[8559],{6859:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>s,contentTitle:()=>c,default:()=>h,frontMatter:()=>o,metadata:()=>i,toc:()=>a});const i=JSON.parse('{"id":"development/extensions-core/druid-lookups","title":"Cached Lookup Module","description":"\x3c!--","source":"@site/docs/latest/development/extensions-core/druid-lookups.md","sourceDirName":"development/extensions-core","slug":"/development/extensions-core/druid-lookups","perma [...]
\ No newline at end of file
diff --git a/assets/js/795d6138.9fd910e9.js b/assets/js/795d6138.9fd910e9.js
new file mode 100644
index 000000000..3ff04dd01
--- /dev/null
+++ b/assets/js/795d6138.9fd910e9.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[1114],{28453:(e,r,t)=>{t.d(r,{R:()=>o,x:()=>d});var n=t(96540);const i={},s=n.createContext(i);function o(e){const r=n.useContext(s);return n.useMemo((function(){return"function"==typeof e?e(r):{...r,...e}}),[r,e])}function d(e){let r;return r=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:o(e.components),n.createElement(s.Provider,{value:r},e.children)}},54319:(e,r,t)=>{t.r(r),t.d(r,{as [...]
\ No newline at end of file
diff --git a/assets/js/79e1bf89.2db4fe7c.js b/assets/js/79e1bf89.2db4fe7c.js
new file mode 100644
index 000000000..9b6e6a660
--- /dev/null
+++ b/assets/js/79e1bf89.2db4fe7c.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[8404],{28453:(e,t,i)=>{i.d(t,{R:()=>r,x:()=>o});var a=i(96540);const s={},n=a.createContext(s);function r(e){const t=a.useContext(n);return a.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function o(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:r(e.components),a.createElement(n.Provider,{value:t},e.children)}},63087:(e,t,i)=>{i.r(t),i.d(t,{as [...]
\ No newline at end of file
diff --git a/assets/js/7a0ffe1e.b9b8639e.js b/assets/js/7a0ffe1e.b9b8639e.js
new file mode 100644
index 000000000..ab24801be
--- /dev/null
+++ b/assets/js/7a0ffe1e.b9b8639e.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[3664],{28453:(e,r,s)=>{s.d(r,{R:()=>o,x:()=>d});var t=s(96540);const n={},i=t.createContext(n);function o(e){const r=t.useContext(i);return t.useMemo((function(){return"function"==typeof e?e(r):{...r,...e}}),[r,e])}function d(e){let r;return r=e.disableParentContext?"function"==typeof e.components?e.components(n):e.components||n:o(e.components),t.createElement(i.Provider,{value:r},e.children)}},95993:(e,r,s)=>{s.r(r),s.d(r,{as [...]
\ No newline at end of file
diff --git a/assets/js/7ba61069.48fe32e5.js b/assets/js/7ba61069.48fe32e5.js
new file mode 100644
index 000000000..cbb4622a1
--- /dev/null
+++ b/assets/js/7ba61069.48fe32e5.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[957],{28453:(e,t,s)=>{s.d(t,{R:()=>r,x:()=>i});var n=s(96540);const a={},o=n.createContext(a);function r(e){const t=n.useContext(o);return n.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function i(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(a):e.components||a:r(e.components),n.createElement(o.Provider,{value:t},e.children)}},30949:(e,t,s)=>{s.r(t),s.d(t,{ass [...]
\ No newline at end of file
diff --git a/assets/js/7c859186.d8436f31.js b/assets/js/7c859186.d8436f31.js
new file mode 100644
index 000000000..561bc7f7a
--- /dev/null
+++ b/assets/js/7c859186.d8436f31.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[1524],{24914:(e,r,i)=>{i.d(r,{A:()=>n});const n=i.p+"assets/images/native-queries-01-9fe30809e74a2183b369dbe491f2d998.png"},26158:(e,r,i)=>{i.r(r),i.d(r,{assets:()=>d,contentTitle:()=>a,default:()=>h,frontMatter:()=>o,metadata:()=>n,toc:()=>l});const n=JSON.parse('{"id":"querying/querying","title":"Native queries","description":"\x3c!--","source":"@site/docs/38.0.0/querying/querying.md","sourceDirName":"querying","slug":"/quer [...]
\ No newline at end of file
diff --git a/assets/js/7d2839fe.e3f809a3.js b/assets/js/7d2839fe.e3f809a3.js
new file mode 100644
index 000000000..27afb96d5
--- /dev/null
+++ b/assets/js/7d2839fe.e3f809a3.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[7539],{28453:(e,r,n)=>{n.d(r,{R:()=>o,x:()=>d});var t=n(96540);const s={},i=t.createContext(s);function o(e){const r=t.useContext(i);return t.useMemo((function(){return"function"==typeof e?e(r):{...r,...e}}),[r,e])}function d(e){let r;return r=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:o(e.components),t.createElement(i.Provider,{value:r},e.children)}},49305:(e,r,n)=>{n.r(r),n.d(r,{as [...]
\ No newline at end of file
diff --git a/assets/js/7d60ad90.f347f841.js b/assets/js/7d60ad90.f347f841.js
new file mode 100644
index 000000000..14feee5fb
--- /dev/null
+++ b/assets/js/7d60ad90.f347f841.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[7844],{28453:(t,n,e)=>{e.d(n,{R:()=>o,x:()=>a});var i=e(96540);const r={},s=i.createContext(r);function o(t){const n=i.useContext(s);return i.useMemo((function(){return"function"==typeof t?t(n):{...n,...t}}),[n,t])}function a(t){let n;return n=t.disableParentContext?"function"==typeof t.components?t.components(r):t.components||r:o(t.components),i.createElement(s.Provider,{value:n},t.children)}},71727:(t,n,e)=>{e.r(n),e.d(n,{as [...]
\ No newline at end of file
diff --git a/assets/js/7e1dcf84.257177e9.js b/assets/js/7e1dcf84.257177e9.js
new file mode 100644
index 000000000..e99c4af5a
--- /dev/null
+++ b/assets/js/7e1dcf84.257177e9.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[3807],{28453:(e,i,n)=>{n.d(i,{R:()=>t,x:()=>c});var r=n(96540);const s={},a=r.createContext(s);function t(e){const i=r.useContext(a);return r.useMemo((function(){return"function"==typeof e?e(i):{...i,...e}}),[i,e])}function c(e){let i;return i=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:t(e.components),r.createElement(a.Provider,{value:i},e.children)}},67045:(e,i,n)=>{n.r(i),n.d(i,{as [...]
\ No newline at end of file
diff --git a/assets/js/7eda95e3.1b6419bf.js b/assets/js/7eda95e3.1b6419bf.js
new file mode 100644
index 000000000..cb9c1511a
--- /dev/null
+++ b/assets/js/7eda95e3.1b6419bf.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[7016],{28453:(e,t,n)=>{n.d(t,{R:()=>d,x:()=>o});var i=n(96540);const r={},s=i.createContext(r);function d(e){const t=i.useContext(s);return i.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function o(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:d(e.components),i.createElement(s.Provider,{value:t},e.children)}},93971:(e,t,n)=>{n.r(t),n.d(t,{as [...]
\ No newline at end of file
diff --git a/assets/js/7ef2feef.082aa9d8.js b/assets/js/7ef2feef.082aa9d8.js
new file mode 100644
index 000000000..272601098
--- /dev/null
+++ b/assets/js/7ef2feef.082aa9d8.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[3445],{9021:(e,r,n)=>{n.d(r,{A:()=>t});const t=n.p+"assets/images/tutorial-query-deepstorage-retention-rule-ed99c67c161810ee03d3301b530d0ede.png"},28453:(e,r,n)=>{n.d(r,{R:()=>a,x:()=>i});var t=n(96540);const s={},o=t.createContext(s);function a(e){const r=t.useContext(o);return t.useMemo((function(){return"function"==typeof e?e(r):{...r,...e}}),[r,e])}function i(e){let r;return r=e.disableParentContext?"function"==typeof e.co [...]
\ No newline at end of file
diff --git a/assets/js/7ef358d2.cc60c39e.js b/assets/js/7ef358d2.cc60c39e.js
new file mode 100644
index 000000000..d81ff054a
--- /dev/null
+++ b/assets/js/7ef358d2.cc60c39e.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[635],{28453:(e,n,r)=>{r.d(n,{R:()=>d,x:()=>o});var t=r(96540);const s={},i=t.createContext(s);function d(e){const n=t.useContext(i);return t.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function o(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:d(e.components),t.createElement(i.Provider,{value:n},e.children)}},29323:(e,n,r)=>{r.r(n),r.d(n,{ass [...]
\ No newline at end of file
diff --git a/assets/js/7f61aae6.bba4b7e6.js b/assets/js/7f61aae6.bba4b7e6.js
new file mode 100644
index 000000000..0f92e340d
--- /dev/null
+++ b/assets/js/7f61aae6.bba4b7e6.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[7836],{12702:(e,t,n)=>{n.d(t,{A:()=>a});const a=n.p+"assets/images/tutorial-compaction-01-122ba6887d51536c0799f2b4f105f00c.png"},21759:(e,t,n)=>{n.d(t,{A:()=>a});const a=n.p+"assets/images/tutorial-compaction-08-c185270edb96314c1d83efeb308b4bf3.png"},23546:(e,t,n)=>{n.d(t,{A:()=>a});const a=n.p+"assets/images/tutorial-compaction-05-c6b86c4a1c1aeeccad0e4567f43f7112.png"},24771:(e,t,n)=>{n.d(t,{A:()=>a});const a=n.p+"assets/imag [...]
\ No newline at end of file
diff --git a/assets/js/7f7990e2.76b79e79.js b/assets/js/7f7990e2.76b79e79.js
new file mode 100644
index 000000000..4d1dd23ca
--- /dev/null
+++ b/assets/js/7f7990e2.76b79e79.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[3218],{28453:(e,s,t)=>{t.d(s,{R:()=>r,x:()=>l});var n=t(96540);const o={},a=n.createContext(o);function r(e){const s=n.useContext(a);return n.useMemo((function(){return"function"==typeof e?e(s):{...s,...e}}),[s,e])}function l(e){let s;return s=e.disableParentContext?"function"==typeof e.components?e.components(o):e.components||o:r(e.components),n.createElement(a.Provider,{value:s},e.children)}},62652:(e,s,t)=>{t.r(s),t.d(s,{as [...]
\ No newline at end of file
diff --git a/assets/js/7fb450ec.02b6d1e8.js b/assets/js/7fb450ec.02b6d1e8.js
new file mode 100644
index 000000000..5e0153bde
--- /dev/null
+++ b/assets/js/7fb450ec.02b6d1e8.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[1521],{28453:(e,s,t)=>{t.d(s,{R:()=>a,x:()=>c});var n=t(96540);const i={},r=n.createContext(i);function a(e){const s=n.useContext(r);return n.useMemo((function(){return"function"==typeof e?e(s):{...s,...e}}),[s,e])}function c(e){let s;return s=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:a(e.components),n.createElement(r.Provider,{value:s},e.children)}},73462:(e,s,t)=>{t.r(s),t.d(s,{as [...]
\ No newline at end of file
diff --git a/assets/js/80e2188c.cea9f94b.js b/assets/js/80e2188c.cea9f94b.js
new file mode 100644
index 000000000..47bb2f2a9
--- /dev/null
+++ b/assets/js/80e2188c.cea9f94b.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[4830],{26628:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>l,contentTitle:()=>a,default:()=>h,frontMatter:()=>d,metadata:()=>r,toc:()=>c});const r=JSON.parse('{"id":"tutorials/tutorial-update-data","title":"Update data","description":"Learn how to update data in Apache\xae Druid.","source":"@site/docs/38.0.0/tutorials/tutorial-update-data.md","sourceDirName":"tutorials","slug":"/tutorials/tutorial-update-data","permalink":"/docs/38.0.0/t [...]
\ No newline at end of file
diff --git a/assets/js/81946459.fd761c31.js b/assets/js/81946459.fd761c31.js
new file mode 100644
index 000000000..8f3256558
--- /dev/null
+++ b/assets/js/81946459.fd761c31.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[2201],{28453:(e,r,s)=>{s.d(r,{R:()=>i,x:()=>d});var o=s(96540);const t={},n=o.createContext(t);function i(e){const r=o.useContext(n);return o.useMemo((function(){return"function"==typeof e?e(r):{...r,...e}}),[r,e])}function d(e){let r;return r=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:i(e.components),o.createElement(n.Provider,{value:r},e.children)}},99043:(e,r,s)=>{s.r(r),s.d(r,{as [...]
\ No newline at end of file
diff --git a/assets/js/819b119f.07ec6f0c.js b/assets/js/819b119f.07ec6f0c.js
new file mode 100644
index 000000000..78573851c
--- /dev/null
+++ b/assets/js/819b119f.07ec6f0c.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[6064],{28453:(e,n,t)=>{t.d(n,{R:()=>l,x:()=>a});var s=t(96540);const r={},i=s.createContext(r);function l(e){const n=s.useContext(i);return s.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function a(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:l(e.components),s.createElement(i.Provider,{value:n},e.children)}},58929:(e,n,t)=>{t.r(n),t.d(n,{as [...]
\ No newline at end of file
diff --git a/assets/js/8338bac7.afd27aaa.js b/assets/js/8338bac7.afd27aaa.js
new file mode 100644
index 000000000..42b588164
--- /dev/null
+++ b/assets/js/8338bac7.afd27aaa.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[9652],{28453:(e,n,i)=>{i.d(n,{R:()=>o,x:()=>a});var t=i(96540);const s={},r=t.createContext(s);function o(e){const n=t.useContext(r);return t.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function a(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:o(e.components),t.createElement(r.Provider,{value:n},e.children)}},33930:(e,n,i)=>{i.r(n),i.d(n,{as [...]
\ No newline at end of file
diff --git a/assets/js/83447b42.33013137.js b/assets/js/83447b42.33013137.js
new file mode 100644
index 000000000..69524f503
--- /dev/null
+++ b/assets/js/83447b42.33013137.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[2773],{8114:(e,r,n)=>{n.r(r),n.d(r,{assets:()=>a,contentTitle:()=>l,default:()=>h,frontMatter:()=>i,metadata:()=>t,toc:()=>d});const t=JSON.parse('{"id":"operations/rule-configuration","title":"Using rules to drop and retain data","description":"\x3c!--","source":"@site/docs/38.0.0/operations/rule-configuration.md","sourceDirName":"operations","slug":"/operations/rule-configuration","permalink":"/docs/38.0.0/operations/rule-co [...]
\ No newline at end of file
diff --git a/assets/js/8352a77c.e717aa7f.js b/assets/js/8352a77c.e717aa7f.js
new file mode 100644
index 000000000..d1700f8e1
--- /dev/null
+++ b/assets/js/8352a77c.e717aa7f.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[1903],{17963:(e,t,s)=>{s.d(t,{A:()=>n});const n=s.p+"assets/images/tutorial-theta-05-210059e731382527a704510b94d370d4.png"},21968:(e,t,s)=>{s.r(t),s.d(t,{assets:()=>h,contentTitle:()=>r,default:()=>d,frontMatter:()=>o,metadata:()=>n,toc:()=>c});const n=JSON.parse('{"id":"tutorials/tutorial-sketches-theta","title":"Approximations with Theta sketches","description":"\x3c!--","source":"@site/docs/38.0.0/tutorials/tutorial-sketche [...]
\ No newline at end of file
diff --git a/assets/js/83593c6b.9189dc30.js b/assets/js/83593c6b.9189dc30.js
new file mode 100644
index 000000000..ea25753d4
--- /dev/null
+++ b/assets/js/83593c6b.9189dc30.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[6420],{28453:(e,n,i)=>{i.d(n,{R:()=>s,x:()=>l});var t=i(96540);const a={},r=t.createContext(a);function s(e){const n=t.useContext(r);return t.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function l(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(a):e.components||a:s(e.components),t.createElement(r.Provider,{value:n},e.children)}},81244:(e,n,i)=>{i.r(n),i.d(n,{as [...]
\ No newline at end of file
diff --git a/assets/js/83a49702.6cfdb0c6.js b/assets/js/83a49702.6cfdb0c6.js
new file mode 100644
index 000000000..6fa6a8584
--- /dev/null
+++ b/assets/js/83a49702.6cfdb0c6.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[2341],{26124:(e,s,r)=>{r.r(s),r.d(s,{assets:()=>c,contentTitle:()=>o,default:()=>p,frontMatter:()=>t,metadata:()=>n,toc:()=>h});const n=JSON.parse('{"id":"api-reference/service-status-api","title":"Service status API","description":"\x3c!--","source":"@site/docs/latest/api-reference/service-status-api.md","sourceDirName":"api-reference","slug":"/api-reference/service-status-api","permalink":"/docs/latest/api-reference/service- [...]
\ No newline at end of file
diff --git a/assets/js/83f7537e.a4dac179.js b/assets/js/83f7537e.a4dac179.js
new file mode 100644
index 000000000..8f67e9838
--- /dev/null
+++ b/assets/js/83f7537e.a4dac179.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[9337],{28453:(e,s,n)=>{n.d(s,{R:()=>d,x:()=>o});var i=n(96540);const r={},t=i.createContext(r);function d(e){const s=i.useContext(t);return i.useMemo((function(){return"function"==typeof e?e(s):{...s,...e}}),[s,e])}function o(e){let s;return s=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:d(e.components),i.createElement(t.Provider,{value:s},e.children)}},57020:(e,s,n)=>{n.r(s),n.d(s,{as [...]
\ No newline at end of file
diff --git a/assets/js/84a6c3d0.3d5707b5.js b/assets/js/84a6c3d0.3d5707b5.js
new file mode 100644
index 000000000..79b614047
--- /dev/null
+++ b/assets/js/84a6c3d0.3d5707b5.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[6916],{28453:(e,t,r)=>{r.d(t,{R:()=>o,x:()=>i});var n=r(96540);const s={},c=n.createContext(s);function o(e){const t=n.useContext(c);return n.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function i(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:o(e.components),n.createElement(c.Provider,{value:t},e.children)}},91113:(e,t,r)=>{r.r(t),r.d(t,{as [...]
\ No newline at end of file
diff --git a/assets/js/852ebc67.efb02517.js b/assets/js/852ebc67.efb02517.js
new file mode 100644
index 000000000..3d0941ea3
--- /dev/null
+++ b/assets/js/852ebc67.efb02517.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[8341],{28453:(e,t,n)=>{n.d(t,{R:()=>r,x:()=>o});var i=n(96540);const d={},s=i.createContext(d);function r(e){const t=i.useContext(s);return i.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function o(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(d):e.components||d:r(e.components),i.createElement(s.Provider,{value:t},e.children)}},59903:(e,t,n)=>{n.r(t),n.d(t,{as [...]
\ No newline at end of file
diff --git a/assets/js/8549cd83.6afa0c83.js b/assets/js/8549cd83.6afa0c83.js
new file mode 100644
index 000000000..9cccff686
--- /dev/null
+++ b/assets/js/8549cd83.6afa0c83.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[4893],{10563:(e,n,s)=>{s.r(n),s.d(n,{assets:()=>d,contentTitle:()=>l,default:()=>h,frontMatter:()=>t,metadata:()=>o,toc:()=>c});const o=JSON.parse('{"id":"querying/lookups","title":"Lookups","description":"\x3c!--","source":"@site/docs/latest/querying/lookups.md","sourceDirName":"querying","slug":"/querying/lookups","permalink":"/docs/latest/querying/lookups","draft":false,"unlisted":false,"tags":[],"version":"current","frontM [...]
\ No newline at end of file
diff --git a/assets/js/85811133.76b042e0.js b/assets/js/85811133.76b042e0.js
new file mode 100644
index 000000000..16df9445c
--- /dev/null
+++ b/assets/js/85811133.76b042e0.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[8715],{28453:(e,t,n)=>{n.d(t,{R:()=>a,x:()=>r});var i=n(96540);const o={},s=i.createContext(o);function a(e){const t=i.useContext(s);return i.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function r(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(o):e.components||o:a(e.components),i.createElement(s.Provider,{value:t},e.children)}},64983:(e,t,n)=>{n.r(t),n.d(t,{as [...]
\ No newline at end of file
diff --git a/assets/js/8593c89e.66808f07.js b/assets/js/8593c89e.66808f07.js
new file mode 100644
index 000000000..570090f03
--- /dev/null
+++ b/assets/js/8593c89e.66808f07.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[4493],{28453:(e,t,n)=>{n.d(t,{R:()=>r,x:()=>o});var s=n(96540);const i={},a=s.createContext(i);function r(e){const t=s.useContext(a);return s.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function o(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:r(e.components),s.createElement(a.Provider,{value:t},e.children)}},86697:(e,t,n)=>{n.r(t),n.d(t,{as [...]
\ No newline at end of file
diff --git a/assets/js/8603200e.c5c31ed0.js b/assets/js/8603200e.c5c31ed0.js
new file mode 100644
index 000000000..c5041f08b
--- /dev/null
+++ b/assets/js/8603200e.c5c31ed0.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[6873],{28453:(e,r,s)=>{s.d(r,{R:()=>a,x:()=>o});var i=s(96540);const t={},n=i.createContext(t);function a(e){const r=i.useContext(n);return i.useMemo((function(){return"function"==typeof e?e(r):{...r,...e}}),[r,e])}function o(e){let r;return r=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:a(e.components),i.createElement(n.Provider,{value:r},e.children)}},32714:(e,r,s)=>{s.d(r,{A:()=>i}) [...]
\ No newline at end of file
diff --git a/assets/js/860d5203.333284f1.js b/assets/js/860d5203.333284f1.js
new file mode 100644
index 000000000..51e80016e
--- /dev/null
+++ b/assets/js/860d5203.333284f1.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[3679],{28453:(n,e,t)=>{t.d(e,{R:()=>l,x:()=>a});var d=t(96540);const s={},i=d.createContext(s);function l(n){const e=d.useContext(i);return d.useMemo((function(){return"function"==typeof n?n(e):{...e,...n}}),[e,n])}function a(n){let e;return e=n.disableParentContext?"function"==typeof n.components?n.components(s):n.components||s:l(n.components),d.createElement(i.Provider,{value:e},n.children)}},70055:(n,e,t)=>{t.r(e),t.d(e,{as [...]
\ No newline at end of file
diff --git a/assets/js/8618.2089b42f.js b/assets/js/8618.2089b42f.js
new file mode 100644
index 000000000..90ad11ad5
--- /dev/null
+++ b/assets/js/8618.2089b42f.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[8618],{26237:(t,e,n)=>{n.d(e,{diagram:()=>Y});var i=n(83814),s=n(10009),r=n(20007),a=function(){var t=(0,s.K2)((function(t,e,n,i){for(n=n||{},i=t.length;i--;n[t[i]]=e);return n}),"o"),e=[6,8,10,11,12,14,16,17,18],n=[1,9],i=[1,10],r=[1,11],a=[1,12],o=[1,13],c=[1,14],l={trace:(0,s.K2)((function(){}),"trace"),yy:{},symbols_:{error:2,start:3,journey:4,document:5,EOF:6,line:7,SPACE:8,statement:9,NEWLINE:10,title:11,acc_title:12,acc [...]
\ No newline at end of file
diff --git a/assets/js/862976ff.69b841c6.js b/assets/js/862976ff.69b841c6.js
new file mode 100644
index 000000000..9cb0893dd
--- /dev/null
+++ b/assets/js/862976ff.69b841c6.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[6237],{4133:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>d,contentTitle:()=>c,default:()=>j,frontMatter:()=>l,metadata:()=>r,toc:()=>u});const r=JSON.parse('{"id":"querying/datasource","title":"Datasources","description":"\x3c!--","source":"@site/docs/38.0.0/querying/datasource.md","sourceDirName":"querying","slug":"/querying/datasource","permalink":"/docs/38.0.0/querying/datasource","draft":false,"unlisted":false,"tags":[],"version":"c [...]
\ No newline at end of file
diff --git a/assets/js/8731.6a4285c9.js b/assets/js/8731.6a4285c9.js
new file mode 100644
index 000000000..7212c7f27
--- /dev/null
+++ b/assets/js/8731.6a4285c9.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[8731],{9703:(e,t,n)=>{n.d(t,{A:()=>o});var r=n(88496),i=n(92049),s=n(53098);const o=function(e){return"string"==typeof e||!(0,i.A)(e)&&(0,s.A)(e)&&"[object String]"==(0,r.A)(e)}},16145:(e,t,n)=>{n.d(t,{A:()=>u});var r=n(23958),i=n(38446),s=n(27422);const o=function(e){return function(t,n,o){var a=Object(t);if(!(0,i.A)(t)){var c=(0,r.A)(n,3);t=(0,s.A)(t),n=function(e){return c(a[e],e,a)}}var l=e(t,n,o);return l>-1?a[c?t[l]:l]:v [...]
\ No newline at end of file
diff --git a/assets/js/881b6e93.8235d0db.js b/assets/js/881b6e93.8235d0db.js
new file mode 100644
index 000000000..a20d2d25e
--- /dev/null
+++ b/assets/js/881b6e93.8235d0db.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[4093],{28453:(e,n,t)=>{t.d(n,{R:()=>r,x:()=>a});var s=t(96540);const i={},o=s.createContext(i);function r(e){const n=s.useContext(o);return s.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function a(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:r(e.components),s.createElement(o.Provider,{value:n},e.children)}},53760:(e,n,t)=>{t.r(n),t.d(n,{as [...]
\ No newline at end of file
diff --git a/assets/js/8877de08.d6926766.js b/assets/js/8877de08.d6926766.js
new file mode 100644
index 000000000..6354238c4
--- /dev/null
+++ b/assets/js/8877de08.d6926766.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[4128],{28453:(e,n,i)=>{i.d(n,{R:()=>c,x:()=>d});var t=i(96540);const s={},r=t.createContext(s);function c(e){const n=t.useContext(r);return t.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function d(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:c(e.components),t.createElement(r.Provider,{value:n},e.children)}},66520:(e,n,i)=>{i.r(n),i.d(n,{as [...]
\ No newline at end of file
diff --git a/assets/js/8902724d.25af807b.js b/assets/js/8902724d.25af807b.js
new file mode 100644
index 000000000..2ece76f23
--- /dev/null
+++ b/assets/js/8902724d.25af807b.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[6547],{28453:(e,t,n)=>{n.d(t,{R:()=>r,x:()=>o});var a=n(96540);const i={},s=a.createContext(i);function r(e){const t=a.useContext(s);return a.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function o(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:r(e.components),a.createElement(s.Provider,{value:t},e.children)}},52784:(e,t,n)=>{n.r(t),n.d(t,{as [...]
\ No newline at end of file
diff --git a/assets/js/896a7803.1843b3b0.js b/assets/js/896a7803.1843b3b0.js
new file mode 100644
index 000000000..70657856b
--- /dev/null
+++ b/assets/js/896a7803.1843b3b0.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[5227],{28453:(e,n,s)=>{s.d(n,{R:()=>d,x:()=>l});var t=s(96540);const r={},i=t.createContext(r);function d(e){const n=t.useContext(i);return t.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function l(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:d(e.components),t.createElement(i.Provider,{value:n},e.children)}},35789:(e,n,s)=>{s.r(n),s.d(n,{as [...]
\ No newline at end of file
diff --git a/assets/js/8adf3ad1.d99cda64.js b/assets/js/8adf3ad1.d99cda64.js
new file mode 100644
index 000000000..1366fad57
--- /dev/null
+++ b/assets/js/8adf3ad1.d99cda64.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[8857],{28453:(e,n,t)=>{t.d(n,{R:()=>d,x:()=>l});var s=t(96540);const i={},r=s.createContext(i);function d(e){const n=s.useContext(r);return s.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function l(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:d(e.components),s.createElement(r.Provider,{value:n},e.children)}},70877:(e,n,t)=>{t.r(n),t.d(n,{as [...]
\ No newline at end of file
diff --git a/assets/js/8b4ed65d.da5d26a3.js b/assets/js/8b4ed65d.da5d26a3.js
new file mode 100644
index 000000000..eeb92a7a8
--- /dev/null
+++ b/assets/js/8b4ed65d.da5d26a3.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[9569],{28453:(e,n,s)=>{s.d(n,{R:()=>d,x:()=>a});var i=s(96540);const r={},t=i.createContext(r);function d(e){const n=i.useContext(t);return i.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function a(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:d(e.components),i.createElement(t.Provider,{value:n},e.children)}},52303:(e,n,s)=>{s.r(n),s.d(n,{as [...]
\ No newline at end of file
diff --git a/assets/js/8c1da206.34482dcd.js b/assets/js/8c1da206.34482dcd.js
new file mode 100644
index 000000000..15169ca71
--- /dev/null
+++ b/assets/js/8c1da206.34482dcd.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[3404],{11784:(e,n,o)=>{o.r(n),o.d(n,{assets:()=>u,contentTitle:()=>a,default:()=>d,frontMatter:()=>t,metadata:()=>i,toc:()=>c});const i=JSON.parse('{"id":"querying/joins","title":"Joins","description":"\x3c!--","source":"@site/docs/38.0.0/querying/joins.md","sourceDirName":"querying","slug":"/querying/joins","permalink":"/docs/38.0.0/querying/joins","draft":false,"unlisted":false,"tags":[],"version":"current","frontMatter":{"i [...]
\ No newline at end of file
diff --git a/assets/js/8c8d0529.a3090137.js b/assets/js/8c8d0529.a3090137.js
new file mode 100644
index 000000000..83bc313fa
--- /dev/null
+++ b/assets/js/8c8d0529.a3090137.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[4182],{44272:e=>{e.exports=JSON.parse('{"version":{"pluginId":"default","version":"current","label":"Next","banner":null,"badge":false,"noIndex":false,"className":"docs-version-current","isLast":true,"docsSidebars":{"docs":[{"type":"link","label":"Introduction to Apache Druid","href":"/docs/38.0.0/design/","docId":"design/index","unlisted":false},{"type":"category","label":"Getting started","items":[{"type":"link","label":"Sin [...]
\ No newline at end of file
diff --git a/assets/js/8cdd5c5f.1648e9e6.js b/assets/js/8cdd5c5f.1648e9e6.js
new file mode 100644
index 000000000..903e03ffd
--- /dev/null
+++ b/assets/js/8cdd5c5f.1648e9e6.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[3121],{28453:(e,r,n)=>{n.d(r,{R:()=>d,x:()=>c});var s=n(96540);const t={},i=s.createContext(t);function d(e){const r=s.useContext(i);return s.useMemo((function(){return"function"==typeof e?e(r):{...r,...e}}),[r,e])}function c(e){let r;return r=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:d(e.components),s.createElement(i.Provider,{value:r},e.children)}},75857:(e,r,n)=>{n.r(r),n.d(r,{as [...]
\ No newline at end of file
diff --git a/assets/js/8d4becf1.bf85f0c3.js b/assets/js/8d4becf1.bf85f0c3.js
new file mode 100644
index 000000000..94e743621
--- /dev/null
+++ b/assets/js/8d4becf1.bf85f0c3.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[1442],{28453:(e,s,i)=>{i.d(s,{R:()=>a,x:()=>o});var t=i(96540);const n={},r=t.createContext(n);function a(e){const s=t.useContext(r);return t.useMemo((function(){return"function"==typeof e?e(s):{...s,...e}}),[s,e])}function o(e){let s;return s=e.disableParentContext?"function"==typeof e.components?e.components(n):e.components||n:a(e.components),t.createElement(r.Provider,{value:s},e.children)}},66131:(e,s,i)=>{i.r(s),i.d(s,{as [...]
\ No newline at end of file
diff --git a/assets/js/8df2d03b.94794b06.js b/assets/js/8df2d03b.94794b06.js
new file mode 100644
index 000000000..48e5cadd3
--- /dev/null
+++ b/assets/js/8df2d03b.94794b06.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[9796],{28453:(e,s,t)=>{t.d(s,{R:()=>o,x:()=>d});var n=t(96540);const r={},i=n.createContext(r);function o(e){const s=n.useContext(i);return n.useMemo((function(){return"function"==typeof e?e(s):{...s,...e}}),[s,e])}function d(e){let s;return s=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:o(e.components),n.createElement(i.Provider,{value:s},e.children)}},34341:(e,s,t)=>{t.r(s),t.d(s,{as [...]
\ No newline at end of file
diff --git a/assets/js/8e848799.1b7ed7d3.js b/assets/js/8e848799.1b7ed7d3.js
new file mode 100644
index 000000000..44f237032
--- /dev/null
+++ b/assets/js/8e848799.1b7ed7d3.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[1631],{28453:(e,t,s)=>{s.d(t,{R:()=>d,x:()=>o});var n=s(96540);const i={},r=n.createContext(i);function d(e){const t=n.useContext(r);return n.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function o(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:d(e.components),n.createElement(r.Provider,{value:t},e.children)}},42428:(e,t,s)=>{s.r(t),s.d(t,{as [...]
\ No newline at end of file
diff --git a/assets/js/8e96f099.fd35dad5.js b/assets/js/8e96f099.fd35dad5.js
new file mode 100644
index 000000000..2a4c7244f
--- /dev/null
+++ b/assets/js/8e96f099.fd35dad5.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[9507],{28453:(e,n,i)=>{i.d(n,{R:()=>o,x:()=>a});var t=i(96540);const s={},r=t.createContext(s);function o(e){const n=t.useContext(r);return t.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function a(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:o(e.components),t.createElement(r.Provider,{value:n},e.children)}},64833:(e,n,i)=>{i.r(n),i.d(n,{as [...]
\ No newline at end of file
diff --git a/assets/js/8f35ff03.69ef12eb.js b/assets/js/8f35ff03.69ef12eb.js
new file mode 100644
index 000000000..d3ec05b58
--- /dev/null
+++ b/assets/js/8f35ff03.69ef12eb.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[4038],{28453:(e,n,s)=>{s.d(n,{R:()=>o,x:()=>a});var i=s(96540);const r={},t=i.createContext(r);function o(e){const n=i.useContext(t);return i.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function a(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:o(e.components),i.createElement(t.Provider,{value:n},e.children)}},56249:(e,n,s)=>{s.r(n),s.d(n,{as [...]
\ No newline at end of file
diff --git a/assets/js/90cf7f37.cbce3290.js b/assets/js/90cf7f37.cbce3290.js
new file mode 100644
index 000000000..951660233
--- /dev/null
+++ b/assets/js/90cf7f37.cbce3290.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[5546],{28453:(e,r,n)=>{n.d(r,{R:()=>a,x:()=>o});var t=n(96540);const s={},i=t.createContext(s);function a(e){const r=t.useContext(i);return t.useMemo((function(){return"function"==typeof e?e(r):{...r,...e}}),[r,e])}function o(e){let r;return r=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:a(e.components),t.createElement(i.Provider,{value:r},e.children)}},97073:(e,r,n)=>{n.r(r),n.d(r,{as [...]
\ No newline at end of file
diff --git a/assets/js/910d61b6.7471631b.js b/assets/js/910d61b6.7471631b.js
new file mode 100644
index 000000000..3ef5478b3
--- /dev/null
+++ b/assets/js/910d61b6.7471631b.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[3782],{28453:(e,s,n)=>{n.d(s,{R:()=>o,x:()=>i});var t=n(96540);const r={},d=t.createContext(r);function o(e){const s=t.useContext(d);return t.useMemo((function(){return"function"==typeof e?e(s):{...s,...e}}),[s,e])}function i(e){let s;return s=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:o(e.components),t.createElement(d.Provider,{value:s},e.children)}},54301:(e,s,n)=>{n.r(s),n.d(s,{as [...]
\ No newline at end of file
diff --git a/assets/js/91d46102.9953a857.js b/assets/js/91d46102.9953a857.js
new file mode 100644
index 000000000..468748f97
--- /dev/null
+++ b/assets/js/91d46102.9953a857.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[4456],{28453:(e,t,a)=>{a.d(t,{R:()=>i,x:()=>d});var r=a(96540);const n={},s=r.createContext(n);function i(e){const t=r.useContext(s);return r.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function d(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(n):e.components||n:i(e.components),r.createElement(s.Provider,{value:t},e.children)}},36769:(e,t,a)=>{a.r(t),a.d(t,{as [...]
\ No newline at end of file
diff --git a/assets/js/9216ddc9.59cdcd8e.js b/assets/js/9216ddc9.59cdcd8e.js
new file mode 100644
index 000000000..c8cff13d6
--- /dev/null
+++ b/assets/js/9216ddc9.59cdcd8e.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[2203],{23225:(e,r,s)=>{s.d(r,{A:()=>n});const n=s.p+"assets/images/druid-architecture-a2d14e8be60d586632471e97383e406c.svg"},28453:(e,r,s)=>{s.d(r,{R:()=>a,x:()=>o});var n=s(96540);const i={},t=n.createContext(i);function a(e){const r=n.useContext(t);return n.useMemo((function(){return"function"==typeof e?e(r):{...r,...e}}),[r,e])}function o(e){let r;return r=e.disableParentContext?"function"==typeof e.components?e.components( [...]
\ No newline at end of file
diff --git a/assets/js/93a531f9.ce74fb00.js b/assets/js/93a531f9.ce74fb00.js
new file mode 100644
index 000000000..d4e2d0e4f
--- /dev/null
+++ b/assets/js/93a531f9.ce74fb00.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[7166],{28453:(e,r,s)=>{s.d(r,{R:()=>d,x:()=>l});var t=s(96540);const n={},i=t.createContext(n);function d(e){const r=t.useContext(i);return t.useMemo((function(){return"function"==typeof e?e(r):{...r,...e}}),[r,e])}function l(e){let r;return r=e.disableParentContext?"function"==typeof e.components?e.components(n):e.components||n:d(e.components),t.createElement(i.Provider,{value:r},e.children)}},73465:(e,r,s)=>{s.r(r),s.d(r,{as [...]
\ No newline at end of file
diff --git a/assets/js/945892f2.158a9ed9.js b/assets/js/945892f2.158a9ed9.js
new file mode 100644
index 000000000..0cad0c53a
--- /dev/null
+++ b/assets/js/945892f2.158a9ed9.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[8238],{7207:(e,r,i)=>{i.r(r),i.d(r,{assets:()=>d,contentTitle:()=>o,default:()=>h,frontMatter:()=>a,metadata:()=>n,toc:()=>c});const n=JSON.parse('{"id":"development/extensions-core/druid-basic-security","title":"Basic Security","description":"\x3c!--","source":"@site/docs/latest/development/extensions-core/druid-basic-security.md","sourceDirName":"development/extensions-core","slug":"/development/extensions-core/druid-basic-s [...]
\ No newline at end of file
diff --git a/assets/js/94a916bd.10cf3fa7.js b/assets/js/94a916bd.10cf3fa7.js
new file mode 100644
index 000000000..d30986237
--- /dev/null
+++ b/assets/js/94a916bd.10cf3fa7.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[8245],{28453:(e,n,s)=>{s.d(n,{R:()=>r,x:()=>c});var t=s(96540);const a={},o=t.createContext(a);function r(e){const n=t.useContext(o);return t.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function c(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(a):e.components||a:r(e.components),t.createElement(o.Provider,{value:n},e.children)}},57757:(e,n,s)=>{s.r(n),s.d(n,{as [...]
\ No newline at end of file
diff --git a/assets/js/954f55a3.ed449197.js b/assets/js/954f55a3.ed449197.js
new file mode 100644
index 000000000..454e5f82e
--- /dev/null
+++ b/assets/js/954f55a3.ed449197.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[3629],{28453:(e,i,t)=>{t.d(i,{R:()=>o,x:()=>l});var r=t(96540);const n={},s=r.createContext(n);function o(e){const i=r.useContext(s);return r.useMemo((function(){return"function"==typeof e?e(i):{...i,...e}}),[i,e])}function l(e){let i;return i=e.disableParentContext?"function"==typeof e.components?e.components(n):e.components||n:o(e.components),r.createElement(s.Provider,{value:i},e.children)}},58584:(e,i,t)=>{t.r(i),t.d(i,{as [...]
\ No newline at end of file
diff --git a/assets/js/9557406b.083c8e28.js b/assets/js/9557406b.083c8e28.js
new file mode 100644
index 000000000..fd6a1b099
--- /dev/null
+++ b/assets/js/9557406b.083c8e28.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[709],{28453:(e,n,t)=>{t.d(n,{R:()=>s,x:()=>o});var i=t(96540);const a={},r=i.createContext(a);function s(e){const n=i.useContext(r);return i.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function o(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(a):e.components||a:s(e.components),i.createElement(r.Provider,{value:n},e.children)}},41179:(e,n,t)=>{t.r(n),t.d(n,{ass [...]
\ No newline at end of file
diff --git a/assets/js/95eaac7a.feb1c739.js b/assets/js/95eaac7a.feb1c739.js
new file mode 100644
index 000000000..1b01c8972
--- /dev/null
+++ b/assets/js/95eaac7a.feb1c739.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[6539],{5884:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>d,contentTitle:()=>a,default:()=>u,frontMatter:()=>r,metadata:()=>s,toc:()=>c});const s=JSON.parse('{"id":"design/peons","title":"Peon service","description":"\x3c!--","source":"@site/docs/latest/design/peons.md","sourceDirName":"design","slug":"/design/peons","permalink":"/docs/latest/design/peons","draft":false,"unlisted":false,"tags":[],"version":"current","frontMatter":{"id":" [...]
\ No newline at end of file
diff --git a/assets/js/96fedd74.ff8fec11.js b/assets/js/96fedd74.ff8fec11.js
new file mode 100644
index 000000000..9ca945d40
--- /dev/null
+++ b/assets/js/96fedd74.ff8fec11.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[9804],{28453:(e,t,n)=>{n.d(t,{R:()=>i,x:()=>s});var r=n(96540);const o={},a=r.createContext(o);function i(e){const t=r.useContext(a);return r.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function s(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(o):e.components||o:i(e.components),r.createElement(a.Provider,{value:t},e.children)}},56874:(e,t,n)=>{n.r(t),n.d(t,{as [...]
\ No newline at end of file
diff --git a/assets/js/98453339.4ba13b93.js b/assets/js/98453339.4ba13b93.js
new file mode 100644
index 000000000..0afde9c06
--- /dev/null
+++ b/assets/js/98453339.4ba13b93.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[7603],{28453:(e,n,t)=>{t.d(n,{R:()=>a,x:()=>o});var s=t(96540);const i={},r=s.createContext(i);function a(e){const n=s.useContext(r);return s.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function o(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:a(e.components),s.createElement(r.Provider,{value:n},e.children)}},97880:(e,n,t)=>{t.r(n),t.d(n,{as [...]
\ No newline at end of file
diff --git a/assets/js/984eaad9.ea209061.js b/assets/js/984eaad9.ea209061.js
new file mode 100644
index 000000000..3684c47b3
--- /dev/null
+++ b/assets/js/984eaad9.ea209061.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[5014],{28453:(e,r,i)=>{i.d(r,{R:()=>s,x:()=>u});var n=i(96540);const t={},o=n.createContext(t);function s(e){const r=n.useContext(o);return n.useMemo((function(){return"function"==typeof e?e(r):{...r,...e}}),[r,e])}function u(e){let r;return r=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:s(e.components),n.createElement(o.Provider,{value:r},e.children)}},34706:(e,r,i)=>{i.r(r),i.d(r,{as [...]
\ No newline at end of file
diff --git a/assets/js/98b02a47.27f387f5.js b/assets/js/98b02a47.27f387f5.js
new file mode 100644
index 000000000..db509a25e
--- /dev/null
+++ b/assets/js/98b02a47.27f387f5.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[7118],{7950:(e,i,t)=>{t.d(i,{A:()=>n});const n=t.p+"assets/images/druid-timeline-1eb095729ad3c5084dc7ff60aad39421.png"},28453:(e,i,t)=>{t.d(i,{R:()=>r,x:()=>o});var n=t(96540);const s={},a=n.createContext(s);function r(e){const i=n.useContext(a);return n.useMemo((function(){return"function"==typeof e?e(i):{...i,...e}}),[i,e])}function o(e){let i;return i=e.disableParentContext?"function"==typeof e.components?e.components(s):e. [...]
\ No newline at end of file
diff --git a/assets/js/99d91b5a.686437c8.js b/assets/js/99d91b5a.686437c8.js
new file mode 100644
index 000000000..f61515e75
--- /dev/null
+++ b/assets/js/99d91b5a.686437c8.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[5752],{28453:(e,t,n)=>{n.d(t,{R:()=>l,x:()=>r});var a=n(96540);const s={},i=a.createContext(s);function l(e){const t=a.useContext(i);return a.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function r(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:l(e.components),a.createElement(i.Provider,{value:t},e.children)}},41862:(e,t,n)=>{n.r(t),n.d(t,{as [...]
\ No newline at end of file
diff --git a/assets/js/9a8dd851.5a9f79f2.js b/assets/js/9a8dd851.5a9f79f2.js
new file mode 100644
index 000000000..f5337744e
--- /dev/null
+++ b/assets/js/9a8dd851.5a9f79f2.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[2031],{28453:(e,r,t)=>{t.d(r,{R:()=>s,x:()=>a});var n=t(96540);const i={},o=n.createContext(i);function s(e){const r=n.useContext(o);return n.useMemo((function(){return"function"==typeof e?e(r):{...r,...e}}),[r,e])}function a(e){let r;return r=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:s(e.components),n.createElement(o.Provider,{value:r},e.children)}},69621:(e,r,t)=>{t.r(r),t.d(r,{as [...]
\ No newline at end of file
diff --git a/assets/js/9c039e3e.c4c0946c.js b/assets/js/9c039e3e.c4c0946c.js
new file mode 100644
index 000000000..65cbbab04
--- /dev/null
+++ b/assets/js/9c039e3e.c4c0946c.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[3834],{28453:(e,t,r)=>{r.d(t,{R:()=>c,x:()=>d});var i=r(96540);const n={},s=i.createContext(n);function c(e){const t=i.useContext(s);return i.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function d(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(n):e.components||n:c(e.components),i.createElement(s.Provider,{value:t},e.children)}},56061:(e,t,r)=>{r.r(t),r.d(t,{as [...]
\ No newline at end of file
diff --git a/assets/js/9c962748.752eab24.js b/assets/js/9c962748.752eab24.js
new file mode 100644
index 000000000..49bdaece8
--- /dev/null
+++ b/assets/js/9c962748.752eab24.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[3263],{28453:(e,n,i)=>{i.d(n,{R:()=>t,x:()=>c});var s=i(96540);const r={},o=s.createContext(r);function t(e){const n=s.useContext(o);return s.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function c(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:t(e.components),s.createElement(o.Provider,{value:n},e.children)}},30216:(e,n,i)=>{i.r(n),i.d(n,{as [...]
\ No newline at end of file
diff --git a/assets/js/9cbe81ea.59db58ae.js b/assets/js/9cbe81ea.59db58ae.js
new file mode 100644
index 000000000..4ff2f27d9
--- /dev/null
+++ b/assets/js/9cbe81ea.59db58ae.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[5011],{2909:(e,n,i)=>{i.r(n),i.d(n,{assets:()=>c,contentTitle:()=>l,default:()=>h,frontMatter:()=>d,metadata:()=>s,toc:()=>o});const s=JSON.parse('{"id":"data-management/cascading-reindexing","title":"Cascading reindexing","description":"\x3c!--","source":"@site/docs/38.0.0/data-management/cascading-reindexing.md","sourceDirName":"data-management","slug":"/data-management/cascading-reindexing","permalink":"/docs/38.0.0/data-ma [...]
\ No newline at end of file
diff --git a/assets/js/9d09376f.82e60744.js b/assets/js/9d09376f.82e60744.js
new file mode 100644
index 000000000..99fe3d3c2
--- /dev/null
+++ b/assets/js/9d09376f.82e60744.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[655],{9522:(e,n,r)=>{r.r(n),r.d(n,{assets:()=>d,contentTitle:()=>t,default:()=>h,frontMatter:()=>l,metadata:()=>a,toc:()=>o});const a=JSON.parse('{"id":"querying/arrays","title":"Arrays","description":"\x3c!--","source":"@site/docs/38.0.0/querying/arrays.md","sourceDirName":"querying","slug":"/querying/arrays","permalink":"/docs/38.0.0/querying/arrays","draft":false,"unlisted":false,"tags":[],"version":"current","frontMatter": [...]
\ No newline at end of file
diff --git a/assets/js/9dd30c58.6cdf5b49.js b/assets/js/9dd30c58.6cdf5b49.js
new file mode 100644
index 000000000..c10d65cfb
--- /dev/null
+++ b/assets/js/9dd30c58.6cdf5b49.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[8587],{28453:(e,n,s)=>{s.d(n,{R:()=>d,x:()=>a});var i=s(96540);const r={},t=i.createContext(r);function d(e){const n=i.useContext(t);return i.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function a(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:d(e.components),i.createElement(t.Provider,{value:n},e.children)}},60976:(e,n,s)=>{s.r(n),s.d(n,{as [...]
\ No newline at end of file
diff --git a/assets/js/9e7a63b5.b6d3844e.js b/assets/js/9e7a63b5.b6d3844e.js
new file mode 100644
index 000000000..d5c53ce73
--- /dev/null
+++ b/assets/js/9e7a63b5.b6d3844e.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[395],{28453:(e,n,s)=>{s.d(n,{R:()=>o,x:()=>c});var r=s(96540);const t={},i=r.createContext(t);function o(e){const n=r.useContext(i);return r.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function c(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:o(e.components),r.createElement(i.Provider,{value:n},e.children)}},91828:(e,n,s)=>{s.r(n),s.d(n,{ass [...]
\ No newline at end of file
diff --git a/assets/js/9ee4b8c3.6f65400c.js b/assets/js/9ee4b8c3.6f65400c.js
new file mode 100644
index 000000000..10daa31f2
--- /dev/null
+++ b/assets/js/9ee4b8c3.6f65400c.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[8514],{28453:(e,t,n)=>{n.d(t,{R:()=>r,x:()=>l});var a=n(96540);const s={},i=a.createContext(s);function r(e){const t=a.useContext(i);return a.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function l(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:r(e.components),a.createElement(i.Provider,{value:t},e.children)}},33108:(e,t,n)=>{n.r(t),n.d(t,{as [...]
\ No newline at end of file
diff --git a/assets/js/9ef41741.a70f8f73.js b/assets/js/9ef41741.a70f8f73.js
new file mode 100644
index 000000000..ce153c239
--- /dev/null
+++ b/assets/js/9ef41741.a70f8f73.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[3570],{28453:(e,n,t)=>{t.d(n,{R:()=>o,x:()=>a});var s=t(96540);const i={},r=s.createContext(i);function o(e){const n=s.useContext(r);return s.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function a(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:o(e.components),s.createElement(r.Provider,{value:n},e.children)}},28851:(e,n,t)=>{t.r(n),t.d(n,{as [...]
\ No newline at end of file
diff --git a/assets/js/9f7d2daf.557dbf66.js b/assets/js/9f7d2daf.557dbf66.js
new file mode 100644
index 000000000..9752eb5d5
--- /dev/null
+++ b/assets/js/9f7d2daf.557dbf66.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[6512],{22528:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>c,contentTitle:()=>a,default:()=>h,frontMatter:()=>r,metadata:()=>s,toc:()=>l});const s=JSON.parse('{"id":"development/extensions-contrib/iceberg","title":"Iceberg extension","description":"\x3c!--","source":"@site/docs/38.0.0/development/extensions-contrib/iceberg.md","sourceDirName":"development/extensions-contrib","slug":"/development/extensions-contrib/iceberg","permalink":"/ [...]
\ No newline at end of file
diff --git a/assets/js/a129ef7f.0313bdcd.js b/assets/js/a129ef7f.0313bdcd.js
new file mode 100644
index 000000000..6d2c32a91
--- /dev/null
+++ b/assets/js/a129ef7f.0313bdcd.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[2684],{28453:(e,n,i)=>{i.d(n,{R:()=>s,x:()=>o});var t=i(96540);const a={},r=t.createContext(a);function s(e){const n=t.useContext(r);return t.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function o(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(a):e.components||a:s(e.components),t.createElement(r.Provider,{value:n},e.children)}},62447:(e,n,i)=>{i.r(n),i.d(n,{as [...]
\ No newline at end of file
diff --git a/assets/js/a155e191.d13ce3ea.js b/assets/js/a155e191.d13ce3ea.js
new file mode 100644
index 000000000..5c0289f97
--- /dev/null
+++ b/assets/js/a155e191.d13ce3ea.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[4091],{16297:(e,n,o)=>{o.r(n),o.d(n,{assets:()=>l,contentTitle:()=>a,default:()=>d,frontMatter:()=>r,metadata:()=>t,toc:()=>u});const t=JSON.parse('{"id":"querying/joins","title":"Joins","description":"\x3c!--","source":"@site/docs/latest/querying/joins.md","sourceDirName":"querying","slug":"/querying/joins","permalink":"/docs/latest/querying/joins","draft":false,"unlisted":false,"tags":[],"version":"current","frontMatter":{"i [...]
\ No newline at end of file
diff --git a/assets/js/a246c79f.8387ed80.js b/assets/js/a246c79f.8387ed80.js
new file mode 100644
index 000000000..6c95ef86c
--- /dev/null
+++ b/assets/js/a246c79f.8387ed80.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[5443],{1838:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>a,contentTitle:()=>d,default:()=>h,frontMatter:()=>c,metadata:()=>s,toc:()=>o});const s=JSON.parse('{"id":"development/extensions-contrib/tdigestsketch-quantiles","title":"T-Digest Quantiles Sketch module","description":"\x3c!--","source":"@site/docs/latest/development/extensions-contrib/tdigestsketch-quantiles.md","sourceDirName":"development/extensions-contrib","slug":"/developm [...]
\ No newline at end of file
diff --git a/assets/js/a29092d7.a6c91b6b.js b/assets/js/a29092d7.a6c91b6b.js
new file mode 100644
index 000000000..a46daf56a
--- /dev/null
+++ b/assets/js/a29092d7.a6c91b6b.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[6951],{28453:(e,n,t)=>{t.d(n,{R:()=>i,x:()=>a});var d=t(96540);const r={},s=d.createContext(r);function i(e){const n=d.useContext(s);return d.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function a(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:i(e.components),d.createElement(s.Provider,{value:n},e.children)}},64515:(e,n,t)=>{t.r(n),t.d(n,{as [...]
\ No newline at end of file
diff --git a/assets/js/a34185cc.e8dbd162.js b/assets/js/a34185cc.e8dbd162.js
new file mode 100644
index 000000000..29380c1fd
--- /dev/null
+++ b/assets/js/a34185cc.e8dbd162.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[889],{28453:(e,n,l)=>{l.d(n,{R:()=>s,x:()=>d});var i=l(96540);const t={},r=i.createContext(t);function s(e){const n=i.useContext(r);return i.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function d(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:s(e.components),i.createElement(r.Provider,{value:n},e.children)}},35005:(e,n,l)=>{l.r(n),l.d(n,{ass [...]
\ No newline at end of file
diff --git a/assets/js/a37f7d8e.4c2f409b.js b/assets/js/a37f7d8e.4c2f409b.js
new file mode 100644
index 000000000..4cd7a4dc7
--- /dev/null
+++ b/assets/js/a37f7d8e.4c2f409b.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[364],{28453:(e,n,t)=>{t.d(n,{R:()=>o,x:()=>a});var r=t(96540);const i={},s=r.createContext(i);function o(e){const n=r.useContext(s);return r.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function a(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:o(e.components),r.createElement(s.Provider,{value:n},e.children)}},59317:(e,n,t)=>{t.r(n),t.d(n,{ass [...]
\ No newline at end of file
diff --git a/assets/js/a3bf1768.5db0d98c.js b/assets/js/a3bf1768.5db0d98c.js
new file mode 100644
index 000000000..0a1695b60
--- /dev/null
+++ b/assets/js/a3bf1768.5db0d98c.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[8873],{28453:(e,t,a)=>{a.d(t,{R:()=>i,x:()=>d});var r=a(96540);const n={},s=r.createContext(n);function i(e){const t=r.useContext(s);return r.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function d(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(n):e.components||n:i(e.components),r.createElement(s.Provider,{value:t},e.children)}},47658:(e,t,a)=>{a.r(t),a.d(t,{as [...]
\ No newline at end of file
diff --git a/assets/js/a3c37aca.b1c28ab9.js b/assets/js/a3c37aca.b1c28ab9.js
new file mode 100644
index 000000000..6c35da9e9
--- /dev/null
+++ b/assets/js/a3c37aca.b1c28ab9.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[1677],{28453:(n,e,t)=>{t.d(e,{R:()=>o,x:()=>a});var r=t(96540);const i={},s=r.createContext(i);function o(n){const e=r.useContext(s);return r.useMemo((function(){return"function"==typeof n?n(e):{...e,...n}}),[e,n])}function a(n){let e;return e=n.disableParentContext?"function"==typeof n.components?n.components(i):n.components||i:o(n.components),r.createElement(s.Provider,{value:e},n.children)}},65537:(n,e,t)=>{t.d(e,{A:()=>b}) [...]
\ No newline at end of file
diff --git a/assets/js/a44c6b07.9332a0f3.js b/assets/js/a44c6b07.9332a0f3.js
new file mode 100644
index 000000000..1c45758c9
--- /dev/null
+++ b/assets/js/a44c6b07.9332a0f3.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[708],{13051:(e,s,n)=>{n.d(s,{A:()=>t});const t=n.p+"assets/images/web-console-13-lookups-337b7e84ed82f5580448a5ba083f91c1.png"},19901:(e,s,n)=>{n.d(s,{A:()=>t});const t=n.p+"assets/images/web-console-05-retention-e5f87124a1e9c252043a45b84a6039ed.png"},21936:(e,s,n)=>{n.r(s),n.d(s,{assets:()=>l,contentTitle:()=>a,default:()=>d,frontMatter:()=>o,metadata:()=>t,toc:()=>c});const t=JSON.parse('{"id":"operations/web-console","title [...]
\ No newline at end of file
diff --git a/assets/js/a4d15f9e.58f48bf5.js b/assets/js/a4d15f9e.58f48bf5.js
new file mode 100644
index 000000000..13081bb85
--- /dev/null
+++ b/assets/js/a4d15f9e.58f48bf5.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[6486],{28453:(e,n,i)=>{i.d(n,{R:()=>s,x:()=>a});var t=i(96540);const r={},o=t.createContext(r);function s(e){const n=t.useContext(o);return t.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function a(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:s(e.components),t.createElement(o.Provider,{value:n},e.children)}},57401:(e,n,i)=>{i.r(n),i.d(n,{as [...]
\ No newline at end of file
diff --git a/assets/js/a4fd3ae2.3b533929.js b/assets/js/a4fd3ae2.3b533929.js
new file mode 100644
index 000000000..21d89c3d7
--- /dev/null
+++ b/assets/js/a4fd3ae2.3b533929.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[5323],{28453:(e,n,t)=>{t.d(n,{R:()=>a,x:()=>l});var r=t(96540);const s={},i=r.createContext(s);function a(e){const n=r.useContext(i);return r.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function l(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:a(e.components),r.createElement(i.Provider,{value:n},e.children)}},84403:(e,n,t)=>{t.r(n),t.d(n,{as [...]
\ No newline at end of file
diff --git a/assets/js/a5891010.1410fed4.js b/assets/js/a5891010.1410fed4.js
new file mode 100644
index 000000000..0fa920547
--- /dev/null
+++ b/assets/js/a5891010.1410fed4.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[4008],{28453:(e,r,s)=>{s.d(r,{R:()=>o,x:()=>d});var t=s(96540);const n={},i=t.createContext(n);function o(e){const r=t.useContext(i);return t.useMemo((function(){return"function"==typeof e?e(r):{...r,...e}}),[r,e])}function d(e){let r;return r=e.disableParentContext?"function"==typeof e.components?e.components(n):e.components||n:o(e.components),t.createElement(i.Provider,{value:r},e.children)}},54190:(e,r,s)=>{s.r(r),s.d(r,{as [...]
\ No newline at end of file
diff --git a/assets/js/a612578d.9b202a31.js b/assets/js/a612578d.9b202a31.js
new file mode 100644
index 000000000..6dfac0efb
--- /dev/null
+++ b/assets/js/a612578d.9b202a31.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[1507],{28453:(e,t,s)=>{s.d(t,{R:()=>o,x:()=>c});var n=s(96540);const a={},r=n.createContext(a);function o(e){const t=n.useContext(r);return n.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function c(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(a):e.components||a:o(e.components),n.createElement(r.Provider,{value:t},e.children)}},92972:(e,t,s)=>{s.r(t),s.d(t,{as [...]
\ No newline at end of file
diff --git a/assets/js/a680932a.80ee418a.js b/assets/js/a680932a.80ee418a.js
new file mode 100644
index 000000000..73b1b5799
--- /dev/null
+++ b/assets/js/a680932a.80ee418a.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[3969],{28453:(e,n,r)=>{r.d(n,{R:()=>t,x:()=>a});var i=r(96540);const o={},s=i.createContext(o);function t(e){const n=i.useContext(s);return i.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function a(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(o):e.components||o:t(e.components),i.createElement(s.Provider,{value:n},e.children)}},69994:(e,n,r)=>{r.r(n),r.d(n,{as [...]
\ No newline at end of file
diff --git a/assets/js/a7a8ea6a.cbef91bf.js b/assets/js/a7a8ea6a.cbef91bf.js
new file mode 100644
index 000000000..2d9746224
--- /dev/null
+++ b/assets/js/a7a8ea6a.cbef91bf.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[6581],{28453:(e,n,t)=>{t.d(n,{R:()=>r,x:()=>l});var s=t(96540);const i={},o=s.createContext(i);function r(e){const n=s.useContext(o);return s.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function l(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:r(e.components),s.createElement(o.Provider,{value:n},e.children)}},94184:(e,n,t)=>{t.r(n),t.d(n,{as [...]
\ No newline at end of file
diff --git a/assets/js/a7ba223c.6dc2b090.js b/assets/js/a7ba223c.6dc2b090.js
new file mode 100644
index 000000000..79c2a3400
--- /dev/null
+++ b/assets/js/a7ba223c.6dc2b090.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[3222],{7654:(e,i,r)=>{r.d(i,{A:()=>n});const n=r.p+"assets/images/tutorial-quickstart-01-55397fb67d2b63fa55d39770575a846f.png"},28453:(e,i,r)=>{r.d(i,{R:()=>s,x:()=>c});var n=r(96540);const o={},t=n.createContext(o);function s(e){const i=n.useContext(t);return n.useMemo((function(){return"function"==typeof e?e(i):{...i,...e}}),[i,e])}function c(e){let i;return i=e.disableParentContext?"function"==typeof e.components?e.componen [...]
\ No newline at end of file
diff --git a/assets/js/a7da6597.3952b321.js b/assets/js/a7da6597.3952b321.js
new file mode 100644
index 000000000..e8ad4b277
--- /dev/null
+++ b/assets/js/a7da6597.3952b321.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[2465],{15929:(e,n,s)=>{s.r(n),s.d(n,{assets:()=>d,contentTitle:()=>l,default:()=>h,frontMatter:()=>t,metadata:()=>o,toc:()=>c});const o=JSON.parse('{"id":"querying/lookups","title":"Lookups","description":"\x3c!--","source":"@site/docs/38.0.0/querying/lookups.md","sourceDirName":"querying","slug":"/querying/lookups","permalink":"/docs/38.0.0/querying/lookups","draft":false,"unlisted":false,"tags":[],"version":"current","frontM [...]
\ No newline at end of file
diff --git a/assets/js/a8a169c7.b109d170.js b/assets/js/a8a169c7.b109d170.js
new file mode 100644
index 000000000..9a0f34801
--- /dev/null
+++ b/assets/js/a8a169c7.b109d170.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[1723],{7007:(e,n,i)=>{i.d(n,{A:()=>t});const t=i.p+"assets/images/tutorial-query-01-255bc08f1f43198a74d6e0b51ba63b34.png"},8653:(e,n,i)=>{i.d(n,{A:()=>t});const t=i.p+"assets/images/tutorial-query-03-3bb6a7521f4fcc9bf410ab6bfa1fa63f.png"},26857:(e,n,i)=>{i.d(n,{A:()=>t});const t=i.p+"assets/images/tutorial-query-07-86073da8ac47313ee65b520bcf7b5984.png"},28453:(e,n,i)=>{i.d(n,{R:()=>a,x:()=>o});var t=i(96540);const r={},s=t.cre [...]
\ No newline at end of file
diff --git a/assets/js/a8cc8574.5a427bcb.js b/assets/js/a8cc8574.5a427bcb.js
new file mode 100644
index 000000000..e9c6e93d7
--- /dev/null
+++ b/assets/js/a8cc8574.5a427bcb.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[5662],{28453:(e,n,t)=>{t.d(n,{R:()=>l,x:()=>a});var s=t(96540);const r={},i=s.createContext(r);function l(e){const n=s.useContext(i);return s.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function a(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:l(e.components),s.createElement(i.Provider,{value:n},e.children)}},71729:(e,n,t)=>{t.r(n),t.d(n,{as [...]
\ No newline at end of file
diff --git a/assets/js/a91680d2.699040a3.js b/assets/js/a91680d2.699040a3.js
new file mode 100644
index 000000000..8c7ef05f8
--- /dev/null
+++ b/assets/js/a91680d2.699040a3.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[7034],{19315:(e,n,s)=>{s.r(n),s.d(n,{assets:()=>d,contentTitle:()=>a,default:()=>h,frontMatter:()=>r,metadata:()=>t,toc:()=>l});const t=JSON.parse('{"id":"development/extensions-core/avro","title":"Apache Avro","description":"\x3c!--","source":"@site/docs/latest/development/extensions-core/avro.md","sourceDirName":"development/extensions-core","slug":"/development/extensions-core/avro","permalink":"/docs/latest/development/ext [...]
\ No newline at end of file
diff --git a/assets/js/a94c6434.f4b7cdb7.js b/assets/js/a94c6434.f4b7cdb7.js
new file mode 100644
index 000000000..a7b8a9098
--- /dev/null
+++ b/assets/js/a94c6434.f4b7cdb7.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[4609],{28453:(e,r,s)=>{s.d(r,{R:()=>d,x:()=>l});var t=s(96540);const n={},i=t.createContext(n);function d(e){const r=t.useContext(i);return t.useMemo((function(){return"function"==typeof e?e(r):{...r,...e}}),[r,e])}function l(e){let r;return r=e.disableParentContext?"function"==typeof e.components?e.components(n):e.components||n:d(e.components),t.createElement(i.Provider,{value:r},e.children)}},64469:(e,r,s)=>{s.r(r),s.d(r,{as [...]
\ No newline at end of file
diff --git a/assets/js/a97bb373.edd108ab.js b/assets/js/a97bb373.edd108ab.js
new file mode 100644
index 000000000..7c8bdae3d
--- /dev/null
+++ b/assets/js/a97bb373.edd108ab.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[7741],{28453:(e,s,t)=>{t.d(s,{R:()=>d,x:()=>i});var n=t(96540);const o={},r=n.createContext(o);function d(e){const s=n.useContext(r);return n.useMemo((function(){return"function"==typeof e?e(s):{...s,...e}}),[s,e])}function i(e){let s;return s=e.disableParentContext?"function"==typeof e.components?e.components(o):e.components||o:d(e.components),n.createElement(r.Provider,{value:s},e.children)}},94092:(e,s,t)=>{t.r(s),t.d(s,{as [...]
\ No newline at end of file
diff --git a/assets/js/a994e972.d3efe51d.js b/assets/js/a994e972.d3efe51d.js
new file mode 100644
index 000000000..e8b8fd253
--- /dev/null
+++ b/assets/js/a994e972.d3efe51d.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[3715],{28453:(e,t,n)=>{n.d(t,{R:()=>r,x:()=>o});var s=n(96540);const i={},a=s.createContext(i);function r(e){const t=s.useContext(a);return s.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function o(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:r(e.components),s.createElement(a.Provider,{value:t},e.children)}},41278:(e,t,n)=>{n.r(t),n.d(t,{as [...]
\ No newline at end of file
diff --git a/assets/js/a9dbd2ed.614d5ba7.js b/assets/js/a9dbd2ed.614d5ba7.js
new file mode 100644
index 000000000..8bddfcdad
--- /dev/null
+++ b/assets/js/a9dbd2ed.614d5ba7.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[2586],{28453:(e,t,n)=>{n.d(t,{R:()=>r,x:()=>a});var i=n(96540);const o={},s=i.createContext(o);function r(e){const t=i.useContext(s);return i.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function a(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(o):e.components||o:r(e.components),i.createElement(s.Provider,{value:t},e.children)}},62150:(e,t,n)=>{n.r(t),n.d(t,{as [...]
\ No newline at end of file
diff --git a/assets/js/ab046938.2f313b2a.js b/assets/js/ab046938.2f313b2a.js
new file mode 100644
index 000000000..6c1bde703
--- /dev/null
+++ b/assets/js/ab046938.2f313b2a.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[904],{22596:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>d,contentTitle:()=>c,default:()=>h,frontMatter:()=>r,metadata:()=>i,toc:()=>u});const i=JSON.parse('{"id":"api-reference/automatic-compaction-api","title":"Automatic compaction API","description":"\x3c!--","source":"@site/docs/latest/api-reference/automatic-compaction-api.md","sourceDirName":"api-reference","slug":"/api-reference/automatic-compaction-api","permalink":"/docs/latest [...]
\ No newline at end of file
diff --git a/assets/js/ab0a4069.e3fff9ee.js b/assets/js/ab0a4069.e3fff9ee.js
new file mode 100644
index 000000000..c9d0af0d5
--- /dev/null
+++ b/assets/js/ab0a4069.e3fff9ee.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[6524],{28453:(e,n,i)=>{i.d(n,{R:()=>r,x:()=>a});var s=i(96540);const t={},o=s.createContext(t);function r(e){const n=s.useContext(o);return s.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function a(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:r(e.components),s.createElement(o.Provider,{value:n},e.children)}},73281:(e,n,i)=>{i.r(n),i.d(n,{as [...]
\ No newline at end of file
diff --git a/assets/js/ab9f7dbb.dcecf5e8.js b/assets/js/ab9f7dbb.dcecf5e8.js
new file mode 100644
index 000000000..d6d2b6cfc
--- /dev/null
+++ b/assets/js/ab9f7dbb.dcecf5e8.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[6934],{4569:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>d,contentTitle:()=>r,default:()=>u,frontMatter:()=>s,metadata:()=>a,toc:()=>l});const a=JSON.parse('{"id":"comparisons/druid-vs-sql-on-hadoop","title":"Apache Druid vs SQL-on-Hadoop","description":"\x3c!--","source":"@site/docs/38.0.0/comparisons/druid-vs-sql-on-hadoop.md","sourceDirName":"comparisons","slug":"/comparisons/druid-vs-sql-on-hadoop","permalink":"/docs/38.0.0/comparis [...]
\ No newline at end of file
diff --git a/assets/js/ac4e760b.c8cb274b.js b/assets/js/ac4e760b.c8cb274b.js
new file mode 100644
index 000000000..708b9e5d5
--- /dev/null
+++ b/assets/js/ac4e760b.c8cb274b.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[3523],{28453:(e,n,r)=>{r.d(n,{R:()=>o,x:()=>i});var s=r(96540);const t={},a=s.createContext(t);function o(e){const n=s.useContext(a);return s.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function i(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:o(e.components),s.createElement(a.Provider,{value:n},e.children)}},65537:(e,n,r)=>{r.d(n,{A:()=>N}) [...]
\ No newline at end of file
diff --git a/assets/js/acefdcc3.043ccb00.js b/assets/js/acefdcc3.043ccb00.js
new file mode 100644
index 000000000..effb38d90
--- /dev/null
+++ b/assets/js/acefdcc3.043ccb00.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[6547],{28453:(e,n,t)=>{t.d(n,{R:()=>i,x:()=>l});var s=t(96540);const r={},a=s.createContext(r);function i(e){const n=s.useContext(a);return s.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function l(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:i(e.components),s.createElement(a.Provider,{value:n},e.children)}},65537:(e,n,t)=>{t.d(n,{A:()=>T}) [...]
\ No newline at end of file
diff --git a/assets/js/ad6595f7.ca154b67.js b/assets/js/ad6595f7.ca154b67.js
new file mode 100644
index 000000000..5a9fc90d5
--- /dev/null
+++ b/assets/js/ad6595f7.ca154b67.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[3792],{28453:(e,t,r)=>{r.d(t,{R:()=>o,x:()=>i});var n=r(96540);const s={},c=n.createContext(s);function o(e){const t=n.useContext(c);return n.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function i(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:o(e.components),n.createElement(c.Provider,{value:t},e.children)}},63022:(e,t,r)=>{r.r(t),r.d(t,{as [...]
\ No newline at end of file
diff --git a/assets/js/adbe9b0f.16ebc1d3.js b/assets/js/adbe9b0f.16ebc1d3.js
new file mode 100644
index 000000000..396bf4123
--- /dev/null
+++ b/assets/js/adbe9b0f.16ebc1d3.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[9164],{22418:(e,r,t)=>{t.r(r),t.d(r,{assets:()=>l,contentTitle:()=>o,default:()=>h,frontMatter:()=>d,metadata:()=>i,toc:()=>c});const i=JSON.parse('{"id":"querying/query-context-reference","title":"Query context reference","description":"\x3c!--","source":"@site/docs/38.0.0/querying/query-context-reference.md","sourceDirName":"querying","slug":"/querying/query-context-reference","permalink":"/docs/38.0.0/querying/query-context [...]
\ No newline at end of file
diff --git a/assets/js/af2a22a3.2006e7df.js b/assets/js/af2a22a3.2006e7df.js
new file mode 100644
index 000000000..ff25e5c0c
--- /dev/null
+++ b/assets/js/af2a22a3.2006e7df.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[6497],{28453:(e,t,n)=>{n.d(t,{R:()=>i,x:()=>o});var s=n(96540);const a={},r=s.createContext(a);function i(e){const t=s.useContext(r);return s.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function o(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(a):e.components||a:i(e.components),s.createElement(r.Provider,{value:t},e.children)}},92941:(e,t,n)=>{n.r(t),n.d(t,{as [...]
\ No newline at end of file
diff --git a/assets/js/af3658ad.cb00be1c.js b/assets/js/af3658ad.cb00be1c.js
new file mode 100644
index 000000000..3c50fb86e
--- /dev/null
+++ b/assets/js/af3658ad.cb00be1c.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[4577],{28453:(e,t,n)=>{n.d(t,{R:()=>a,x:()=>i});var s=n(96540);const r={},o=s.createContext(r);function a(e){const t=s.useContext(o);return s.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function i(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:a(e.components),s.createElement(o.Provider,{value:t},e.children)}},68953:(e,t,n)=>{n.r(t),n.d(t,{as [...]
\ No newline at end of file
diff --git a/assets/js/af79f0c6.7f0b3528.js b/assets/js/af79f0c6.7f0b3528.js
new file mode 100644
index 000000000..a18f580f5
--- /dev/null
+++ b/assets/js/af79f0c6.7f0b3528.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[2263],{28453:(e,t,n)=>{n.d(t,{R:()=>r,x:()=>o});var s=n(96540);const i={},a=s.createContext(i);function r(e){const t=s.useContext(a);return s.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function o(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:r(e.components),s.createElement(a.Provider,{value:t},e.children)}},47777:(e,t,n)=>{n.r(t),n.d(t,{as [...]
\ No newline at end of file
diff --git a/assets/js/affbd492.078ec55e.js b/assets/js/affbd492.078ec55e.js
new file mode 100644
index 000000000..aec08993d
--- /dev/null
+++ b/assets/js/affbd492.078ec55e.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[1807],{19282:(e,n,r)=>{r.r(n),r.d(n,{assets:()=>o,contentTitle:()=>a,default:()=>d,frontMatter:()=>c,metadata:()=>s,toc:()=>l});const s=JSON.parse('{"id":"querying/caching","title":"Query caching","description":"Describes Apache\xae Druid per-segment and whole-query cache types. Identifies services where you can enable caching and suggestions for caching strategy.","source":"@site/docs/latest/querying/caching.md","sourceDirNam [...]
\ No newline at end of file
diff --git a/assets/js/b0c79e6c.737e6026.js b/assets/js/b0c79e6c.737e6026.js
new file mode 100644
index 000000000..1419c59f2
--- /dev/null
+++ b/assets/js/b0c79e6c.737e6026.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[5512],{28453:(e,i,r)=>{r.d(i,{R:()=>s,x:()=>c});var n=r(96540);const t={},o=n.createContext(t);function s(e){const i=n.useContext(o);return n.useMemo((function(){return"function"==typeof e?e(i):{...i,...e}}),[i,e])}function c(e){let i;return i=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:s(e.components),n.createElement(o.Provider,{value:i},e.children)}},35694:(e,i,r)=>{r.d(i,{A:()=>n}) [...]
\ No newline at end of file
diff --git a/assets/js/b1fd5eae.f0ccc8d7.js b/assets/js/b1fd5eae.f0ccc8d7.js
new file mode 100644
index 000000000..90e830238
--- /dev/null
+++ b/assets/js/b1fd5eae.f0ccc8d7.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[6402],{23512:(e,r,i)=>{i.r(r),i.d(r,{assets:()=>o,contentTitle:()=>d,default:()=>a,frontMatter:()=>c,metadata:()=>n,toc:()=>l});const n=JSON.parse('{"id":"querying/topnmetricspec","title":"Sorting (topN)","description":"\x3c!--","source":"@site/docs/38.0.0/querying/topnmetricspec.md","sourceDirName":"querying","slug":"/querying/topnmetricspec","permalink":"/docs/38.0.0/querying/topnmetricspec","draft":false,"unlisted":false,"t [...]
\ No newline at end of file
diff --git a/assets/js/b2d41fa9.9d0a6dd9.js b/assets/js/b2d41fa9.9d0a6dd9.js
new file mode 100644
index 000000000..978194d26
--- /dev/null
+++ b/assets/js/b2d41fa9.9d0a6dd9.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[2820],{28453:(e,n,r)=>{r.d(n,{R:()=>d,x:()=>c});var s=r(96540);const i={},l=s.createContext(i);function d(e){const n=s.useContext(l);return s.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function c(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:d(e.components),s.createElement(l.Provider,{value:n},e.children)}},41885:(e,n,r)=>{r.r(n),r.d(n,{as [...]
\ No newline at end of file
diff --git a/assets/js/b307eceb.4e198118.js b/assets/js/b307eceb.4e198118.js
new file mode 100644
index 000000000..27b7d5ce5
--- /dev/null
+++ b/assets/js/b307eceb.4e198118.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[7104],{28453:(e,n,r)=>{r.d(n,{R:()=>a,x:()=>c});var s=r(96540);const t={},i=s.createContext(t);function a(e){const n=s.useContext(i);return s.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function c(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:a(e.components),s.createElement(i.Provider,{value:n},e.children)}},46979:(e,n,r)=>{r.r(n),r.d(n,{as [...]
\ No newline at end of file
diff --git a/assets/js/b329b83f.26296b12.js b/assets/js/b329b83f.26296b12.js
new file mode 100644
index 000000000..b88d7cd58
--- /dev/null
+++ b/assets/js/b329b83f.26296b12.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[1800],{28453:(e,n,s)=>{s.d(n,{R:()=>d,x:()=>o});var t=s(96540);const i={},r=t.createContext(i);function d(e){const n=t.useContext(r);return t.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function o(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:d(e.components),t.createElement(r.Provider,{value:n},e.children)}},31854:(e,n,s)=>{s.r(n),s.d(n,{as [...]
\ No newline at end of file
diff --git a/assets/js/b4129207.e1f8c780.js b/assets/js/b4129207.e1f8c780.js
new file mode 100644
index 000000000..cf13b9ff0
--- /dev/null
+++ b/assets/js/b4129207.e1f8c780.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[5458],{28453:(e,t,n)=>{n.d(t,{R:()=>d,x:()=>o});var i=n(96540);const s={},r=i.createContext(s);function d(e){const t=i.useContext(r);return i.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function o(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:d(e.components),i.createElement(r.Provider,{value:t},e.children)}},57951:(e,t,n)=>{n.r(t),n.d(t,{as [...]
\ No newline at end of file
diff --git a/assets/js/b427049c.1b3ef4c3.js b/assets/js/b427049c.1b3ef4c3.js
new file mode 100644
index 000000000..b3c8c9751
--- /dev/null
+++ b/assets/js/b427049c.1b3ef4c3.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[8728],{28453:(e,n,i)=>{i.d(n,{R:()=>l,x:()=>r});var t=i(96540);const s={},a=t.createContext(s);function l(e){const n=t.useContext(a);return t.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function r(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:l(e.components),t.createElement(a.Provider,{value:n},e.children)}},65679:(e,n,i)=>{i.r(n),i.d(n,{as [...]
\ No newline at end of file
diff --git a/assets/js/b54a2972.15707d02.js b/assets/js/b54a2972.15707d02.js
new file mode 100644
index 000000000..866538d7d
--- /dev/null
+++ b/assets/js/b54a2972.15707d02.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[5717],{11329:(e,t,s)=>{s.r(t),s.d(t,{assets:()=>r,contentTitle:()=>c,default:()=>h,frontMatter:()=>o,metadata:()=>n,toc:()=>l});const n=JSON.parse('{"id":"development/extensions-core/datasketches-extension","title":"DataSketches extension","description":"\x3c!--","source":"@site/docs/latest/development/extensions-core/datasketches-extension.md","sourceDirName":"development/extensions-core","slug":"/development/extensions-core/ [...]
\ No newline at end of file
diff --git a/assets/js/b639be62.c4383cb8.js b/assets/js/b639be62.c4383cb8.js
new file mode 100644
index 000000000..003ea8798
--- /dev/null
+++ b/assets/js/b639be62.c4383cb8.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[6384],{28453:(e,n,r)=>{r.d(n,{R:()=>d,x:()=>o});var t=r(96540);const s={},i=t.createContext(s);function d(e){const n=t.useContext(i);return t.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function o(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:d(e.components),t.createElement(i.Provider,{value:n},e.children)}},58424:(e,n,r)=>{r.r(n),r.d(n,{as [...]
\ No newline at end of file
diff --git a/assets/js/b6d922f1.efeb8650.js b/assets/js/b6d922f1.efeb8650.js
new file mode 100644
index 000000000..71e934fe3
--- /dev/null
+++ b/assets/js/b6d922f1.efeb8650.js
@@ -0,0 +1 @@
+(self.webpackChunk=self.webpackChunk||[]).push([[4849],{4314:e=>{e.exports.h=[{version:"38.0.0",date:"Oct 1 2026"},{version:"37.0.0",date:"May 8 2026"},{version:"36.0.0",date:"Feb 9 2026"}]},28453:(e,r,s)=>{"use strict";s.d(r,{R:()=>n,x:()=>t});var a=s(96540);const i={},d=a.createContext(i);function n(e){const r=a.useContext(d);return a.useMemo((function(){return"function"==typeof e?e(r):{...r,...e}}),[r,e])}function t(e){let r;return r=e.disableParentContext?"function"==typeof e.compone [...]
\ No newline at end of file
diff --git a/assets/js/b727495d.449d5d64.js b/assets/js/b727495d.449d5d64.js
new file mode 100644
index 000000000..1285ce3e4
--- /dev/null
+++ b/assets/js/b727495d.449d5d64.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[4857],{28453:(e,n,t)=>{t.d(n,{R:()=>a,x:()=>o});var r=t(96540);const s={},i=r.createContext(s);function a(e){const n=r.useContext(i);return r.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function o(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:a(e.components),r.createElement(i.Provider,{value:n},e.children)}},56706:(e,n,t)=>{t.r(n),t.d(n,{as [...]
\ No newline at end of file
diff --git a/assets/js/b76b11af.282b4c4c.js b/assets/js/b76b11af.282b4c4c.js
new file mode 100644
index 000000000..5b96c28a0
--- /dev/null
+++ b/assets/js/b76b11af.282b4c4c.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[1513],{340:(e,t,s)=>{s.r(t),s.d(t,{assets:()=>l,contentTitle:()=>c,default:()=>a,frontMatter:()=>i,metadata:()=>n,toc:()=>o});const n=JSON.parse('{"id":"tutorials/tutorial-rollup","title":"Aggregate data with rollup","description":"\x3c!--","source":"@site/docs/38.0.0/tutorials/tutorial-rollup.md","sourceDirName":"tutorials","slug":"/tutorials/tutorial-rollup","permalink":"/docs/38.0.0/tutorials/tutorial-rollup","draft":false, [...]
\ No newline at end of file
diff --git a/assets/js/b8922244.0271a9e7.js b/assets/js/b8922244.0271a9e7.js
new file mode 100644
index 000000000..1e7e1d9e4
--- /dev/null
+++ b/assets/js/b8922244.0271a9e7.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[4756],{26291:(e,o,n)=>{n.r(o),n.d(o,{assets:()=>a,contentTitle:()=>r,default:()=>u,frontMatter:()=>l,metadata:()=>t,toc:()=>d});const t=JSON.parse('{"id":"api-reference/lookups-api","title":"Lookups API","description":"\x3c!--","source":"@site/docs/38.0.0/api-reference/lookups-api.md","sourceDirName":"api-reference","slug":"/api-reference/lookups-api","permalink":"/docs/38.0.0/api-reference/lookups-api","draft":false,"unlisted [...]
\ No newline at end of file
diff --git a/assets/js/b964b515.940385fc.js b/assets/js/b964b515.940385fc.js
new file mode 100644
index 000000000..f5095197d
--- /dev/null
+++ b/assets/js/b964b515.940385fc.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[3888],{1568:(e,t,a)=>{a.d(t,{A:()=>s});const s=a.p+"assets/images/tutorial-kafka-data-loader-12-3cd1aa4f7669845ca042aa2e524ea521.png"},7700:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>d,contentTitle:()=>o,default:()=>h,frontMatter:()=>r,metadata:()=>s,toc:()=>l});const s=JSON.parse('{"id":"tutorials/tutorial-kafka","title":"Load streaming data from Apache Kafka","description":"\x3c!--","source":"@site/docs/latest/tutorials/tutorial-kaf [...]
\ No newline at end of file
diff --git a/assets/js/b98c7036.49a76ac2.js b/assets/js/b98c7036.49a76ac2.js
new file mode 100644
index 000000000..31bc5ad7d
--- /dev/null
+++ b/assets/js/b98c7036.49a76ac2.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[5277],{28453:(e,r,n)=>{n.d(r,{R:()=>o,x:()=>c});var s=n(96540);const i={},t=s.createContext(i);function o(e){const r=s.useContext(t);return s.useMemo((function(){return"function"==typeof e?e(r):{...r,...e}}),[r,e])}function c(e){let r;return r=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:o(e.components),s.createElement(t.Provider,{value:r},e.children)}},69750:(e,r,n)=>{n.r(r),n.d(r,{as [...]
\ No newline at end of file
diff --git a/assets/js/ba471ed5.7f6f8d98.js b/assets/js/ba471ed5.7f6f8d98.js
new file mode 100644
index 000000000..93cb40d28
--- /dev/null
+++ b/assets/js/ba471ed5.7f6f8d98.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[7120],{18328:(e,n,t)=>{t.d(n,{A:()=>s});const s=t.p+"assets/images/tutorial-sql-result-column-actions-f40697022055f14315241ca973c0847d.png"},20396:(e,n,t)=>{t.d(n,{A:()=>s});const s=t.p+"assets/images/tutorial-sql-auto-queries-eb62d0f4f2bb563fddf353a7afbd18a2.png"},20702:(e,n,t)=>{t.d(n,{A:()=>s});const s=t.p+"assets/images/tutorial-sql-aggregate-query-cda2de57ff7e679c2ebb5d1373b3ff62.png"},28453:(e,n,t)=>{t.d(n,{R:()=>l,x:()= [...]
\ No newline at end of file
diff --git a/assets/js/bb2e1240.96aa3280.js b/assets/js/bb2e1240.96aa3280.js
new file mode 100644
index 000000000..988609918
--- /dev/null
+++ b/assets/js/bb2e1240.96aa3280.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[9741],{28453:(e,n,i)=>{i.d(n,{R:()=>d,x:()=>s});var o=i(96540);const t={},r=o.createContext(t);function d(e){const n=o.useContext(r);return o.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function s(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:d(e.components),o.createElement(r.Provider,{value:n},e.children)}},59571:(e,n,i)=>{i.r(n),i.d(n,{as [...]
\ No newline at end of file
diff --git a/assets/js/bb4c931d.5072c457.js b/assets/js/bb4c931d.5072c457.js
new file mode 100644
index 000000000..adbe26b2f
--- /dev/null
+++ b/assets/js/bb4c931d.5072c457.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[9047],{28453:(e,t,a)=>{a.d(t,{R:()=>r,x:()=>i});var s=a(96540);const n={},o=s.createContext(n);function r(e){const t=s.useContext(o);return s.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function i(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(n):e.components||n:r(e.components),s.createElement(o.Provider,{value:t},e.children)}},38467:(e,t,a)=>{a.r(t),a.d(t,{as [...]
\ No newline at end of file
diff --git a/assets/js/bba7a2ec.f1bd31f3.js b/assets/js/bba7a2ec.f1bd31f3.js
new file mode 100644
index 000000000..de3e03f70
--- /dev/null
+++ b/assets/js/bba7a2ec.f1bd31f3.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[4442],{28453:(e,n,t)=>{t.d(n,{R:()=>r,x:()=>l});var s=t(96540);const a={},i=s.createContext(a);function r(e){const n=s.useContext(i);return s.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function l(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(a):e.components||a:r(e.components),s.createElement(i.Provider,{value:n},e.children)}},44282:(e,n,t)=>{t.r(n),t.d(n,{as [...]
\ No newline at end of file
diff --git a/assets/js/bc2ced02.04917b4c.js b/assets/js/bc2ced02.04917b4c.js
new file mode 100644
index 000000000..cc76e880e
--- /dev/null
+++ b/assets/js/bc2ced02.04917b4c.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[8418],{28453:(e,s,t)=>{t.d(s,{R:()=>r,x:()=>l});var n=t(96540);const o={},a=n.createContext(o);function r(e){const s=n.useContext(a);return n.useMemo((function(){return"function"==typeof e?e(s):{...s,...e}}),[s,e])}function l(e){let s;return s=e.disableParentContext?"function"==typeof e.components?e.components(o):e.components||o:r(e.components),n.createElement(a.Provider,{value:s},e.children)}},35565:(e,s,t)=>{t.r(s),t.d(s,{as [...]
\ No newline at end of file
diff --git a/assets/js/bc4fccb2.31915745.js b/assets/js/bc4fccb2.31915745.js
new file mode 100644
index 000000000..3c634aff2
--- /dev/null
+++ b/assets/js/bc4fccb2.31915745.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[3354],{7654:(e,n,t)=>{t.d(n,{A:()=>i});const i=t.p+"assets/images/tutorial-quickstart-01-55397fb67d2b63fa55d39770575a846f.png"},28453:(e,n,t)=>{t.d(n,{R:()=>a,x:()=>o});var i=t(96540);const r={},s=i.createContext(r);function a(e){const n=i.useContext(s);return i.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function o(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.componen [...]
\ No newline at end of file
diff --git a/assets/js/bca8c382.28c4210f.js b/assets/js/bca8c382.28c4210f.js
new file mode 100644
index 000000000..33ee8d650
--- /dev/null
+++ b/assets/js/bca8c382.28c4210f.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[3513],{28453:(e,n,r)=>{r.d(n,{R:()=>i,x:()=>o});var t=r(96540);const s={},d=t.createContext(s);function i(e){const n=t.useContext(d);return t.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function o(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:i(e.components),t.createElement(d.Provider,{value:n},e.children)}},81786:(e,n,r)=>{r.r(n),r.d(n,{as [...]
\ No newline at end of file
diff --git a/assets/js/be9a1ae8.d1dfe76e.js b/assets/js/be9a1ae8.d1dfe76e.js
new file mode 100644
index 000000000..9875c21b2
--- /dev/null
+++ b/assets/js/be9a1ae8.d1dfe76e.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[6745],{23142:(e,r,t)=>{t.r(r),t.d(r,{assets:()=>d,contentTitle:()=>c,default:()=>f,frontMatter:()=>l,metadata:()=>n,toc:()=>u});const n=JSON.parse('{"id":"querying/dart","title":"SQL queries using the Dart engine","description":"The Dart engine, a profile of MSQ, is an alternative to the native query engine that offers better parallelism and better performance for certain types of queries.","source":"@site/docs/latest/querying [...]
\ No newline at end of file
diff --git a/assets/js/bee5d326.8e65a162.js b/assets/js/bee5d326.8e65a162.js
new file mode 100644
index 000000000..ba5b09647
--- /dev/null
+++ b/assets/js/bee5d326.8e65a162.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[9025],{28453:(e,s,r)=>{r.d(s,{R:()=>i,x:()=>l});var t=r(96540);const n={},d=t.createContext(n);function i(e){const s=t.useContext(d);return t.useMemo((function(){return"function"==typeof e?e(s):{...s,...e}}),[s,e])}function l(e){let s;return s=e.disableParentContext?"function"==typeof e.components?e.components(n):e.components||n:i(e.components),t.createElement(d.Provider,{value:s},e.children)}},56935:(e,s,r)=>{r.r(s),r.d(s,{as [...]
\ No newline at end of file
diff --git a/assets/js/bf5ec0e9.ecf4413f.js b/assets/js/bf5ec0e9.ecf4413f.js
new file mode 100644
index 000000000..49a969bfd
--- /dev/null
+++ b/assets/js/bf5ec0e9.ecf4413f.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[9590],{28453:(e,t,o)=>{o.d(t,{R:()=>r,x:()=>d});var n=o(96540);const s={},i=n.createContext(s);function r(e){const t=n.useContext(i);return n.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function d(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:r(e.components),n.createElement(i.Provider,{value:t},e.children)}},48772:(e,t,o)=>{o.r(t),o.d(t,{as [...]
\ No newline at end of file
diff --git a/assets/js/c0161e79.d35df8e0.js b/assets/js/c0161e79.d35df8e0.js
new file mode 100644
index 000000000..7b442f449
--- /dev/null
+++ b/assets/js/c0161e79.d35df8e0.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[4113],{6929:(e,n,t)=>{t.d(n,{A:()=>s});const s=t.p+"assets/images/druid-column-types-0cd9a011b4cc2b4d05f93b3b31a7e735.png"},28453:(e,n,t)=>{t.d(n,{R:()=>o,x:()=>r});var s=t(96540);const i={},a=s.createContext(i);function o(e){const n=s.useContext(a);return s.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function r(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(i [...]
\ No newline at end of file
diff --git a/assets/js/c10ecef7.ae72f9f6.js b/assets/js/c10ecef7.ae72f9f6.js
new file mode 100644
index 000000000..cdeb7baf1
--- /dev/null
+++ b/assets/js/c10ecef7.ae72f9f6.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[7323],{1773:(e,n,i)=>{i.r(n),i.d(n,{assets:()=>l,contentTitle:()=>o,default:()=>h,frontMatter:()=>d,metadata:()=>s,toc:()=>a});const s=JSON.parse('{"id":"querying/geo","title":"Spatial filters","description":"\x3c!--","source":"@site/docs/38.0.0/querying/geo.md","sourceDirName":"querying","slug":"/querying/geo","permalink":"/docs/38.0.0/querying/geo","draft":false,"unlisted":false,"tags":[],"version":"current","frontMatter":{" [...]
\ No newline at end of file
diff --git a/assets/js/c220c602.a93ce6c1.js b/assets/js/c220c602.a93ce6c1.js
new file mode 100644
index 000000000..42ee3dc15
--- /dev/null
+++ b/assets/js/c220c602.a93ce6c1.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[5335],{28453:(e,n,i)=>{i.d(n,{R:()=>s,x:()=>d});var a=i(96540);const r={},t=a.createContext(r);function s(e){const n=a.useContext(t);return a.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function d(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:s(e.components),a.createElement(t.Provider,{value:n},e.children)}},91599:(e,n,i)=>{i.r(n),i.d(n,{as [...]
\ No newline at end of file
diff --git a/assets/js/c233c888.e4d5672c.js b/assets/js/c233c888.e4d5672c.js
new file mode 100644
index 000000000..9643a5b70
--- /dev/null
+++ b/assets/js/c233c888.e4d5672c.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[2047],{28453:(e,n,r)=>{r.d(n,{R:()=>i,x:()=>l});var a=r(96540);const t={},s=a.createContext(t);function i(e){const n=a.useContext(s);return a.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function l(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:i(e.components),a.createElement(s.Provider,{value:n},e.children)}},87758:(e,n,r)=>{r.r(n),r.d(n,{as [...]
\ No newline at end of file
diff --git a/assets/js/c2351a52.4b3944cd.js b/assets/js/c2351a52.4b3944cd.js
new file mode 100644
index 000000000..3b2ba487e
--- /dev/null
+++ b/assets/js/c2351a52.4b3944cd.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[5415],{28453:(e,i,r)=>{r.d(i,{R:()=>o,x:()=>l});var t=r(96540);const a={},n=t.createContext(a);function o(e){const i=t.useContext(n);return t.useMemo((function(){return"function"==typeof e?e(i):{...i,...e}}),[i,e])}function l(e){let i;return i=e.disableParentContext?"function"==typeof e.components?e.components(a):e.components||a:o(e.components),t.createElement(n.Provider,{value:i},e.children)}},47074:(e,i,r)=>{r.r(i),r.d(i,{as [...]
\ No newline at end of file
diff --git a/assets/js/c26a05e5.0397eb71.js b/assets/js/c26a05e5.0397eb71.js
new file mode 100644
index 000000000..6f130ba68
--- /dev/null
+++ b/assets/js/c26a05e5.0397eb71.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[4728],{28453:(e,r,t)=>{t.d(r,{R:()=>s,x:()=>a});var i=t(96540);const o={},n=i.createContext(o);function s(e){const r=i.useContext(n);return i.useMemo((function(){return"function"==typeof e?e(r):{...r,...e}}),[r,e])}function a(e){let r;return r=e.disableParentContext?"function"==typeof e.components?e.components(o):e.components||o:s(e.components),i.createElement(n.Provider,{value:r},e.children)}},89509:(e,r,t)=>{t.r(r),t.d(r,{as [...]
\ No newline at end of file
diff --git a/assets/js/c2ae6274.7021a830.js b/assets/js/c2ae6274.7021a830.js
new file mode 100644
index 000000000..98b50e80f
--- /dev/null
+++ b/assets/js/c2ae6274.7021a830.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[1355],{28453:(e,n,i)=>{i.d(n,{R:()=>o,x:()=>r});var s=i(96540);const t={},a=s.createContext(t);function o(e){const n=s.useContext(a);return s.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function r(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:o(e.components),s.createElement(a.Provider,{value:n},e.children)}},72681:(e,n,i)=>{i.r(n),i.d(n,{as [...]
\ No newline at end of file
diff --git a/assets/js/c3f2a569.01c5a66f.js b/assets/js/c3f2a569.01c5a66f.js
new file mode 100644
index 000000000..8b773f164
--- /dev/null
+++ b/assets/js/c3f2a569.01c5a66f.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[7440],{15230:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>a,contentTitle:()=>c,default:()=>l,frontMatter:()=>r,metadata:()=>s,toc:()=>d});const s=JSON.parse('{"id":"development/extensions-contrib/gce-extensions","title":"GCE Extensions","description":"\x3c!--","source":"@site/docs/38.0.0/development/extensions-contrib/gce-extensions.md","sourceDirName":"development/extensions-contrib","slug":"/development/extensions-contrib/gce-extensio [...]
\ No newline at end of file
diff --git a/assets/js/c4f5d8e4.69f2f1a3.js b/assets/js/c4f5d8e4.69f2f1a3.js
new file mode 100644
index 000000000..95be02537
--- /dev/null
+++ b/assets/js/c4f5d8e4.69f2f1a3.js
@@ -0,0 +1 @@
+(self.webpackChunk=self.webpackChunk||[]).push([[2634],{4314:e=>{e.exports.h=[{version:"38.0.0",date:"Oct 1 2026"},{version:"37.0.0",date:"May 8 2026"},{version:"36.0.0",date:"Feb 9 2026"}]},38965:(e,a,i)=>{"use strict";i.r(a),i.d(a,{default:()=>f});var t=i(93237),n=(i(96540),i(74848));function s(e){var a=e.data;return(0,n.jsxs)("div",{className:"druid-feature",children:[(0,n.jsx)("h5",{children:a.title}),(0,n.jsx)("p",{children:a.description})]})}function r(e){var a=e.jsonData;return(0, [...]
\ No newline at end of file
diff --git a/assets/js/c563545e.62ee0d41.js b/assets/js/c563545e.62ee0d41.js
new file mode 100644
index 000000000..be21a4e2f
--- /dev/null
+++ b/assets/js/c563545e.62ee0d41.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[3347],{28453:(e,r,n)=>{n.d(r,{R:()=>d,x:()=>c});var s=n(96540);const i={},t=s.createContext(i);function d(e){const r=s.useContext(t);return s.useMemo((function(){return"function"==typeof e?e(r):{...r,...e}}),[r,e])}function c(e){let r;return r=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:d(e.components),s.createElement(t.Provider,{value:r},e.children)}},96739:(e,r,n)=>{n.r(r),n.d(r,{as [...]
\ No newline at end of file
diff --git a/assets/js/c5760f30.4399e4b4.js b/assets/js/c5760f30.4399e4b4.js
new file mode 100644
index 000000000..c9624b664
--- /dev/null
+++ b/assets/js/c5760f30.4399e4b4.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[4875],{24573:(e,s,r)=>{r.r(s),r.d(s,{assets:()=>l,contentTitle:()=>c,default:()=>a,frontMatter:()=>d,metadata:()=>n,toc:()=>o});const n=JSON.parse('{"id":"querying/sql-scalar","title":"SQL scalar functions","description":"\x3c!--","source":"@site/docs/latest/querying/sql-scalar.md","sourceDirName":"querying","slug":"/querying/sql-scalar","permalink":"/docs/latest/querying/sql-scalar","draft":false,"unlisted":false,"tags":[],"v [...]
\ No newline at end of file
diff --git a/assets/js/c5db95a7.90cf2cbf.js b/assets/js/c5db95a7.90cf2cbf.js
new file mode 100644
index 000000000..80726dfb4
--- /dev/null
+++ b/assets/js/c5db95a7.90cf2cbf.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[5807],{28453:(e,s,r)=>{r.d(s,{R:()=>d,x:()=>c});var n=r(96540);const t={},i=n.createContext(t);function d(e){const s=n.useContext(i);return n.useMemo((function(){return"function"==typeof e?e(s):{...s,...e}}),[s,e])}function c(e){let s;return s=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:d(e.components),n.createElement(i.Provider,{value:s},e.children)}},34412:(e,s,r)=>{r.r(s),r.d(s,{as [...]
\ No newline at end of file
diff --git a/assets/js/c5dbe964.17d99249.js b/assets/js/c5dbe964.17d99249.js
new file mode 100644
index 000000000..cf7e04c14
--- /dev/null
+++ b/assets/js/c5dbe964.17d99249.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[6473],{23573:(e,t,r)=>{r.d(t,{A:()=>s});const s=r.p+"assets/images/tutorial-query-deepstorage-retention-rule-ed99c67c161810ee03d3301b530d0ede.png"},28453:(e,t,r)=>{r.d(t,{R:()=>a,x:()=>i});var s=r(96540);const n={},o=s.createContext(n);function a(e){const t=s.useContext(o);return s.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function i(e){let t;return t=e.disableParentContext?"function"==typeof e.c [...]
\ No newline at end of file
diff --git a/assets/js/c680ad0c.4a7f2ab1.js b/assets/js/c680ad0c.4a7f2ab1.js
new file mode 100644
index 000000000..ee05d9d67
--- /dev/null
+++ b/assets/js/c680ad0c.4a7f2ab1.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[6992],{28453:(e,n,r)=>{r.d(n,{R:()=>d,x:()=>o});var i=r(96540);const s={},t=i.createContext(s);function d(e){const n=i.useContext(t);return i.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function o(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:d(e.components),i.createElement(t.Provider,{value:n},e.children)}},99097:(e,n,r)=>{r.r(n),r.d(n,{as [...]
\ No newline at end of file
diff --git a/assets/js/c74ccf1e.19e38f83.js b/assets/js/c74ccf1e.19e38f83.js
new file mode 100644
index 000000000..ea9a7280e
--- /dev/null
+++ b/assets/js/c74ccf1e.19e38f83.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[5811],{28453:(e,n,a)=>{a.d(n,{R:()=>s,x:()=>o});var r=a(96540);const i={},t=r.createContext(i);function s(e){const n=r.useContext(t);return r.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function o(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:s(e.components),r.createElement(t.Provider,{value:n},e.children)}},98608:(e,n,a)=>{a.r(n),a.d(n,{as [...]
\ No newline at end of file
diff --git a/assets/js/c7fb157b.9dbefeaf.js b/assets/js/c7fb157b.9dbefeaf.js
new file mode 100644
index 000000000..0129bb820
--- /dev/null
+++ b/assets/js/c7fb157b.9dbefeaf.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[5456],{28453:(e,n,o)=>{o.d(n,{R:()=>c,x:()=>r});var t=o(96540);const s={},i=t.createContext(s);function c(e){const n=t.useContext(i);return t.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function r(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:c(e.components),t.createElement(i.Provider,{value:n},e.children)}},55989:(e,n,o)=>{o.r(n),o.d(n,{as [...]
\ No newline at end of file
diff --git a/assets/js/c81cdd78.b2c36d35.js b/assets/js/c81cdd78.b2c36d35.js
new file mode 100644
index 000000000..d87d37095
--- /dev/null
+++ b/assets/js/c81cdd78.b2c36d35.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[2391],{7525:(e,n,i)=>{i.r(n),i.d(n,{assets:()=>c,contentTitle:()=>a,default:()=>p,frontMatter:()=>r,metadata:()=>o,toc:()=>l});const o=JSON.parse('{"id":"operations/migrate-from-firehose","title":"Migrate from firehose to input source ingestion (legacy)","description":"\x3c!--","source":"@site/docs/38.0.0/operations/migrate-from-firehose-ingestion.md","sourceDirName":"operations","slug":"/operations/migrate-from-firehose","per [...]
\ No newline at end of file
diff --git a/assets/js/c879a409.899d342c.js b/assets/js/c879a409.899d342c.js
new file mode 100644
index 000000000..43cd5c2c3
--- /dev/null
+++ b/assets/js/c879a409.899d342c.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[7824],{28453:(e,n,t)=>{t.d(n,{R:()=>a,x:()=>o});var r=t(96540);const s={},i=r.createContext(s);function a(e){const n=r.useContext(i);return r.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function o(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:a(e.components),r.createElement(i.Provider,{value:n},e.children)}},75445:(e,n,t)=>{t.r(n),t.d(n,{as [...]
\ No newline at end of file
diff --git a/assets/js/c89bccce.cb9831b0.js b/assets/js/c89bccce.cb9831b0.js
new file mode 100644
index 000000000..9be9d82ae
--- /dev/null
+++ b/assets/js/c89bccce.cb9831b0.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[1533],{28453:(e,r,s)=>{s.d(r,{R:()=>o,x:()=>a});var n=s(96540);const t={},i=n.createContext(t);function o(e){const r=n.useContext(i);return n.useMemo((function(){return"function"==typeof e?e(r):{...r,...e}}),[r,e])}function a(e){let r;return r=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:o(e.components),n.createElement(i.Provider,{value:r},e.children)}},88786:(e,r,s)=>{s.r(r),s.d(r,{as [...]
\ No newline at end of file
diff --git a/assets/js/c9db5a6a.969ebb5f.js b/assets/js/c9db5a6a.969ebb5f.js
new file mode 100644
index 000000000..220142592
--- /dev/null
+++ b/assets/js/c9db5a6a.969ebb5f.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[9064],{28453:(e,t,a)=>{a.d(t,{R:()=>o,x:()=>c});var n=a(96540);const s={},i=n.createContext(s);function o(e){const t=n.useContext(i);return n.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function c(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:o(e.components),n.createElement(i.Provider,{value:t},e.children)}},96728:(e,t,a)=>{a.r(t),a.d(t,{as [...]
\ No newline at end of file
diff --git a/assets/js/ca04493f.c0a4b514.js b/assets/js/ca04493f.c0a4b514.js
new file mode 100644
index 000000000..9cfbed69a
--- /dev/null
+++ b/assets/js/ca04493f.c0a4b514.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[8033],{28453:(e,n,t)=>{t.d(n,{R:()=>a,x:()=>l});var i=t(96540);const s={},r=i.createContext(s);function a(e){const n=i.useContext(r);return i.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function l(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:a(e.components),i.createElement(r.Provider,{value:n},e.children)}},66627:(e,n,t)=>{t.r(n),t.d(n,{as [...]
\ No newline at end of file
diff --git a/assets/js/ca88b774.66cedde9.js b/assets/js/ca88b774.66cedde9.js
new file mode 100644
index 000000000..f9a0194e4
--- /dev/null
+++ b/assets/js/ca88b774.66cedde9.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[4843],{28453:(e,d,i)=>{i.d(d,{R:()=>c,x:()=>l});var n=i(96540);const s={},r=n.createContext(s);function c(e){const d=n.useContext(r);return n.useMemo((function(){return"function"==typeof e?e(d):{...d,...e}}),[d,e])}function l(e){let d;return d=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:c(e.components),n.createElement(r.Provider,{value:d},e.children)}},37436:(e,d,i)=>{i.r(d),i.d(d,{as [...]
\ No newline at end of file
diff --git a/assets/js/cadc7a52.da51d564.js b/assets/js/cadc7a52.da51d564.js
new file mode 100644
index 000000000..ef749a7f6
--- /dev/null
+++ b/assets/js/cadc7a52.da51d564.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[9173],{28453:(e,n,i)=>{i.d(n,{R:()=>r,x:()=>a});var s=i(96540);const t={},l=s.createContext(t);function r(e){const n=s.useContext(l);return s.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function a(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:r(e.components),s.createElement(l.Provider,{value:n},e.children)}},81335:(e,n,i)=>{i.r(n),i.d(n,{as [...]
\ No newline at end of file
diff --git a/assets/js/caed696f.d87c476e.js b/assets/js/caed696f.d87c476e.js
new file mode 100644
index 000000000..792f06061
--- /dev/null
+++ b/assets/js/caed696f.d87c476e.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[5115],{13314:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>o,contentTitle:()=>r,default:()=>u,frontMatter:()=>l,metadata:()=>i,toc:()=>d});const i=JSON.parse('{"id":"querying/multi-value-dimensions","title":"Multi-value dimensions","description":"\x3c!--","source":"@site/docs/latest/querying/multi-value-dimensions.md","sourceDirName":"querying","slug":"/querying/multi-value-dimensions","permalink":"/docs/latest/querying/multi-value-dimen [...]
\ No newline at end of file
diff --git a/assets/js/cc5d70e3.d7bef12f.js b/assets/js/cc5d70e3.d7bef12f.js
new file mode 100644
index 000000000..f863a6c4b
--- /dev/null
+++ b/assets/js/cc5d70e3.d7bef12f.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[8547],{19219:(e,n,s)=>{s.r(n),s.d(n,{assets:()=>a,contentTitle:()=>o,default:()=>h,frontMatter:()=>d,metadata:()=>i,toc:()=>c});const i=JSON.parse('{"id":"development/extensions-core/kubernetes","title":"Kubernetes","description":"\x3c!--","source":"@site/docs/38.0.0/development/extensions-core/kubernetes.md","sourceDirName":"development/extensions-core","slug":"/development/extensions-core/kubernetes","permalink":"/docs/38.0. [...]
\ No newline at end of file
diff --git a/assets/js/cd07172b.a14bbfee.js b/assets/js/cd07172b.a14bbfee.js
new file mode 100644
index 000000000..1e15484d4
--- /dev/null
+++ b/assets/js/cd07172b.a14bbfee.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[8697],{28453:(e,t,n)=>{n.d(t,{R:()=>i,x:()=>l});var s=n(96540);const r={},a=s.createContext(r);function i(e){const t=s.useContext(a);return s.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function l(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:i(e.components),s.createElement(a.Provider,{value:t},e.children)}},48845:(e,t,n)=>{n.r(t),n.d(t,{as [...]
\ No newline at end of file
diff --git a/assets/js/cd22c7ca.2a01759e.js b/assets/js/cd22c7ca.2a01759e.js
new file mode 100644
index 000000000..e727ed831
--- /dev/null
+++ b/assets/js/cd22c7ca.2a01759e.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[3216],{17291:(e,n,t)=>{t.d(n,{A:()=>a});const a=t.p+"assets/images/tutorial-batch-submit-task-02-15a3dea57d3cb78f671e65fc6277fdf5.png"},28453:(e,n,t)=>{t.d(n,{R:()=>s,x:()=>r});var a=t(96540);const i={},o=a.createContext(i);function s(e){const n=a.useContext(o);return a.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function r(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e. [...]
\ No newline at end of file
diff --git a/assets/js/cd9e4e04.d6a507d1.js b/assets/js/cd9e4e04.d6a507d1.js
new file mode 100644
index 000000000..2e06aed6a
--- /dev/null
+++ b/assets/js/cd9e4e04.d6a507d1.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[4297],{28453:(e,o,t)=>{t.d(o,{R:()=>r,x:()=>d});var n=t(96540);const s={},i=n.createContext(s);function r(e){const o=n.useContext(i);return n.useMemo((function(){return"function"==typeof e?e(o):{...o,...e}}),[o,e])}function d(e){let o;return o=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:r(e.components),n.createElement(i.Provider,{value:o},e.children)}},56712:(e,o,t)=>{t.r(o),t.d(o,{as [...]
\ No newline at end of file
diff --git a/assets/js/cdec71b5.f314221e.js b/assets/js/cdec71b5.f314221e.js
new file mode 100644
index 000000000..9feb18ec1
--- /dev/null
+++ b/assets/js/cdec71b5.f314221e.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[149],{9376:(e,n,s)=>{s.r(n),s.d(n,{assets:()=>c,contentTitle:()=>d,default:()=>m,frontMatter:()=>o,metadata:()=>i,toc:()=>u});const i=JSON.parse('{"id":"api-reference/supervisor-api","title":"Supervisor API","description":"\x3c!--","source":"@site/docs/latest/api-reference/supervisor-api.md","sourceDirName":"api-reference","slug":"/api-reference/supervisor-api","permalink":"/docs/latest/api-reference/supervisor-api","draft":fa [...]
\ No newline at end of file
diff --git a/assets/js/ce4dff4d.4e0205d3.js b/assets/js/ce4dff4d.4e0205d3.js
new file mode 100644
index 000000000..15045c2e9
--- /dev/null
+++ b/assets/js/ce4dff4d.4e0205d3.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[6455],{28453:(e,n,t)=>{t.d(n,{R:()=>i,x:()=>o});var s=t(96540);const r={},a=s.createContext(r);function i(e){const n=s.useContext(a);return s.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function o(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:i(e.components),s.createElement(a.Provider,{value:n},e.children)}},97495:(e,n,t)=>{t.r(n),t.d(n,{as [...]
\ No newline at end of file
diff --git a/assets/js/cea8fd56.2816d845.js b/assets/js/cea8fd56.2816d845.js
new file mode 100644
index 000000000..6ef9020de
--- /dev/null
+++ b/assets/js/cea8fd56.2816d845.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[3967],{4541:(e,n,s)=>{s.d(n,{A:()=>t});const t=s.p+"assets/images/nested-display-data-types-5dd733147ce48db2a498602be5cfc9ec.png"},20261:(e,n,s)=>{s.d(n,{A:()=>t});const t=s.p+"assets/images/nested-examine-schema-ec0698cf3626fab096319382a506e1b6.png"},20775:(e,n,s)=>{s.d(n,{A:()=>t});const t=s.p+"assets/images/nested-parse-deserialize-cc70017d4a08d1ea8d0d37f53091ee89.png"},21204:(e,n,s)=>{s.d(n,{A:()=>t});const t=s.p+"assets/i [...]
\ No newline at end of file
diff --git a/assets/js/cf22c641.e3b2d868.js b/assets/js/cf22c641.e3b2d868.js
new file mode 100644
index 000000000..6b9aa3827
--- /dev/null
+++ b/assets/js/cf22c641.e3b2d868.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[4722],{28453:(t,e,r)=>{r.d(e,{R:()=>s,x:()=>a});var o=r(96540);const n={},i=o.createContext(n);function s(t){const e=o.useContext(i);return o.useMemo((function(){return"function"==typeof t?t(e):{...e,...t}}),[e,t])}function a(t){let e;return e=t.disableParentContext?"function"==typeof t.components?t.components(n):t.components||n:s(t.components),o.createElement(i.Provider,{value:e},t.children)}},35363:(t,e,r)=>{r.d(e,{A:()=>i}) [...]
\ No newline at end of file
diff --git a/assets/js/cf515b8a.4f8d6c36.js b/assets/js/cf515b8a.4f8d6c36.js
new file mode 100644
index 000000000..33aefa86c
--- /dev/null
+++ b/assets/js/cf515b8a.4f8d6c36.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[1170],{1709:(e,r,t)=>{t.r(r),t.d(r,{assets:()=>d,contentTitle:()=>i,default:()=>c,frontMatter:()=>n,metadata:()=>o,toc:()=>l});const o=JSON.parse('{"id":"operations/durable-storage","title":"Durable storage for the multi-stage query engine","description":"\x3c!--","source":"@site/docs/38.0.0/operations/durable-storage.md","sourceDirName":"operations","slug":"/operations/durable-storage","permalink":"/docs/38.0.0/operations/dur [...]
\ No newline at end of file
diff --git a/assets/js/cf67dd3c.5e32e8c7.js b/assets/js/cf67dd3c.5e32e8c7.js
new file mode 100644
index 000000000..6bf004c6f
--- /dev/null
+++ b/assets/js/cf67dd3c.5e32e8c7.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[7123],{27392:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>d,contentTitle:()=>a,default:()=>m,frontMatter:()=>i,metadata:()=>s,toc:()=>l});const s=JSON.parse('{"id":"operations/insert-segment-to-db","title":"insert-segment-to-db tool","description":"\x3c!--","source":"@site/docs/38.0.0/operations/insert-segment-to-db.md","sourceDirName":"operations","slug":"/operations/insert-segment-to-db","permalink":"/docs/38.0.0/operations/insert-seg [...]
\ No newline at end of file
diff --git a/assets/js/d04d1543.2fb6708e.js b/assets/js/d04d1543.2fb6708e.js
new file mode 100644
index 000000000..c6ae9a234
--- /dev/null
+++ b/assets/js/d04d1543.2fb6708e.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[1866],{28453:(e,n,s)=>{s.d(n,{R:()=>a,x:()=>o});var r=s(96540);const i={},t=r.createContext(i);function a(e){const n=r.useContext(t);return r.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function o(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:a(e.components),r.createElement(t.Provider,{value:n},e.children)}},51280:(e,n,s)=>{s.r(n),s.d(n,{as [...]
\ No newline at end of file
diff --git a/assets/js/d05fa046.652bacb1.js b/assets/js/d05fa046.652bacb1.js
new file mode 100644
index 000000000..7db7b63b3
--- /dev/null
+++ b/assets/js/d05fa046.652bacb1.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[2975],{11826:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>r,contentTitle:()=>c,default:()=>h,frontMatter:()=>o,metadata:()=>n,toc:()=>d});const n=JSON.parse('{"id":"data-management/schema-changes","title":"Schema changes","description":"\x3c!--","source":"@site/docs/latest/data-management/schema-changes.md","sourceDirName":"data-management","slug":"/data-management/schema-changes","permalink":"/docs/latest/data-management/schema-changes [...]
\ No newline at end of file
diff --git a/assets/js/d1d326f4.4898e486.js b/assets/js/d1d326f4.4898e486.js
new file mode 100644
index 000000000..37f9edc57
--- /dev/null
+++ b/assets/js/d1d326f4.4898e486.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[4403],{28453:(e,n,s)=>{s.d(n,{R:()=>a,x:()=>l});var i=s(96540);const r={},t=i.createContext(r);function a(e){const n=i.useContext(t);return i.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function l(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:a(e.components),i.createElement(t.Provider,{value:n},e.children)}},64600:(e,n,s)=>{s.r(n),s.d(n,{as [...]
\ No newline at end of file
diff --git a/assets/js/d1e5ae8f.f37d3ef2.js b/assets/js/d1e5ae8f.f37d3ef2.js
new file mode 100644
index 000000000..2384bd28c
--- /dev/null
+++ b/assets/js/d1e5ae8f.f37d3ef2.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[4708],{28453:(n,e,t)=>{t.d(e,{R:()=>s,x:()=>a});var r=t(96540);const i={},o=r.createContext(i);function s(n){const e=r.useContext(o);return r.useMemo((function(){return"function"==typeof n?n(e):{...e,...n}}),[e,n])}function a(n){let e;return e=n.disableParentContext?"function"==typeof n.components?n.components(i):n.components||i:s(n.components),r.createElement(o.Provider,{value:e},n.children)}},60896:(n,e,t)=>{t.r(e),t.d(e,{as [...]
\ No newline at end of file
diff --git a/assets/js/d24799e9.39acf8d7.js b/assets/js/d24799e9.39acf8d7.js
new file mode 100644
index 000000000..2ce7a7ee1
--- /dev/null
+++ b/assets/js/d24799e9.39acf8d7.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[2370],{28453:(e,n,t)=>{t.d(n,{R:()=>a,x:()=>r});var s=t(96540);const o={},i=s.createContext(o);function a(e){const n=s.useContext(i);return s.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function r(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(o):e.components||o:a(e.components),s.createElement(i.Provider,{value:n},e.children)}},60057:(e,n,t)=>{t.r(n),t.d(n,{as [...]
\ No newline at end of file
diff --git a/assets/js/d26ca0af.43ab4d40.js b/assets/js/d26ca0af.43ab4d40.js
new file mode 100644
index 000000000..f08c7ebe7
--- /dev/null
+++ b/assets/js/d26ca0af.43ab4d40.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[2674],{19873:(e,n,s)=>{s.r(n),s.d(n,{assets:()=>d,contentTitle:()=>a,default:()=>h,frontMatter:()=>r,metadata:()=>o,toc:()=>l});const o=JSON.parse('{"id":"development/extensions-core/avro","title":"Apache Avro","description":"\x3c!--","source":"@site/docs/38.0.0/development/extensions-core/avro.md","sourceDirName":"development/extensions-core","slug":"/development/extensions-core/avro","permalink":"/docs/38.0.0/development/ext [...]
\ No newline at end of file
diff --git a/assets/js/d2eb7e33.dd12cd21.js b/assets/js/d2eb7e33.dd12cd21.js
new file mode 100644
index 000000000..82a7f1023
--- /dev/null
+++ b/assets/js/d2eb7e33.dd12cd21.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[2058],{28453:(e,t,s)=>{s.d(t,{R:()=>i,x:()=>o});var r=s(96540);const n={},d=r.createContext(n);function i(e){const t=r.useContext(d);return r.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function o(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(n):e.components||n:i(e.components),r.createElement(d.Provider,{value:t},e.children)}},28745:(e,t,s)=>{s.r(t),s.d(t,{as [...]
\ No newline at end of file
diff --git a/assets/js/d2eba29c.fc0717dd.js b/assets/js/d2eba29c.fc0717dd.js
new file mode 100644
index 000000000..b0b6c51c1
--- /dev/null
+++ b/assets/js/d2eba29c.fc0717dd.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[3717],{28453:(e,d,i)=>{i.d(d,{R:()=>c,x:()=>l});var n=i(96540);const s={},r=n.createContext(s);function c(e){const d=n.useContext(r);return n.useMemo((function(){return"function"==typeof e?e(d):{...d,...e}}),[d,e])}function l(e){let d;return d=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:c(e.components),n.createElement(r.Provider,{value:d},e.children)}},48804:(e,d,i)=>{i.r(d),i.d(d,{as [...]
\ No newline at end of file
diff --git a/assets/js/d30674da.0f5c5111.js b/assets/js/d30674da.0f5c5111.js
new file mode 100644
index 000000000..e0e7e0467
--- /dev/null
+++ b/assets/js/d30674da.0f5c5111.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[3886],{28453:(e,n,i)=>{i.d(n,{R:()=>t,x:()=>d});var r=i(96540);const s={},a=r.createContext(s);function t(e){const n=r.useContext(a);return r.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function d(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:t(e.components),r.createElement(a.Provider,{value:n},e.children)}},51599:(e,n,i)=>{i.r(n),i.d(n,{as [...]
\ No newline at end of file
diff --git a/assets/js/d3a077b9.8a29ac4f.js b/assets/js/d3a077b9.8a29ac4f.js
new file mode 100644
index 000000000..3a27e5c8a
--- /dev/null
+++ b/assets/js/d3a077b9.8a29ac4f.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[3878],{28453:(e,r,t)=>{t.d(r,{R:()=>o,x:()=>d});var n=t(96540);const i={},s=n.createContext(i);function o(e){const r=n.useContext(s);return n.useMemo((function(){return"function"==typeof e?e(r):{...r,...e}}),[r,e])}function d(e){let r;return r=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:o(e.components),n.createElement(s.Provider,{value:r},e.children)}},59077:(e,r,t)=>{t.r(r),t.d(r,{as [...]
\ No newline at end of file
diff --git a/assets/js/d3d13383.9d7da622.js b/assets/js/d3d13383.9d7da622.js
new file mode 100644
index 000000000..01a4e1d68
--- /dev/null
+++ b/assets/js/d3d13383.9d7da622.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[9756],{28453:(e,n,r)=>{r.d(n,{R:()=>o,x:()=>a});var s=r(96540);const t={},i=s.createContext(t);function o(e){const n=s.useContext(i);return s.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function a(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:o(e.components),s.createElement(i.Provider,{value:n},e.children)}},52003:(e,n,r)=>{r.r(n),r.d(n,{as [...]
\ No newline at end of file
diff --git a/assets/js/d4a8c0de.68aa2a6f.js b/assets/js/d4a8c0de.68aa2a6f.js
new file mode 100644
index 000000000..672467741
--- /dev/null
+++ b/assets/js/d4a8c0de.68aa2a6f.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[940],{28453:(e,s,i)=>{i.d(s,{R:()=>o,x:()=>a});var n=i(96540);const r={},t=n.createContext(r);function o(e){const s=n.useContext(t);return n.useMemo((function(){return"function"==typeof e?e(s):{...s,...e}}),[s,e])}function a(e){let s;return s=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:o(e.components),n.createElement(t.Provider,{value:s},e.children)}},99390:(e,s,i)=>{i.r(s),i.d(s,{ass [...]
\ No newline at end of file
diff --git a/assets/js/d5c40f73.bf0a33a5.js b/assets/js/d5c40f73.bf0a33a5.js
new file mode 100644
index 000000000..fcb12f55d
--- /dev/null
+++ b/assets/js/d5c40f73.bf0a33a5.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[3295],{28453:(e,n,i)=>{i.d(n,{R:()=>d,x:()=>a});var r=i(96540);const o={},t=r.createContext(o);function d(e){const n=r.useContext(t);return r.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function a(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(o):e.components||o:d(e.components),r.createElement(t.Provider,{value:n},e.children)}},59556:(e,n,i)=>{i.r(n),i.d(n,{as [...]
\ No newline at end of file
diff --git a/assets/js/d6226c05.6af33cce.js b/assets/js/d6226c05.6af33cce.js
new file mode 100644
index 000000000..c521d3997
--- /dev/null
+++ b/assets/js/d6226c05.6af33cce.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[6645],{472:(e,t,a)=>{a.d(t,{A:()=>s});const s=a.p+"assets/images/tutorial-batch-data-loader-10-3020349a4bc011d974ff49effac64f6f.png"},19754:(e,t,a)=>{a.d(t,{A:()=>s});const s=a.p+"assets/images/tutorial-batch-data-loader-12-220d0ea9d5e2b5549721db29e5ca7260.png"},20556:(e,t,a)=>{a.d(t,{A:()=>s});const s=a.p+"assets/images/tutorial-batch-data-loader-07-384d6ae7af33910e131a46564b7e6677.png"},22302:(e,t,a)=>{a.d(t,{A:()=>s});const [...]
\ No newline at end of file
diff --git a/assets/js/d6a8f8f9.93b46ba1.js b/assets/js/d6a8f8f9.93b46ba1.js
new file mode 100644
index 000000000..cace62c86
--- /dev/null
+++ b/assets/js/d6a8f8f9.93b46ba1.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[9995],{28453:(e,n,s)=>{s.d(n,{R:()=>i,x:()=>l});var r=s(96540);const a={},t=r.createContext(a);function i(e){const n=r.useContext(t);return r.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function l(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(a):e.components||a:i(e.components),r.createElement(t.Provider,{value:n},e.children)}},42088:(e,n,s)=>{s.r(n),s.d(n,{as [...]
\ No newline at end of file
diff --git a/assets/js/d6bc9e72.ebf868a9.js b/assets/js/d6bc9e72.ebf868a9.js
new file mode 100644
index 000000000..5cae75e34
--- /dev/null
+++ b/assets/js/d6bc9e72.ebf868a9.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[5073],{28453:(e,i,r)=>{r.d(i,{R:()=>d,x:()=>a});var n=r(96540);const t={},s=n.createContext(t);function d(e){const i=n.useContext(s);return n.useMemo((function(){return"function"==typeof e?e(i):{...i,...e}}),[i,e])}function a(e){let i;return i=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:d(e.components),n.createElement(s.Provider,{value:i},e.children)}},60933:(e,i,r)=>{r.r(i),r.d(i,{as [...]
\ No newline at end of file
diff --git a/assets/js/d721507d.07ed2adb.js b/assets/js/d721507d.07ed2adb.js
new file mode 100644
index 000000000..cba88e647
--- /dev/null
+++ b/assets/js/d721507d.07ed2adb.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[1205],{28453:(n,e,t)=>{t.d(e,{R:()=>i,x:()=>a});var d=t(96540);const s={},l=d.createContext(s);function i(n){const e=d.useContext(l);return d.useMemo((function(){return"function"==typeof n?n(e):{...e,...n}}),[e,n])}function a(n){let e;return e=n.disableParentContext?"function"==typeof n.components?n.components(s):n.components||s:i(n.components),d.createElement(l.Provider,{value:e},n.children)}},69713:(n,e,t)=>{t.r(e),t.d(e,{as [...]
\ No newline at end of file
diff --git a/assets/js/d7a5741a.a67a1121.js b/assets/js/d7a5741a.a67a1121.js
new file mode 100644
index 000000000..adbc2bfb2
--- /dev/null
+++ b/assets/js/d7a5741a.a67a1121.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[5173],{301:(e,n,i)=>{i.r(n),i.d(n,{assets:()=>d,contentTitle:()=>s,default:()=>h,frontMatter:()=>o,metadata:()=>r,toc:()=>l});const r=JSON.parse('{"id":"development/overview","title":"Developing on Apache Druid","description":"\x3c!--","source":"@site/docs/38.0.0/development/overview.md","sourceDirName":"development","slug":"/development/overview","permalink":"/docs/38.0.0/development/overview","draft":false,"unlisted":false," [...]
\ No newline at end of file
diff --git a/assets/js/d84abcb9.ba94bb66.js b/assets/js/d84abcb9.ba94bb66.js
new file mode 100644
index 000000000..a218f7731
--- /dev/null
+++ b/assets/js/d84abcb9.ba94bb66.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[6784],{28453:(e,s,i)=>{i.d(s,{R:()=>t,x:()=>a});var n=i(96540);const r={},o=n.createContext(r);function t(e){const s=n.useContext(o);return n.useMemo((function(){return"function"==typeof e?e(s):{...s,...e}}),[s,e])}function a(e){let s;return s=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:t(e.components),n.createElement(o.Provider,{value:s},e.children)}},89200:(e,s,i)=>{i.r(s),i.d(s,{as [...]
\ No newline at end of file
diff --git a/assets/js/d8c9bb91.9461e825.js b/assets/js/d8c9bb91.9461e825.js
new file mode 100644
index 000000000..d35565dad
--- /dev/null
+++ b/assets/js/d8c9bb91.9461e825.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[3093],{28453:(e,r,t)=>{t.d(r,{R:()=>s,x:()=>a});var i=t(96540);const o={},n=i.createContext(o);function s(e){const r=i.useContext(n);return i.useMemo((function(){return"function"==typeof e?e(r):{...r,...e}}),[r,e])}function a(e){let r;return r=e.disableParentContext?"function"==typeof e.components?e.components(o):e.components||o:s(e.components),i.createElement(n.Provider,{value:r},e.children)}},97122:(e,r,t)=>{t.r(r),t.d(r,{as [...]
\ No newline at end of file
diff --git a/assets/js/d8e0d2fb.6779dcca.js b/assets/js/d8e0d2fb.6779dcca.js
new file mode 100644
index 000000000..d46d0f6ee
--- /dev/null
+++ b/assets/js/d8e0d2fb.6779dcca.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[7602],{28453:(e,t,s)=>{s.d(t,{R:()=>o,x:()=>a});var n=s(96540);const i={},r=n.createContext(i);function o(e){const t=n.useContext(r);return n.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function a(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:o(e.components),n.createElement(r.Provider,{value:t},e.children)}},92551:(e,t,s)=>{s.r(t),s.d(t,{as [...]
\ No newline at end of file
diff --git a/assets/js/daff6454.8f2d19b6.js b/assets/js/daff6454.8f2d19b6.js
new file mode 100644
index 000000000..ef701bdb6
--- /dev/null
+++ b/assets/js/daff6454.8f2d19b6.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[4587],{28453:(e,n,i)=>{i.d(n,{R:()=>s,x:()=>a});var t=i(96540);const r={},o=t.createContext(r);function s(e){const n=t.useContext(o);return t.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function a(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:s(e.components),t.createElement(o.Provider,{value:n},e.children)}},48978:(e,n,i)=>{i.r(n),i.d(n,{as [...]
\ No newline at end of file
diff --git a/assets/js/db509a08.051b7e6b.js b/assets/js/db509a08.051b7e6b.js
new file mode 100644
index 000000000..be06c63cb
--- /dev/null
+++ b/assets/js/db509a08.051b7e6b.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[7124],{25832:(e,r,n)=>{n.r(r),n.d(r,{assets:()=>l,contentTitle:()=>a,default:()=>c,frontMatter:()=>o,metadata:()=>i,toc:()=>u});const i=JSON.parse('{"id":"querying/tips-good-queries","title":"Tips for writing good queries in Druid","description":"\x3c!--","source":"@site/docs/latest/querying/tips-good-queries.md","sourceDirName":"querying","slug":"/querying/tips-good-queries","permalink":"/docs/latest/querying/tips-good-querie [...]
\ No newline at end of file
diff --git a/assets/js/db99db71.9a7b18c1.js b/assets/js/db99db71.9a7b18c1.js
new file mode 100644
index 000000000..4f862c9d7
--- /dev/null
+++ b/assets/js/db99db71.9a7b18c1.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[2693],{28453:(e,n,r)=>{r.d(n,{R:()=>i,x:()=>l});var a=r(96540);const t={},s=a.createContext(t);function i(e){const n=a.useContext(s);return a.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function l(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:i(e.components),a.createElement(s.Provider,{value:n},e.children)}},87090:(e,n,r)=>{r.r(n),r.d(n,{as [...]
\ No newline at end of file
diff --git a/assets/js/dc66e441.20992913.js b/assets/js/dc66e441.20992913.js
new file mode 100644
index 000000000..21d808a8a
--- /dev/null
+++ b/assets/js/dc66e441.20992913.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[6234],{28453:(e,s,t)=>{t.d(s,{R:()=>a,x:()=>o});var n=t(96540);const r={},i=n.createContext(r);function a(e){const s=n.useContext(i);return n.useMemo((function(){return"function"==typeof e?e(s):{...s,...e}}),[s,e])}function o(e){let s;return s=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:a(e.components),n.createElement(i.Provider,{value:s},e.children)}},75161:(e,s,t)=>{t.r(s),t.d(s,{as [...]
\ No newline at end of file
diff --git a/assets/js/dc72ee61.3cbecbe4.js b/assets/js/dc72ee61.3cbecbe4.js
new file mode 100644
index 000000000..63bc4cb9c
--- /dev/null
+++ b/assets/js/dc72ee61.3cbecbe4.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[6954],{28453:(e,t,n)=>{n.d(t,{R:()=>c,x:()=>i});var o=n(96540);const s={},r=o.createContext(s);function c(e){const t=o.useContext(r);return o.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function i(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:c(e.components),o.createElement(r.Provider,{value:t},e.children)}},28589:(e,t,n)=>{n.r(t),n.d(t,{as [...]
\ No newline at end of file
diff --git a/assets/js/dc86ecba.5d4fa49f.js b/assets/js/dc86ecba.5d4fa49f.js
new file mode 100644
index 000000000..ebe9ebe84
--- /dev/null
+++ b/assets/js/dc86ecba.5d4fa49f.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[865],{8659:(e,t,n)=>{n.d(t,{A:()=>i});const i=n.p+"assets/images/tutorial-quickstart-04-10eea489c28fe821798a99cd69f18ea6.png"},11260:(e,t,n)=>{n.d(t,{A:()=>i});const i=n.p+"assets/images/tutorial-quickstart-03-ca6142482a661095586235c8a9327067.png"},28453:(e,t,n)=>{n.d(t,{R:()=>a,x:()=>o});var i=n(96540);const r={},s=i.createContext(r);function a(e){const t=i.useContext(s);return i.useMemo((function(){return"function"==typeof e [...]
\ No newline at end of file
diff --git a/assets/js/dd08839c.0ecf4ca8.js b/assets/js/dd08839c.0ecf4ca8.js
new file mode 100644
index 000000000..20a15c6ae
--- /dev/null
+++ b/assets/js/dd08839c.0ecf4ca8.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[7100],{5865:(e,r,t)=>{t.r(r),t.d(r,{assets:()=>d,contentTitle:()=>a,default:()=>h,frontMatter:()=>s,metadata:()=>n,toc:()=>c});const n=JSON.parse('{"id":"design/router","title":"Router service","description":"\x3c!--","source":"@site/docs/latest/design/router.md","sourceDirName":"design","slug":"/design/router","permalink":"/docs/latest/design/router","draft":false,"unlisted":false,"tags":[],"version":"current","frontMatter":{ [...]
\ No newline at end of file
diff --git a/assets/js/dd1dce50.1a0b59cf.js b/assets/js/dd1dce50.1a0b59cf.js
new file mode 100644
index 000000000..88371177b
--- /dev/null
+++ b/assets/js/dd1dce50.1a0b59cf.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[3315],{28453:(e,s,n)=>{n.d(s,{R:()=>t,x:()=>a});var i=n(96540);const r={},d=i.createContext(r);function t(e){const s=i.useContext(d);return i.useMemo((function(){return"function"==typeof e?e(s):{...s,...e}}),[s,e])}function a(e){let s;return s=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:t(e.components),i.createElement(d.Provider,{value:s},e.children)}},33774:(e,s,n)=>{n.d(s,{A:()=>i}) [...]
\ No newline at end of file
diff --git a/assets/js/dd51faf4.6f0af296.js b/assets/js/dd51faf4.6f0af296.js
new file mode 100644
index 000000000..c3b731ec1
--- /dev/null
+++ b/assets/js/dd51faf4.6f0af296.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[240],{3097:(e,r,s)=>{s.r(r),s.d(r,{assets:()=>c,contentTitle:()=>o,default:()=>a,frontMatter:()=>d,metadata:()=>n,toc:()=>l});const n=JSON.parse('{"id":"querying/sql-query-context","title":"SQL query context","description":"\x3c!--","source":"@site/docs/38.0.0/querying/sql-query-context.md","sourceDirName":"querying","slug":"/querying/sql-query-context","permalink":"/docs/38.0.0/querying/sql-query-context","draft":false,"unlis [...]
\ No newline at end of file
diff --git a/assets/js/dd79da31.1178eeff.js b/assets/js/dd79da31.1178eeff.js
new file mode 100644
index 000000000..131df15cb
--- /dev/null
+++ b/assets/js/dd79da31.1178eeff.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[2646],{5302:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>d,contentTitle:()=>i,default:()=>m,frontMatter:()=>a,metadata:()=>s,toc:()=>l});const s=JSON.parse('{"id":"operations/insert-segment-to-db","title":"insert-segment-to-db tool","description":"\x3c!--","source":"@site/docs/latest/operations/insert-segment-to-db.md","sourceDirName":"operations","slug":"/operations/insert-segment-to-db","permalink":"/docs/latest/operations/insert-segm [...]
\ No newline at end of file
diff --git a/assets/js/deb3bfea.4515df9c.js b/assets/js/deb3bfea.4515df9c.js
new file mode 100644
index 000000000..2196b48cc
--- /dev/null
+++ b/assets/js/deb3bfea.4515df9c.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[6825],{28453:(e,o,n)=>{n.d(o,{R:()=>r,x:()=>d});var s=n(96540);const t={},i=s.createContext(t);function r(e){const o=s.useContext(i);return s.useMemo((function(){return"function"==typeof e?e(o):{...o,...e}}),[o,e])}function d(e){let o;return o=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:r(e.components),s.createElement(i.Provider,{value:o},e.children)}},72947:(e,o,n)=>{n.r(o),n.d(o,{as [...]
\ No newline at end of file
diff --git a/assets/js/ded59213.a5f2f737.js b/assets/js/ded59213.a5f2f737.js
new file mode 100644
index 000000000..f7d95c794
--- /dev/null
+++ b/assets/js/ded59213.a5f2f737.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[3034],{28453:(e,n,r)=>{r.d(n,{R:()=>l,x:()=>o});var i=r(96540);const s={},t=i.createContext(s);function l(e){const n=i.useContext(t);return i.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function o(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:l(e.components),i.createElement(t.Provider,{value:n},e.children)}},43606:(e,n,r)=>{r.r(n),r.d(n,{as [...]
\ No newline at end of file
diff --git a/assets/js/df12df39.aa9306f3.js b/assets/js/df12df39.aa9306f3.js
new file mode 100644
index 000000000..ed424fb51
--- /dev/null
+++ b/assets/js/df12df39.aa9306f3.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[294],{28453:(e,n,t)=>{t.d(n,{R:()=>o,x:()=>a});var s=t(96540);const i={},r=s.createContext(i);function o(e){const n=s.useContext(r);return s.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function a(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:o(e.components),s.createElement(r.Provider,{value:n},e.children)}},46146:(e,n,t)=>{t.r(n),t.d(n,{ass [...]
\ No newline at end of file
diff --git a/assets/js/df9f71f9.49e214b4.js b/assets/js/df9f71f9.49e214b4.js
new file mode 100644
index 000000000..d168ad434
--- /dev/null
+++ b/assets/js/df9f71f9.49e214b4.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[643],{28453:(e,i,t)=>{t.d(i,{R:()=>d,x:()=>c});var r=t(96540);const n={},s=r.createContext(n);function d(e){const i=r.useContext(s);return r.useMemo((function(){return"function"==typeof e?e(i):{...i,...e}}),[i,e])}function c(e){let i;return i=e.disableParentContext?"function"==typeof e.components?e.components(n):e.components||n:d(e.components),r.createElement(s.Provider,{value:i},e.children)}},52809:(e,i,t)=>{t.r(i),t.d(i,{ass [...]
\ No newline at end of file
diff --git a/assets/js/e03d429b.f8d55fb9.js b/assets/js/e03d429b.f8d55fb9.js
new file mode 100644
index 000000000..a4ea559df
--- /dev/null
+++ b/assets/js/e03d429b.f8d55fb9.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[4426],{12233:(e,n,r)=>{r.r(n),r.d(n,{assets:()=>d,contentTitle:()=>a,default:()=>p,frontMatter:()=>t,metadata:()=>i,toc:()=>c});const i=JSON.parse('{"id":"operations/dynamic-config-provider","title":"Dynamic Config Providers","description":"\x3c!--","source":"@site/docs/38.0.0/operations/dynamic-config-provider.md","sourceDirName":"operations","slug":"/operations/dynamic-config-provider","permalink":"/docs/38.0.0/operations/dy [...]
\ No newline at end of file
diff --git a/assets/js/e2103aba.5fd57d89.js b/assets/js/e2103aba.5fd57d89.js
new file mode 100644
index 000000000..85e9ffc45
--- /dev/null
+++ b/assets/js/e2103aba.5fd57d89.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[374],{28453:(e,r,t)=>{t.d(r,{R:()=>o,x:()=>d});var n=t(96540);const s={},i=n.createContext(s);function o(e){const r=n.useContext(i);return n.useMemo((function(){return"function"==typeof e?e(r):{...r,...e}}),[r,e])}function d(e){let r;return r=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:o(e.components),n.createElement(i.Provider,{value:r},e.children)}},43059:(e,r,t)=>{t.r(r),t.d(r,{ass [...]
\ No newline at end of file
diff --git a/assets/js/e26f2594.3dfbbf0e.js b/assets/js/e26f2594.3dfbbf0e.js
new file mode 100644
index 000000000..352bb4cf2
--- /dev/null
+++ b/assets/js/e26f2594.3dfbbf0e.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[9926],{28453:(e,r,n)=>{n.d(r,{R:()=>l,x:()=>t});var a=n(96540);const s={},i=a.createContext(s);function l(e){const r=a.useContext(i);return a.useMemo((function(){return"function"==typeof e?e(r):{...r,...e}}),[r,e])}function t(e){let r;return r=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:l(e.components),a.createElement(i.Provider,{value:r},e.children)}},67972:(e,r,n)=>{n.r(r),n.d(r,{as [...]
\ No newline at end of file
diff --git a/assets/js/e276423b.7d59f0a9.js b/assets/js/e276423b.7d59f0a9.js
new file mode 100644
index 000000000..0fdea9a64
--- /dev/null
+++ b/assets/js/e276423b.7d59f0a9.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[5260],{28453:(e,t,n)=>{n.d(t,{R:()=>i,x:()=>a});var s=n(96540);const o={},r=s.createContext(o);function i(e){const t=s.useContext(r);return s.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function a(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(o):e.components||o:i(e.components),s.createElement(r.Provider,{value:t},e.children)}},77909:(e,t,n)=>{n.r(t),n.d(t,{as [...]
\ No newline at end of file
diff --git a/assets/js/e2ac349d.da78c047.js b/assets/js/e2ac349d.da78c047.js
new file mode 100644
index 000000000..ac5824380
--- /dev/null
+++ b/assets/js/e2ac349d.da78c047.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[3600],{28453:(e,n,t)=>{t.d(n,{R:()=>s,x:()=>o});var i=t(96540);const a={},r=i.createContext(a);function s(e){const n=i.useContext(r);return i.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function o(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(a):e.components||a:s(e.components),i.createElement(r.Provider,{value:n},e.children)}},58926:(e,n,t)=>{t.r(n),t.d(n,{as [...]
\ No newline at end of file
diff --git a/assets/js/e3609e88.8b56cbe6.js b/assets/js/e3609e88.8b56cbe6.js
new file mode 100644
index 000000000..1933ed04c
--- /dev/null
+++ b/assets/js/e3609e88.8b56cbe6.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[5167],{28453:(e,n,i)=>{i.d(n,{R:()=>d,x:()=>o});var s=i(96540);const t={},r=s.createContext(t);function d(e){const n=s.useContext(r);return s.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function o(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:d(e.components),s.createElement(r.Provider,{value:n},e.children)}},53541:(e,n,i)=>{i.r(n),i.d(n,{as [...]
\ No newline at end of file
diff --git a/assets/js/e3f61a68.3a5528d0.js b/assets/js/e3f61a68.3a5528d0.js
new file mode 100644
index 000000000..7b105a0ff
--- /dev/null
+++ b/assets/js/e3f61a68.3a5528d0.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[8127],{28453:(e,r,n)=>{n.d(r,{R:()=>d,x:()=>c});var s=n(96540);const t={},i=s.createContext(t);function d(e){const r=s.useContext(i);return s.useMemo((function(){return"function"==typeof e?e(r):{...r,...e}}),[r,e])}function c(e){let r;return r=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:d(e.components),s.createElement(i.Provider,{value:r},e.children)}},30782:(e,r,n)=>{n.r(r),n.d(r,{as [...]
\ No newline at end of file
diff --git a/assets/js/e44d1fc1.57b26e97.js b/assets/js/e44d1fc1.57b26e97.js
new file mode 100644
index 000000000..6173b0e77
--- /dev/null
+++ b/assets/js/e44d1fc1.57b26e97.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[3953],{21528:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>d,contentTitle:()=>c,default:()=>j,frontMatter:()=>l,metadata:()=>s,toc:()=>u});const s=JSON.parse('{"id":"querying/datasource","title":"Datasources","description":"\x3c!--","source":"@site/docs/latest/querying/datasource.md","sourceDirName":"querying","slug":"/querying/datasource","permalink":"/docs/latest/querying/datasource","draft":false,"unlisted":false,"tags":[],"version":" [...]
\ No newline at end of file
diff --git a/assets/js/e4bc41b1.9ae3a0a0.js b/assets/js/e4bc41b1.9ae3a0a0.js
new file mode 100644
index 000000000..725fd6f06
--- /dev/null
+++ b/assets/js/e4bc41b1.9ae3a0a0.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[555],{28453:(e,n,l)=>{l.d(n,{R:()=>s,x:()=>d});var i=l(96540);const t={},r=i.createContext(t);function s(e){const n=i.useContext(r);return i.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function d(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:s(e.components),i.createElement(r.Provider,{value:n},e.children)}},59755:(e,n,l)=>{l.r(n),l.d(n,{ass [...]
\ No newline at end of file
diff --git a/assets/js/e577ad77.c8981a00.js b/assets/js/e577ad77.c8981a00.js
new file mode 100644
index 000000000..7b21c729f
--- /dev/null
+++ b/assets/js/e577ad77.c8981a00.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[2642],{462:(e,s,t)=>{t.d(s,{A:()=>i});const i=t.p+"assets/images/supervisor-actions-7ac02856cc2f02bfb04ffeacd1c0beeb.png"},562:(e,s,t)=>{t.d(s,{A:()=>i});const i=t.p+"assets/images/supervisor-info-dialog-300a1e58533b10622fd945eca74911e4.png"},22652:(e,s,t)=>{t.d(s,{A:()=>i});const i=t.p+"assets/images/supervisor-view-83f761c82cf23094ae3d37c91371b655.png"},28453:(e,s,t)=>{t.d(s,{R:()=>o,x:()=>d});var i=t(96540);const n={},r=i.c [...]
\ No newline at end of file
diff --git a/assets/js/e6ea7cb8.6f34daa3.js b/assets/js/e6ea7cb8.6f34daa3.js
new file mode 100644
index 000000000..458ea01ce
--- /dev/null
+++ b/assets/js/e6ea7cb8.6f34daa3.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[9940],{17372:(e,r,t)=>{t.r(r),t.d(r,{assets:()=>a,contentTitle:()=>l,default:()=>h,frontMatter:()=>i,metadata:()=>n,toc:()=>d});const n=JSON.parse('{"id":"operations/rule-configuration","title":"Using rules to drop and retain data","description":"\x3c!--","source":"@site/docs/latest/operations/rule-configuration.md","sourceDirName":"operations","slug":"/operations/rule-configuration","permalink":"/docs/latest/operations/rule-c [...]
\ No newline at end of file
diff --git a/assets/js/e7e5c37b.0076eedf.js b/assets/js/e7e5c37b.0076eedf.js
new file mode 100644
index 000000000..7e15ab0aa
--- /dev/null
+++ b/assets/js/e7e5c37b.0076eedf.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[1652],{28453:(e,n,t)=>{t.d(n,{R:()=>a,x:()=>r});var o=t(96540);const s={},i=o.createContext(s);function a(e){const n=o.useContext(i);return o.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function r(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:a(e.components),o.createElement(i.Provider,{value:n},e.children)}},35245:(e,n,t)=>{t.r(n),t.d(n,{as [...]
\ No newline at end of file
diff --git a/assets/js/e988a960.336dc792.js b/assets/js/e988a960.336dc792.js
new file mode 100644
index 000000000..597435e1e
--- /dev/null
+++ b/assets/js/e988a960.336dc792.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[1369],{28453:(e,n,r)=>{r.d(n,{R:()=>o,x:()=>i});var s=r(96540);const t={},a=s.createContext(t);function o(e){const n=s.useContext(a);return s.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function i(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:o(e.components),s.createElement(a.Provider,{value:n},e.children)}},65537:(e,n,r)=>{r.d(n,{A:()=>N}) [...]
\ No newline at end of file
diff --git a/assets/js/e9a99b3f.672266a0.js b/assets/js/e9a99b3f.672266a0.js
new file mode 100644
index 000000000..deef334f8
--- /dev/null
+++ b/assets/js/e9a99b3f.672266a0.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[6445],{28453:(e,t,r)=>{r.d(t,{R:()=>d,x:()=>c});var i=r(96540);const s={},n=i.createContext(s);function d(e){const t=i.useContext(n);return i.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function c(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:d(e.components),i.createElement(n.Provider,{value:t},e.children)}},45426:(e,t,r)=>{r.r(t),r.d(t,{as [...]
\ No newline at end of file
diff --git a/assets/js/e9ff58b9.6af1a539.js b/assets/js/e9ff58b9.6af1a539.js
new file mode 100644
index 000000000..0bb986e44
--- /dev/null
+++ b/assets/js/e9ff58b9.6af1a539.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[8485],{21023:(e,s,n)=>{n.r(s),n.d(s,{assets:()=>l,contentTitle:()=>d,default:()=>h,frontMatter:()=>a,metadata:()=>i,toc:()=>o});const i=JSON.parse('{"id":"querying/sql-data-types","title":"SQL data types","description":"\x3c!--","source":"@site/docs/38.0.0/querying/sql-data-types.md","sourceDirName":"querying","slug":"/querying/sql-data-types","permalink":"/docs/38.0.0/querying/sql-data-types","draft":false,"unlisted":false,"t [...]
\ No newline at end of file
diff --git a/assets/js/eab758fa.b0b2e094.js b/assets/js/eab758fa.b0b2e094.js
new file mode 100644
index 000000000..b2eb40aad
--- /dev/null
+++ b/assets/js/eab758fa.b0b2e094.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[7404],{20993:(e,t,i)=>{i.r(t),i.d(t,{assets:()=>l,contentTitle:()=>o,default:()=>c,frontMatter:()=>a,metadata:()=>n,toc:()=>d});const n=JSON.parse('{"id":"development/extensions-core/approximate-histograms","title":"Approximate Histogram aggregators","description":"\x3c!--","source":"@site/docs/38.0.0/development/extensions-core/approximate-histograms.md","sourceDirName":"development/extensions-core","slug":"/development/exten [...]
\ No newline at end of file
diff --git a/assets/js/eb004346.8ee0487f.js b/assets/js/eb004346.8ee0487f.js
new file mode 100644
index 000000000..abd071758
--- /dev/null
+++ b/assets/js/eb004346.8ee0487f.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[5743],{25434:(e,n,r)=>{r.r(n),r.d(n,{assets:()=>a,contentTitle:()=>o,default:()=>h,frontMatter:()=>d,metadata:()=>t,toc:()=>l});const t=JSON.parse('{"id":"querying/scan-query","title":"Scan queries","description":"\x3c!--","source":"@site/docs/38.0.0/querying/scan-query.md","sourceDirName":"querying","slug":"/querying/scan-query","permalink":"/docs/38.0.0/querying/scan-query","draft":false,"unlisted":false,"tags":[],"version": [...]
\ No newline at end of file
diff --git a/assets/js/eb61c53f.00fc169e.js b/assets/js/eb61c53f.00fc169e.js
new file mode 100644
index 000000000..e38fa655d
--- /dev/null
+++ b/assets/js/eb61c53f.00fc169e.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[2786],{1796:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>d,contentTitle:()=>c,default:()=>h,frontMatter:()=>r,metadata:()=>i,toc:()=>u});const i=JSON.parse('{"id":"api-reference/automatic-compaction-api","title":"Automatic compaction API","description":"\x3c!--","source":"@site/docs/38.0.0/api-reference/automatic-compaction-api.md","sourceDirName":"api-reference","slug":"/api-reference/automatic-compaction-api","permalink":"/docs/38.0.0 [...]
\ No newline at end of file
diff --git a/assets/js/ebaeb537.45ed96a9.js b/assets/js/ebaeb537.45ed96a9.js
new file mode 100644
index 000000000..62ab98c42
--- /dev/null
+++ b/assets/js/ebaeb537.45ed96a9.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[4001],{14589:(e,n,r)=>{r.r(n),r.d(n,{assets:()=>o,contentTitle:()=>a,default:()=>d,frontMatter:()=>t,metadata:()=>i,toc:()=>h});const i=JSON.parse('{"id":"querying/caching","title":"Query caching","description":"Describes Apache\xae Druid per-segment and whole-query cache types. Identifies services where you can enable caching and suggestions for caching strategy.","source":"@site/docs/38.0.0/querying/caching.md","sourceDirNam [...]
\ No newline at end of file
diff --git a/assets/js/ebfaf1f1.e3c37202.js b/assets/js/ebfaf1f1.e3c37202.js
new file mode 100644
index 000000000..562c3b43d
--- /dev/null
+++ b/assets/js/ebfaf1f1.e3c37202.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[7245],{28453:(e,n,i)=>{i.d(n,{R:()=>o,x:()=>c});var t=i(96540);const l={},d=t.createContext(l);function o(e){const n=t.useContext(d);return t.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function c(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(l):e.components||l:o(e.components),t.createElement(d.Provider,{value:n},e.children)}},47521:(e,n,i)=>{i.r(n),i.d(n,{as [...]
\ No newline at end of file
diff --git a/assets/js/ec725065.03558c01.js b/assets/js/ec725065.03558c01.js
new file mode 100644
index 000000000..b262429f7
--- /dev/null
+++ b/assets/js/ec725065.03558c01.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[2412],{28453:(e,n,r)=>{r.d(n,{R:()=>s,x:()=>a});var i=r(96540);const o={},t=i.createContext(o);function s(e){const n=i.useContext(t);return i.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function a(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(o):e.components||o:s(e.components),i.createElement(t.Provider,{value:n},e.children)}},73104:(e,n,r)=>{r.r(n),r.d(n,{as [...]
\ No newline at end of file
diff --git a/assets/js/ec96a789.be18625e.js b/assets/js/ec96a789.be18625e.js
new file mode 100644
index 000000000..f742805a5
--- /dev/null
+++ b/assets/js/ec96a789.be18625e.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[2103],{28453:(e,n,r)=>{r.d(n,{R:()=>l,x:()=>t});var a=r(96540);const i={},s=a.createContext(i);function l(e){const n=a.useContext(s);return a.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function t(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:l(e.components),a.createElement(s.Provider,{value:n},e.children)}},46782:(e,n,r)=>{r.r(n),r.d(n,{as [...]
\ No newline at end of file
diff --git a/assets/js/ed76cb57.4a8edd34.js b/assets/js/ed76cb57.4a8edd34.js
new file mode 100644
index 000000000..d5ce43f8e
--- /dev/null
+++ b/assets/js/ed76cb57.4a8edd34.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[4168],{12882:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>m,contentTitle:()=>r,default:()=>l,frontMatter:()=>o,metadata:()=>i,toc:()=>c});const i=JSON.parse('{"id":"development/extensions-contrib/time-min-max","title":"Timestamp Min/Max aggregators","description":"\x3c!--","source":"@site/docs/38.0.0/development/extensions-contrib/time-min-max.md","sourceDirName":"development/extensions-contrib","slug":"/development/extensions-contrib/t [...]
\ No newline at end of file
diff --git a/assets/js/ef3cb91d.2c9914e8.js b/assets/js/ef3cb91d.2c9914e8.js
new file mode 100644
index 000000000..c32081e13
--- /dev/null
+++ b/assets/js/ef3cb91d.2c9914e8.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[9808],{28453:(e,t,r)=>{r.d(t,{R:()=>s,x:()=>o});var n=r(96540);const i={},d=n.createContext(i);function s(e){const t=n.useContext(d);return n.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function o(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:s(e.components),n.createElement(d.Provider,{value:t},e.children)}},35328:(e,t,r)=>{r.r(t),r.d(t,{as [...]
\ No newline at end of file
diff --git a/assets/js/efb0e60e.43e0dbd2.js b/assets/js/efb0e60e.43e0dbd2.js
new file mode 100644
index 000000000..ef40c8c48
--- /dev/null
+++ b/assets/js/efb0e60e.43e0dbd2.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[5060],{28453:(e,n,s)=>{s.d(n,{R:()=>t,x:()=>r});var o=s(96540);const i={},l=o.createContext(i);function t(e){const n=o.useContext(l);return o.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function r(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:t(e.components),o.createElement(l.Provider,{value:n},e.children)}},89781:(e,n,s)=>{s.r(n),s.d(n,{as [...]
\ No newline at end of file
diff --git a/assets/js/f04833a0.85ab4a15.js b/assets/js/f04833a0.85ab4a15.js
new file mode 100644
index 000000000..34ba8e6ce
--- /dev/null
+++ b/assets/js/f04833a0.85ab4a15.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[6556],{28453:(e,r,o)=>{o.d(r,{R:()=>a,x:()=>d});var i=o(96540);const n={},t=i.createContext(n);function a(e){const r=i.useContext(t);return i.useMemo((function(){return"function"==typeof e?e(r):{...r,...e}}),[r,e])}function d(e){let r;return r=e.disableParentContext?"function"==typeof e.components?e.components(n):e.components||n:a(e.components),i.createElement(t.Provider,{value:r},e.children)}},95548:(e,r,o)=>{o.r(r),o.d(r,{as [...]
\ No newline at end of file
diff --git a/assets/js/f0a1c229.ca7408e9.js b/assets/js/f0a1c229.ca7408e9.js
new file mode 100644
index 000000000..9a0a1a868
--- /dev/null
+++ b/assets/js/f0a1c229.ca7408e9.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[4783],{9021:(e,t,r)=>{r.d(t,{A:()=>s});const s=r.p+"assets/images/tutorial-query-deepstorage-retention-rule-ed99c67c161810ee03d3301b530d0ede.png"},28453:(e,t,r)=>{r.d(t,{R:()=>a,x:()=>i});var s=r(96540);const n={},o=s.createContext(n);function a(e){const t=s.useContext(o);return s.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function i(e){let t;return t=e.disableParentContext?"function"==typeof e.co [...]
\ No newline at end of file
diff --git a/assets/js/f0bb013e.e67598c0.js b/assets/js/f0bb013e.e67598c0.js
new file mode 100644
index 000000000..901602624
--- /dev/null
+++ b/assets/js/f0bb013e.e67598c0.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[8111],{28453:(e,t,s)=>{s.d(t,{R:()=>i,x:()=>d});var o=s(96540);const n={},r=o.createContext(n);function i(e){const t=o.useContext(r);return o.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function d(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(n):e.components||n:i(e.components),o.createElement(r.Provider,{value:t},e.children)}},50845:(e,t,s)=>{s.r(t),s.d(t,{as [...]
\ No newline at end of file
diff --git a/assets/js/f1bd5231.063e0bee.js b/assets/js/f1bd5231.063e0bee.js
new file mode 100644
index 000000000..d64ae18d2
--- /dev/null
+++ b/assets/js/f1bd5231.063e0bee.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[999],{28453:(e,t,i)=>{i.d(t,{R:()=>s,x:()=>l});var n=i(96540);const d={},r=n.createContext(d);function s(e){const t=n.useContext(r);return n.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function l(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(d):e.components||d:s(e.components),n.createElement(r.Provider,{value:t},e.children)}},50652:(e,t,i)=>{i.r(t),i.d(t,{ass [...]
\ No newline at end of file
diff --git a/assets/js/f2740aaf.3586971a.js b/assets/js/f2740aaf.3586971a.js
new file mode 100644
index 000000000..32e579a8d
--- /dev/null
+++ b/assets/js/f2740aaf.3586971a.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[394],{9840:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>c,contentTitle:()=>o,default:()=>l,frontMatter:()=>i,metadata:()=>s,toc:()=>d});const s=JSON.parse('{"id":"development/extensions-core/datasketches-theta","title":"DataSketches Theta Sketch module","description":"\x3c!--","source":"@site/docs/38.0.0/development/extensions-core/datasketches-theta.md","sourceDirName":"development/extensions-core","slug":"/development/extensions-core/ [...]
\ No newline at end of file
diff --git a/assets/js/f2fce74c.d02eb62b.js b/assets/js/f2fce74c.d02eb62b.js
new file mode 100644
index 000000000..5eceeffeb
--- /dev/null
+++ b/assets/js/f2fce74c.d02eb62b.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[9498],{28453:(e,t,i)=>{i.d(t,{R:()=>a,x:()=>o});var n=i(96540);const s={},r=n.createContext(s);function a(e){const t=n.useContext(r);return n.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function o(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:a(e.components),n.createElement(r.Provider,{value:t},e.children)}},34800:(e,t,i)=>{i.r(t),i.d(t,{as [...]
\ No newline at end of file
diff --git a/assets/js/f3f9f9c1.b2b3be69.js b/assets/js/f3f9f9c1.b2b3be69.js
new file mode 100644
index 000000000..0f6910f0f
--- /dev/null
+++ b/assets/js/f3f9f9c1.b2b3be69.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[1250],{28453:(e,n,t)=>{t.d(n,{R:()=>o,x:()=>a});var r=t(96540);const s={},i=r.createContext(s);function o(e){const n=r.useContext(i);return r.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function a(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:o(e.components),r.createElement(i.Provider,{value:n},e.children)}},92167:(e,n,t)=>{t.r(n),t.d(n,{as [...]
\ No newline at end of file
diff --git a/assets/js/f3fc9414.509c66cd.js b/assets/js/f3fc9414.509c66cd.js
new file mode 100644
index 000000000..a1c74ae62
--- /dev/null
+++ b/assets/js/f3fc9414.509c66cd.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[8435],{25624:(e,n,t)=>{t.d(n,{A:()=>a});const a=t.p+"assets/images/tutorial-batch-submit-task-01-fbbf03666cc6ca1078988febc09b8e5e.png"},28453:(e,n,t)=>{t.d(n,{R:()=>s,x:()=>r});var a=t(96540);const i={},o=a.createContext(i);function s(e){const n=a.useContext(o);return a.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function r(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e. [...]
\ No newline at end of file
diff --git a/assets/js/f5d9b0c3.0b54b589.js b/assets/js/f5d9b0c3.0b54b589.js
new file mode 100644
index 000000000..ede027b50
--- /dev/null
+++ b/assets/js/f5d9b0c3.0b54b589.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[333],{15958:(e,i,n)=>{n.r(i),n.d(i,{assets:()=>c,contentTitle:()=>a,default:()=>h,frontMatter:()=>o,metadata:()=>t,toc:()=>d});const t=JSON.parse('{"id":"ingestion/partitioning","title":"Partitioning","description":"Describes time chunk and secondary partitioning in Druid. Provides guidance to choose a secondary partition dimension.","source":"@site/docs/38.0.0/ingestion/partitioning.md","sourceDirName":"ingestion","slug":"/in [...]
\ No newline at end of file
diff --git a/assets/js/f74ace7b.c7eda716.js b/assets/js/f74ace7b.c7eda716.js
new file mode 100644
index 000000000..17fe33001
--- /dev/null
+++ b/assets/js/f74ace7b.c7eda716.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[7192],{10463:(e,r,t)=>{t.r(r),t.d(r,{assets:()=>a,contentTitle:()=>d,default:()=>u,frontMatter:()=>o,metadata:()=>n,toc:()=>l});const n=JSON.parse('{"id":"development/extensions-contrib/sqlserver","title":"Microsoft SQLServer","description":"\x3c!--","source":"@site/docs/latest/development/extensions-contrib/sqlserver.md","sourceDirName":"development/extensions-contrib","slug":"/development/extensions-contrib/sqlserver","perma [...]
\ No newline at end of file
diff --git a/assets/js/f76af10b.ce4310af.js b/assets/js/f76af10b.ce4310af.js
new file mode 100644
index 000000000..0d38cfac1
--- /dev/null
+++ b/assets/js/f76af10b.ce4310af.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[7688],{19186:(e,n,i)=>{i.r(n),i.d(n,{assets:()=>l,contentTitle:()=>d,default:()=>h,frontMatter:()=>s,metadata:()=>a,toc:()=>o});const a=JSON.parse('{"id":"development/extensions-core/stats","title":"Stats aggregator","description":"\x3c!--","source":"@site/docs/latest/development/extensions-core/stats.md","sourceDirName":"development/extensions-core","slug":"/development/extensions-core/stats","permalink":"/docs/latest/develop [...]
\ No newline at end of file
diff --git a/assets/js/f79fc959.d5e230f2.js b/assets/js/f79fc959.d5e230f2.js
new file mode 100644
index 000000000..6cbb2cb44
--- /dev/null
+++ b/assets/js/f79fc959.d5e230f2.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[2389],{28453:(e,n,t)=>{t.d(n,{R:()=>a,x:()=>o});var r=t(96540);const i={},s=r.createContext(i);function a(e){const n=r.useContext(s);return r.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function o(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:a(e.components),r.createElement(s.Provider,{value:n},e.children)}},37150:(e,n,t)=>{t.d(n,{A:()=>r}) [...]
\ No newline at end of file
diff --git a/assets/js/f8b35359.ae52d000.js b/assets/js/f8b35359.ae52d000.js
new file mode 100644
index 000000000..6ef643b81
--- /dev/null
+++ b/assets/js/f8b35359.ae52d000.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[8122],{28453:(e,n,i)=>{i.d(n,{R:()=>d,x:()=>a});var s=i(96540);const t={},r=s.createContext(t);function d(e){const n=s.useContext(r);return s.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function a(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:d(e.components),s.createElement(r.Provider,{value:n},e.children)}},31622:(e,n,i)=>{i.r(n),i.d(n,{as [...]
\ No newline at end of file
diff --git a/assets/js/fa493215.fcd39f31.js b/assets/js/fa493215.fcd39f31.js
new file mode 100644
index 000000000..94c22e718
--- /dev/null
+++ b/assets/js/fa493215.fcd39f31.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[7652],{28453:(e,n,t)=>{t.d(n,{R:()=>a,x:()=>l});var s=t(96540);const r={},i=s.createContext(r);function a(e){const n=s.useContext(i);return s.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function l(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:a(e.components),s.createElement(i.Provider,{value:n},e.children)}},63942:(e,n,t)=>{t.r(n),t.d(n,{as [...]
\ No newline at end of file
diff --git a/assets/js/faf71cfd.3f132aae.js b/assets/js/faf71cfd.3f132aae.js
new file mode 100644
index 000000000..f8860acf0
--- /dev/null
+++ b/assets/js/faf71cfd.3f132aae.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[3539],{23573:(e,r,n)=>{n.d(r,{A:()=>t});const t=n.p+"assets/images/tutorial-query-deepstorage-retention-rule-ed99c67c161810ee03d3301b530d0ede.png"},28453:(e,r,n)=>{n.d(r,{R:()=>a,x:()=>i});var t=n(96540);const s={},o=t.createContext(s);function a(e){const r=t.useContext(o);return t.useMemo((function(){return"function"==typeof e?e(r):{...r,...e}}),[r,e])}function i(e){let r;return r=e.disableParentContext?"function"==typeof e.c [...]
\ No newline at end of file
diff --git a/assets/js/fba5369b.7206ae03.js b/assets/js/fba5369b.7206ae03.js
new file mode 100644
index 000000000..3e6d79cdb
--- /dev/null
+++ b/assets/js/fba5369b.7206ae03.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[9143],{10800:(e,n,s)=>{s.d(n,{A:()=>t});const t=s.p+"assets/images/tutorial-sql-count-distinct-d6020a15c19fff26ed0570fb2a7c7a64.png"},28453:(e,n,s)=>{s.d(n,{R:()=>l,x:()=>a});var t=s(96540);const r={},i=t.createContext(r);function l(e){const n=t.useContext(i);return t.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function a(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.co [...]
\ No newline at end of file
diff --git a/assets/js/fc6529ab.8f5edbbe.js b/assets/js/fc6529ab.8f5edbbe.js
new file mode 100644
index 000000000..06dfc907b
--- /dev/null
+++ b/assets/js/fc6529ab.8f5edbbe.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[5795],{28453:(e,n,i)=>{i.d(n,{R:()=>c,x:()=>d});var t=i(96540);const s={},r=t.createContext(s);function c(e){const n=t.useContext(r);return t.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function d(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:c(e.components),t.createElement(r.Provider,{value:n},e.children)}},73158:(e,n,i)=>{i.r(n),i.d(n,{as [...]
\ No newline at end of file
diff --git a/assets/js/fcff652c.64d479dc.js b/assets/js/fcff652c.64d479dc.js
new file mode 100644
index 000000000..514b67c84
--- /dev/null
+++ b/assets/js/fcff652c.64d479dc.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[3536],{28453:(e,n,t)=>{t.d(n,{R:()=>r,x:()=>c});var o=t(96540);const s={},i=o.createContext(s);function r(e){const n=o.useContext(i);return o.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function c(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:r(e.components),o.createElement(i.Provider,{value:n},e.children)}},74311:(e,n,t)=>{t.r(n),t.d(n,{as [...]
\ No newline at end of file
diff --git a/assets/js/fd06814a.d0a66ae2.js b/assets/js/fd06814a.d0a66ae2.js
new file mode 100644
index 000000000..751d162bd
--- /dev/null
+++ b/assets/js/fd06814a.d0a66ae2.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[6319],{9627:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>d,contentTitle:()=>o,default:()=>c,frontMatter:()=>s,metadata:()=>i,toc:()=>h});const i=JSON.parse('{"id":"operations/auth","title":"Authentication and Authorization","description":"\x3c!--","source":"@site/docs/38.0.0/operations/auth.md","sourceDirName":"operations","slug":"/operations/auth","permalink":"/docs/38.0.0/operations/auth","draft":false,"unlisted":false,"tags":[],"vers [...]
\ No newline at end of file
diff --git a/assets/js/fd2232cb.d844e556.js b/assets/js/fd2232cb.d844e556.js
new file mode 100644
index 000000000..22aa557d3
--- /dev/null
+++ b/assets/js/fd2232cb.d844e556.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[6257],{28453:(e,r,t)=>{t.d(r,{R:()=>d,x:()=>o});var i=t(96540);const s={},n=i.createContext(s);function d(e){const r=i.useContext(n);return i.useMemo((function(){return"function"==typeof e?e(r):{...r,...e}}),[r,e])}function o(e){let r;return r=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:d(e.components),i.createElement(n.Provider,{value:r},e.children)}},68646:(e,r,t)=>{t.r(r),t.d(r,{as [...]
\ No newline at end of file
diff --git a/assets/js/fe8eee49.526f498a.js b/assets/js/fe8eee49.526f498a.js
new file mode 100644
index 000000000..4cc359b26
--- /dev/null
+++ b/assets/js/fe8eee49.526f498a.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[1930],{28453:(e,n,t)=>{t.d(n,{R:()=>s,x:()=>a});var o=t(96540);const i={},r=o.createContext(i);function s(e){const n=o.useContext(r);return o.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function a(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:s(e.components),o.createElement(r.Provider,{value:n},e.children)}},51584:(e,n,t)=>{t.r(n),t.d(n,{as [...]
\ No newline at end of file
diff --git a/assets/js/ffabadeb.72d627ef.js b/assets/js/ffabadeb.72d627ef.js
new file mode 100644
index 000000000..c3da308ab
--- /dev/null
+++ b/assets/js/ffabadeb.72d627ef.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[5988],{28453:(e,t,r)=>{r.d(t,{R:()=>a,x:()=>i});var n=r(96540);const o={},s=n.createContext(o);function a(e){const t=n.useContext(s);return n.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function i(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(o):e.components||o:a(e.components),n.createElement(s.Provider,{value:t},e.children)}},65537:(e,t,r)=>{r.d(t,{A:()=>A}) [...]
\ No newline at end of file
diff --git a/assets/js/ffd53883.1bb8aef0.js b/assets/js/ffd53883.1bb8aef0.js
new file mode 100644
index 000000000..a769f3ba0
--- /dev/null
+++ b/assets/js/ffd53883.1bb8aef0.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[352],{28453:(e,r,n)=>{n.d(r,{R:()=>a,x:()=>o});var i=n(96540);const s={},t=i.createContext(s);function a(e){const r=i.useContext(t);return i.useMemo((function(){return"function"==typeof e?e(r):{...r,...e}}),[r,e])}function o(e){let r;return r=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:a(e.components),i.createElement(t.Provider,{value:r},e.children)}},48460:(e,r,n)=>{n.r(r),n.d(r,{ass [...]
\ No newline at end of file
diff --git a/assets/js/main.b6e60483.js b/assets/js/main.b6e60483.js
new file mode 100644
index 000000000..3769c5539
--- /dev/null
+++ b/assets/js/main.b6e60483.js
@@ -0,0 +1,2 @@
+/*! For license information please see main.b6e60483.js.LICENSE.txt */
+(self.webpackChunk=self.webpackChunk||[]).push([[8792],{102:(e,t,n)=>{"use strict";n.d(t,{dV:()=>m,fM:()=>g,_q:()=>p,ZC:()=>f,Be:()=>h});var r=n(3909),o=n(77387);function a(e){return a=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)},a(e)}var i=n(63662);function s(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(e){}return(s=function(){return!!e})()}function c(e){var t="function"==t [...]
\ No newline at end of file
diff --git a/assets/js/main.b6e60483.js.LICENSE.txt b/assets/js/main.b6e60483.js.LICENSE.txt
new file mode 100644
index 000000000..ae63de0ab
--- /dev/null
+++ b/assets/js/main.b6e60483.js.LICENSE.txt
@@ -0,0 +1,71 @@
+/* NProgress, (c) 2013, 2014 Rico Sta. Cruz - http://ricostacruz.com/nprogress
+ * @license MIT */
+
+/*! Bundled license information:
+
+prismjs/prism.js:
+  (**
+   * Prism: Lightweight, robust, elegant syntax highlighting
+   *
+   * @license MIT <https://opensource.org/licenses/MIT>
+   * @author Lea Verou <https://lea.verou.me>
+   * @namespace
+   * @public
+   *)
+*/
+
+/*!***************************************************
+* mark.js v8.11.1
+* https://markjs.io/
+* Copyright (c) 2014–2018, Julian Kühnel
+* Released under the MIT license https://git.io/vwTVl
+*****************************************************/
+
+/**
+ * @license React
+ * react-dom.production.min.js
+ *
+ * Copyright (c) Facebook, Inc. and its affiliates.
+ *
+ * This source code is licensed under the MIT license found in the
+ * LICENSE file in the root directory of this source tree.
+ */
+
+/**
+ * @license React
+ * react-jsx-runtime.production.min.js
+ *
+ * Copyright (c) Facebook, Inc. and its affiliates.
+ *
+ * This source code is licensed under the MIT license found in the
+ * LICENSE file in the root directory of this source tree.
+ */
+
+/**
+ * @license React
+ * react.production.min.js
+ *
+ * Copyright (c) Facebook, Inc. and its affiliates.
+ *
+ * This source code is licensed under the MIT license found in the
+ * LICENSE file in the root directory of this source tree.
+ */
+
+/**
+ * @license React
+ * scheduler.production.min.js
+ *
+ * Copyright (c) Facebook, Inc. and its affiliates.
+ *
+ * This source code is licensed under the MIT license found in the
+ * LICENSE file in the root directory of this source tree.
+ */
+
+/** @license React v16.13.1
+ * react-is.production.min.js
+ *
+ * Copyright (c) Facebook, Inc. and its affiliates.
+ *
+ * This source code is licensed under the MIT license found in the
+ * LICENSE file in the root directory of this source tree.
+ */
diff --git a/assets/js/main.c51034ff.js b/assets/js/main.c51034ff.js
new file mode 100644
index 000000000..5dc6a1f1f
--- /dev/null
+++ b/assets/js/main.c51034ff.js
@@ -0,0 +1,2 @@
+/*! For license information please see main.c51034ff.js.LICENSE.txt */
+(self.webpackChunk=self.webpackChunk||[]).push([[8792],{102:(e,t,n)=>{"use strict";n.d(t,{dV:()=>m,fM:()=>g,_q:()=>p,ZC:()=>f,Be:()=>h});var r=n(3909),o=n(77387);function a(e){return a=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)},a(e)}var s=n(63662);function i(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(e){}return(i=function(){return!!e})()}function l(e){var t="function"==t [...]
\ No newline at end of file
diff --git a/assets/js/main.c51034ff.js.LICENSE.txt b/assets/js/main.c51034ff.js.LICENSE.txt
new file mode 100644
index 000000000..ae63de0ab
--- /dev/null
+++ b/assets/js/main.c51034ff.js.LICENSE.txt
@@ -0,0 +1,71 @@
+/* NProgress, (c) 2013, 2014 Rico Sta. Cruz - http://ricostacruz.com/nprogress
+ * @license MIT */
+
+/*! Bundled license information:
+
+prismjs/prism.js:
+  (**
+   * Prism: Lightweight, robust, elegant syntax highlighting
+   *
+   * @license MIT <https://opensource.org/licenses/MIT>
+   * @author Lea Verou <https://lea.verou.me>
+   * @namespace
+   * @public
+   *)
+*/
+
+/*!***************************************************
+* mark.js v8.11.1
+* https://markjs.io/
+* Copyright (c) 2014–2018, Julian Kühnel
+* Released under the MIT license https://git.io/vwTVl
+*****************************************************/
+
+/**
+ * @license React
+ * react-dom.production.min.js
+ *
+ * Copyright (c) Facebook, Inc. and its affiliates.
+ *
+ * This source code is licensed under the MIT license found in the
+ * LICENSE file in the root directory of this source tree.
+ */
+
+/**
+ * @license React
+ * react-jsx-runtime.production.min.js
+ *
+ * Copyright (c) Facebook, Inc. and its affiliates.
+ *
+ * This source code is licensed under the MIT license found in the
+ * LICENSE file in the root directory of this source tree.
+ */
+
+/**
+ * @license React
+ * react.production.min.js
+ *
+ * Copyright (c) Facebook, Inc. and its affiliates.
+ *
+ * This source code is licensed under the MIT license found in the
+ * LICENSE file in the root directory of this source tree.
+ */
+
+/**
+ * @license React
+ * scheduler.production.min.js
+ *
+ * Copyright (c) Facebook, Inc. and its affiliates.
+ *
+ * This source code is licensed under the MIT license found in the
+ * LICENSE file in the root directory of this source tree.
+ */
+
+/** @license React v16.13.1
+ * react-is.production.min.js
+ *
+ * Copyright (c) Facebook, Inc. and its affiliates.
+ *
+ * This source code is licensed under the MIT license found in the
+ * LICENSE file in the root directory of this source tree.
+ */
diff --git a/assets/js/runtime~main.8d7dd0d5.js b/assets/js/runtime~main.8d7dd0d5.js
new file mode 100644
index 000000000..71731be8c
--- /dev/null
+++ b/assets/js/runtime~main.8d7dd0d5.js
@@ -0,0 +1 @@
+(()=>{"use strict";var e,a,c,f,d={},b={};function r(e){var a=b[e];if(void 0!==a)return a.exports;var c=b[e]={id:e,loaded:!1,exports:{}};return d[e].call(c.exports,c,c.exports,r),c.loaded=!0,c.exports}r.m=d,r.c=b,e=[],r.O=(a,c,f,d)=>{if(!c){var b=1/0;for(i=0;i<e.length;i++){for(var[c,f,d]=e[i],t=!0,o=0;o<c.length;o++)(!1&d||b>=d)&&Object.keys(r.O).every((e=>r.O[e](c[o])))?c.splice(o--,1):(t=!1,d<b&&(b=d));if(t){e.splice(i--,1);var n=f();void 0!==n&&(a=n)}}return a}d=d||0;for(var i=e.lengt [...]
\ No newline at end of file
diff --git a/assets/js/runtime~main.ea7da916.js b/assets/js/runtime~main.ea7da916.js
new file mode 100644
index 000000000..8bfb89498
--- /dev/null
+++ b/assets/js/runtime~main.ea7da916.js
@@ -0,0 +1 @@
+(()=>{"use strict";var e,a,f,c,d={},b={};function r(e){var a=b[e];if(void 0!==a)return a.exports;var f=b[e]={id:e,loaded:!1,exports:{}};return d[e].call(f.exports,f,f.exports,r),f.loaded=!0,f.exports}r.m=d,r.c=b,e=[],r.O=(a,f,c,d)=>{if(!f){var b=1/0;for(i=0;i<e.length;i++){for(var[f,c,d]=e[i],t=!0,o=0;o<f.length;o++)(!1&d||b>=d)&&Object.keys(r.O).every((e=>r.O[e](f[o])))?f.splice(o--,1):(t=!1,d<b&&(b=d));if(t){e.splice(i--,1);var n=c();void 0!==n&&(a=n)}}return a}d=d||0;for(var i=e.lengt [...]
\ No newline at end of file
diff --git a/blog/index.html b/blog/index.html
index c27fb7aeb..824ef32a1 100644
--- a/blog/index.html
+++ b/blog/index.html
@@ -5,8 +5,8 @@
 <meta name="generator" content="Docusaurus v3.7.0">
 <title data-rh="true">Redirecting... | Apache® Druid</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://druid.apache.org/img/druid_nav.png"><meta data-rh="true" name="twitter:image" content="https://druid.apache.org/img/druid_nav.png"><meta data-rh="true" property="og:url" content="https://druid.apache.org/blog"><meta data- [...]
 <script src="/js/clipboard.min.js"></script><link rel="stylesheet" href="/assets/css/styles.f3140859.css">
-<script src="/assets/js/runtime~main.3e1f3e8c.js" defer="defer"></script>
-<script src="/assets/js/main.b85ce480.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.8d7dd0d5.js" defer="defer"></script>
+<script src="/assets/js/main.c51034ff.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const n=new URLSearchParams(window.location.search).entries();for(var[t,e]of n)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentEle [...]
diff --git a/community/cla/index.html b/community/cla/index.html
index f442eed96..7049fd75b 100644
--- a/community/cla/index.html
+++ b/community/cla/index.html
@@ -5,8 +5,8 @@
 <meta name="generator" content="Docusaurus v3.7.0">
 <title data-rh="true">Druid Contributor License Agreement | Apache® Druid</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://druid.apache.org/img/druid_nav.png"><meta data-rh="true" name="twitter:image" content="https://druid.apache.org/img/druid_nav.png"><meta data-rh="true" property="og:url" content="https://druid.apache. [...]
 <script src="/js/clipboard.min.js"></script><link rel="stylesheet" href="/assets/css/styles.f3140859.css">
-<script src="/assets/js/runtime~main.3e1f3e8c.js" defer="defer"></script>
-<script src="/assets/js/main.b85ce480.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.8d7dd0d5.js" defer="defer"></script>
+<script src="/assets/js/main.c51034ff.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const n=new URLSearchParams(window.location.search).entries();for(var[t,e]of n)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentEle [...]
diff --git a/community/index.html b/community/index.html
index efecf5cdd..3f88b90f6 100644
--- a/community/index.html
+++ b/community/index.html
@@ -5,8 +5,8 @@
 <meta name="generator" content="Docusaurus v3.7.0">
 <title data-rh="true">Apache Druid Community | Apache® Druid</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://druid.apache.org/img/druid_nav.png"><meta data-rh="true" name="twitter:image" content="https://druid.apache.org/img/druid_nav.png"><meta data-rh="true" property="og:url" content="https://druid.apache.org/community [...]
 <script src="/js/clipboard.min.js"></script><link rel="stylesheet" href="/assets/css/styles.f3140859.css">
-<script src="/assets/js/runtime~main.3e1f3e8c.js" defer="defer"></script>
-<script src="/assets/js/main.b85ce480.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.8d7dd0d5.js" defer="defer"></script>
+<script src="/assets/js/main.c51034ff.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const n=new URLSearchParams(window.location.search).entries();for(var[t,e]of n)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentEle [...]
diff --git a/community/join-slack/index.html b/community/join-slack/index.html
index 5778d68d4..50310341a 100644
--- a/community/join-slack/index.html
+++ b/community/join-slack/index.html
@@ -5,8 +5,8 @@
 <meta name="generator" content="Docusaurus v3.7.0">
 <title data-rh="true">Redirecting... | Apache® Druid</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://druid.apache.org/img/druid_nav.png"><meta data-rh="true" name="twitter:image" content="https://druid.apache.org/img/druid_nav.png"><meta data-rh="true" property="og:url" content="https://druid.apache.org/community/join-sl [...]
 <script src="/js/clipboard.min.js"></script><link rel="stylesheet" href="/assets/css/styles.f3140859.css">
-<script src="/assets/js/runtime~main.3e1f3e8c.js" defer="defer"></script>
-<script src="/assets/js/main.b85ce480.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.8d7dd0d5.js" defer="defer"></script>
+<script src="/assets/js/main.c51034ff.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const n=new URLSearchParams(window.location.search).entries();for(var[t,e]of n)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentEle [...]
diff --git a/docs/38.0.0/api-reference.html/index.html b/docs/38.0.0/api-reference.html/index.html
new file mode 100644
index 000000000..3837ab0d3
--- /dev/null
+++ b/docs/38.0.0/api-reference.html/index.html
@@ -0,0 +1,11 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <meta charset="UTF-8">
+    <meta http-equiv="refresh" content="0; url=/docs/38.0.0/api-reference/">
+    <link rel="canonical" href="/docs/38.0.0/api-reference/" />
+  </head>
+  <script>
+    window.location.href = '/docs/38.0.0/api-reference/' + window.location.search + window.location.hash;
+  </script>
+</html>
\ No newline at end of file
diff --git a/docs/38.0.0/api-reference/automatic-compaction-api.html/index.html b/docs/38.0.0/api-reference/automatic-compaction-api.html/index.html
new file mode 100644
index 000000000..d1e050048
--- /dev/null
+++ b/docs/38.0.0/api-reference/automatic-compaction-api.html/index.html
@@ -0,0 +1,11 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <meta charset="UTF-8">
+    <meta http-equiv="refresh" content="0; url=/docs/38.0.0/api-reference/automatic-compaction-api">
+    <link rel="canonical" href="/docs/38.0.0/api-reference/automatic-compaction-api" />
+  </head>
+  <script>
+    window.location.href = '/docs/38.0.0/api-reference/automatic-compaction-api' + window.location.search + window.location.hash;
+  </script>
+</html>
\ No newline at end of file
diff --git a/docs/latest/api-reference/automatic-compaction-api/index.html b/docs/38.0.0/api-reference/automatic-compaction-api/index.html
similarity index 98%
copy from docs/latest/api-reference/automatic-compaction-api/index.html
copy to docs/38.0.0/api-reference/automatic-compaction-api/index.html
index 814dc0618..f698768eb 100644
--- a/docs/latest/api-reference/automatic-compaction-api/index.html
+++ b/docs/38.0.0/api-reference/automatic-compaction-api/index.html
@@ -3,19 +3,19 @@
 <head>
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.7.0">
-<title data-rh="true">Automatic compaction API | Apache® Druid</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://druid.apache.org/img/druid_nav.png"><meta data-rh="true" name="twitter:image" content="https://druid.apache.org/img/druid_nav.png"><meta data-rh="true" property="og:url" content="https://druid.apache.org/docs/la [...]
+<title data-rh="true">Automatic compaction API | Apache® Druid</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://druid.apache.org/img/druid_nav.png"><meta data-rh="true" name="twitter:image" content="https://druid.apache.org/img/druid_nav.png"><meta data-rh="true" property="og:url" content="https://druid.apache.org/docs/38 [...]
 <script src="/js/clipboard.min.js"></script><link rel="stylesheet" href="/assets/css/styles.f3140859.css">
-<script src="/assets/js/runtime~main.3e1f3e8c.js" defer="defer"></script>
-<script src="/assets/js/main.b85ce480.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.ea7da916.js" defer="defer"></script>
+<script src="/assets/js/main.b6e60483.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
-<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const n=new URLSearchParams(window.location.search).entries();for(var[t,e]of n)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentEle [...]
-<div class="theme-admonition theme-admonition-info admonition_xJq3 alert alert--info"><div class="admonitionHeading_Gvgb"><span class="admonitionIcon_Rf37"><svg viewBox="0 0 14 16"><path fill-rule="evenodd" d="M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"></path></svg></span>Experimental</div><div class="admonitionContent_BuS1"><p>Instead of the automatic  [...]
+<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const n=new URLSearchParams(window.location.search).entries();for(var[t,e]of n)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentEle [...]
+<div class="theme-admonition theme-admonition-info admonition_xJq3 alert alert--info"><div class="admonitionHeading_Gvgb"><span class="admonitionIcon_Rf37"><svg viewBox="0 0 14 16"><path fill-rule="evenodd" d="M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"></path></svg></span>Experimental</div><div class="admonitionContent_BuS1"><p>Instead of the automatic  [...]
 <p>In this topic, <code>http://ROUTER_IP:ROUTER_PORT</code> is a placeholder for your Router service address and port. Replace it with the information for your deployment. For example, use <code>http://localhost:8888</code> for quickstart deployments.</p>
 <h2 class="anchor anchorWithStickyNavbar_LWe7" id="manage-automatic-compaction">Manage automatic compaction<a href="#manage-automatic-compaction" class="hash-link" aria-label="Direct link to Manage automatic compaction" title="Direct link to Manage automatic compaction">​</a></h2>
 <h3 class="anchor anchorWithStickyNavbar_LWe7" id="create-or-update-automatic-compaction-configuration">Create or update automatic compaction configuration<a href="#create-or-update-automatic-compaction-configuration" class="hash-link" aria-label="Direct link to Create or update automatic compaction configuration" title="Direct link to Create or update automatic compaction configuration">​</a></h3>
 <p>Creates or updates the automatic compaction configuration for a datasource. Pass the automatic compaction as a JSON object in the request body.</p>
-<p>The automatic compaction configuration requires only the <code>dataSource</code> property. Druid fills all other properties with default values if not specified. See <a href="/docs/latest/configuration/#automatic-compaction-dynamic-configuration">Automatic compaction dynamic configuration</a> for configuration details.</p>
+<p>The automatic compaction configuration requires only the <code>dataSource</code> property. Druid fills all other properties with default values if not specified. See <a href="/docs/38.0.0/configuration/#automatic-compaction-dynamic-configuration">Automatic compaction dynamic configuration</a> for configuration details.</p>
 <p>Note that this endpoint returns an HTTP <code>200 OK</code> message code even if the datasource name does not exist.</p>
 <h4 class="anchor anchorWithStickyNavbar_LWe7" id="url">URL<a href="#url" class="hash-link" aria-label="Direct link to URL" title="Direct link to URL">​</a></h4>
 <p><code>POST</code> <code>/druid/coordinator/v1/config/compaction</code></p>
@@ -256,7 +256,7 @@ This includes all the fields listed in <a href="#update-cluster-level-compaction
 <details class="details_lb9f alert alert--info details_b_Ee" data-collapsed="true"><summary>View the response</summary><div><div class="collapsibleContent_i85q"><div class="language-json codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#bfc7d5;--prism-background-color:#292d3e"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-json codeBlock_bY9V thin-scrollbar" style="color:#bfc7d5;background-color:#292d3e"><code class="codeBlockLines_e6Vv"><sp [...]
 <h3 class="anchor anchorWithStickyNavbar_LWe7" id="create-or-update-automatic-compaction-configuration-for-a-datasource">Create or update automatic compaction configuration for a datasource<a href="#create-or-update-automatic-compaction-configuration-for-a-datasource" class="hash-link" aria-label="Direct link to Create or update automatic compaction configuration for a datasource" title="Direct link to Create or update automatic compaction configuration for a datasource">​</a></h3>
 <p>Creates or updates the automatic compaction configuration for a datasource. Pass the automatic compaction as a JSON object in the request body.</p>
-<p>The automatic compaction configuration requires only the <code>dataSource</code> property. Druid fills all other properties with default values if not specified. See <a href="/docs/latest/configuration/#automatic-compaction-dynamic-configuration">Automatic compaction dynamic configuration</a> for configuration details.</p>
+<p>The automatic compaction configuration requires only the <code>dataSource</code> property. Druid fills all other properties with default values if not specified. See <a href="/docs/38.0.0/configuration/#automatic-compaction-dynamic-configuration">Automatic compaction dynamic configuration</a> for configuration details.</p>
 <p>Note that this endpoint returns an HTTP <code>200 OK</code> message code even if the datasource name does not exist.</p>
 <h4 class="anchor anchorWithStickyNavbar_LWe7" id="url-12">URL<a href="#url-12" class="hash-link" aria-label="Direct link to URL" title="Direct link to URL">​</a></h4>
 <p><code>POST</code> <code>/druid/indexer/v1/compaction/config/datasources/wikipedia_hour</code></p>
@@ -309,6 +309,6 @@ The response payload is in the same format as <a href="#compaction-status-respon
 <h4 class="anchor anchorWithStickyNavbar_LWe7" id="sample-request-15">Sample request<a href="#sample-request-15" class="hash-link" aria-label="Direct link to Sample request" title="Direct link to Sample request">​</a></h4>
 <div class="tabs-container tabList__CuJ"><ul role="tablist" aria-orientation="horizontal" class="tabs"><li role="tab" tabindex="0" aria-selected="true" class="tabs__item tabItem_LNqP tabs__item--active">cURL</li><li role="tab" tabindex="-1" aria-selected="false" class="tabs__item tabItem_LNqP">HTTP</li></ul><div class="margin-top--md"><div role="tabpanel" class="tabItem_Ymn6"><div class="language-shell codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#bfc7d5;--prism-backgro [...]
 <h4 class="anchor anchorWithStickyNavbar_LWe7" id="sample-response-15">Sample response<a href="#sample-response-15" class="hash-link" aria-label="Direct link to Sample response" title="Direct link to Sample response">​</a></h4>
-<details class="details_lb9f alert alert--info details_b_Ee" data-collapsed="true"><summary>View the response</summary><div><div class="collapsibleContent_i85q"><div class="language-json codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#bfc7d5;--prism-background-color:#292d3e"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-json codeBlock_bY9V thin-scrollbar" style="color:#bfc7d5;background-color:#292d3e"><code class="codeBlockLines_e6Vv"><sp [...]
+<details class="details_lb9f alert alert--info details_b_Ee" data-collapsed="true"><summary>View the response</summary><div><div class="collapsibleContent_i85q"><div class="language-json codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#bfc7d5;--prism-background-color:#292d3e"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-json codeBlock_bY9V thin-scrollbar" style="color:#bfc7d5;background-color:#292d3e"><code class="codeBlockLines_e6Vv"><sp [...]
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/38.0.0/api-reference/data-management-api.html/index.html b/docs/38.0.0/api-reference/data-management-api.html/index.html
new file mode 100644
index 000000000..8302a0a3a
--- /dev/null
+++ b/docs/38.0.0/api-reference/data-management-api.html/index.html
@@ -0,0 +1,11 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <meta charset="UTF-8">
+    <meta http-equiv="refresh" content="0; url=/docs/38.0.0/api-reference/data-management-api">
+    <link rel="canonical" href="/docs/38.0.0/api-reference/data-management-api" />
+  </head>
+  <script>
+    window.location.href = '/docs/38.0.0/api-reference/data-management-api' + window.location.search + window.location.hash;
+  </script>
+</html>
\ No newline at end of file
diff --git a/docs/latest/api-reference/data-management-api/index.html b/docs/38.0.0/api-reference/data-management-api/index.html
similarity index 96%
copy from docs/latest/api-reference/data-management-api/index.html
copy to docs/38.0.0/api-reference/data-management-api/index.html
index 98072b84b..149519656 100644
--- a/docs/latest/api-reference/data-management-api/index.html
+++ b/docs/38.0.0/api-reference/data-management-api/index.html
@@ -3,13 +3,13 @@
 <head>
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.7.0">
-<title data-rh="true">Data management API | Apache® Druid</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://druid.apache.org/img/druid_nav.png"><meta data-rh="true" name="twitter:image" content="https://druid.apache.org/img/druid_nav.png"><meta data-rh="true" property="og:url" content="https://druid.apache.org/docs/latest/ [...]
+<title data-rh="true">Data management API | Apache® Druid</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://druid.apache.org/img/druid_nav.png"><meta data-rh="true" name="twitter:image" content="https://druid.apache.org/img/druid_nav.png"><meta data-rh="true" property="og:url" content="https://druid.apache.org/docs/38.0.0/ [...]
 <script src="/js/clipboard.min.js"></script><link rel="stylesheet" href="/assets/css/styles.f3140859.css">
-<script src="/assets/js/runtime~main.3e1f3e8c.js" defer="defer"></script>
-<script src="/assets/js/main.b85ce480.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.ea7da916.js" defer="defer"></script>
+<script src="/assets/js/main.b6e60483.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
-<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const n=new URLSearchParams(window.location.search).entries();for(var[t,e]of n)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentEle [...]
+<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const n=new URLSearchParams(window.location.search).entries();for(var[t,e]of n)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentEle [...]
 This includes information on how to mark segments as used or unused and delete them from Druid.</p>
 <p>In this topic, <code>http://ROUTER_IP:ROUTER_PORT</code> is a placeholder for your Router service address and port.
 Replace it with the information for your deployment.
@@ -19,8 +19,8 @@ For example, use <code>http://localhost:8888</code> for quickstart deployments.<
 <li>Do not use these APIs while an indexing task or kill task is in progress for the same datasource and interval.</li>
 </ul></div></div>
 <h2 class="anchor anchorWithStickyNavbar_LWe7" id="segment-management">Segment management<a href="#segment-management" class="hash-link" aria-label="Direct link to Segment management" title="Direct link to Segment management">​</a></h2>
-<p>You can mark segments as used by sending POST requests to the datasource, but the Coordinator may subsequently mark segments as unused if they meet any configured <a href="/docs/latest/operations/rule-configuration#drop-rules">drop rules</a>.
-Even if these API requests update segments to used, you still need to configure a <a href="/docs/latest/operations/rule-configuration#load-rules">load rule</a> to load them onto Historical processes.</p>
+<p>You can mark segments as used by sending POST requests to the datasource, but the Coordinator may subsequently mark segments as unused if they meet any configured <a href="/docs/38.0.0/operations/rule-configuration#drop-rules">drop rules</a>.
+Even if these API requests update segments to used, you still need to configure a <a href="/docs/38.0.0/operations/rule-configuration#load-rules">load rule</a> to load them onto Historical processes.</p>
 <p>When you use these APIs concurrently with an indexing task or a kill task, the behavior is undefined.
 Druid terminates some segments and marks others as used.
 Furthermore, it is possible that all segments could be unused, yet an indexing task might still be able to read data from these segments and complete successfully.</p>
@@ -28,8 +28,8 @@ Furthermore, it is possible that all segments could be unused, yet an indexing t
 This makes it the single source of truth for segment metadata, thus ensuring a consistent view across the Druid cluster and allowing the Overlord to cache metadata to improve performance.</p>
 <h3 class="anchor anchorWithStickyNavbar_LWe7" id="segment-ids">Segment IDs<a href="#segment-ids" class="hash-link" aria-label="Direct link to Segment IDs" title="Direct link to Segment IDs">​</a></h3>
 <p>You must provide segment IDs when using many of the endpoints described in this topic.
-For information on segment IDs, see <a href="/docs/latest/design/segments#segment-identification">Segment identification</a>.
-For information on finding segment IDs in the web console, see <a href="/docs/latest/operations/web-console#segments">Segments</a>.</p>
+For information on segment IDs, see <a href="/docs/38.0.0/design/segments#segment-identification">Segment identification</a>.
+For information on finding segment IDs in the web console, see <a href="/docs/38.0.0/operations/web-console#segments">Segments</a>.</p>
 <h3 class="anchor anchorWithStickyNavbar_LWe7" id="mark-a-single-segment-unused">Mark a single segment unused<a href="#mark-a-single-segment-unused" class="hash-link" aria-label="Direct link to Mark a single segment unused" title="Direct link to Mark a single segment unused">​</a></h3>
 <p>Marks the state of a segment as unused, using the segment ID.
 This is a &quot;soft delete&quot; of the segment from Historicals.
@@ -137,7 +137,7 @@ Check the response payload to get the number of segments actually updated.</p>
 <details class="details_lb9f alert alert--info details_b_Ee" data-collapsed="true"><summary>View the response</summary><div><div class="collapsibleContent_i85q"><div class="language-json codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#bfc7d5;--prism-background-color:#292d3e"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-json codeBlock_bY9V thin-scrollbar" style="color:#bfc7d5;background-color:#292d3e"><code class="codeBlockLines_e6Vv"><sp [...]
 <h2 class="anchor anchorWithStickyNavbar_LWe7" id="segment-deletion">Segment deletion<a href="#segment-deletion" class="hash-link" aria-label="Direct link to Segment deletion" title="Direct link to Segment deletion">​</a></h2>
 <h3 class="anchor anchorWithStickyNavbar_LWe7" id="permanently-delete-segments">Permanently delete segments<a href="#permanently-delete-segments" class="hash-link" aria-label="Direct link to Permanently delete segments" title="Direct link to Permanently delete segments">​</a></h3>
-<p>The DELETE endpoint sends a <a href="/docs/latest/ingestion/tasks">kill task</a> for a given interval and datasource. The interval value is an ISO 8601 string delimited by <code>_</code>. This request permanently deletes all metadata for unused segments and removes them from deep storage.</p>
+<p>The DELETE endpoint sends a <a href="/docs/38.0.0/ingestion/tasks">kill task</a> for a given interval and datasource. The interval value is an ISO 8601 string delimited by <code>_</code>. This request permanently deletes all metadata for unused segments and removes them from deep storage.</p>
 <p>Note that this endpoint returns an HTTP <code>200 OK</code> response code even if the datasource doesn&#x27;t exist.</p>
 <p>This endpoint supersedes the deprecated endpoint: <code>DELETE /druid/coordinator/v1/datasources/{datasource}?kill=true&amp;interval={interval}</code></p>
 <h4 class="anchor anchorWithStickyNavbar_LWe7" id="url-6">URL<a href="#url-6" class="hash-link" aria-label="Direct link to URL" title="Direct link to URL">​</a></h4>
@@ -149,6 +149,6 @@ Check the response payload to get the number of segments actually updated.</p>
 <p>The following example sends a kill task to permanently delete segments in the datasource <code>wikipedia_hour</code> from the interval <code>2015-09-12</code> to <code>2015-09-13</code>.</p>
 <div class="tabs-container tabList__CuJ"><ul role="tablist" aria-orientation="horizontal" class="tabs"><li role="tab" tabindex="0" aria-selected="true" class="tabs__item tabItem_LNqP tabs__item--active">cURL</li><li role="tab" tabindex="-1" aria-selected="false" class="tabs__item tabItem_LNqP">HTTP</li></ul><div class="margin-top--md"><div role="tabpanel" class="tabItem_Ymn6"><div class="language-shell codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#bfc7d5;--prism-backgro [...]
 <h4 class="anchor anchorWithStickyNavbar_LWe7" id="sample-response-6">Sample response<a href="#sample-response-6" class="hash-link" aria-label="Direct link to Sample response" title="Direct link to Sample response">​</a></h4>
-<p>A successful request returns an HTTP <code>200 OK</code> and an empty response body.</p></div></article><nav class="pagination-nav docusaurus-mt-lg" aria-label="Docs pages"><a class="pagination-nav__link pagination-nav__link--prev" href="/docs/latest/api-reference/retention-rules-api"><div class="pagination-nav__sublabel">Previous</div><div class="pagination-nav__label">Retention rules</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/docs/latest/api-reference [...]
+<p>A successful request returns an HTTP <code>200 OK</code> and an empty response body.</p></div></article><nav class="pagination-nav docusaurus-mt-lg" aria-label="Docs pages"><a class="pagination-nav__link pagination-nav__link--prev" href="/docs/38.0.0/api-reference/retention-rules-api"><div class="pagination-nav__sublabel">Previous</div><div class="pagination-nav__label">Retention rules</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/docs/38.0.0/api-reference [...]
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/38.0.0/api-reference/dynamic-configuration-api.html/index.html b/docs/38.0.0/api-reference/dynamic-configuration-api.html/index.html
new file mode 100644
index 000000000..f4bf7b407
--- /dev/null
+++ b/docs/38.0.0/api-reference/dynamic-configuration-api.html/index.html
@@ -0,0 +1,11 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <meta charset="UTF-8">
+    <meta http-equiv="refresh" content="0; url=/docs/38.0.0/api-reference/dynamic-configuration-api">
+    <link rel="canonical" href="/docs/38.0.0/api-reference/dynamic-configuration-api" />
+  </head>
+  <script>
+    window.location.href = '/docs/38.0.0/api-reference/dynamic-configuration-api' + window.location.search + window.location.hash;
+  </script>
+</html>
\ No newline at end of file
diff --git a/docs/latest/api-reference/dynamic-configuration-api/index.html b/docs/38.0.0/api-reference/dynamic-configuration-api/index.html
similarity index 84%
copy from docs/latest/api-reference/dynamic-configuration-api/index.html
copy to docs/38.0.0/api-reference/dynamic-configuration-api/index.html
index 863442194..7c8f126df 100644
--- a/docs/latest/api-reference/dynamic-configuration-api/index.html
+++ b/docs/38.0.0/api-reference/dynamic-configuration-api/index.html
@@ -3,19 +3,19 @@
 <head>
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.7.0">
-<title data-rh="true">Dynamic configuration API | Apache® Druid</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://druid.apache.org/img/druid_nav.png"><meta data-rh="true" name="twitter:image" content="https://druid.apache.org/img/druid_nav.png"><meta data-rh="true" property="og:url" content="https://druid.apache.org/docs/l [...]
+<title data-rh="true">Dynamic configuration API | Apache® Druid</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://druid.apache.org/img/druid_nav.png"><meta data-rh="true" name="twitter:image" content="https://druid.apache.org/img/druid_nav.png"><meta data-rh="true" property="og:url" content="https://druid.apache.org/docs/3 [...]
 <script src="/js/clipboard.min.js"></script><link rel="stylesheet" href="/assets/css/styles.f3140859.css">
-<script src="/assets/js/runtime~main.3e1f3e8c.js" defer="defer"></script>
-<script src="/assets/js/main.b85ce480.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.ea7da916.js" defer="defer"></script>
+<script src="/assets/js/main.b6e60483.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
-<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const n=new URLSearchParams(window.location.search).entries();for(var[t,e]of n)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentEle [...]
+<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const n=new URLSearchParams(window.location.search).entries();for(var[t,e]of n)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentEle [...]
 <p>In this topic, <code>http://ROUTER_IP:ROUTER_PORT</code> is a placeholder for your Router service address and port.
 Replace it with the information for your deployment.
 For example, use <code>http://localhost:8888</code> for quickstart deployments.</p>
 <h2 class="anchor anchorWithStickyNavbar_LWe7" id="coordinator-dynamic-configuration">Coordinator dynamic configuration<a href="#coordinator-dynamic-configuration" class="hash-link" aria-label="Direct link to Coordinator dynamic configuration" title="Direct link to Coordinator dynamic configuration">​</a></h2>
 <p>The Coordinator has dynamic configurations to tune certain behavior on the fly, without requiring a service restart.
-For information on the supported properties, see <a href="/docs/latest/configuration/#dynamic-configuration">Coordinator dynamic configuration</a>.</p>
+For information on the supported properties, see <a href="/docs/38.0.0/configuration/#dynamic-configuration">Coordinator dynamic configuration</a>.</p>
 <h3 class="anchor anchorWithStickyNavbar_LWe7" id="get-dynamic-configuration">Get dynamic configuration<a href="#get-dynamic-configuration" class="hash-link" aria-label="Direct link to Get dynamic configuration" title="Direct link to Get dynamic configuration">​</a></h3>
 <p>Retrieves the current Coordinator dynamic configuration. Returns a JSON object with the dynamic configuration properties.</p>
 <h4 class="anchor anchorWithStickyNavbar_LWe7" id="url">URL<a href="#url" class="hash-link" aria-label="Direct link to URL" title="Direct link to URL">​</a></h4>
@@ -26,10 +26,10 @@ For information on the supported properties, see <a href="/docs/latest/configura
 <h4 class="anchor anchorWithStickyNavbar_LWe7" id="sample-request">Sample request<a href="#sample-request" class="hash-link" aria-label="Direct link to Sample request" title="Direct link to Sample request">​</a></h4>
 <div class="tabs-container tabList__CuJ"><ul role="tablist" aria-orientation="horizontal" class="tabs"><li role="tab" tabindex="0" aria-selected="true" class="tabs__item tabItem_LNqP tabs__item--active">cURL</li><li role="tab" tabindex="-1" aria-selected="false" class="tabs__item tabItem_LNqP">HTTP</li></ul><div class="margin-top--md"><div role="tabpanel" class="tabItem_Ymn6"><div class="language-shell codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#bfc7d5;--prism-backgro [...]
 <h4 class="anchor anchorWithStickyNavbar_LWe7" id="sample-response">Sample response<a href="#sample-response" class="hash-link" aria-label="Direct link to Sample response" title="Direct link to Sample response">​</a></h4>
-<details class="details_lb9f alert alert--info details_b_Ee" data-collapsed="true"><summary>View the response</summary><div><div class="collapsibleContent_i85q"><div class="language-json codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#bfc7d5;--prism-background-color:#292d3e"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-json codeBlock_bY9V thin-scrollbar" style="color:#bfc7d5;background-color:#292d3e"><code class="codeBlockLines_e6Vv"><sp [...]
+<details class="details_lb9f alert alert--info details_b_Ee" data-collapsed="true"><summary>View the response</summary><div><div class="collapsibleContent_i85q"><div class="language-json codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#bfc7d5;--prism-background-color:#292d3e"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-json codeBlock_bY9V thin-scrollbar" style="color:#bfc7d5;background-color:#292d3e"><code class="codeBlockLines_e6Vv"><sp [...]
 <h3 class="anchor anchorWithStickyNavbar_LWe7" id="update-dynamic-configuration">Update dynamic configuration<a href="#update-dynamic-configuration" class="hash-link" aria-label="Direct link to Update dynamic configuration" title="Direct link to Update dynamic configuration">​</a></h3>
 <p>Submits a JSON-based dynamic configuration spec to the Coordinator.
-For information on the supported properties, see <a href="/docs/latest/configuration/#dynamic-configuration">Dynamic configuration</a>.</p>
+For information on the supported properties, see <a href="/docs/38.0.0/configuration/#dynamic-configuration">Dynamic configuration</a>.</p>
 <h4 class="anchor anchorWithStickyNavbar_LWe7" id="url-1">URL<a href="#url-1" class="hash-link" aria-label="Direct link to URL" title="Direct link to URL">​</a></h4>
 <p><code>POST</code> <code>/druid/coordinator/v1/config</code></p>
 <h4 class="anchor anchorWithStickyNavbar_LWe7" id="header-parameters">Header parameters<a href="#header-parameters" class="hash-link" aria-label="Direct link to Header parameters" title="Direct link to Header parameters">​</a></h4>
@@ -105,7 +105,7 @@ setting is critical and must always be applied, use the equivalent static runtim
 <h4 class="anchor anchorWithStickyNavbar_LWe7" id="sample-request-3">Sample request<a href="#sample-request-3" class="hash-link" aria-label="Direct link to Sample request" title="Direct link to Sample request">​</a></h4>
 <div class="tabs-container tabList__CuJ"><ul role="tablist" aria-orientation="horizontal" class="tabs"><li role="tab" tabindex="0" aria-selected="true" class="tabs__item tabItem_LNqP tabs__item--active">cURL</li><li role="tab" tabindex="-1" aria-selected="false" class="tabs__item tabItem_LNqP">HTTP</li></ul><div class="margin-top--md"><div role="tabpanel" class="tabItem_Ymn6"><div class="language-shell codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#bfc7d5;--prism-backgro [...]
 <h4 class="anchor anchorWithStickyNavbar_LWe7" id="sample-response-3">Sample response<a href="#sample-response-3" class="hash-link" aria-label="Direct link to Sample response" title="Direct link to Sample response">​</a></h4>
-<details class="details_lb9f alert alert--info details_b_Ee" data-collapsed="true"><summary>View the response</summary><div><div class="collapsibleContent_i85q"><div class="language-json codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#bfc7d5;--prism-background-color:#292d3e"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-json codeBlock_bY9V thin-scrollbar" style="color:#bfc7d5;background-color:#292d3e"><code class="codeBlockLines_e6Vv"><sp [...]
+<details class="details_lb9f alert alert--info details_b_Ee" data-collapsed="true"><summary>View the response</summary><div><div class="collapsibleContent_i85q"><div class="language-json codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#bfc7d5;--prism-background-color:#292d3e"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-json codeBlock_bY9V thin-scrollbar" style="color:#bfc7d5;background-color:#292d3e"><code class="codeBlockLines_e6Vv"><sp [...]
 <h3 class="anchor anchorWithStickyNavbar_LWe7" id="update-broker-dynamic-configuration">Update broker dynamic configuration<a href="#update-broker-dynamic-configuration" class="hash-link" aria-label="Direct link to Update broker dynamic configuration" title="Direct link to Update broker dynamic configuration">​</a></h3>
 <p>Updates the Broker dynamic configuration.</p>
 <h4 class="anchor anchorWithStickyNavbar_LWe7" id="url-4">URL<a href="#url-4" class="hash-link" aria-label="Direct link to URL" title="Direct link to URL">​</a></h4>
@@ -132,24 +132,32 @@ setting is critical and must always be applied, use the equivalent static runtim
 <div class="tabs-container tabList__CuJ"><ul role="tablist" aria-orientation="horizontal" class="tabs"><li role="tab" tabindex="0" aria-selected="true" class="tabs__item tabItem_LNqP tabs__item--active">200 SUCCESS</li></ul><div class="margin-top--md"><div role="tabpanel" class="tabItem_Ymn6"><p><em>Successfully updated configuration</em></p></div></div></div>
 <hr>
 <h4 class="anchor anchorWithStickyNavbar_LWe7" id="sample-request-4">Sample request<a href="#sample-request-4" class="hash-link" aria-label="Direct link to Sample request" title="Direct link to Sample request">​</a></h4>
-<div class="tabs-container tabList__CuJ"><ul role="tablist" aria-orientation="horizontal" class="tabs"><li role="tab" tabindex="0" aria-selected="true" class="tabs__item tabItem_LNqP tabs__item--active">cURL</li><li role="tab" tabindex="-1" aria-selected="false" class="tabs__item tabItem_LNqP">HTTP</li></ul><div class="margin-top--md"><div role="tabpanel" class="tabItem_Ymn6"><div class="language-shell codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#bfc7d5;--prism-backgro [...]
+<div class="tabs-container tabList__CuJ"><ul role="tablist" aria-orientation="horizontal" class="tabs"><li role="tab" tabindex="0" aria-selected="true" class="tabs__item tabItem_LNqP tabs__item--active">cURL</li><li role="tab" tabindex="-1" aria-selected="false" class="tabs__item tabItem_LNqP">HTTP</li></ul><div class="margin-top--md"><div role="tabpanel" class="tabItem_Ymn6"><div class="language-shell codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#bfc7d5;--prism-backgro [...]
 <h4 class="anchor anchorWithStickyNavbar_LWe7" id="sample-response-4">Sample response<a href="#sample-response-4" class="hash-link" aria-label="Direct link to Sample response" title="Direct link to Sample response">​</a></h4>
 <p>A successful request returns an HTTP <code>200 OK</code> message code and an empty response body.</p>
 <h3 class="anchor anchorWithStickyNavbar_LWe7" id="broker-dynamic-configuration-properties">Broker dynamic configuration properties<a href="#broker-dynamic-configuration-properties" class="hash-link" aria-label="Direct link to Broker dynamic configuration properties" title="Direct link to Broker dynamic configuration properties">​</a></h3>
 <p>The following table shows the dynamic configuration properties for the Broker.</p>
-<table><thead><tr><th>Property</th><th>Description</th><th>Default</th></tr></thead><tbody><tr><td><code>queryBlocklist</code></td><td>List of rules to block queries based on datasource, query type, and/or query context parameters. Each rule defines criteria that are combined with AND logic. Blocked queries return an HTTP 403 error. See <a href="#query-blocklist-rules">Query blocklist rules</a> for details.</td><td>none</td></tr><tr><td><code>queryContext</code></td><td>Map of default qu [...]
+<table><thead><tr><th>Property</th><th>Description</th><th>Default</th></tr></thead><tbody><tr><td><code>queryBlocklist</code></td><td>List of rules to block queries based on datasource, query type, and/or query context parameters. Each rule defines criteria that are combined with AND logic. Blocked queries return an HTTP 403 error. See <a href="#query-blocklist-rules">Query blocklist rules</a> for details.</td><td>none</td></tr><tr><td><code>queryContext</code></td><td>Map of default qu [...]
 <h4 class="anchor anchorWithStickyNavbar_LWe7" id="query-blocklist-rules">Query blocklist rules<a href="#query-blocklist-rules" class="hash-link" aria-label="Direct link to Query blocklist rules" title="Direct link to Query blocklist rules">​</a></h4>
 <p>Query blocklist rules allow you to block specific queries based on datasource, query type, and/or query context parameters. This feature is useful for preventing expensive or problematic queries from impacting cluster performance.</p>
-<p>Each rule in the <code>queryBlocklist</code> array is a JSON object with the following properties:</p>
-<table><thead><tr><th>Property</th><th>Description</th><th>Required</th><th>Default</th></tr></thead><tbody><tr><td><code>ruleName</code></td><td>Unique name identifying this blocklist rule. Used in error messages when queries are blocked.</td><td>Yes</td><td>N/A</td></tr><tr><td><code>dataSources</code></td><td>List of datasource names to match. A query matches if it references any datasource in this list.</td><td>No</td><td>Matches all datasources</td></tr><tr><td><code>queryTypes</cod [...]
-<p><strong>Rule matching behavior:</strong></p>
+<p>Each rule in the <code>queryBlocklist</code> array is a JSON object. The <code>type</code> field selects the rule implementation. If omitted, it defaults to <code>&quot;default&quot;</code>. A query is blocked if it matches ANY rule in the blocklist (OR logic between rules).</p>
+<blockquote>
+<p><strong>Note:</strong> The <code>&quot;type&quot;</code> field is not required for <code>&quot;default&quot;</code> rules (existing configs without it continue to work), but including it explicitly is recommended for clarity.</p>
+</blockquote>
+<h5 class="anchor anchorWithStickyNavbar_LWe7" id="default-type"><code>default</code> type<a href="#default-type" class="hash-link" aria-label="Direct link to default-type" title="Direct link to default-type">​</a></h5>
+<p>The built-in rule type. Blocks queries by matching on datasource, query type, and/or query context parameters.</p>
+<table><thead><tr><th>Property</th><th>Description</th><th>Required</th><th>Default</th></tr></thead><tbody><tr><td><code>type</code></td><td>Rule type identifier. Not required — rules without a <code>&quot;type&quot;</code> field are treated as <code>&quot;default&quot;</code> for backwards compatibility with existing configurations.</td><td>No</td><td><code>&quot;default&quot;</code></td></tr><tr><td><code>ruleName</code></td><td>Unique name identifying this blocklist rule. Used in err [...]
+<p><strong>Matching behavior:</strong></p>
 <ul>
 <li>A query must match ALL specified criteria within a rule (AND logic) to be blocked by that rule</li>
-<li>If any criterion is omitted, empty or null, it matches everything (e.g., omitting <code>queryTypes</code> or setting it to null matches all query types)</li>
+<li>If any criterion is omitted, empty, or null, it matches everything (e.g., omitting <code>queryTypes</code> or setting it to null matches all query types)</li>
 <li>For context matching: if a rule specifies context parameters, queries with missing or null values for those keys will not match</li>
 <li>At least one criterion must be specified per rule to prevent accidentally blocking all queries</li>
-<li>A query is blocked if it matches ANY rule in the blocklist (OR logic between rules)</li>
 </ul>
+<h5 class="anchor anchorWithStickyNavbar_LWe7" id="custom-types-extensions">Custom types (extensions)<a href="#custom-types-extensions" class="hash-link" aria-label="Direct link to Custom types (extensions)" title="Direct link to Custom types (extensions)">​</a></h5>
+<p>Extensions can register additional rule types by adding Jackson subtypes to the <code>QueryBlocklistRule</code> interface. A custom rule is selected by setting <code>&quot;type&quot;</code> to its registered name:</p>
+<div class="language-json codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#bfc7d5;--prism-background-color:#292d3e"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-json codeBlock_bY9V thin-scrollbar" style="color:#bfc7d5;background-color:#292d3e"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#bfc7d5"><span class="token punctuation" style="color:rgb(199, 146, 234)">{</span><span class="token plain"></span><br></span> [...]
+<p>Custom types define their own matching semantics — they may use different criteria and logic than the <code>default</code> type described above. If a rule references a type whose extension is not loaded, deserialization fails with an error rather than silently falling back to the default type.</p>
 <p><strong>Error response:</strong></p>
 <p>When a query is blocked, the Broker returns an HTTP 403 error with a message indicating the query ID and the rule that blocked it:</p>
 <div class="language-json codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#bfc7d5;--prism-background-color:#292d3e"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-json codeBlock_bY9V thin-scrollbar" style="color:#bfc7d5;background-color:#292d3e"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#bfc7d5"><span class="token punctuation" style="color:rgb(199, 146, 234)">{</span><span class="token plain"></span><br></span> [...]
@@ -200,10 +208,10 @@ To avoid this, configure the same timeout for all datasources involved in such q
 <h4 class="anchor anchorWithStickyNavbar_LWe7" id="sample-request-5">Sample request<a href="#sample-request-5" class="hash-link" aria-label="Direct link to Sample request" title="Direct link to Sample request">​</a></h4>
 <div class="tabs-container tabList__CuJ"><ul role="tablist" aria-orientation="horizontal" class="tabs"><li role="tab" tabindex="0" aria-selected="true" class="tabs__item tabItem_LNqP tabs__item--active">cURL</li><li role="tab" tabindex="-1" aria-selected="false" class="tabs__item tabItem_LNqP">HTTP</li></ul><div class="margin-top--md"><div role="tabpanel" class="tabItem_Ymn6"><div class="language-shell codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#bfc7d5;--prism-backgro [...]
 <h4 class="anchor anchorWithStickyNavbar_LWe7" id="sample-response-5">Sample response<a href="#sample-response-5" class="hash-link" aria-label="Direct link to Sample response" title="Direct link to Sample response">​</a></h4>
-<details class="details_lb9f alert alert--info details_b_Ee" data-collapsed="true"><summary>View the response</summary><div><div class="collapsibleContent_i85q"><div class="language-json codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#bfc7d5;--prism-background-color:#292d3e"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-json codeBlock_bY9V thin-scrollbar" style="color:#bfc7d5;background-color:#292d3e"><code class="codeBlockLines_e6Vv"><sp [...]
+<details class="details_lb9f alert alert--info details_b_Ee" data-collapsed="true"><summary>View the response</summary><div><div class="collapsibleContent_i85q"><div class="language-json codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#bfc7d5;--prism-background-color:#292d3e"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-json codeBlock_bY9V thin-scrollbar" style="color:#bfc7d5;background-color:#292d3e"><code class="codeBlockLines_e6Vv"><sp [...]
 <h2 class="anchor anchorWithStickyNavbar_LWe7" id="overlord-dynamic-configuration">Overlord dynamic configuration<a href="#overlord-dynamic-configuration" class="hash-link" aria-label="Direct link to Overlord dynamic configuration" title="Direct link to Overlord dynamic configuration">​</a></h2>
 <p>The Overlord has dynamic configurations to tune how Druid assigns tasks to workers.
-For information on the supported properties, see <a href="/docs/latest/configuration/#overlord-dynamic-configuration">Overlord dynamic configuration</a>.</p>
+For information on the supported properties, see <a href="/docs/38.0.0/configuration/#overlord-dynamic-configuration">Overlord dynamic configuration</a>.</p>
 <h3 class="anchor anchorWithStickyNavbar_LWe7" id="get-dynamic-configuration-1">Get dynamic configuration<a href="#get-dynamic-configuration-1" class="hash-link" aria-label="Direct link to Get dynamic configuration" title="Direct link to Get dynamic configuration">​</a></h3>
 <p>Retrieves the current Overlord dynamic configuration.
 Returns a JSON object with the dynamic configuration properties.
@@ -218,7 +226,7 @@ Returns an empty response body if there is no current Overlord dynamic configura
 <details class="details_lb9f alert alert--info details_b_Ee" data-collapsed="true"><summary>View the response</summary><div><div class="collapsibleContent_i85q"><div class="language-json codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#bfc7d5;--prism-background-color:#292d3e"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-json codeBlock_bY9V thin-scrollbar" style="color:#bfc7d5;background-color:#292d3e"><code class="codeBlockLines_e6Vv"><sp [...]
 <h3 class="anchor anchorWithStickyNavbar_LWe7" id="update-dynamic-configuration-1">Update dynamic configuration<a href="#update-dynamic-configuration-1" class="hash-link" aria-label="Direct link to Update dynamic configuration" title="Direct link to Update dynamic configuration">​</a></h3>
 <p>Submits a JSON-based dynamic configuration spec to the Overlord.
-For information on the supported properties, see <a href="/docs/latest/configuration/#overlord-dynamic-configuration">Overlord dynamic configuration</a>.</p>
+For information on the supported properties, see <a href="/docs/38.0.0/configuration/#overlord-dynamic-configuration">Overlord dynamic configuration</a>.</p>
 <h4 class="anchor anchorWithStickyNavbar_LWe7" id="url-7">URL<a href="#url-7" class="hash-link" aria-label="Direct link to URL" title="Direct link to URL">​</a></h4>
 <p><code>POST</code> <code>/druid/indexer/v1/worker</code></p>
 <h4 class="anchor anchorWithStickyNavbar_LWe7" id="header-parameters-2">Header parameters<a href="#header-parameters-2" class="hash-link" aria-label="Direct link to Header parameters" title="Direct link to Header parameters">​</a></h4>
@@ -295,6 +303,6 @@ Returns an empty response body if there are no Overlord scaling events.</p>
 <h4 class="anchor anchorWithStickyNavbar_LWe7" id="sample-request-10">Sample request<a href="#sample-request-10" class="hash-link" aria-label="Direct link to Sample request" title="Direct link to Sample request">​</a></h4>
 <div class="tabs-container tabList__CuJ"><ul role="tablist" aria-orientation="horizontal" class="tabs"><li role="tab" tabindex="0" aria-selected="true" class="tabs__item tabItem_LNqP tabs__item--active">cURL</li><li role="tab" tabindex="-1" aria-selected="false" class="tabs__item tabItem_LNqP">HTTP</li></ul><div class="margin-top--md"><div role="tabpanel" class="tabItem_Ymn6"><div class="language-shell codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#bfc7d5;--prism-backgro [...]
 <h4 class="anchor anchorWithStickyNavbar_LWe7" id="sample-response-10">Sample response<a href="#sample-response-10" class="hash-link" aria-label="Direct link to Sample response" title="Direct link to Sample response">​</a></h4>
-<p>A successful request returns a <code>200 OK</code> response and an array of scaling events.</p></div></article><nav class="pagination-nav docusaurus-mt-lg" aria-label="Docs pages"><a class="pagination-nav__link pagination-nav__link--prev" href="/docs/latest/api-reference/service-status-api"><div class="pagination-nav__sublabel">Previous</div><div class="pagination-nav__label">Service status</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/docs/latest/api-refe [...]
+<p>A successful request returns a <code>200 OK</code> response and an array of scaling events.</p></div></article><nav class="pagination-nav docusaurus-mt-lg" aria-label="Docs pages"><a class="pagination-nav__link pagination-nav__link--prev" href="/docs/38.0.0/api-reference/service-status-api"><div class="pagination-nav__sublabel">Previous</div><div class="pagination-nav__label">Service status</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/docs/38.0.0/api-refe [...]
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/latest/api-reference/index.html b/docs/38.0.0/api-reference/index.html
similarity index 85%
copy from docs/latest/api-reference/index.html
copy to docs/38.0.0/api-reference/index.html
index 4d1d059d1..923338476 100644
--- a/docs/latest/api-reference/index.html
+++ b/docs/38.0.0/api-reference/index.html
@@ -3,31 +3,31 @@
 <head>
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.7.0">
-<title data-rh="true">API reference | Apache® Druid</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://druid.apache.org/img/druid_nav.png"><meta data-rh="true" name="twitter:image" content="https://druid.apache.org/img/druid_nav.png"><meta data-rh="true" property="og:url" content="https://druid.apache.org/docs/latest/api-re [...]
+<title data-rh="true">API reference | Apache® Druid</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://druid.apache.org/img/druid_nav.png"><meta data-rh="true" name="twitter:image" content="https://druid.apache.org/img/druid_nav.png"><meta data-rh="true" property="og:url" content="https://druid.apache.org/docs/38.0.0/api-re [...]
 <script src="/js/clipboard.min.js"></script><link rel="stylesheet" href="/assets/css/styles.f3140859.css">
-<script src="/assets/js/runtime~main.3e1f3e8c.js" defer="defer"></script>
-<script src="/assets/js/main.b85ce480.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.ea7da916.js" defer="defer"></script>
+<script src="/assets/js/main.b6e60483.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
-<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const n=new URLSearchParams(window.location.search).entries();for(var[t,e]of n)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentEle [...]
+<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const n=new URLSearchParams(window.location.search).entries();for(var[t,e]of n)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentEle [...]
 <h2 class="anchor anchorWithStickyNavbar_LWe7" id="http-apis">HTTP APIs<a href="#http-apis" class="hash-link" aria-label="Direct link to HTTP APIs" title="Direct link to HTTP APIs">​</a></h2>
 <ul>
-<li><a href="/docs/latest/api-reference/sql-api">Druid SQL queries</a> to submit SQL queries using the Druid SQL API.</li>
-<li><a href="/docs/latest/api-reference/sql-ingestion-api">SQL-based ingestion</a> to submit SQL-based batch ingestion requests.</li>
-<li><a href="/docs/latest/api-reference/json-querying-api">JSON querying</a> to submit JSON-based native queries.</li>
-<li><a href="/docs/latest/api-reference/tasks-api">Tasks</a> to manage data ingestion operations.</li>
-<li><a href="/docs/latest/api-reference/supervisor-api">Supervisors</a> to manage supervisors for data ingestion lifecycle and data processing.</li>
-<li><a href="/docs/latest/api-reference/retention-rules-api">Retention rules</a> to define and manage data retention rules across datasources.</li>
-<li><a href="/docs/latest/api-reference/data-management-api">Data management</a> to manage data segments.</li>
-<li><a href="/docs/latest/api-reference/automatic-compaction-api">Automatic compaction</a> to optimize segment sizes after ingestion.</li>
-<li><a href="/docs/latest/api-reference/lookups-api">Lookups</a> to manage and modify key-value datasources.</li>
-<li><a href="/docs/latest/api-reference/service-status-api">Service status</a> to monitor components within the Druid cluster.</li>
-<li><a href="/docs/latest/api-reference/dynamic-configuration-api">Dynamic configuration</a> to configure the behavior of the Coordinator and Overlord processes.</li>
-<li><a href="/docs/latest/api-reference/legacy-metadata-api">Legacy metadata</a> to retrieve datasource metadata.</li>
+<li><a href="/docs/38.0.0/api-reference/sql-api">Druid SQL queries</a> to submit SQL queries using the Druid SQL API.</li>
+<li><a href="/docs/38.0.0/api-reference/sql-ingestion-api">SQL-based ingestion</a> to submit SQL-based batch ingestion requests.</li>
+<li><a href="/docs/38.0.0/api-reference/json-querying-api">JSON querying</a> to submit JSON-based native queries.</li>
+<li><a href="/docs/38.0.0/api-reference/tasks-api">Tasks</a> to manage data ingestion operations.</li>
+<li><a href="/docs/38.0.0/api-reference/supervisor-api">Supervisors</a> to manage supervisors for data ingestion lifecycle and data processing.</li>
+<li><a href="/docs/38.0.0/api-reference/retention-rules-api">Retention rules</a> to define and manage data retention rules across datasources.</li>
+<li><a href="/docs/38.0.0/api-reference/data-management-api">Data management</a> to manage data segments.</li>
+<li><a href="/docs/38.0.0/api-reference/automatic-compaction-api">Automatic compaction</a> to optimize segment sizes after ingestion.</li>
+<li><a href="/docs/38.0.0/api-reference/lookups-api">Lookups</a> to manage and modify key-value datasources.</li>
+<li><a href="/docs/38.0.0/api-reference/service-status-api">Service status</a> to monitor components within the Druid cluster.</li>
+<li><a href="/docs/38.0.0/api-reference/dynamic-configuration-api">Dynamic configuration</a> to configure the behavior of the Coordinator and Overlord processes.</li>
+<li><a href="/docs/38.0.0/api-reference/legacy-metadata-api">Legacy metadata</a> to retrieve datasource metadata.</li>
 </ul>
 <h2 class="anchor anchorWithStickyNavbar_LWe7" id="java-apis">Java APIs<a href="#java-apis" class="hash-link" aria-label="Direct link to Java APIs" title="Direct link to Java APIs">​</a></h2>
 <ul>
-<li><a href="/docs/latest/api-reference/sql-jdbc">SQL JDBC driver</a> to connect to Druid and make Druid SQL queries using the Avatica JDBC driver.</li>
-</ul></div></article><nav class="pagination-nav docusaurus-mt-lg" aria-label="Docs pages"><a class="pagination-nav__link pagination-nav__link--prev" href="/docs/latest/querying/geo"><div class="pagination-nav__sublabel">Previous</div><div class="pagination-nav__label">Spatial filters</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/docs/latest/api-reference/sql-api"><div class="pagination-nav__sublabel">Next</div><div class="pagination-nav__label">Druid SQL</div [...]
+<li><a href="/docs/38.0.0/api-reference/sql-jdbc">SQL JDBC driver</a> to connect to Druid and make Druid SQL queries using the Avatica JDBC driver.</li>
+</ul></div></article><nav class="pagination-nav docusaurus-mt-lg" aria-label="Docs pages"><a class="pagination-nav__link pagination-nav__link--prev" href="/docs/38.0.0/querying/geo"><div class="pagination-nav__sublabel">Previous</div><div class="pagination-nav__label">Spatial filters</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/docs/38.0.0/api-reference/sql-api"><div class="pagination-nav__sublabel">Next</div><div class="pagination-nav__label">Druid SQL</div [...]
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/38.0.0/api-reference/json-querying-api.html/index.html b/docs/38.0.0/api-reference/json-querying-api.html/index.html
new file mode 100644
index 000000000..7b71b6199
--- /dev/null
+++ b/docs/38.0.0/api-reference/json-querying-api.html/index.html
@@ -0,0 +1,11 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <meta charset="UTF-8">
+    <meta http-equiv="refresh" content="0; url=/docs/38.0.0/api-reference/json-querying-api">
+    <link rel="canonical" href="/docs/38.0.0/api-reference/json-querying-api" />
+  </head>
+  <script>
+    window.location.href = '/docs/38.0.0/api-reference/json-querying-api' + window.location.search + window.location.hash;
+  </script>
+</html>
\ No newline at end of file
diff --git a/docs/latest/api-reference/json-querying-api/index.html b/docs/38.0.0/api-reference/json-querying-api/index.html
similarity index 98%
copy from docs/latest/api-reference/json-querying-api/index.html
copy to docs/38.0.0/api-reference/json-querying-api/index.html
index 16d278cad..e7fa21029 100644
--- a/docs/latest/api-reference/json-querying-api/index.html
+++ b/docs/38.0.0/api-reference/json-querying-api/index.html
@@ -3,22 +3,22 @@
 <head>
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.7.0">
-<title data-rh="true">JSON querying API | Apache® Druid</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://druid.apache.org/img/druid_nav.png"><meta data-rh="true" name="twitter:image" content="https://druid.apache.org/img/druid_nav.png"><meta data-rh="true" property="og:url" content="https://druid.apache.org/docs/latest/ap [...]
+<title data-rh="true">JSON querying API | Apache® Druid</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://druid.apache.org/img/druid_nav.png"><meta data-rh="true" name="twitter:image" content="https://druid.apache.org/img/druid_nav.png"><meta data-rh="true" property="og:url" content="https://druid.apache.org/docs/38.0.0/ap [...]
 <script src="/js/clipboard.min.js"></script><link rel="stylesheet" href="/assets/css/styles.f3140859.css">
-<script src="/assets/js/runtime~main.3e1f3e8c.js" defer="defer"></script>
-<script src="/assets/js/main.b85ce480.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.ea7da916.js" defer="defer"></script>
+<script src="/assets/js/main.b6e60483.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
-<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const n=new URLSearchParams(window.location.search).entries();for(var[t,e]of n)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentEle [...]
+<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const n=new URLSearchParams(window.location.search).entries();for(var[t,e]of n)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentEle [...]
 <p>In this topic, <code>http://SERVICE_IP:SERVICE_PORT</code> is a placeholder for the server address of deployment and the service port. For example, on the quickstart configuration, replace <code>http://ROUTER_IP:ROUTER_PORT</code> with <code>http://localhost:8888</code>.</p>
 <h2 class="anchor anchorWithStickyNavbar_LWe7" id="submit-a-query">Submit a query<a href="#submit-a-query" class="hash-link" aria-label="Direct link to Submit a query" title="Direct link to Submit a query">​</a></h2>
 <p>Submits a JSON-based native query. The body of the request is the native query itself.</p>
 <p>Druid supports different types of queries for different use cases. All queries require the following properties:</p>
 <ul>
 <li><code>queryType</code>: A string representing the type of query. Druid supports the following native query types: <code>timeseries</code>, <code>topN</code>, <code>groupBy</code>, <code>timeBoundaries</code>, <code>segmentMetadata</code>, <code>datasourceMetadata</code>, <code>scan</code>, and <code>search</code>.</li>
-<li><code>dataSource</code>: A string or object defining the source of data to query. The most common value is the name of the datasource to query. For more information, see <a href="/docs/latest/querying/datasource">Datasources</a>.</li>
+<li><code>dataSource</code>: A string or object defining the source of data to query. The most common value is the name of the datasource to query. For more information, see <a href="/docs/38.0.0/querying/datasource">Datasources</a>.</li>
 </ul>
-<p>For additional properties based on your query type or use case, see <a href="/docs/latest/querying/#available-queries">available native queries</a>.</p>
+<p>For additional properties based on your query type or use case, see <a href="/docs/38.0.0/querying/#available-queries">available native queries</a>.</p>
 <h3 class="anchor anchorWithStickyNavbar_LWe7" id="url">URL<a href="#url" class="hash-link" aria-label="Direct link to URL" title="Direct link to URL">​</a></h3>
 <p><code>POST</code> <code>/druid/v2</code></p>
 <h3 class="anchor anchorWithStickyNavbar_LWe7" id="query-parameters">Query parameters<a href="#query-parameters" class="hash-link" aria-label="Direct link to Query parameters" title="Direct link to Query parameters">​</a></h3>
@@ -30,7 +30,7 @@
 </li>
 </ul>
 <h3 class="anchor anchorWithStickyNavbar_LWe7" id="responses">Responses<a href="#responses" class="hash-link" aria-label="Direct link to Responses" title="Direct link to Responses">​</a></h3>
-<div class="tabs-container tabList__CuJ"><ul role="tablist" aria-orientation="horizontal" class="tabs"><li role="tab" tabindex="0" aria-selected="true" class="tabs__item tabItem_LNqP tabs__item--active">200 SUCCESS</li><li role="tab" tabindex="-1" aria-selected="false" class="tabs__item tabItem_LNqP">400 BAD REQUEST</li></ul><div class="margin-top--md"><div role="tabpanel" class="tabItem_Ymn6"><p><em>Successfully submitted query</em></p></div><div role="tabpanel" class="tabItem_Ymn6" hid [...]
+<div class="tabs-container tabList__CuJ"><ul role="tablist" aria-orientation="horizontal" class="tabs"><li role="tab" tabindex="0" aria-selected="true" class="tabs__item tabItem_LNqP tabs__item--active">200 SUCCESS</li><li role="tab" tabindex="-1" aria-selected="false" class="tabs__item tabItem_LNqP">400 BAD REQUEST</li></ul><div class="margin-top--md"><div role="tabpanel" class="tabItem_Ymn6"><p><em>Successfully submitted query</em></p></div><div role="tabpanel" class="tabItem_Ymn6" hid [...]
 <hr>
 <h3 class="anchor anchorWithStickyNavbar_LWe7" id="example-query-topn">Example query: <code>topN</code><a href="#example-query-topn" class="hash-link" aria-label="Direct link to example-query-topn" title="Direct link to example-query-topn">​</a></h3>
 <p>The following example shows a <code>topN</code> query. The query analyzes the <code>social_media</code> datasource to return the top five users from the <code>username</code> dimension with the highest number of views from the <code>views</code> metric.</p>
@@ -62,11 +62,11 @@
 </li>
 </ul>
 <h3 class="anchor anchorWithStickyNavbar_LWe7" id="responses-1">Responses<a href="#responses-1" class="hash-link" aria-label="Direct link to Responses" title="Direct link to Responses">​</a></h3>
-<div class="tabs-container tabList__CuJ"><ul role="tablist" aria-orientation="horizontal" class="tabs"><li role="tab" tabindex="0" aria-selected="true" class="tabs__item tabItem_LNqP tabs__item--active">200 SUCCESS</li><li role="tab" tabindex="-1" aria-selected="false" class="tabs__item tabItem_LNqP">400 BAD REQUEST</li></ul><div class="margin-top--md"><div role="tabpanel" class="tabItem_Ymn6"><p><em>Successfully retrieved segment information</em></p></div><div role="tabpanel" class="tab [...]
+<div class="tabs-container tabList__CuJ"><ul role="tablist" aria-orientation="horizontal" class="tabs"><li role="tab" tabindex="0" aria-selected="true" class="tabs__item tabItem_LNqP tabs__item--active">200 SUCCESS</li><li role="tab" tabindex="-1" aria-selected="false" class="tabs__item tabItem_LNqP">400 BAD REQUEST</li></ul><div class="margin-top--md"><div role="tabpanel" class="tabItem_Ymn6"><p><em>Successfully retrieved segment information</em></p></div><div role="tabpanel" class="tab [...]
 <hr>
 <h3 class="anchor anchorWithStickyNavbar_LWe7" id="sample-request">Sample request<a href="#sample-request" class="hash-link" aria-label="Direct link to Sample request" title="Direct link to Sample request">​</a></h3>
 <div class="tabs-container tabList__CuJ"><ul role="tablist" aria-orientation="horizontal" class="tabs"><li role="tab" tabindex="0" aria-selected="true" class="tabs__item tabItem_LNqP tabs__item--active">cURL</li><li role="tab" tabindex="-1" aria-selected="false" class="tabs__item tabItem_LNqP">HTTP</li></ul><div class="margin-top--md"><div role="tabpanel" class="tabItem_Ymn6"><div class="language-shell codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#bfc7d5;--prism-backgro [...]
 <h3 class="anchor anchorWithStickyNavbar_LWe7" id="sample-response">Sample response<a href="#sample-response" class="hash-link" aria-label="Direct link to Sample response" title="Direct link to Sample response">​</a></h3>
-<details class="details_lb9f alert alert--info details_b_Ee" data-collapsed="true"><summary>View the response</summary><div><div class="collapsibleContent_i85q"><div class="language-json codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#bfc7d5;--prism-background-color:#292d3e"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-json codeBlock_bY9V thin-scrollbar" style="color:#bfc7d5;background-color:#292d3e"><code class="codeBlockLines_e6Vv"><sp [...]
+<details class="details_lb9f alert alert--info details_b_Ee" data-collapsed="true"><summary>View the response</summary><div><div class="collapsibleContent_i85q"><div class="language-json codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#bfc7d5;--prism-background-color:#292d3e"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-json codeBlock_bY9V thin-scrollbar" style="color:#bfc7d5;background-color:#292d3e"><code class="codeBlockLines_e6Vv"><sp [...]
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/38.0.0/api-reference/legacy-metadata-api.html/index.html b/docs/38.0.0/api-reference/legacy-metadata-api.html/index.html
new file mode 100644
index 000000000..6726cd19d
--- /dev/null
+++ b/docs/38.0.0/api-reference/legacy-metadata-api.html/index.html
@@ -0,0 +1,11 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <meta charset="UTF-8">
+    <meta http-equiv="refresh" content="0; url=/docs/38.0.0/api-reference/legacy-metadata-api">
+    <link rel="canonical" href="/docs/38.0.0/api-reference/legacy-metadata-api" />
+  </head>
+  <script>
+    window.location.href = '/docs/38.0.0/api-reference/legacy-metadata-api' + window.location.search + window.location.hash;
+  </script>
+</html>
\ No newline at end of file
diff --git a/docs/latest/api-reference/legacy-metadata-api/index.html b/docs/38.0.0/api-reference/legacy-metadata-api/index.html
similarity index 92%
copy from docs/latest/api-reference/legacy-metadata-api/index.html
copy to docs/38.0.0/api-reference/legacy-metadata-api/index.html
index c5b43788d..344395e33 100644
--- a/docs/latest/api-reference/legacy-metadata-api/index.html
+++ b/docs/38.0.0/api-reference/legacy-metadata-api/index.html
@@ -3,13 +3,13 @@
 <head>
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.7.0">
-<title data-rh="true">Legacy metadata API | Apache® Druid</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://druid.apache.org/img/druid_nav.png"><meta data-rh="true" name="twitter:image" content="https://druid.apache.org/img/druid_nav.png"><meta data-rh="true" property="og:url" content="https://druid.apache.org/docs/latest/ [...]
+<title data-rh="true">Legacy metadata API | Apache® Druid</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://druid.apache.org/img/druid_nav.png"><meta data-rh="true" name="twitter:image" content="https://druid.apache.org/img/druid_nav.png"><meta data-rh="true" property="og:url" content="https://druid.apache.org/docs/38.0.0/ [...]
 <script src="/js/clipboard.min.js"></script><link rel="stylesheet" href="/assets/css/styles.f3140859.css">
-<script src="/assets/js/runtime~main.3e1f3e8c.js" defer="defer"></script>
-<script src="/assets/js/main.b85ce480.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.ea7da916.js" defer="defer"></script>
+<script src="/assets/js/main.b6e60483.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
-<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const n=new URLSearchParams(window.location.search).entries();for(var[t,e]of n)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentEle [...]
+<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const n=new URLSearchParams(window.location.search).entries();for(var[t,e]of n)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentEle [...]
 <h2 class="anchor anchorWithStickyNavbar_LWe7" id="segment-loading">Segment loading<a href="#segment-loading" class="hash-link" aria-label="Direct link to Segment loading" title="Direct link to Segment loading">​</a></h2>
 <p><code>GET /druid/coordinator/v1/loadstatus</code></p>
 <p>Returns the percentage of segments actually loaded in the cluster versus segments that should be loaded in the cluster.</p>
@@ -68,7 +68,7 @@ the segments left to load. See <a href="#segment-loading">Coordinator Segment Lo
 If no used segments are found for the given inputs, this API returns <code>204 No Content</code></p>
 <h2 class="anchor anchorWithStickyNavbar_LWe7" id="metadata-store-information">Metadata store information<a href="#metadata-store-information" class="hash-link" aria-label="Direct link to Metadata store information" title="Direct link to Metadata store information">​</a></h2>
 <div class="theme-admonition theme-admonition-info admonition_xJq3 alert alert--info"><div class="admonitionHeading_Gvgb"><span class="admonitionIcon_Rf37"><svg viewBox="0 0 14 16"><path fill-rule="evenodd" d="M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"></path></svg></span>info</div><div class="admonitionContent_BuS1"><p>Note: Much of this information is [...]
-<a href="/docs/latest/querying/sql-metadata-tables#segments-table"><code>sys.segments</code></a> table.</p></div></div>
+<a href="/docs/38.0.0/querying/sql-metadata-tables#segments-table"><code>sys.segments</code></a> table.</p></div></div>
 <p><code>GET /druid/coordinator/v1/metadata/segments</code></p>
 <p>Returns a list of all segments for each datasource enabled in the cluster.</p>
 <p><code>GET /druid/coordinator/v1/metadata/segments?datasources={dataSourceName1}&amp;datasources={dataSourceName2}</code></p>
@@ -113,7 +113,7 @@ is returned.</p>
 <h2 class="anchor anchorWithStickyNavbar_LWe7" id="datasources">Datasources<a href="#datasources" class="hash-link" aria-label="Direct link to Datasources" title="Direct link to Datasources">​</a></h2>
 <p>Note that all <em>interval</em> URL parameters are ISO 8601 strings delimited by a <code>_</code> instead of a <code>/</code>—for example, <code>2016-06-27_2016-06-28</code>.</p>
 <p><code>GET /druid/coordinator/v1/datasources</code></p>
-<p>Returns a list of datasource names found in the cluster as seen by the coordinator. This view is updated every <a href="/docs/latest/configuration/#coordinator-operation"><code>druid.coordinator.period</code></a>.</p>
+<p>Returns a list of datasource names found in the cluster as seen by the coordinator. This view is updated every <a href="/docs/38.0.0/configuration/#coordinator-operation"><code>druid.coordinator.period</code></a>.</p>
 <p><code>GET /druid/coordinator/v1/datasources?simple</code></p>
 <p>Returns a list of JSON objects containing the name and properties of datasources found in the cluster. Properties include segment count, total segment byte size, replicated total segment byte size, minTime, and maxTime.</p>
 <p><code>GET /druid/coordinator/v1/datasources?full</code></p>
@@ -170,31 +170,31 @@ ports.</p>
 <li><code>tier</code></li>
 </ul>
 <h2 class="anchor anchorWithStickyNavbar_LWe7" id="query-server">Query server<a href="#query-server" class="hash-link" aria-label="Direct link to Query server" title="Direct link to Query server">​</a></h2>
-<p>This section documents the API endpoints for the services that reside on Query servers (Brokers) in the suggested <a href="/docs/latest/design/architecture#druid-servers">three-server configuration</a>.</p>
+<p>This section documents the API endpoints for the services that reside on Query servers (Brokers) in the suggested <a href="/docs/38.0.0/design/architecture#druid-servers">three-server configuration</a>.</p>
 <h3 class="anchor anchorWithStickyNavbar_LWe7" id="broker">Broker<a href="#broker" class="hash-link" aria-label="Direct link to Broker" title="Direct link to Broker">​</a></h3>
 <h4 class="anchor anchorWithStickyNavbar_LWe7" id="datasource-information">Datasource information<a href="#datasource-information" class="hash-link" aria-label="Direct link to Datasource information" title="Direct link to Datasource information">​</a></h4>
 <p>Note that all <em>interval</em> URL parameters are ISO 8601 strings delimited by a <code>_</code> instead of a <code>/</code>
 as in <code>2016-06-27_2016-06-28</code>.</p>
 <div class="theme-admonition theme-admonition-info admonition_xJq3 alert alert--info"><div class="admonitionHeading_Gvgb"><span class="admonitionIcon_Rf37"><svg viewBox="0 0 14 16"><path fill-rule="evenodd" d="M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"></path></svg></span>info</div><div class="admonitionContent_BuS1"><p>Note: Much of this information is [...]
-<a href="/docs/latest/querying/sql-metadata-tables#tables-table"><code>INFORMATION_SCHEMA.TABLES</code></a>,
-<a href="/docs/latest/querying/sql-metadata-tables#columns-table"><code>INFORMATION_SCHEMA.COLUMNS</code></a>, and
-<a href="/docs/latest/querying/sql-metadata-tables#segments-table"><code>sys.segments</code></a> tables.</p></div></div>
+<a href="/docs/38.0.0/querying/sql-metadata-tables#tables-table"><code>INFORMATION_SCHEMA.TABLES</code></a>,
+<a href="/docs/38.0.0/querying/sql-metadata-tables#columns-table"><code>INFORMATION_SCHEMA.COLUMNS</code></a>, and
+<a href="/docs/38.0.0/querying/sql-metadata-tables#segments-table"><code>sys.segments</code></a> tables.</p></div></div>
 <p><code>GET /druid/v2/datasources</code></p>
 <p>Returns a list of queryable datasources.</p>
 <p><code>GET /druid/v2/datasources/{dataSourceName}</code></p>
 <p>Returns the dimensions and metrics of the datasource. Optionally, you can provide request parameter &quot;full&quot; to get list of served intervals with dimensions and metrics being served for those intervals. You can also provide request param &quot;interval&quot; explicitly to refer to a particular interval.</p>
 <p>If no interval is specified, a default interval spanning a configurable period before the current time will be used. The default duration of this interval is specified in ISO 8601 duration format via: <code>druid.query.segmentMetadata.defaultHistory</code></p>
 <p><code>GET /druid/v2/datasources/{dataSourceName}/dimensions</code></p>
-<div class="theme-admonition theme-admonition-info admonition_xJq3 alert alert--info"><div class="admonitionHeading_Gvgb"><span class="admonitionIcon_Rf37"><svg viewBox="0 0 14 16"><path fill-rule="evenodd" d="M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"></path></svg></span>info</div><div class="admonitionContent_BuS1"><p>This API is deprecated and will b [...]
-which provides more comprehensive information and supports all dataSource types including streaming dataSources. It&#x27;s also encouraged to use <a href="/docs/latest/querying/sql-metadata-tables">INFORMATION_SCHEMA tables</a>
+<div class="theme-admonition theme-admonition-info admonition_xJq3 alert alert--info"><div class="admonitionHeading_Gvgb"><span class="admonitionIcon_Rf37"><svg viewBox="0 0 14 16"><path fill-rule="evenodd" d="M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"></path></svg></span>info</div><div class="admonitionContent_BuS1"><p>This API is deprecated and will b [...]
+which provides more comprehensive information and supports all dataSource types including streaming dataSources. It&#x27;s also encouraged to use <a href="/docs/38.0.0/querying/sql-metadata-tables">INFORMATION_SCHEMA tables</a>
 if you&#x27;re using SQL.</p></div></div>
 <p>Returns the dimensions of the datasource.</p>
 <p><code>GET /druid/v2/datasources/{dataSourceName}/metrics</code></p>
-<div class="theme-admonition theme-admonition-info admonition_xJq3 alert alert--info"><div class="admonitionHeading_Gvgb"><span class="admonitionIcon_Rf37"><svg viewBox="0 0 14 16"><path fill-rule="evenodd" d="M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"></path></svg></span>info</div><div class="admonitionContent_BuS1"><p>This API is deprecated and will b [...]
-which provides more comprehensive information and supports all dataSource types including streaming dataSources. It&#x27;s also encouraged to use <a href="/docs/latest/querying/sql-metadata-tables">INFORMATION_SCHEMA tables</a>
+<div class="theme-admonition theme-admonition-info admonition_xJq3 alert alert--info"><div class="admonitionHeading_Gvgb"><span class="admonitionIcon_Rf37"><svg viewBox="0 0 14 16"><path fill-rule="evenodd" d="M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"></path></svg></span>info</div><div class="admonitionContent_BuS1"><p>This API is deprecated and will b [...]
+which provides more comprehensive information and supports all dataSource types including streaming dataSources. It&#x27;s also encouraged to use <a href="/docs/38.0.0/querying/sql-metadata-tables">INFORMATION_SCHEMA tables</a>
 if you&#x27;re using SQL.</p></div></div>
 <p>Returns the metrics of the datasource.</p>
 <p><code>GET /druid/v2/datasources/{dataSourceName}/candidates?intervals={comma-separated-intervals}&amp;numCandidates={numCandidates}</code></p>
-<p>Returns segment information lists including server locations for the given datasource and intervals. If &quot;numCandidates&quot; is not specified, it will return all servers for each interval.</p></div></article><nav class="pagination-nav docusaurus-mt-lg" aria-label="Docs pages"><a class="pagination-nav__link pagination-nav__link--prev" href="/docs/latest/api-reference/dynamic-configuration-api"><div class="pagination-nav__sublabel">Previous</div><div class="pagination-nav__label">D [...]
+<p>Returns segment information lists including server locations for the given datasource and intervals. If &quot;numCandidates&quot; is not specified, it will return all servers for each interval.</p></div></article><nav class="pagination-nav docusaurus-mt-lg" aria-label="Docs pages"><a class="pagination-nav__link pagination-nav__link--prev" href="/docs/38.0.0/api-reference/dynamic-configuration-api"><div class="pagination-nav__sublabel">Previous</div><div class="pagination-nav__label">D [...]
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/38.0.0/api-reference/lookups-api.html/index.html b/docs/38.0.0/api-reference/lookups-api.html/index.html
new file mode 100644
index 000000000..8dad40eae
--- /dev/null
+++ b/docs/38.0.0/api-reference/lookups-api.html/index.html
@@ -0,0 +1,11 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <meta charset="UTF-8">
+    <meta http-equiv="refresh" content="0; url=/docs/38.0.0/api-reference/lookups-api">
+    <link rel="canonical" href="/docs/38.0.0/api-reference/lookups-api" />
+  </head>
+  <script>
+    window.location.href = '/docs/38.0.0/api-reference/lookups-api' + window.location.search + window.location.hash;
+  </script>
+</html>
\ No newline at end of file
diff --git a/docs/latest/api-reference/lookups-api/index.html b/docs/38.0.0/api-reference/lookups-api/index.html
similarity index 96%
copy from docs/latest/api-reference/lookups-api/index.html
copy to docs/38.0.0/api-reference/lookups-api/index.html
index 9788083aa..e41f6d73d 100644
--- a/docs/latest/api-reference/lookups-api/index.html
+++ b/docs/38.0.0/api-reference/lookups-api/index.html
@@ -3,13 +3,13 @@
 <head>
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.7.0">
-<title data-rh="true">Lookups API | Apache® Druid</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://druid.apache.org/img/druid_nav.png"><meta data-rh="true" name="twitter:image" content="https://druid.apache.org/img/druid_nav.png"><meta data-rh="true" property="og:url" content="https://druid.apache.org/docs/latest/api-refe [...]
+<title data-rh="true">Lookups API | Apache® Druid</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://druid.apache.org/img/druid_nav.png"><meta data-rh="true" name="twitter:image" content="https://druid.apache.org/img/druid_nav.png"><meta data-rh="true" property="og:url" content="https://druid.apache.org/docs/38.0.0/api-refe [...]
 <script src="/js/clipboard.min.js"></script><link rel="stylesheet" href="/assets/css/styles.f3140859.css">
-<script src="/assets/js/runtime~main.3e1f3e8c.js" defer="defer"></script>
-<script src="/assets/js/main.b85ce480.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.ea7da916.js" defer="defer"></script>
+<script src="/assets/js/main.b6e60483.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
-<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const n=new URLSearchParams(window.location.search).entries();for(var[t,e]of n)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentEle [...]
+<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const n=new URLSearchParams(window.location.search).entries();for(var[t,e]of n)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentEle [...]
 <h2 class="anchor anchorWithStickyNavbar_LWe7" id="configure-lookups">Configure lookups<a href="#configure-lookups" class="hash-link" aria-label="Direct link to Configure lookups" title="Direct link to Configure lookups">​</a></h2>
 <h3 class="anchor anchorWithStickyNavbar_LWe7" id="bulk-update">Bulk update<a href="#bulk-update" class="hash-link" aria-label="Direct link to Bulk update" title="Direct link to Bulk update">​</a></h3>
 <p>Lookups can be updated in bulk by posting a JSON object to <code>/druid/coordinator/v1/lookups/config</code>. The format of the json object is as follows:</p>
@@ -65,6 +65,6 @@ The return value will be a json map of the lookups to their extractor factories.
 <h3 class="anchor anchorWithStickyNavbar_LWe7" id="get-lookup-1">Get lookup<a href="#get-lookup-1" class="hash-link" aria-label="Direct link to Get lookup" title="Direct link to Get lookup">​</a></h3>
 <p>A <code>GET</code> to the process at <code>/druid/listen/v1/lookups/some_lookup_name</code> will return the LookupExtractorFactory for the lookup identified by <code>some_lookup_name</code>.
 The return value will be the json representation of the factory.</p>
-<div class="language-json codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#bfc7d5;--prism-background-color:#292d3e"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-json codeBlock_bY9V thin-scrollbar" style="color:#bfc7d5;background-color:#292d3e"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#bfc7d5"><span class="token punctuation" style="color:rgb(199, 146, 234)">{</span><span class="token plain"></span><br></span> [...]
+<div class="language-json codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#bfc7d5;--prism-background-color:#292d3e"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-json codeBlock_bY9V thin-scrollbar" style="color:#bfc7d5;background-color:#292d3e"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#bfc7d5"><span class="token punctuation" style="color:rgb(199, 146, 234)">{</span><span class="token plain"></span><br></span> [...]
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/38.0.0/api-reference/retention-rules-api.html/index.html b/docs/38.0.0/api-reference/retention-rules-api.html/index.html
new file mode 100644
index 000000000..de2ff232a
--- /dev/null
+++ b/docs/38.0.0/api-reference/retention-rules-api.html/index.html
@@ -0,0 +1,11 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <meta charset="UTF-8">
+    <meta http-equiv="refresh" content="0; url=/docs/38.0.0/api-reference/retention-rules-api">
+    <link rel="canonical" href="/docs/38.0.0/api-reference/retention-rules-api" />
+  </head>
+  <script>
+    window.location.href = '/docs/38.0.0/api-reference/retention-rules-api' + window.location.search + window.location.hash;
+  </script>
+</html>
\ No newline at end of file
diff --git a/docs/latest/api-reference/retention-rules-api/index.html b/docs/38.0.0/api-reference/retention-rules-api/index.html
similarity index 96%
copy from docs/latest/api-reference/retention-rules-api/index.html
copy to docs/38.0.0/api-reference/retention-rules-api/index.html
index c34ff06e6..23f5616cb 100644
--- a/docs/latest/api-reference/retention-rules-api/index.html
+++ b/docs/38.0.0/api-reference/retention-rules-api/index.html
@@ -3,24 +3,24 @@
 <head>
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.7.0">
-<title data-rh="true">Retention rules API | Apache® Druid</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://druid.apache.org/img/druid_nav.png"><meta data-rh="true" name="twitter:image" content="https://druid.apache.org/img/druid_nav.png"><meta data-rh="true" property="og:url" content="https://druid.apache.org/docs/latest/ [...]
+<title data-rh="true">Retention rules API | Apache® Druid</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://druid.apache.org/img/druid_nav.png"><meta data-rh="true" name="twitter:image" content="https://druid.apache.org/img/druid_nav.png"><meta data-rh="true" property="og:url" content="https://druid.apache.org/docs/38.0.0/ [...]
 <script src="/js/clipboard.min.js"></script><link rel="stylesheet" href="/assets/css/styles.f3140859.css">
-<script src="/assets/js/runtime~main.3e1f3e8c.js" defer="defer"></script>
-<script src="/assets/js/main.b85ce480.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.ea7da916.js" defer="defer"></script>
+<script src="/assets/js/main.b6e60483.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
-<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const n=new URLSearchParams(window.location.search).entries();for(var[t,e]of n)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentEle [...]
-<p>Druid uses retention rules to determine what data is retained in the cluster. Druid supports load, drop, and broadcast rules. For more information, see <a href="/docs/latest/operations/rule-configuration">Using rules to drop and retain data</a>.</p>
+<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const n=new URLSearchParams(window.location.search).entries();for(var[t,e]of n)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentEle [...]
+<p>Druid uses retention rules to determine what data is retained in the cluster. Druid supports load, drop, and broadcast rules. For more information, see <a href="/docs/38.0.0/operations/rule-configuration">Using rules to drop and retain data</a>.</p>
 <p>In this topic, <code>http://ROUTER_IP:ROUTER_PORT</code> is a placeholder for your Router service address and port. Replace it with the information for your deployment. For example, use <code>http://localhost:8888</code> for quickstart deployments.</p>
 <h2 class="anchor anchorWithStickyNavbar_LWe7" id="update-retention-rules-for-a-datasource">Update retention rules for a datasource<a href="#update-retention-rules-for-a-datasource" class="hash-link" aria-label="Direct link to Update retention rules for a datasource" title="Direct link to Update retention rules for a datasource">​</a></h2>
 <p>Updates one or more retention rules for a datasource. The request body takes an array of retention rule objects. For details on defining retention rules, see the following sources:</p>
 <ul>
-<li><a href="/docs/latest/operations/rule-configuration#load-rules">Load rules</a></li>
-<li><a href="/docs/latest/operations/rule-configuration#drop-rules">Drop rules</a></li>
-<li><a href="/docs/latest/operations/rule-configuration#broadcast-rules">Broadcast rules</a></li>
+<li><a href="/docs/38.0.0/operations/rule-configuration#load-rules">Load rules</a></li>
+<li><a href="/docs/38.0.0/operations/rule-configuration#drop-rules">Drop rules</a></li>
+<li><a href="/docs/38.0.0/operations/rule-configuration#broadcast-rules">Broadcast rules</a></li>
 </ul>
 <p>This request overwrites any existing rules for the datasource.
-Druid reads rules in the order in which they appear; for more information, see <a href="/docs/latest/operations/rule-configuration">rule structure</a>.</p>
+Druid reads rules in the order in which they appear; for more information, see <a href="/docs/38.0.0/operations/rule-configuration">rule structure</a>.</p>
 <p>Note that this endpoint returns an HTTP <code>200 OK</code> even if the datasource does not exist.</p>
 <h3 class="anchor anchorWithStickyNavbar_LWe7" id="url">URL<a href="#url" class="hash-link" aria-label="Direct link to URL" title="Direct link to URL">​</a></h3>
 <p><code>POST</code> <code>/druid/coordinator/v1/rules/{dataSource}</code></p>
@@ -51,11 +51,11 @@ Druid reads rules in the order in which they appear; for more information, see <
 <h2 class="anchor anchorWithStickyNavbar_LWe7" id="update-default-retention-rules-for-all-datasources">Update default retention rules for all datasources<a href="#update-default-retention-rules-for-all-datasources" class="hash-link" aria-label="Direct link to Update default retention rules for all datasources" title="Direct link to Update default retention rules for all datasources">​</a></h2>
 <p>Updates one or more default retention rules for all datasources. Submit retention rules as an array of objects in the request body. For details on defining retention rules, see the following sources:</p>
 <ul>
-<li><a href="/docs/latest/operations/rule-configuration#load-rules">Load rules</a></li>
-<li><a href="/docs/latest/operations/rule-configuration#drop-rules">Drop rules</a></li>
-<li><a href="/docs/latest/operations/rule-configuration#broadcast-rules">Broadcast rules</a></li>
+<li><a href="/docs/38.0.0/operations/rule-configuration#load-rules">Load rules</a></li>
+<li><a href="/docs/38.0.0/operations/rule-configuration#drop-rules">Drop rules</a></li>
+<li><a href="/docs/38.0.0/operations/rule-configuration#broadcast-rules">Broadcast rules</a></li>
 </ul>
-<p>This request overwrites any existing rules for all datasources. To remove default retention rules for all datasources, submit an empty rule array in the request body. Rules are read in the order in which they appear; for more information, see <a href="/docs/latest/operations/rule-configuration">rule structure</a>.</p>
+<p>This request overwrites any existing rules for all datasources. To remove default retention rules for all datasources, submit an empty rule array in the request body. Rules are read in the order in which they appear; for more information, see <a href="/docs/38.0.0/operations/rule-configuration">rule structure</a>.</p>
 <h3 class="anchor anchorWithStickyNavbar_LWe7" id="url-1">URL<a href="#url-1" class="hash-link" aria-label="Direct link to URL" title="Direct link to URL">​</a></h3>
 <p><code>POST</code> <code>/druid/coordinator/v1/rules/_default</code></p>
 <h3 class="anchor anchorWithStickyNavbar_LWe7" id="header-parameters-1">Header parameters<a href="#header-parameters-1" class="hash-link" aria-label="Direct link to Header parameters" title="Direct link to Header parameters">​</a></h3>
@@ -141,6 +141,6 @@ Druid reads rules in the order in which they appear; for more information, see <
 <p>The following example retrieves the audit history for all datasources from <code>2023-07-13</code> to <code>2023-07-19</code>.</p>
 <div class="tabs-container tabList__CuJ"><ul role="tablist" aria-orientation="horizontal" class="tabs"><li role="tab" tabindex="0" aria-selected="true" class="tabs__item tabItem_LNqP tabs__item--active">cURL</li><li role="tab" tabindex="-1" aria-selected="false" class="tabs__item tabItem_LNqP">HTTP</li></ul><div class="margin-top--md"><div role="tabpanel" class="tabItem_Ymn6"><div class="language-shell codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#bfc7d5;--prism-backgro [...]
 <h3 class="anchor anchorWithStickyNavbar_LWe7" id="sample-response-4">Sample response<a href="#sample-response-4" class="hash-link" aria-label="Direct link to Sample response" title="Direct link to Sample response">​</a></h3>
-<details class="details_lb9f alert alert--info details_b_Ee" data-collapsed="true"><summary>View the response</summary><div><div class="collapsibleContent_i85q"><div class="language-json codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#bfc7d5;--prism-background-color:#292d3e"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-json codeBlock_bY9V thin-scrollbar" style="color:#bfc7d5;background-color:#292d3e"><code class="codeBlockLines_e6Vv"><sp [...]
+<details class="details_lb9f alert alert--info details_b_Ee" data-collapsed="true"><summary>View the response</summary><div><div class="collapsibleContent_i85q"><div class="language-json codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#bfc7d5;--prism-background-color:#292d3e"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-json codeBlock_bY9V thin-scrollbar" style="color:#bfc7d5;background-color:#292d3e"><code class="codeBlockLines_e6Vv"><sp [...]
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/38.0.0/api-reference/service-status-api.html/index.html b/docs/38.0.0/api-reference/service-status-api.html/index.html
new file mode 100644
index 000000000..7eae1c2d1
--- /dev/null
+++ b/docs/38.0.0/api-reference/service-status-api.html/index.html
@@ -0,0 +1,11 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <meta charset="UTF-8">
+    <meta http-equiv="refresh" content="0; url=/docs/38.0.0/api-reference/service-status-api">
+    <link rel="canonical" href="/docs/38.0.0/api-reference/service-status-api" />
+  </head>
+  <script>
+    window.location.href = '/docs/38.0.0/api-reference/service-status-api' + window.location.search + window.location.hash;
+  </script>
+</html>
\ No newline at end of file
diff --git a/docs/latest/api-reference/service-status-api/index.html b/docs/38.0.0/api-reference/service-status-api/index.html
similarity index 83%
copy from docs/latest/api-reference/service-status-api/index.html
copy to docs/38.0.0/api-reference/service-status-api/index.html
index bd8857d09..a10c084cb 100644
--- a/docs/latest/api-reference/service-status-api/index.html
+++ b/docs/38.0.0/api-reference/service-status-api/index.html
@@ -3,13 +3,13 @@
 <head>
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.7.0">
-<title data-rh="true">Service status API | Apache® Druid</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://druid.apache.org/img/druid_nav.png"><meta data-rh="true" name="twitter:image" content="https://druid.apache.org/img/druid_nav.png"><meta data-rh="true" property="og:url" content="https://druid.apache.org/docs/latest/a [...]
+<title data-rh="true">Service status API | Apache® Druid</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://druid.apache.org/img/druid_nav.png"><meta data-rh="true" name="twitter:image" content="https://druid.apache.org/img/druid_nav.png"><meta data-rh="true" property="og:url" content="https://druid.apache.org/docs/38.0.0/a [...]
 <script src="/js/clipboard.min.js"></script><link rel="stylesheet" href="/assets/css/styles.f3140859.css">
-<script src="/assets/js/runtime~main.3e1f3e8c.js" defer="defer"></script>
-<script src="/assets/js/main.b85ce480.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.ea7da916.js" defer="defer"></script>
+<script src="/assets/js/main.b6e60483.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
-<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const n=new URLSearchParams(window.location.search).entries();for(var[t,e]of n)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentEle [...]
+<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const n=new URLSearchParams(window.location.search).entries();for(var[t,e]of n)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentEle [...]
 <p>In this document, <code>http://SERVICE_IP:SERVICE_PORT</code> is a placeholder for the server address of deployment and the service port. For example, on the quickstart configuration, replace <code>http://ROUTER_IP:ROUTER_PORT</code> with <code>http://localhost:8888</code>.</p>
 <h2 class="anchor anchorWithStickyNavbar_LWe7" id="common">Common<a href="#common" class="hash-link" aria-label="Direct link to Common" title="Direct link to Common">​</a></h2>
 <p>All services support the following endpoints.</p>
@@ -26,7 +26,7 @@
 <h4 class="anchor anchorWithStickyNavbar_LWe7" id="sample-request">Sample request<a href="#sample-request" class="hash-link" aria-label="Direct link to Sample request" title="Direct link to Sample request">​</a></h4>
 <div class="tabs-container tabList__CuJ"><ul role="tablist" aria-orientation="horizontal" class="tabs"><li role="tab" tabindex="0" aria-selected="true" class="tabs__item tabItem_LNqP tabs__item--active">cURL</li><li role="tab" tabindex="-1" aria-selected="false" class="tabs__item tabItem_LNqP">HTTP</li></ul><div class="margin-top--md"><div role="tabpanel" class="tabItem_Ymn6"><div class="language-shell codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#bfc7d5;--prism-backgro [...]
 <h4 class="anchor anchorWithStickyNavbar_LWe7" id="sample-response">Sample response<a href="#sample-response" class="hash-link" aria-label="Direct link to Sample response" title="Direct link to Sample response">​</a></h4>
-<details class="details_lb9f alert alert--info details_b_Ee" data-collapsed="true"><summary>View the response</summary><div><div class="collapsibleContent_i85q"><div class="language-json codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#bfc7d5;--prism-background-color:#292d3e"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-json codeBlock_bY9V thin-scrollbar" style="color:#bfc7d5;background-color:#292d3e"><code class="codeBlockLines_e6Vv"><sp [...]
+<details class="details_lb9f alert alert--info details_b_Ee" data-collapsed="true"><summary>View the response</summary><div><div class="collapsibleContent_i85q"><div class="language-json codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#bfc7d5;--prism-background-color:#292d3e"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-json codeBlock_bY9V thin-scrollbar" style="color:#bfc7d5;background-color:#292d3e"><code class="codeBlockLines_e6Vv"><sp [...]
 <h3 class="anchor anchorWithStickyNavbar_LWe7" id="get-service-health">Get service health<a href="#get-service-health" class="hash-link" aria-label="Direct link to Get service health" title="Direct link to Get service health">​</a></h3>
 <p>Retrieves the online status of the individual Druid service. It is a simple health check to determine if the service is running and accessible. If online, it will always return a boolean <code>true</code> value, indicating that the service can receive API calls. This endpoint is suitable for automated health checks.</p>
 <p>Modify the host and port for the endpoint to match the service to query. Refer to the <a href="#common">default service ports</a> for the port numbers.</p>
@@ -49,11 +49,10 @@
 <h4 class="anchor anchorWithStickyNavbar_LWe7" id="sample-request-2">Sample request<a href="#sample-request-2" class="hash-link" aria-label="Direct link to Sample request" title="Direct link to Sample request">​</a></h4>
 <div class="tabs-container tabList__CuJ"><ul role="tablist" aria-orientation="horizontal" class="tabs"><li role="tab" tabindex="0" aria-selected="true" class="tabs__item tabItem_LNqP tabs__item--active">cURL</li><li role="tab" tabindex="-1" aria-selected="false" class="tabs__item tabItem_LNqP">HTTP</li></ul><div class="margin-top--md"><div role="tabpanel" class="tabItem_Ymn6"><div class="language-shell codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#bfc7d5;--prism-backgro [...]
 <h4 class="anchor anchorWithStickyNavbar_LWe7" id="sample-response-2">Sample response<a href="#sample-response-2" class="hash-link" aria-label="Direct link to Sample response" title="Direct link to Sample response">​</a></h4>
-<details class="details_lb9f alert alert--info details_b_Ee" data-collapsed="true"><summary>View the response</summary><div><div class="collapsibleContent_i85q"><div class="language-json codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#bfc7d5;--prism-background-color:#292d3e"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-json codeBlock_bY9V thin-scrollbar" style="color:#bfc7d5;background-color:#292d3e"><code class="codeBlockLines_e6Vv"><sp [...]
+<details class="details_lb9f alert alert--info details_b_Ee" data-collapsed="true"><summary>View the response</summary><div><div class="collapsibleContent_i85q"><div class="language-json codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#bfc7d5;--prism-background-color:#292d3e"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-json codeBlock_bY9V thin-scrollbar" style="color:#bfc7d5;background-color:#292d3e"><code class="codeBlockLines_e6Vv"><sp [...]
 <h3 class="anchor anchorWithStickyNavbar_LWe7" id="get-node-discovery-status-and-cluster-integration-confirmation">Get node discovery status and cluster integration confirmation<a href="#get-node-discovery-status-and-cluster-integration-confirmation" class="hash-link" aria-label="Direct link to Get node discovery status and cluster integration confirmation" title="Direct link to Get node discovery status and cluster integration confirmation">​</a></h3>
 <p>Retrieves a JSON map of the form <code>{&quot;selfDiscovered&quot;: true/false}</code>, indicating whether the node has received a confirmation from the central node discovery mechanism (currently ZooKeeper) of the Druid cluster that the node has been added to the cluster.</p>
-<p>Only consider a Druid node &quot;healthy&quot; or &quot;ready&quot; in automated deployment/container management systems when this endpoint returns <code>{&quot;selfDiscovered&quot;: true}</code>. Nodes experiencing network issues may become isolated and are not healthy.
-For nodes that use Zookeeper segment discovery, a response of <code>{&quot;selfDiscovered&quot;: true}</code> indicates that the node&#x27;s Zookeeper client has started receiving data from the Zookeeper cluster, enabling timely discovery of segments and other nodes.</p>
+<p>Only consider a Druid node &quot;healthy&quot; or &quot;ready&quot; in automated deployment/container management systems when this endpoint returns <code>{&quot;selfDiscovered&quot;: true}</code>. Nodes experiencing network issues may become isolated and are not healthy.</p>
 <h4 class="anchor anchorWithStickyNavbar_LWe7" id="url-3">URL<a href="#url-3" class="hash-link" aria-label="Direct link to URL" title="Direct link to URL">​</a></h4>
 <p><code>GET</code> <code>/status/selfDiscovered/status</code></p>
 <h4 class="anchor anchorWithStickyNavbar_LWe7" id="responses-3">Responses<a href="#responses-3" class="hash-link" aria-label="Direct link to Responses" title="Direct link to Responses">​</a></h4>
@@ -154,7 +153,7 @@ Use this endpoint for monitoring checks that are unable to examine the response
 <h4 class="anchor anchorWithStickyNavbar_LWe7" id="sample-response-11">Sample response<a href="#sample-response-11" class="hash-link" aria-label="Direct link to Sample response" title="Direct link to Sample response">​</a></h4>
 <details class="details_lb9f alert alert--info details_b_Ee" data-collapsed="true"><summary>View the response</summary><div><div class="collapsibleContent_i85q"><div class="language-json codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#bfc7d5;--prism-background-color:#292d3e"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-json codeBlock_bY9V thin-scrollbar" style="color:#bfc7d5;background-color:#292d3e"><code class="codeBlockLines_e6Vv"><sp [...]
 <h3 class="anchor anchorWithStickyNavbar_LWe7" id="get-active-tasks">Get active tasks<a href="#get-active-tasks" class="hash-link" aria-label="Direct link to Get active tasks" title="Direct link to Get active tasks">​</a></h3>
-<p>Retrieves a list of active tasks being run on the Middle Manager. Returns JSON list of task ID strings. Note that for normal usage, you should use the <code>/druid/indexer/v1/tasks</code> <a href="/docs/latest/api-reference/tasks-api">Tasks API</a> endpoint or one of the task state specific variants instead.</p>
+<p>Retrieves a list of active tasks being run on the Middle Manager. Returns JSON list of task ID strings. Note that for normal usage, you should use the <code>/druid/indexer/v1/tasks</code> <a href="/docs/38.0.0/api-reference/tasks-api">Tasks API</a> endpoint or one of the task state specific variants instead.</p>
 <h4 class="anchor anchorWithStickyNavbar_LWe7" id="url-12">URL<a href="#url-12" class="hash-link" aria-label="Direct link to URL" title="Direct link to URL">​</a></h4>
 <p><code>GET</code> <code>/druid/worker/v1/tasks</code></p>
 <h4 class="anchor anchorWithStickyNavbar_LWe7" id="responses-12">Responses<a href="#responses-12" class="hash-link" aria-label="Direct link to Responses" title="Direct link to Responses">​</a></h4>
@@ -166,12 +165,12 @@ Use this endpoint for monitoring checks that are unable to examine the response
 <details class="details_lb9f alert alert--info details_b_Ee" data-collapsed="true"><summary>View the response</summary><div><div class="collapsibleContent_i85q"><div class="language-json codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#bfc7d5;--prism-background-color:#292d3e"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-json codeBlock_bY9V thin-scrollbar" style="color:#bfc7d5;background-color:#292d3e"><code class="codeBlockLines_e6Vv"><sp [...]
 <h3 class="anchor anchorWithStickyNavbar_LWe7" id="get-task-log">Get task log<a href="#get-task-log" class="hash-link" aria-label="Direct link to Get task log" title="Direct link to Get task log">​</a></h3>
 <p>Retrieves task log output stream by task ID. For normal usage, you should use the <code>/druid/indexer/v1/task/{taskId}/log</code>
-<a href="/docs/latest/api-reference/tasks-api">Tasks API</a> endpoint instead.</p>
+<a href="/docs/38.0.0/api-reference/tasks-api">Tasks API</a> endpoint instead.</p>
 <h4 class="anchor anchorWithStickyNavbar_LWe7" id="url-13">URL<a href="#url-13" class="hash-link" aria-label="Direct link to URL" title="Direct link to URL">​</a></h4>
 <p><code>GET</code> <code>/druid/worker/v1/task/{taskId}/log</code></p>
 <h3 class="anchor anchorWithStickyNavbar_LWe7" id="shut-down-running-task">Shut down running task<a href="#shut-down-running-task" class="hash-link" aria-label="Direct link to Shut down running task" title="Direct link to Shut down running task">​</a></h3>
 <p>Shuts down a running task by ID. For normal usage, you should use the <code>/druid/indexer/v1/task/{taskId}/shutdown</code>
-<a href="/docs/latest/api-reference/tasks-api">Tasks API</a> endpoint instead.</p>
+<a href="/docs/38.0.0/api-reference/tasks-api">Tasks API</a> endpoint instead.</p>
 <h4 class="anchor anchorWithStickyNavbar_LWe7" id="url-14">URL<a href="#url-14" class="hash-link" aria-label="Direct link to URL" title="Direct link to URL">​</a></h4>
 <p><code>POST</code> <code>/druid/worker/v1/task/{taskId}/shutdown</code></p>
 <h4 class="anchor anchorWithStickyNavbar_LWe7" id="responses-13">Responses<a href="#responses-13" class="hash-link" aria-label="Direct link to Responses" title="Direct link to Responses">​</a></h4>
@@ -245,6 +244,6 @@ keyed by the combined <code>druid.host</code> and <code>druid.port</code>.</p>
 <h4 class="anchor anchorWithStickyNavbar_LWe7" id="sample-request-19">Sample request<a href="#sample-request-19" class="hash-link" aria-label="Direct link to Sample request" title="Direct link to Sample request">​</a></h4>
 <div class="tabs-container tabList__CuJ"><ul role="tablist" aria-orientation="horizontal" class="tabs"><li role="tab" tabindex="0" aria-selected="true" class="tabs__item tabItem_LNqP tabs__item--active">cURL</li><li role="tab" tabindex="-1" aria-selected="false" class="tabs__item tabItem_LNqP">HTTP</li></ul><div class="margin-top--md"><div role="tabpanel" class="tabItem_Ymn6"><div class="language-shell codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#bfc7d5;--prism-backgro [...]
 <h4 class="anchor anchorWithStickyNavbar_LWe7" id="sample-response-19">Sample response<a href="#sample-response-19" class="hash-link" aria-label="Direct link to Sample response" title="Direct link to Sample response">​</a></h4>
-<p>A successful response to this endpoint results in an empty response body.</p></div></article><nav class="pagination-nav docusaurus-mt-lg" aria-label="Docs pages"><a class="pagination-nav__link pagination-nav__link--prev" href="/docs/latest/api-reference/lookups-api"><div class="pagination-nav__sublabel">Previous</div><div class="pagination-nav__label">Lookups</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/docs/latest/api-reference/dynamic-configuration-api" [...]
+<p>A successful response to this endpoint results in an empty response body.</p></div></article><nav class="pagination-nav docusaurus-mt-lg" aria-label="Docs pages"><a class="pagination-nav__link pagination-nav__link--prev" href="/docs/38.0.0/api-reference/lookups-api"><div class="pagination-nav__sublabel">Previous</div><div class="pagination-nav__label">Lookups</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/docs/38.0.0/api-reference/dynamic-configuration-api" [...]
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/38.0.0/api-reference/sql-api.html/index.html b/docs/38.0.0/api-reference/sql-api.html/index.html
new file mode 100644
index 000000000..1b881827c
--- /dev/null
+++ b/docs/38.0.0/api-reference/sql-api.html/index.html
@@ -0,0 +1,11 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <meta charset="UTF-8">
+    <meta http-equiv="refresh" content="0; url=/docs/38.0.0/api-reference/sql-api">
+    <link rel="canonical" href="/docs/38.0.0/api-reference/sql-api" />
+  </head>
+  <script>
+    window.location.href = '/docs/38.0.0/api-reference/sql-api' + window.location.search + window.location.hash;
+  </script>
+</html>
\ No newline at end of file
diff --git a/docs/latest/api-reference/sql-api/index.html b/docs/38.0.0/api-reference/sql-api/index.html
similarity index 99%
copy from docs/latest/api-reference/sql-api/index.html
copy to docs/38.0.0/api-reference/sql-api/index.html
index 26584d07a..376008284 100644
--- a/docs/latest/api-reference/sql-api/index.html
+++ b/docs/38.0.0/api-reference/sql-api/index.html
@@ -3,19 +3,19 @@
 <head>
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.7.0">
-<title data-rh="true">Druid SQL API | Apache® Druid</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://druid.apache.org/img/druid_nav.png"><meta data-rh="true" name="twitter:image" content="https://druid.apache.org/img/druid_nav.png"><meta data-rh="true" property="og:url" content="https://druid.apache.org/docs/latest/api-re [...]
+<title data-rh="true">Druid SQL API | Apache® Druid</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://druid.apache.org/img/druid_nav.png"><meta data-rh="true" name="twitter:image" content="https://druid.apache.org/img/druid_nav.png"><meta data-rh="true" property="og:url" content="https://druid.apache.org/docs/38.0.0/api-re [...]
 <script src="/js/clipboard.min.js"></script><link rel="stylesheet" href="/assets/css/styles.f3140859.css">
-<script src="/assets/js/runtime~main.3e1f3e8c.js" defer="defer"></script>
-<script src="/assets/js/main.b85ce480.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.ea7da916.js" defer="defer"></script>
+<script src="/assets/js/main.b6e60483.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
-<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const n=new URLSearchParams(window.location.search).entries();for(var[t,e]of n)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentEle [...]
+<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const n=new URLSearchParams(window.location.search).entries();for(var[t,e]of n)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentEle [...]
 This document describes the SQL language.</p></div></div>
 <p>In this topic, <code>http://ROUTER_IP:ROUTER_PORT</code> is a placeholder for your Router service address and port. Replace it with the information for your deployment. For example, use <code>http://localhost:8888</code> for quickstart deployments.</p>
 <h2 class="anchor anchorWithStickyNavbar_LWe7" id="query-from-historicals">Query from Historicals<a href="#query-from-historicals" class="hash-link" aria-label="Direct link to Query from Historicals" title="Direct link to Query from Historicals">​</a></h2>
 <h3 class="anchor anchorWithStickyNavbar_LWe7" id="submit-a-query">Submit a query<a href="#submit-a-query" class="hash-link" aria-label="Direct link to Submit a query" title="Direct link to Submit a query">​</a></h3>
 <p>Submits a SQL-based query in the JSON or text format request body.
-Returns a JSON object with the query results and optional metadata for the results. You can also use this endpoint to query <a href="/docs/latest/querying/sql-metadata-tables">metadata tables</a>.</p>
+Returns a JSON object with the query results and optional metadata for the results. You can also use this endpoint to query <a href="/docs/38.0.0/querying/sql-metadata-tables">metadata tables</a>.</p>
 <p>Each query has an associated SQL query ID. You can set this ID manually using the SQL context parameter <code>sqlQueryId</code>. If not set, Druid automatically generates <code>sqlQueryId</code> and returns it in the response header for <code>X-Druid-SQL-Query-Id</code>. Note that you need the <code>sqlQueryId</code> to <a href="#cancel-a-query">cancel a query</a>.</p>
 <h4 class="anchor anchorWithStickyNavbar_LWe7" id="url">URL<a href="#url" class="hash-link" aria-label="Direct link to URL" title="Direct link to URL">​</a></h4>
 <p><code>POST</code> <code>/druid/v2/sql</code></p>
@@ -25,7 +25,7 @@ If there are multiple <code>Content-Type</code> headers, the <strong>first</stro
 <p>The request body takes the following properties:</p>
 <ul>
 <li>
-<p><code>query</code>: SQL query string. HTTP requests are permitted to include multiple <code>SET</code> statements to assign <a href="/docs/latest/querying/sql-query-context">SQL query context parameter</a> values to apply to the query statement, see <a href="/docs/latest/querying/sql#set">SET</a> for details. Context parameters set by <code>SET</code> statements take priority over values set in <code>context</code>.</p>
+<p><code>query</code>: SQL query string. HTTP requests are permitted to include multiple <code>SET</code> statements to assign <a href="/docs/38.0.0/querying/sql-query-context">SQL query context parameter</a> values to apply to the query statement, see <a href="/docs/38.0.0/querying/sql#set">SET</a> for details. Context parameters set by <code>SET</code> statements take priority over values set in <code>context</code>.</p>
 </li>
 <li>
 <p><code>resultFormat</code>: String that indicates the format to return query results. Select one of the following formats:</p>
@@ -72,10 +72,10 @@ This format includes a single trailing newline character so you can detect a tru
 </ul>
 </li>
 <li>
-<p><code>context</code>: JSON object containing optional <a href="/docs/latest/querying/sql-query-context">SQL query context parameters</a>, such as to set the query ID, time zone, and whether to use an approximation algorithm for distinct count. You can also set the context through the SQL SET command. For more information, see <a href="/docs/latest/querying/sql#set">Druid SQL overview</a>.</p>
+<p><code>context</code>: JSON object containing optional <a href="/docs/38.0.0/querying/sql-query-context">SQL query context parameters</a>, such as to set the query ID, time zone, and whether to use an approximation algorithm for distinct count. You can also set the context through the SQL SET command. For more information, see <a href="/docs/38.0.0/querying/sql#set">Druid SQL overview</a>.</p>
 </li>
 <li>
-<p><code>parameters</code>: List of query parameters for parameterized queries. Each parameter in the array should be a JSON object containing the parameter&#x27;s SQL data type and parameter value. For more information on using dynamic parameters, see <a href="/docs/latest/querying/sql#dynamic-parameters">Dynamic parameters</a>. For a list of supported SQL types, see <a href="/docs/latest/querying/sql-data-types">Data types</a>.</p>
+<p><code>parameters</code>: List of query parameters for parameterized queries. Each parameter in the array should be a JSON object containing the parameter&#x27;s SQL data type and parameter value. For more information on using dynamic parameters, see <a href="/docs/38.0.0/querying/sql#dynamic-parameters">Dynamic parameters</a>. For a list of supported SQL types, see <a href="/docs/38.0.0/querying/sql-data-types">Data types</a>.</p>
 <p>For example:</p>
 <div class="language-json codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#bfc7d5;--prism-background-color:#292d3e"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-json codeBlock_bY9V thin-scrollbar" style="color:#bfc7d5;background-color:#292d3e"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#bfc7d5"><span class="token punctuation" style="color:rgb(199, 146, 234)">{</span><span class="token plain"></span><br></span> [...]
 </li>
@@ -97,7 +97,7 @@ While the second example passes the raw query <code>SELECT 1</code> to <code>cur
 <h4 class="anchor anchorWithStickyNavbar_LWe7" id="responses">Responses<a href="#responses" class="hash-link" aria-label="Direct link to Responses" title="Direct link to Responses">​</a></h4>
 <div class="tabs-container tabList__CuJ"><ul role="tablist" aria-orientation="horizontal" class="tabs"><li role="tab" tabindex="0" aria-selected="true" class="tabs__item tabItem_LNqP tabs__item--active">200 SUCCESS</li><li role="tab" tabindex="-1" aria-selected="false" class="tabs__item tabItem_LNqP">400 BAD REQUEST</li><li role="tab" tabindex="-1" aria-selected="false" class="tabs__item tabItem_LNqP">500 INTERNAL SERVER ERROR</li></ul><div class="margin-top--md"><div role="tabpanel" cla [...]
 <h4 class="anchor anchorWithStickyNavbar_LWe7" id="client-side-error-handling-and-truncated-responses">Client-side error handling and truncated responses<a href="#client-side-error-handling-and-truncated-responses" class="hash-link" aria-label="Direct link to Client-side error handling and truncated responses" title="Direct link to Client-side error handling and truncated responses">​</a></h4>
-<p>Druid reports errors that occur before the response body is sent as JSON with an HTTP 500 status code. The errors are reported using the same format as <a href="/docs/latest/querying/#query-errors">native Druid query errors</a>.
+<p>Druid reports errors that occur before the response body is sent as JSON with an HTTP 500 status code. The errors are reported using the same format as <a href="/docs/38.0.0/querying/#query-errors">native Druid query errors</a>.
 If an error occurs while Druid is sending the response body, the server handling the request stops the response midstream and logs an error.</p>
 <p>This means that when you call the SQL API, you must properly handle response truncation.
 For  <code>object</code> and <code>array</code> formats, truncated responses are invalid JSON.
@@ -113,7 +113,7 @@ For line-oriented formats, Druid includes a newline character as the final chara
 <li>Returns descriptors for <code>header</code>, <code>typesHeader</code>, and <code>sqlTypesHeader</code>.</li>
 </ul>
 <div class="tabs-container tabList__CuJ"><ul role="tablist" aria-orientation="horizontal" class="tabs"><li role="tab" tabindex="0" aria-selected="true" class="tabs__item tabItem_LNqP tabs__item--active">cURL</li><li role="tab" tabindex="-1" aria-selected="false" class="tabs__item tabItem_LNqP">HTTP</li></ul><div class="margin-top--md"><div role="tabpanel" class="tabItem_Ymn6"><div class="language-shell codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#bfc7d5;--prism-backgro [...]
-<p>You can also specify query-level context parameters directly within the SQL query string using the <code>SET</code> command. For more details, see <a href="/docs/latest/querying/sql#set">SET</a>.</p>
+<p>You can also specify query-level context parameters directly within the SQL query string using the <code>SET</code> command. For more details, see <a href="/docs/38.0.0/querying/sql#set">SET</a>.</p>
 <p>The following request body is functionally equivalent to the previous example and uses SET instead of the <code>context</code> parameter:</p>
 <div class="language-JSON language-json codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#bfc7d5;--prism-background-color:#292d3e"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-json codeBlock_bY9V thin-scrollbar" style="color:#bfc7d5;background-color:#292d3e"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#bfc7d5"><span class="token punctuation" style="color:rgb(199, 146, 234)">{</span><span class="token plain"></sp [...]
 <h4 class="anchor anchorWithStickyNavbar_LWe7" id="sample-response">Sample response<a href="#sample-response" class="hash-link" aria-label="Direct link to Sample response" title="Direct link to Sample response">​</a></h4>
@@ -140,7 +140,7 @@ The examples includes the first row of results, where the value of <code>user</c
 <h2 class="anchor anchorWithStickyNavbar_LWe7" id="query-from-deep-storage">Query from deep storage<a href="#query-from-deep-storage" class="hash-link" aria-label="Direct link to Query from deep storage" title="Direct link to Query from deep storage">​</a></h2>
 <p>You can use the <code>sql/statements</code> endpoint to query segments that exist only in deep storage and are not loaded onto your Historical processes as determined by your load rules.</p>
 <p>Note that at least one segment of a datasource must be available on a Historical process so that the Broker can plan your query. A quick way to check if this is true is whether or not a datasource is visible in the Druid console.</p>
-<p>For more information, see <a href="/docs/latest/querying/query-deep-storage">Query from deep storage</a>.</p>
+<p>For more information, see <a href="/docs/38.0.0/querying/query-deep-storage">Query from deep storage</a>.</p>
 <h3 class="anchor anchorWithStickyNavbar_LWe7" id="submit-a-query-1">Submit a query<a href="#submit-a-query-1" class="hash-link" aria-label="Direct link to Submit a query" title="Direct link to Submit a query">​</a></h3>
 <p>Submit a query for data stored in deep storage. Any data ingested into Druid is placed into deep storage. The query is contained in the &quot;query&quot; field in the JSON object within the request payload.</p>
 <p>Note that at least part of a datasource must be available on a Historical process so that Druid can plan your query and only the user who submits a query can see the results.</p>
@@ -151,10 +151,10 @@ The examples includes the first row of results, where the value of <code>user</c
 <p>Keep the following in mind when submitting queries to the <code>sql/statements</code> endpoint:</p>
 <ul>
 <li>
-<p>Apart from the context parameters mentioned <a href="/docs/latest/multi-stage-query/reference#context-parameters">here</a> there are additional context parameters for <code>sql/statements</code> specifically:</p>
+<p>Apart from the context parameters mentioned <a href="/docs/38.0.0/multi-stage-query/reference#context-parameters">here</a> there are additional context parameters for <code>sql/statements</code> specifically:</p>
 <ul>
 <li><code>executionMode</code>  determines how query results are fetched. Druid currently only supports <code>ASYNC</code>. You must manually retrieve your results after the query completes.</li>
-<li><code>selectDestination</code> determines where final results get written. By default, results are written to task reports. Set this parameter to <code>durableStorage</code> to instruct Druid to write the results from SELECT queries to durable storage, which allows you to fetch larger result sets. For result sets with more than 3000 rows, it is highly recommended to use <code>durableStorage</code>. Note that this requires you to have <a href="/docs/latest/operations/durable-storage"> [...]
+<li><code>selectDestination</code> determines where final results get written. By default, results are written to task reports. Set this parameter to <code>durableStorage</code> to instruct Druid to write the results from SELECT queries to durable storage, which allows you to fetch larger result sets. For result sets with more than 3000 rows, it is highly recommended to use <code>durableStorage</code>. Note that this requires you to have <a href="/docs/38.0.0/operations/durable-storage"> [...]
 </ul>
 </li>
 </ul>
@@ -248,6 +248,6 @@ The examples includes the first row of results, where the value of <code>user</c
 <p>The following example cancels a query with specified ID <code>query-945c9633-2fa2-49ab-80ae-8221c38c024da</code>.</p>
 <div class="tabs-container tabList__CuJ"><ul role="tablist" aria-orientation="horizontal" class="tabs"><li role="tab" tabindex="0" aria-selected="true" class="tabs__item tabItem_LNqP tabs__item--active">cURL</li><li role="tab" tabindex="-1" aria-selected="false" class="tabs__item tabItem_LNqP">HTTP</li></ul><div class="margin-top--md"><div role="tabpanel" class="tabItem_Ymn6"><div class="language-shell codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#bfc7d5;--prism-backgro [...]
 <h4 class="anchor anchorWithStickyNavbar_LWe7" id="sample-response-5">Sample response<a href="#sample-response-5" class="hash-link" aria-label="Direct link to Sample response" title="Direct link to Sample response">​</a></h4>
-<p>A successful request returns an HTTP <code>202 ACCEPTED</code> message code and an empty response body.</p></div></article><nav class="pagination-nav docusaurus-mt-lg" aria-label="Docs pages"><a class="pagination-nav__link pagination-nav__link--prev" href="/docs/latest/api-reference/"><div class="pagination-nav__sublabel">Previous</div><div class="pagination-nav__label">Overview</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/docs/latest/api-reference/sql-in [...]
+<p>A successful request returns an HTTP <code>202 ACCEPTED</code> message code and an empty response body.</p></div></article><nav class="pagination-nav docusaurus-mt-lg" aria-label="Docs pages"><a class="pagination-nav__link pagination-nav__link--prev" href="/docs/38.0.0/api-reference/"><div class="pagination-nav__sublabel">Previous</div><div class="pagination-nav__label">Overview</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/docs/38.0.0/api-reference/sql-in [...]
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/38.0.0/api-reference/sql-ingestion-api.html/index.html b/docs/38.0.0/api-reference/sql-ingestion-api.html/index.html
new file mode 100644
index 000000000..7dc85a3ab
--- /dev/null
+++ b/docs/38.0.0/api-reference/sql-ingestion-api.html/index.html
@@ -0,0 +1,11 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <meta charset="UTF-8">
+    <meta http-equiv="refresh" content="0; url=/docs/38.0.0/api-reference/sql-ingestion-api">
+    <link rel="canonical" href="/docs/38.0.0/api-reference/sql-ingestion-api" />
+  </head>
+  <script>
+    window.location.href = '/docs/38.0.0/api-reference/sql-ingestion-api' + window.location.search + window.location.hash;
+  </script>
+</html>
\ No newline at end of file
diff --git a/docs/latest/api-reference/sql-ingestion-api/index.html b/docs/38.0.0/api-reference/sql-ingestion-api/index.html
similarity index 98%
copy from docs/latest/api-reference/sql-ingestion-api/index.html
copy to docs/38.0.0/api-reference/sql-ingestion-api/index.html
index 6a4f68383..9d9c1f27c 100644
--- a/docs/latest/api-reference/sql-ingestion-api/index.html
+++ b/docs/38.0.0/api-reference/sql-ingestion-api/index.html
@@ -3,30 +3,29 @@
 <head>
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.7.0">
-<title data-rh="true">SQL-based ingestion API | Apache® Druid</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://druid.apache.org/img/druid_nav.png"><meta data-rh="true" name="twitter:image" content="https://druid.apache.org/img/druid_nav.png"><meta data-rh="true" property="og:url" content="https://druid.apache.org/docs/lat [...]
+<title data-rh="true">SQL-based ingestion API | Apache® Druid</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://druid.apache.org/img/druid_nav.png"><meta data-rh="true" name="twitter:image" content="https://druid.apache.org/img/druid_nav.png"><meta data-rh="true" property="og:url" content="https://druid.apache.org/docs/38. [...]
 <script src="/js/clipboard.min.js"></script><link rel="stylesheet" href="/assets/css/styles.f3140859.css">
-<script src="/assets/js/runtime~main.3e1f3e8c.js" defer="defer"></script>
-<script src="/assets/js/main.b85ce480.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.ea7da916.js" defer="defer"></script>
+<script src="/assets/js/main.b6e60483.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
-<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const n=new URLSearchParams(window.location.search).entries();for(var[t,e]of n)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentEle [...]
-extension, new in Druid 24.0. Refer to the <a href="/docs/latest/ingestion/#batch">ingestion methods</a> table to determine which
-ingestion method is right for you.</p></div></div>
+<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const n=new URLSearchParams(window.location.search).entries();for(var[t,e]of n)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentEle [...]
+Refer to the <a href="/docs/38.0.0/ingestion/#batch">ingestion methods</a> table to determine which ingestion method is right for you.</p></div></div>
 <p>The <strong>Query</strong> view in the web console provides a friendly experience for the multi-stage query task engine (MSQ task engine) and multi-stage query architecture. We recommend using the web console if you don&#x27;t need a programmatic interface.</p>
 <p>When using the API for the MSQ task engine, the action you want to take determines the endpoint you use:</p>
 <ul>
 <li><code>/druid/v2/sql/task</code>: Submit a query for ingestion.</li>
-<li><code>/druid/indexer/v1/task</code>: Interact with a query, including getting its status or details, or canceling the query. This page describes a few of the Overlord Task APIs that you can use with the MSQ task engine. For information about Druid APIs, see the <a href="/docs/latest/ingestion/tasks">API reference for Druid</a>.</li>
+<li><code>/druid/indexer/v1/task</code>: Interact with a query, including getting its status or details, or canceling the query. This page describes a few of the Overlord Task APIs that you can use with the MSQ task engine. For information about Druid APIs, see the <a href="/docs/38.0.0/ingestion/tasks">API reference for Druid</a>.</li>
 </ul>
 <p>In this topic, <code>http://ROUTER_IP:ROUTER_PORT</code> is a placeholder for your Router service address and port. Replace it with the information for your deployment. For example, use <code>http://localhost:8888</code> for quickstart deployments.</p>
 <h2 class="anchor anchorWithStickyNavbar_LWe7" id="submit-a-query">Submit a query<a href="#submit-a-query" class="hash-link" aria-label="Direct link to Submit a query" title="Direct link to Submit a query">​</a></h2>
 <p>Submits queries to the MSQ task engine.</p>
 <p>The <code>/druid/v2/sql/task</code> endpoint accepts the following:</p>
 <ul>
-<li><a href="/docs/latest/api-reference/sql-api#request-body">SQL requests in the JSON-over-HTTP form</a> using the
+<li><a href="/docs/38.0.0/api-reference/sql-api#request-body">SQL requests in the JSON-over-HTTP form</a> using the
 <code>query</code>, <code>context</code>, and <code>parameters</code> fields. The endpoint ignores the <code>resultFormat</code>, <code>header</code>, <code>typesHeader</code>, and <code>sqlTypesHeader</code> fields.</li>
-<li><a href="/docs/latest/multi-stage-query/reference#insert">INSERT</a> and <a href="/docs/latest/multi-stage-query/reference#replace">REPLACE</a> statements.</li>
-<li>SELECT queries (experimental feature). SELECT query results are collected from workers by the controller, and written into the <a href="#get-the-report-for-a-query-task">task report</a> as an array of arrays. The behavior and result format of plain SELECT queries (without INSERT or REPLACE) is subject to change.</li>
+<li><a href="/docs/38.0.0/multi-stage-query/reference#insert">INSERT</a> and <a href="/docs/38.0.0/multi-stage-query/reference#replace">REPLACE</a> statements.</li>
+<li>SELECT queries as batch tasks. SELECT query results are collected from workers by the controller and written into the <a href="#get-the-report-for-a-query-task">task report</a> as an array of arrays.</li>
 </ul>
 <h3 class="anchor anchorWithStickyNavbar_LWe7" id="url">URL<a href="#url" class="hash-link" aria-label="Direct link to URL" title="Direct link to URL">​</a></h3>
 <p><code>POST</code> <code>/druid/v2/sql/task</code></p>
@@ -38,13 +37,13 @@ ingestion method is right for you.</p></div></div>
 The example specifies two query context parameters:</p>
 <ul>
 <li><code>maxNumTasks=3</code>: Limits the maximum number of parallel tasks to 3.</li>
-<li><code>finalizeAggregations=false</code>: Ensures that Druid saves the aggregation&#x27;s intermediate type during ingestion. For more information, see <a href="/docs/latest/multi-stage-query/concepts#rollup">Rollup</a>.</li>
+<li><code>finalizeAggregations=false</code>: Ensures that Druid saves the aggregation&#x27;s intermediate type during ingestion. For more information, see <a href="/docs/38.0.0/multi-stage-query/concepts#rollup">Rollup</a>.</li>
 </ul>
 <div class="tabs-container tabList__CuJ"><ul role="tablist" aria-orientation="horizontal" class="tabs"><li role="tab" tabindex="0" aria-selected="true" class="tabs__item tabItem_LNqP tabs__item--active">HTTP</li><li role="tab" tabindex="-1" aria-selected="false" class="tabs__item tabItem_LNqP">cURL</li><li role="tab" tabindex="-1" aria-selected="false" class="tabs__item tabItem_LNqP">Python</li></ul><div class="margin-top--md"><div role="tabpanel" class="tabItem_Ymn6"><div class="languag [...]
 <h3 class="anchor anchorWithStickyNavbar_LWe7" id="sample-response">Sample response<a href="#sample-response" class="hash-link" aria-label="Direct link to Sample response" title="Direct link to Sample response">​</a></h3>
 <details class="details_lb9f alert alert--info details_b_Ee" data-collapsed="true"><summary>View the response</summary><div><div class="collapsibleContent_i85q"><div class="language-json codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#bfc7d5;--prism-background-color:#292d3e"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-json codeBlock_bY9V thin-scrollbar" style="color:#bfc7d5;background-color:#292d3e"><code class="codeBlockLines_e6Vv"><sp [...]
 <p><strong>Response fields</strong></p>
-<table><thead><tr><th>Field</th><th>Description</th></tr></thead><tbody><tr><td><code>taskId</code></td><td>Controller task ID. You can use Druid&#x27;s standard <a href="/docs/latest/api-reference/tasks-api">Tasks API</a> to interact with this controller task.</td></tr><tr><td><code>state</code></td><td>Initial state for the query.</td></tr></tbody></table>
+<table><thead><tr><th>Field</th><th>Description</th></tr></thead><tbody><tr><td><code>taskId</code></td><td>Controller task ID. You can use Druid&#x27;s standard <a href="/docs/38.0.0/api-reference/tasks-api">Tasks API</a> to interact with this controller task.</td></tr><tr><td><code>state</code></td><td>Initial state for the query.</td></tr></tbody></table>
 <h2 class="anchor anchorWithStickyNavbar_LWe7" id="get-the-status-for-a-query-task">Get the status for a query task<a href="#get-the-status-for-a-query-task" class="hash-link" aria-label="Direct link to Get the status for a query task" title="Direct link to Get the status for a query task">​</a></h2>
 <p>Retrieves the status of a query task. It returns a JSON object with the task&#x27;s status code, runner status, task type, datasource, and other relevant metadata.</p>
 <h3 class="anchor anchorWithStickyNavbar_LWe7" id="url-1">URL<a href="#url-1" class="hash-link" aria-label="Direct link to URL" title="Direct link to URL">​</a></h3>
@@ -64,7 +63,7 @@ The report provides detailed information about the query task, including things
 <ul>
 <li>The task report for an entire job is associated with the <code>query_controller</code> task. The <code>query_worker</code> tasks don&#x27;t have their own reports; their information is incorporated into the controller report.</li>
 <li>The task report API may report <code>404 Not Found</code> temporarily while the task is in the process of starting up.</li>
-<li>As an experimental feature, the MSQ task engine supports running SELECT queries. SELECT query results are written into
+<li>The MSQ task engine supports running SELECT queries. SELECT query results are written into
 the <code>multiStageQuery.payload.results.results</code> task report key as an array of arrays. The behavior and result format of plain
 SELECT queries (without INSERT or REPLACE) is subject to change.</li>
 <li><code>multiStageQuery.payload.results.resultsTruncated</code> denotes whether the results of the report have been truncated to prevent the reports from blowing up.</li>
@@ -83,7 +82,7 @@ SELECT queries (without INSERT or REPLACE) is subject to change.</li>
 <details class="details_lb9f alert alert--info details_b_Ee" data-collapsed="true"><summary>View the response</summary><div><div class="collapsibleContent_i85q"><div class="language-json codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#bfc7d5;--prism-background-color:#292d3e"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-json codeBlock_bY9V thin-scrollbar" style="color:#bfc7d5;background-color:#292d3e"><code class="codeBlockLines_e6Vv"><sp [...]
 <a name="report-response-fields"></a>
 <p>The following table describes the response fields when you retrieve a report for a MSQ task engine using the <code>/druid/indexer/v1/task/{taskId}/reports</code> endpoint:</p>
-<table><thead><tr><th>Field</th><th>Description</th></tr></thead><tbody><tr><td><code>multiStageQuery.taskId</code></td><td>Controller task ID.</td></tr><tr><td><code>multiStageQuery.payload.status</code></td><td>Query status container.</td></tr><tr><td><code>multiStageQuery.payload.status.status</code></td><td>RUNNING, SUCCESS, or FAILED.</td></tr><tr><td><code>multiStageQuery.payload.status.startTime</code></td><td>Start time of the query in ISO format. Only present if the query has st [...]
+<table><thead><tr><th>Field</th><th>Description</th></tr></thead><tbody><tr><td><code>multiStageQuery.taskId</code></td><td>Controller task ID.</td></tr><tr><td><code>multiStageQuery.payload.status</code></td><td>Query status container.</td></tr><tr><td><code>multiStageQuery.payload.status.status</code></td><td>RUNNING, SUCCESS, or FAILED.</td></tr><tr><td><code>multiStageQuery.payload.status.startTime</code></td><td>Start time of the query in ISO format. Only present if the query has st [...]
 <h2 class="anchor anchorWithStickyNavbar_LWe7" id="cancel-a-query-task">Cancel a query task<a href="#cancel-a-query-task" class="hash-link" aria-label="Direct link to Cancel a query task" title="Direct link to Cancel a query task">​</a></h2>
 <p>Cancels a query task.
 Returns a JSON object with the ID of the task that was canceled successfully.</p>
@@ -97,6 +96,6 @@ Returns a JSON object with the ID of the task that was canceled successfully.</p
 <div class="tabs-container tabList__CuJ"><ul role="tablist" aria-orientation="horizontal" class="tabs"><li role="tab" tabindex="0" aria-selected="true" class="tabs__item tabItem_LNqP tabs__item--active">HTTP</li><li role="tab" tabindex="-1" aria-selected="false" class="tabs__item tabItem_LNqP">cURL</li><li role="tab" tabindex="-1" aria-selected="false" class="tabs__item tabItem_LNqP">Python</li></ul><div class="margin-top--md"><div role="tabpanel" class="tabItem_Ymn6"><div class="languag [...]
 <h3 class="anchor anchorWithStickyNavbar_LWe7" id="sample-response-3">Sample response<a href="#sample-response-3" class="hash-link" aria-label="Direct link to Sample response" title="Direct link to Sample response">​</a></h3>
 <p>The response shows the ID of the task that was canceled.</p>
-<div class="language-json codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#bfc7d5;--prism-background-color:#292d3e"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-json codeBlock_bY9V thin-scrollbar" style="color:#bfc7d5;background-color:#292d3e"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#bfc7d5"><span class="token punctuation" style="color:rgb(199, 146, 234)">{</span><span class="token plain"></span><br></span> [...]
+<div class="language-json codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#bfc7d5;--prism-background-color:#292d3e"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-json codeBlock_bY9V thin-scrollbar" style="color:#bfc7d5;background-color:#292d3e"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#bfc7d5"><span class="token punctuation" style="color:rgb(199, 146, 234)">{</span><span class="token plain"></span><br></span> [...]
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/38.0.0/api-reference/sql-jdbc.html/index.html b/docs/38.0.0/api-reference/sql-jdbc.html/index.html
new file mode 100644
index 000000000..56657ab6a
--- /dev/null
+++ b/docs/38.0.0/api-reference/sql-jdbc.html/index.html
@@ -0,0 +1,11 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <meta charset="UTF-8">
+    <meta http-equiv="refresh" content="0; url=/docs/38.0.0/api-reference/sql-jdbc">
+    <link rel="canonical" href="/docs/38.0.0/api-reference/sql-jdbc" />
+  </head>
+  <script>
+    window.location.href = '/docs/38.0.0/api-reference/sql-jdbc' + window.location.search + window.location.hash;
+  </script>
+</html>
\ No newline at end of file
diff --git a/docs/latest/api-reference/sql-jdbc/index.html b/docs/38.0.0/api-reference/sql-jdbc/index.html
similarity index 94%
copy from docs/latest/api-reference/sql-jdbc/index.html
copy to docs/38.0.0/api-reference/sql-jdbc/index.html
index 3f76abf6e..9aaf40a58 100644
--- a/docs/latest/api-reference/sql-jdbc/index.html
+++ b/docs/38.0.0/api-reference/sql-jdbc/index.html
@@ -3,15 +3,15 @@
 <head>
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.7.0">
-<title data-rh="true">SQL JDBC driver API | Apache® Druid</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://druid.apache.org/img/druid_nav.png"><meta data-rh="true" name="twitter:image" content="https://druid.apache.org/img/druid_nav.png"><meta data-rh="true" property="og:url" content="https://druid.apache.org/docs/latest/ [...]
+<title data-rh="true">SQL JDBC driver API | Apache® Druid</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://druid.apache.org/img/druid_nav.png"><meta data-rh="true" name="twitter:image" content="https://druid.apache.org/img/druid_nav.png"><meta data-rh="true" property="og:url" content="https://druid.apache.org/docs/38.0.0/ [...]
 <script src="/js/clipboard.min.js"></script><link rel="stylesheet" href="/assets/css/styles.f3140859.css">
-<script src="/assets/js/runtime~main.3e1f3e8c.js" defer="defer"></script>
-<script src="/assets/js/main.b85ce480.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.ea7da916.js" defer="defer"></script>
+<script src="/assets/js/main.b6e60483.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
-<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const n=new URLSearchParams(window.location.search).entries();for(var[t,e]of n)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentEle [...]
+<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const n=new URLSearchParams(window.location.search).entries();for(var[t,e]of n)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentEle [...]
 This document describes the SQL language.</p></div></div>
-<p>You can make <a href="/docs/latest/querying/sql">Druid SQL</a> queries using the <a href="https://calcite.apache.org/avatica/downloads/" target="_blank" rel="noopener noreferrer">Avatica JDBC driver</a>.
+<p>You can make <a href="/docs/38.0.0/querying/sql">Druid SQL</a> queries using the <a href="https://calcite.apache.org/avatica/downloads/" target="_blank" rel="noopener noreferrer">Avatica JDBC driver</a>.
 We recommend using Avatica JDBC driver version 1.23.0 or later. Note that starting with Avatica 1.21.0, you may need to set the <a href="https://calcite.apache.org/avatica/docs/client_reference.html#transparent_reconnection" target="_blank" rel="noopener noreferrer"><code>transparent_reconnection</code></a> property to <code>true</code> if you notice intermittent query failures.</p>
 <p>Once you&#x27;ve downloaded the Avatica client jar, add it to your classpath.</p>
 <p>Example connection string:</p>
@@ -24,7 +24,7 @@ For more information, see <a href="#connection-stickiness">Connection stickiness
 or if a Broker is restarted.</p>
 <p>Set <code>serialization</code> to <code>protobuf</code> if using the protobuf endpoint.</p>
 <p>Note that as of the time of this writing, Avatica 1.23.0, the latest version, does not support passing
-<a href="/docs/latest/querying/sql-query-context">connection context parameters</a> from the JDBC connection string to Druid. These context parameters
+<a href="/docs/38.0.0/querying/sql-query-context">connection context parameters</a> from the JDBC connection string to Druid. These context parameters
 must be passed using a <code>Properties</code> object instead. Refer to the Java code below for an example.</p>
 <p>Example Java code:</p>
 <div class="language-java codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#bfc7d5;--prism-background-color:#292d3e"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-java codeBlock_bY9V thin-scrollbar" style="color:#bfc7d5;background-color:#292d3e"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#bfc7d5"><span class="token plain">// Connect to /druid/v2/sql/avatica/ on your Broker.</span><br></span><span class="token-li [...]
@@ -34,16 +34,16 @@ improvements for larger result sets. To use it apply the following connection UR
 <div class="codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#bfc7d5;--prism-background-color:#292d3e"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#bfc7d5;background-color:#292d3e"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#bfc7d5"><span class="token plain">String url = &quot;jdbc:avatica:remote:url=http://localhost:8888/druid/v2/sql/avatica-protobuf/;transpare [...]
 <div class="theme-admonition theme-admonition-info admonition_xJq3 alert alert--info"><div class="admonitionHeading_Gvgb"><span class="admonitionIcon_Rf37"><svg viewBox="0 0 14 16"><path fill-rule="evenodd" d="M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"></path></svg></span>info</div><div class="admonitionContent_BuS1"><p>The protobuf endpoint is also kno [...]
 <p>Table metadata is available over JDBC using <code>connection.getMetaData()</code> or by querying the
-<a href="/docs/latest/querying/sql-metadata-tables">INFORMATION_SCHEMA tables</a>. For an example of this, see <a href="#get-the-metadata-for-a-datasource">Get the metadata for a datasource</a>.</p>
+<a href="/docs/38.0.0/querying/sql-metadata-tables">INFORMATION_SCHEMA tables</a>. For an example of this, see <a href="#get-the-metadata-for-a-datasource">Get the metadata for a datasource</a>.</p>
 <h2 class="anchor anchorWithStickyNavbar_LWe7" id="connection-stickiness">Connection stickiness<a href="#connection-stickiness" class="hash-link" aria-label="Direct link to Connection stickiness" title="Direct link to Connection stickiness">​</a></h2>
 <p>Druid&#x27;s JDBC server does not share connection state between Brokers. This means that if you&#x27;re using JDBC and have
 multiple Druid Brokers, you should either connect to a specific Broker or use a load balancer with sticky sessions
 enabled. The Druid Router process provides connection stickiness when balancing JDBC requests, and can be used to achieve
 the necessary stickiness even with a normal non-sticky load balancer. Please see the
-<a href="/docs/latest/design/router">Router</a> documentation for more details.</p>
-<p>Note that the non-JDBC <a href="/docs/latest/api-reference/sql-api#submit-a-query">JSON over HTTP</a> API is stateless and does not require stickiness.</p>
+<a href="/docs/38.0.0/design/router">Router</a> documentation for more details.</p>
+<p>Note that the non-JDBC <a href="/docs/38.0.0/api-reference/sql-api#submit-a-query">JSON over HTTP</a> API is stateless and does not require stickiness.</p>
 <h2 class="anchor anchorWithStickyNavbar_LWe7" id="dynamic-parameters">Dynamic parameters<a href="#dynamic-parameters" class="hash-link" aria-label="Direct link to Dynamic parameters" title="Direct link to Dynamic parameters">​</a></h2>
-<p>You can use <a href="/docs/latest/querying/sql#dynamic-parameters">parameterized queries</a> in JDBC code, as in this example:</p>
+<p>You can use <a href="/docs/38.0.0/querying/sql#dynamic-parameters">parameterized queries</a> in JDBC code, as in this example:</p>
 <div class="language-java codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#bfc7d5;--prism-background-color:#292d3e"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-java codeBlock_bY9V thin-scrollbar" style="color:#bfc7d5;background-color:#292d3e"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#bfc7d5"><span class="token plain">PreparedStatement statement = connection.prepareStatement(&quot;SELECT COUNT(*) AS cnt FROM [...]
 <p>Sample code where dynamic parameters replace arrays using STRING_TO_ARRAY:</p>
 <div class="language-java codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#bfc7d5;--prism-background-color:#292d3e"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-java codeBlock_bY9V thin-scrollbar" style="color:#bfc7d5;background-color:#292d3e"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#bfc7d5"><span class="token plain">PreparedStatement statement = connection.prepareStatement(&quot;select l1 from numfoo where [...]
@@ -61,23 +61,23 @@ the necessary stickiness even with a normal non-sticky load balancer. Please see
 <p>Make sure you meet the following requirements before trying these examples:</p>
 <ul>
 <li>
-<p>A supported <a href="/docs/latest/operations/java">Java version</a></p>
+<p>A supported <a href="/docs/38.0.0/operations/java">Java version</a></p>
 </li>
 <li>
 <p><a href="https://calcite.apache.org/avatica/downloads/" target="_blank" rel="noopener noreferrer">Avatica JDBC driver</a>. You can add the JAR  to your <code>CLASSPATH</code> directly or manage it externally, such as through Maven and a <code>pom.xml</code> file.</p>
 </li>
 <li>
-<p>An available Druid instance. You can use the <code>micro-quickstart</code> configuration described in <a href="/docs/latest/tutorials/">Quickstart (local)</a>. The examples assume that you are using the quickstart, so no authentication or authorization is expected unless explicitly mentioned.</p>
+<p>An available Druid instance. You can use the <code>micro-quickstart</code> configuration described in <a href="/docs/38.0.0/tutorials/">Quickstart (local)</a>. The examples assume that you are using the quickstart, so no authentication or authorization is expected unless explicitly mentioned.</p>
 </li>
 <li>
 <p>The example <code>wikipedia</code> datasource from the quickstart is loaded on your Druid instance. If you have a different datasource loaded, you can still try these examples. You&#x27;ll have to update the table name and column names to match your datasource.</p>
 </li>
 </ul>
 <h3 class="anchor anchorWithStickyNavbar_LWe7" id="get-the-metadata-for-a-datasource">Get the metadata for a datasource<a href="#get-the-metadata-for-a-datasource" class="hash-link" aria-label="Direct link to Get the metadata for a datasource" title="Direct link to Get the metadata for a datasource">​</a></h3>
-<p>Metadata, such as column names, is available either through the <a href="/docs/latest/querying/sql-metadata-tables"><code>INFORMATION_SCHEMA</code></a> table or through <code>connection.getMetaData()</code>. The following example uses the <code>INFORMATION_SCHEMA</code> table to retrieve and print the list of column names for the <code>wikipedia</code> datasource that you loaded during a previous tutorial.</p>
+<p>Metadata, such as column names, is available either through the <a href="/docs/38.0.0/querying/sql-metadata-tables"><code>INFORMATION_SCHEMA</code></a> table or through <code>connection.getMetaData()</code>. The following example uses the <code>INFORMATION_SCHEMA</code> table to retrieve and print the list of column names for the <code>wikipedia</code> datasource that you loaded during a previous tutorial.</p>
 <div class="language-java codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#bfc7d5;--prism-background-color:#292d3e"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-java codeBlock_bY9V thin-scrollbar" style="color:#bfc7d5;background-color:#292d3e"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#bfc7d5"><span class="token plain">import java.sql.*;</span><br></span><span class="token-line" style="color:#bfc7d5"><span cl [...]
 <h3 class="anchor anchorWithStickyNavbar_LWe7" id="query-data">Query data<a href="#query-data" class="hash-link" aria-label="Direct link to Query data" title="Direct link to Query data">​</a></h3>
-<p>Now that you know what columns are available, you can start querying the data. The following example queries the datasource named <code>wikipedia</code> for the timestamps and comments from Japan. It also sets the <a href="/docs/latest/querying/sql-query-context">query context parameter</a> <code>sqlTimeZone</code>. Optionally, you can also parameterize queries by using <a href="#dynamic-parameters">dynamic parameters</a>.</p>
-<div class="language-java codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#bfc7d5;--prism-background-color:#292d3e"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-java codeBlock_bY9V thin-scrollbar" style="color:#bfc7d5;background-color:#292d3e"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#bfc7d5"><span class="token plain">import java.sql.*;</span><br></span><span class="token-line" style="color:#bfc7d5"><span cl [...]
+<p>Now that you know what columns are available, you can start querying the data. The following example queries the datasource named <code>wikipedia</code> for the timestamps and comments from Japan. It also sets the <a href="/docs/38.0.0/querying/sql-query-context">query context parameter</a> <code>sqlTimeZone</code>. Optionally, you can also parameterize queries by using <a href="#dynamic-parameters">dynamic parameters</a>.</p>
+<div class="language-java codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#bfc7d5;--prism-background-color:#292d3e"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-java codeBlock_bY9V thin-scrollbar" style="color:#bfc7d5;background-color:#292d3e"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#bfc7d5"><span class="token plain">import java.sql.*;</span><br></span><span class="token-line" style="color:#bfc7d5"><span cl [...]
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/38.0.0/api-reference/supervisor-api.html/index.html b/docs/38.0.0/api-reference/supervisor-api.html/index.html
new file mode 100644
index 000000000..1dbc87583
--- /dev/null
+++ b/docs/38.0.0/api-reference/supervisor-api.html/index.html
@@ -0,0 +1,11 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <meta charset="UTF-8">
+    <meta http-equiv="refresh" content="0; url=/docs/38.0.0/api-reference/supervisor-api">
+    <link rel="canonical" href="/docs/38.0.0/api-reference/supervisor-api" />
+  </head>
+  <script>
+    window.location.href = '/docs/38.0.0/api-reference/supervisor-api' + window.location.search + window.location.hash;
+  </script>
+</html>
\ No newline at end of file
diff --git a/docs/latest/api-reference/supervisor-api/index.html b/docs/38.0.0/api-reference/supervisor-api/index.html
similarity index 98%
copy from docs/latest/api-reference/supervisor-api/index.html
copy to docs/38.0.0/api-reference/supervisor-api/index.html
index a554bf187..7746246f1 100644
--- a/docs/latest/api-reference/supervisor-api/index.html
+++ b/docs/38.0.0/api-reference/supervisor-api/index.html
@@ -3,18 +3,18 @@
 <head>
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.7.0">
-<title data-rh="true">Supervisor API | Apache® Druid</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://druid.apache.org/img/druid_nav.png"><meta data-rh="true" name="twitter:image" content="https://druid.apache.org/img/druid_nav.png"><meta data-rh="true" property="og:url" content="https://druid.apache.org/docs/latest/api-r [...]
+<title data-rh="true">Supervisor API | Apache® Druid</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://druid.apache.org/img/druid_nav.png"><meta data-rh="true" name="twitter:image" content="https://druid.apache.org/img/druid_nav.png"><meta data-rh="true" property="og:url" content="https://druid.apache.org/docs/38.0.0/api-r [...]
 <script src="/js/clipboard.min.js"></script><link rel="stylesheet" href="/assets/css/styles.f3140859.css">
-<script src="/assets/js/runtime~main.3e1f3e8c.js" defer="defer"></script>
-<script src="/assets/js/main.b85ce480.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.ea7da916.js" defer="defer"></script>
+<script src="/assets/js/main.b6e60483.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
-<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const n=new URLSearchParams(window.location.search).entries();for(var[t,e]of n)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentEle [...]
-The topic uses the Apache Kafka term offset to refer to the identifier for records in a partition. If you are using Amazon Kinesis, the equivalent is sequence number.</p>
+<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const n=new URLSearchParams(window.location.search).entries();for(var[t,e]of n)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentEle [...]
+The topic uses the Apache Kafka® term offset to refer to the identifier for records in a partition. If you are using Amazon Kinesis, the equivalent is sequence number.</p>
 <p>In this topic, <code>http://ROUTER_IP:ROUTER_PORT</code> is a placeholder for your Router service address and port. Replace it with the information for your deployment. For example, use <code>http://localhost:8888</code> for quickstart deployments.</p>
 <h2 class="anchor anchorWithStickyNavbar_LWe7" id="supervisor-information">Supervisor information<a href="#supervisor-information" class="hash-link" aria-label="Direct link to Supervisor information" title="Direct link to Supervisor information">​</a></h2>
 <p>The following table lists the properties of a supervisor object:</p>
-<table><thead><tr><th>Property</th><th>Type</th><th>Description</th></tr></thead><tbody><tr><td><code>id</code></td><td>String</td><td>Unique identifier.</td></tr><tr><td><code>state</code></td><td>String</td><td>Generic state of the supervisor. Available states:<code>UNHEALTHY_SUPERVISOR</code>, <code>UNHEALTHY_TASKS</code>, <code>PENDING</code>, <code>RUNNING</code>, <code>SUSPENDED</code>, <code>STOPPING</code>. See <a href="/docs/latest/ingestion/supervisor#status-report">Supervisor  [...]
+<table><thead><tr><th>Property</th><th>Type</th><th>Description</th></tr></thead><tbody><tr><td><code>id</code></td><td>String</td><td>Unique identifier.</td></tr><tr><td><code>state</code></td><td>String</td><td>Generic state of the supervisor. Available states:<code>UNHEALTHY_SUPERVISOR</code>, <code>UNHEALTHY_TASKS</code>, <code>PENDING</code>, <code>RUNNING</code>, <code>SUSPENDED</code>, <code>STOPPING</code>. See <a href="/docs/38.0.0/ingestion/supervisor#status-report">Supervisor  [...]
 <h3 class="anchor anchorWithStickyNavbar_LWe7" id="get-an-array-of-active-supervisor-ids">Get an array of active supervisor IDs<a href="#get-an-array-of-active-supervisor-ids" class="hash-link" aria-label="Direct link to Get an array of active supervisor IDs" title="Direct link to Get an array of active supervisor IDs">​</a></h3>
 <p>Returns an array of strings representing the names of active supervisors. If there are no active supervisors, it returns an empty array.</p>
 <h4 class="anchor anchorWithStickyNavbar_LWe7" id="url">URL<a href="#url" class="hash-link" aria-label="Direct link to URL" title="Direct link to URL">​</a></h4>
@@ -62,7 +62,7 @@ The topic uses the Apache Kafka term offset to refer to the identifier for recor
 <details class="details_lb9f alert alert--info details_b_Ee" data-collapsed="true"><summary>View the response</summary><div><div class="collapsibleContent_i85q"><div class="language-json codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#bfc7d5;--prism-background-color:#292d3e"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-json codeBlock_bY9V thin-scrollbar" style="color:#bfc7d5;background-color:#292d3e"><code class="codeBlockLines_e6Vv"><sp [...]
 <h3 class="anchor anchorWithStickyNavbar_LWe7" id="get-supervisor-status">Get supervisor status<a href="#get-supervisor-status" class="hash-link" aria-label="Direct link to Get supervisor status" title="Direct link to Get supervisor status">​</a></h3>
 <p>Retrieves the current status report for a single supervisor. The report contains the state of the supervisor tasks and an array of recently thrown exceptions.</p>
-<p>For additional information about the status report, see <a href="/docs/latest/ingestion/supervisor#status-report">Supervisor reference</a>.</p>
+<p>For additional information about the status report, see <a href="/docs/38.0.0/ingestion/supervisor#status-report">Supervisor reference</a>.</p>
 <h4 class="anchor anchorWithStickyNavbar_LWe7" id="url-4">URL<a href="#url-4" class="hash-link" aria-label="Direct link to URL" title="Direct link to URL">​</a></h4>
 <p><code>GET</code> <code>/druid/indexer/v1/supervisor/{supervisorId}/status</code></p>
 <h4 class="anchor anchorWithStickyNavbar_LWe7" id="responses-4">Responses<a href="#responses-4" class="hash-link" aria-label="Direct link to Responses" title="Direct link to Responses">​</a></h4>
@@ -86,14 +86,14 @@ The topic uses the Apache Kafka term offset to refer to the identifier for recor
 <h4 class="anchor anchorWithStickyNavbar_LWe7" id="sample-response-5">Sample response<a href="#sample-response-5" class="hash-link" aria-label="Direct link to Sample response" title="Direct link to Sample response">​</a></h4>
 <details class="details_lb9f alert alert--info details_b_Ee" data-collapsed="true"><summary>View the response</summary><div><div class="collapsibleContent_i85q"><div class="language-json codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#bfc7d5;--prism-background-color:#292d3e"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-json codeBlock_bY9V thin-scrollbar" style="color:#bfc7d5;background-color:#292d3e"><code class="codeBlockLines_e6Vv"><sp [...]
 <h3 class="anchor anchorWithStickyNavbar_LWe7" id="get-supervisor-ingestion-stats">Get supervisor ingestion stats<a href="#get-supervisor-ingestion-stats" class="hash-link" aria-label="Direct link to Get supervisor ingestion stats" title="Direct link to Get supervisor ingestion stats">​</a></h3>
-<p>Returns a snapshot of the current ingestion row counters for each task being managed by the supervisor, along with moving averages for the row counters. See <a href="/docs/latest/ingestion/tasks#row-stats">Row stats</a> for more information.</p>
+<p>Returns a snapshot of the current ingestion row counters for each task being managed by the supervisor, along with moving averages for the row counters. See <a href="/docs/38.0.0/ingestion/tasks#row-stats">Row stats</a> for more information.</p>
 <h4 class="anchor anchorWithStickyNavbar_LWe7" id="response-schema">Response schema<a href="#response-schema" class="hash-link" aria-label="Direct link to Response schema" title="Direct link to Response schema">​</a></h4>
 <p>The response is a nested map of task group IDs to task IDs to row stats:</p>
 <div class="language-json codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#bfc7d5;--prism-background-color:#292d3e"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-json codeBlock_bY9V thin-scrollbar" style="color:#bfc7d5;background-color:#292d3e"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#bfc7d5"><span class="token punctuation" style="color:rgb(199, 146, 234)">{</span><span class="token plain"></span><br></span> [...]
 <ul>
 <li><strong>taskGroupId</strong> (string): Supervisor task group identifier</li>
 <li><strong>taskId</strong> (string): Druid indexing task identifier within that group</li>
-<li><strong>movingAverages</strong> / <strong>totals</strong>: Per-task row stats; see <a href="/docs/latest/ingestion/tasks#row-stats">Row stats</a> for field definitions</li>
+<li><strong>movingAverages</strong> / <strong>totals</strong>: Per-task row stats; see <a href="/docs/38.0.0/ingestion/tasks#row-stats">Row stats</a> for field definitions</li>
 </ul>
 <p>For example, a supervisor with two task groups:</p>
 <div class="language-json codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#bfc7d5;--prism-background-color:#292d3e"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-json codeBlock_bY9V thin-scrollbar" style="color:#bfc7d5;background-color:#292d3e"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#bfc7d5"><span class="token punctuation" style="color:rgb(199, 146, 234)">{</span><span class="token plain"></span><br></span> [...]
@@ -150,9 +150,9 @@ The topic uses the Apache Kafka term offset to refer to the identifier for recor
 <h2 class="anchor anchorWithStickyNavbar_LWe7" id="manage-supervisors">Manage supervisors<a href="#manage-supervisors" class="hash-link" aria-label="Direct link to Manage supervisors" title="Direct link to Manage supervisors">​</a></h2>
 <h3 class="anchor anchorWithStickyNavbar_LWe7" id="create-or-update-a-supervisor">Create or update a supervisor<a href="#create-or-update-a-supervisor" class="hash-link" aria-label="Direct link to Create or update a supervisor" title="Direct link to Create or update a supervisor">​</a></h3>
 <p>Creates a new supervisor spec or updates an existing one with new configuration and schema information. When updating a supervisor spec, the datasource must remain the same as the previous supervisor.</p>
-<p>You can define a supervisor spec for <a href="/docs/latest/ingestion/kafka-ingestion">Apache Kafka</a> or <a href="/docs/latest/ingestion/kinesis-ingestion">Amazon Kinesis</a> streaming ingestion methods.</p>
+<p>You can define a supervisor spec for <a href="/docs/38.0.0/ingestion/kafka-ingestion">Apache Kafka</a> or <a href="/docs/38.0.0/ingestion/kinesis-ingestion">Amazon Kinesis</a> streaming ingestion methods.</p>
 <p>The following table lists the properties of a supervisor spec:</p>
-<table><thead><tr><th>Property</th><th>Type</th><th>Description</th><th>Required</th></tr></thead><tbody><tr><td><code>type</code></td><td>String</td><td>The supervisor type. One of<code>kafka</code> or <code>kinesis</code>.</td><td>Yes</td></tr><tr><td><code>spec</code></td><td>Object</td><td>The container object for the supervisor configuration.</td><td>Yes</td></tr><tr><td><code>ioConfig</code></td><td>Object</td><td>The I/O configuration object to define the connection and I/O-relate [...]
+<table><thead><tr><th>Property</th><th>Type</th><th>Description</th><th>Required</th></tr></thead><tbody><tr><td><code>type</code></td><td>String</td><td>The supervisor type. One of<code>kafka</code> or <code>kinesis</code>.</td><td>Yes</td></tr><tr><td><code>spec</code></td><td>Object</td><td>The container object for the supervisor configuration.</td><td>Yes</td></tr><tr><td><code>ioConfig</code></td><td>Object</td><td>The I/O configuration object to define the connection and I/O-relate [...]
 <p>When you call this endpoint on an existing supervisor, the running supervisor signals its tasks to stop reading and begin publishing, exiting itself. Druid then uses the provided configuration from the request body to create a new supervisor. Druid submits a new schema while retaining existing publishing tasks and starts new tasks at the previous task offsets.
 This way, you can apply configuration changes without a pause in ingestion.</p>
 <h4 class="anchor anchorWithStickyNavbar_LWe7" id="url-9">URL<a href="#url-9" class="hash-link" aria-label="Direct link to URL" title="Direct link to URL">​</a></h4>
@@ -167,7 +167,12 @@ This way, you can apply configuration changes without a pause in ingestion.</p>
 <p>The following example sets the <code>skipRestartIfUnmodified</code> flag to true. With this flag set to true, the Supervisor will only restart if there has been a modification to the SupervisorSpec. If left unset, the flag defaults to false.</p>
 <div class="language-shell codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#bfc7d5;--prism-background-color:#292d3e"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-shell codeBlock_bY9V thin-scrollbar" style="color:#bfc7d5;background-color:#292d3e"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#bfc7d5"><span class="token plain">curl &quot;http://ROUTER_IP:ROUTER_PORT/druid/indexer/v1/supervisor?skipRestartIfUnmodifi [...]
 <h4 class="anchor anchorWithStickyNavbar_LWe7" id="sample-response-9">Sample response<a href="#sample-response-9" class="hash-link" aria-label="Direct link to Sample response" title="Direct link to Sample response">​</a></h4>
-<details class="details_lb9f alert alert--info details_b_Ee" data-collapsed="true"><summary>View the response</summary><div><div class="collapsibleContent_i85q"><div class="language-json codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#bfc7d5;--prism-background-color:#292d3e"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-json codeBlock_bY9V thin-scrollbar" style="color:#bfc7d5;background-color:#292d3e"><code class="codeBlockLines_e6Vv"><sp [...]
+<details class="details_lb9f alert alert--info details_b_Ee" data-collapsed="true"><summary>View the response</summary><div><div class="collapsibleContent_i85q"><div class="language-json codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#bfc7d5;--prism-background-color:#292d3e"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-json codeBlock_bY9V thin-scrollbar" style="color:#bfc7d5;background-color:#292d3e"><code class="codeBlockLines_e6Vv"><sp [...]
+<p>The response includes the following fields:</p>
+<ul>
+<li><code>id</code>: The supervisor ID.</li>
+<li><code>restarted</code>: A boolean indicating whether the supervisor was restarted. When <code>skipRestartIfUnmodified</code> is set to <code>true</code> and the supervisor spec is unchanged, this field will be <code>false</code>; otherwise, it will be <code>true</code>.</li>
+</ul>
 <h3 class="anchor anchorWithStickyNavbar_LWe7" id="suspend-a-running-supervisor">Suspend a running supervisor<a href="#suspend-a-running-supervisor" class="hash-link" aria-label="Direct link to Suspend a running supervisor" title="Direct link to Suspend a running supervisor">​</a></h3>
 <p>Suspends a single running supervisor. Returns the updated supervisor spec, where the <code>suspended</code> property is set to <code>true</code>. The suspended supervisor continues to emit logs and metrics.
 Indexing tasks remain suspended until you <a href="#resume-a-supervisor">resume the supervisor</a>.</p>
@@ -257,43 +262,73 @@ so that tasks begin reading specified offsets. For partitions that are not speci
 when the supervisor&#x27;s tasks restart, they resume reading from <code>{&quot;0&quot;: 100, &quot;1&quot;: 10, &quot;2&quot;: 650, &quot;3&quot;: 40}</code>.</p></div></div></div>
 <h4 class="anchor anchorWithStickyNavbar_LWe7" id="sample-response-15">Sample response<a href="#sample-response-15" class="hash-link" aria-label="Direct link to Sample response" title="Direct link to Sample response">​</a></h4>
 <details class="details_lb9f alert alert--info details_b_Ee" data-collapsed="true"><summary>View the response</summary><div><div class="collapsibleContent_i85q"><div class="language-json codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#bfc7d5;--prism-background-color:#292d3e"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-json codeBlock_bY9V thin-scrollbar" style="color:#bfc7d5;background-color:#292d3e"><code class="codeBlockLines_e6Vv"><sp [...]
+<h3 class="anchor anchorWithStickyNavbar_LWe7" id="reset-offsets-to-latest-and-start-a-backfill-supervisor">Reset offsets to latest and start a backfill supervisor<a href="#reset-offsets-to-latest-and-start-a-backfill-supervisor" class="hash-link" aria-label="Direct link to Reset offsets to latest and start a backfill supervisor" title="Direct link to Reset offsets to latest and start a backfill supervisor">​</a></h3>
+<p>This endpoint is supported for Apache Kafka and RabbitMQ Stream supervisors. Amazon Kinesis is not supported yet.</p>
+<p>Resets the supervisor to the latest available stream offsets and starts a new bounded backfill supervisor to ingest the data in the skipped range.</p>
+<p>This endpoint is useful when a supervisor has fallen behind and you want to catch it up to the latest offsets without losing the skipped data. The main supervisor resumes ingesting from the latest offsets, while the backfill supervisor processes the range from the previously checkpointed offsets up to the latest offsets at the time of the reset.</p>
+<p><strong>Duplicate ingestion notice:</strong> The main supervisor is not quiesced before the reset. This means duplicate data can occur in two ways:</p>
+<ul>
+<li><strong>Backfill overlap:</strong> Any tasks that were in-flight at the time of the reset may publish segments covering part of the backfill range before being shut down.</li>
+<li><strong>Reset race:</strong> If a task checkpoint is written to the metadata store between when this endpoint captures the current offsets and when it applies the reset, that checkpoint can be overwritten, causing the main supervisor to re-ingest already-processed data.</li>
+</ul>
+<p>Both windows are narrow in practice, but cannot be fully eliminated without manually suspending the main supervisor before calling this endpoint and waiting for all pending tasks to complete.</p>
+<p>The following requirements must be met before calling this endpoint:</p>
+<ul>
+<li>The supervisor must be a <a href="/docs/38.0.0/ingestion/supervisor">streaming supervisor</a>.</li>
+<li>The supervisor&#x27;s <code>useEarliestSequenceNumber</code> property must be <code>false</code>.</li>
+<li>The supervisor context must have <code>useConcurrentLocks</code> set to <code>true</code> to allow the backfill supervisor&#x27;s tasks to write concurrently with the main supervisor&#x27;s tasks.</li>
+<li>The supervisor must be in a <code>RUNNING</code> state.</li>
+</ul>
+<p>The backfill supervisor has the same configuration as the source supervisor except for its ID, which takes the form <code>{supervisorId}_backfill_{randomSuffix}</code>, and its <code>boundedStreamConfig</code>, which is set to the skipped offset range. If <code>backfillTaskCount</code> is specified, it overrides the <code>taskCount</code> for the backfill supervisor only.</p>
+<h4 class="anchor anchorWithStickyNavbar_LWe7" id="url-16">URL<a href="#url-16" class="hash-link" aria-label="Direct link to URL" title="Direct link to URL">​</a></h4>
+<p><code>POST</code> <code>/druid/indexer/v1/supervisor/{supervisorId}/resetToLatestAndBackfill</code></p>
+<h4 class="anchor anchorWithStickyNavbar_LWe7" id="query-parameters-1">Query parameters<a href="#query-parameters-1" class="hash-link" aria-label="Direct link to Query parameters" title="Direct link to Query parameters">​</a></h4>
+<table><thead><tr><th>Parameter</th><th>Type</th><th>Description</th><th>Default</th></tr></thead><tbody><tr><td><code>backfillTaskCount</code></td><td>Integer</td><td>Number of parallel tasks for the backfill supervisor.</td><td>Defaults to <code>taskCount</code> from the source supervisor if not specified</td></tr></tbody></table>
+<h4 class="anchor anchorWithStickyNavbar_LWe7" id="responses-16">Responses<a href="#responses-16" class="hash-link" aria-label="Direct link to Responses" title="Direct link to Responses">​</a></h4>
+<div class="tabs-container tabList__CuJ"><ul role="tablist" aria-orientation="horizontal" class="tabs"><li role="tab" tabindex="0" aria-selected="true" class="tabs__item tabItem_LNqP tabs__item--active">200 SUCCESS</li><li role="tab" tabindex="-1" aria-selected="false" class="tabs__item tabItem_LNqP">400 BAD REQUEST</li><li role="tab" tabindex="-1" aria-selected="false" class="tabs__item tabItem_LNqP">404 NOT FOUND</li><li role="tab" tabindex="-1" aria-selected="false" class="tabs__item  [...]
+<hr>
+<h4 class="anchor anchorWithStickyNavbar_LWe7" id="sample-request-16">Sample request<a href="#sample-request-16" class="hash-link" aria-label="Direct link to Sample request" title="Direct link to Sample request">​</a></h4>
+<p>The following example resets a supervisor named <code>social_media</code> and starts a backfill supervisor with 2 tasks.</p>
+<div class="tabs-container tabList__CuJ"><ul role="tablist" aria-orientation="horizontal" class="tabs"><li role="tab" tabindex="0" aria-selected="true" class="tabs__item tabItem_LNqP tabs__item--active">cURL</li><li role="tab" tabindex="-1" aria-selected="false" class="tabs__item tabItem_LNqP">HTTP</li></ul><div class="margin-top--md"><div role="tabpanel" class="tabItem_Ymn6"><div class="language-shell codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#bfc7d5;--prism-backgro [...]
+<h4 class="anchor anchorWithStickyNavbar_LWe7" id="sample-response-16">Sample response<a href="#sample-response-16" class="hash-link" aria-label="Direct link to Sample response" title="Direct link to Sample response">​</a></h4>
+<details class="details_lb9f alert alert--info details_b_Ee" data-collapsed="true"><summary>View the response</summary><div><div class="collapsibleContent_i85q"><div class="language-json codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#bfc7d5;--prism-background-color:#292d3e"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-json codeBlock_bY9V thin-scrollbar" style="color:#bfc7d5;background-color:#292d3e"><code class="codeBlockLines_e6Vv"><sp [...]
 <h3 class="anchor anchorWithStickyNavbar_LWe7" id="terminate-a-supervisor">Terminate a supervisor<a href="#terminate-a-supervisor" class="hash-link" aria-label="Direct link to Terminate a supervisor" title="Direct link to Terminate a supervisor">​</a></h3>
 <p>Terminates a supervisor and its associated indexing tasks, triggering the publishing of their segments. When you terminate a supervisor, Druid places a tombstone marker in the metadata store to prevent reloading on restart.</p>
 <p>The terminated supervisor still exists in the metadata store and its history can be retrieved.</p>
-<h4 class="anchor anchorWithStickyNavbar_LWe7" id="url-16">URL<a href="#url-16" class="hash-link" aria-label="Direct link to URL" title="Direct link to URL">​</a></h4>
+<h4 class="anchor anchorWithStickyNavbar_LWe7" id="url-17">URL<a href="#url-17" class="hash-link" aria-label="Direct link to URL" title="Direct link to URL">​</a></h4>
 <p><code>POST</code> <code>/druid/indexer/v1/supervisor/{supervisorId}/terminate</code></p>
-<h4 class="anchor anchorWithStickyNavbar_LWe7" id="responses-16">Responses<a href="#responses-16" class="hash-link" aria-label="Direct link to Responses" title="Direct link to Responses">​</a></h4>
+<h4 class="anchor anchorWithStickyNavbar_LWe7" id="responses-17">Responses<a href="#responses-17" class="hash-link" aria-label="Direct link to Responses" title="Direct link to Responses">​</a></h4>
 <div class="tabs-container tabList__CuJ"><ul role="tablist" aria-orientation="horizontal" class="tabs"><li role="tab" tabindex="0" aria-selected="true" class="tabs__item tabItem_LNqP tabs__item--active">200 SUCCESS</li><li role="tab" tabindex="-1" aria-selected="false" class="tabs__item tabItem_LNqP">404 NOT FOUND</li></ul><div class="margin-top--md"><div role="tabpanel" class="tabItem_Ymn6"><p><em>Successfully terminated a supervisor</em></p></div><div role="tabpanel" class="tabItem_Ymn [...]
 <hr>
-<h4 class="anchor anchorWithStickyNavbar_LWe7" id="sample-request-16">Sample request<a href="#sample-request-16" class="hash-link" aria-label="Direct link to Sample request" title="Direct link to Sample request">​</a></h4>
+<h4 class="anchor anchorWithStickyNavbar_LWe7" id="sample-request-17">Sample request<a href="#sample-request-17" class="hash-link" aria-label="Direct link to Sample request" title="Direct link to Sample request">​</a></h4>
 <div class="tabs-container tabList__CuJ"><ul role="tablist" aria-orientation="horizontal" class="tabs"><li role="tab" tabindex="0" aria-selected="true" class="tabs__item tabItem_LNqP tabs__item--active">cURL</li><li role="tab" tabindex="-1" aria-selected="false" class="tabs__item tabItem_LNqP">HTTP</li></ul><div class="margin-top--md"><div role="tabpanel" class="tabItem_Ymn6"><div class="language-shell codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#bfc7d5;--prism-backgro [...]
-<h4 class="anchor anchorWithStickyNavbar_LWe7" id="sample-response-16">Sample response<a href="#sample-response-16" class="hash-link" aria-label="Direct link to Sample response" title="Direct link to Sample response">​</a></h4>
+<h4 class="anchor anchorWithStickyNavbar_LWe7" id="sample-response-17">Sample response<a href="#sample-response-17" class="hash-link" aria-label="Direct link to Sample response" title="Direct link to Sample response">​</a></h4>
 <details class="details_lb9f alert alert--info details_b_Ee" data-collapsed="true"><summary>View the response</summary><div><div class="collapsibleContent_i85q"><div class="language-json codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#bfc7d5;--prism-background-color:#292d3e"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-json codeBlock_bY9V thin-scrollbar" style="color:#bfc7d5;background-color:#292d3e"><code class="codeBlockLines_e6Vv"><sp [...]
 <h3 class="anchor anchorWithStickyNavbar_LWe7" id="terminate-all-supervisors">Terminate all supervisors<a href="#terminate-all-supervisors" class="hash-link" aria-label="Direct link to Terminate all supervisors" title="Direct link to Terminate all supervisors">​</a></h3>
 <p>Terminates all supervisors. Terminated supervisors still exist in the metadata store and their history can be retrieved. Note that this endpoint returns an HTTP <code>200 Success</code> code even if there are no supervisors or running supervisors to terminate.</p>
-<h4 class="anchor anchorWithStickyNavbar_LWe7" id="url-17">URL<a href="#url-17" class="hash-link" aria-label="Direct link to URL" title="Direct link to URL">​</a></h4>
+<h4 class="anchor anchorWithStickyNavbar_LWe7" id="url-18">URL<a href="#url-18" class="hash-link" aria-label="Direct link to URL" title="Direct link to URL">​</a></h4>
 <p><code>POST</code> <code>/druid/indexer/v1/supervisor/terminateAll</code></p>
-<h4 class="anchor anchorWithStickyNavbar_LWe7" id="responses-17">Responses<a href="#responses-17" class="hash-link" aria-label="Direct link to Responses" title="Direct link to Responses">​</a></h4>
+<h4 class="anchor anchorWithStickyNavbar_LWe7" id="responses-18">Responses<a href="#responses-18" class="hash-link" aria-label="Direct link to Responses" title="Direct link to Responses">​</a></h4>
 <div class="tabs-container tabList__CuJ"><ul role="tablist" aria-orientation="horizontal" class="tabs"><li role="tab" tabindex="0" aria-selected="true" class="tabs__item tabItem_LNqP tabs__item--active">200 SUCCESS</li></ul><div class="margin-top--md"><div role="tabpanel" class="tabItem_Ymn6"><p><em>Successfully terminated all supervisors</em></p></div></div></div>
 <hr>
-<h4 class="anchor anchorWithStickyNavbar_LWe7" id="sample-request-17">Sample request<a href="#sample-request-17" class="hash-link" aria-label="Direct link to Sample request" title="Direct link to Sample request">​</a></h4>
+<h4 class="anchor anchorWithStickyNavbar_LWe7" id="sample-request-18">Sample request<a href="#sample-request-18" class="hash-link" aria-label="Direct link to Sample request" title="Direct link to Sample request">​</a></h4>
 <div class="tabs-container tabList__CuJ"><ul role="tablist" aria-orientation="horizontal" class="tabs"><li role="tab" tabindex="0" aria-selected="true" class="tabs__item tabItem_LNqP tabs__item--active">cURL</li><li role="tab" tabindex="-1" aria-selected="false" class="tabs__item tabItem_LNqP">HTTP</li></ul><div class="margin-top--md"><div role="tabpanel" class="tabItem_Ymn6"><div class="language-shell codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#bfc7d5;--prism-backgro [...]
-<h4 class="anchor anchorWithStickyNavbar_LWe7" id="sample-response-17">Sample response<a href="#sample-response-17" class="hash-link" aria-label="Direct link to Sample response" title="Direct link to Sample response">​</a></h4>
+<h4 class="anchor anchorWithStickyNavbar_LWe7" id="sample-response-18">Sample response<a href="#sample-response-18" class="hash-link" aria-label="Direct link to Sample response" title="Direct link to Sample response">​</a></h4>
 <details class="details_lb9f alert alert--info details_b_Ee" data-collapsed="true"><summary>View the response</summary><div><div class="collapsibleContent_i85q"><div class="language-json codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#bfc7d5;--prism-background-color:#292d3e"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-json codeBlock_bY9V thin-scrollbar" style="color:#bfc7d5;background-color:#292d3e"><code class="codeBlockLines_e6Vv"><sp [...]
 <h3 class="anchor anchorWithStickyNavbar_LWe7" id="handoff-task-groups-for-a-supervisor-early">Handoff task groups for a supervisor early<a href="#handoff-task-groups-for-a-supervisor-early" class="hash-link" aria-label="Direct link to Handoff task groups for a supervisor early" title="Direct link to Handoff task groups for a supervisor early">​</a></h3>
 <p>Trigger handoff for specified task groups of a supervisor early. This is a best effort API and makes no guarantees of handoff execution.</p>
-<h4 class="anchor anchorWithStickyNavbar_LWe7" id="url-18">URL<a href="#url-18" class="hash-link" aria-label="Direct link to URL" title="Direct link to URL">​</a></h4>
+<h4 class="anchor anchorWithStickyNavbar_LWe7" id="url-19">URL<a href="#url-19" class="hash-link" aria-label="Direct link to URL" title="Direct link to URL">​</a></h4>
 <p><code>POST</code> <code>/druid/indexer/v1/supervisor/{supervisorId}/taskGroups/handoff</code></p>
-<h4 class="anchor anchorWithStickyNavbar_LWe7" id="responses-18">Responses<a href="#responses-18" class="hash-link" aria-label="Direct link to Responses" title="Direct link to Responses">​</a></h4>
+<h4 class="anchor anchorWithStickyNavbar_LWe7" id="responses-19">Responses<a href="#responses-19" class="hash-link" aria-label="Direct link to Responses" title="Direct link to Responses">​</a></h4>
 <div class="tabs-container tabList__CuJ"><ul role="tablist" aria-orientation="horizontal" class="tabs"><li role="tab" tabindex="0" aria-selected="true" class="tabs__item tabItem_LNqP tabs__item--active">202 ACCEPTED</li><li role="tab" tabindex="-1" aria-selected="false" class="tabs__item tabItem_LNqP">404 NOT FOUND</li><li role="tab" tabindex="-1" aria-selected="false" class="tabs__item tabItem_LNqP">400 BAD REQUEST</li></ul><div class="margin-top--md"><div role="tabpanel" class="tabItem [...]
-<h4 class="anchor anchorWithStickyNavbar_LWe7" id="sample-request-18">Sample request<a href="#sample-request-18" class="hash-link" aria-label="Direct link to Sample request" title="Direct link to Sample request">​</a></h4>
+<h4 class="anchor anchorWithStickyNavbar_LWe7" id="sample-request-19">Sample request<a href="#sample-request-19" class="hash-link" aria-label="Direct link to Sample request" title="Direct link to Sample request">​</a></h4>
 <p>The following example shows how to handoff task groups for a supervisor with the name <code>social_media</code> and has the task groups: <code>1,2,3</code>.</p>
 <div class="tabs-container tabList__CuJ"><ul role="tablist" aria-orientation="horizontal" class="tabs"><li role="tab" tabindex="0" aria-selected="true" class="tabs__item tabItem_LNqP tabs__item--active">cURL</li><li role="tab" tabindex="-1" aria-selected="false" class="tabs__item tabItem_LNqP">HTTP</li></ul><div class="margin-top--md"><div role="tabpanel" class="tabItem_Ymn6"><div class="language-shell codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#bfc7d5;--prism-backgro [...]
-<h4 class="anchor anchorWithStickyNavbar_LWe7" id="sample-response-18">Sample response<a href="#sample-response-18" class="hash-link" aria-label="Direct link to Sample response" title="Direct link to Sample response">​</a></h4>
+<h4 class="anchor anchorWithStickyNavbar_LWe7" id="sample-response-19">Sample response<a href="#sample-response-19" class="hash-link" aria-label="Direct link to Sample response" title="Direct link to Sample response">​</a></h4>
 <details class="details_lb9f alert alert--info details_b_Ee" data-collapsed="true"><summary>202 Accepted</summary><div><div class="collapsibleContent_i85q"><p><em>Empty response</em></p></div></div></details>
 <h3 class="anchor anchorWithStickyNavbar_LWe7" id="shut-down-a-supervisor">Shut down a supervisor<a href="#shut-down-a-supervisor" class="hash-link" aria-label="Direct link to Shut down a supervisor" title="Direct link to Shut down a supervisor">​</a></h3>
 <p>Shuts down a supervisor. This endpoint is deprecated and will be removed in future releases. Use the equivalent <a href="#terminate-a-supervisor">terminate</a> endpoint instead.</p>
-<h4 class="anchor anchorWithStickyNavbar_LWe7" id="url-19">URL<a href="#url-19" class="hash-link" aria-label="Direct link to URL" title="Direct link to URL">​</a></h4>
-<p><code>POST</code> <code>/druid/indexer/v1/supervisor/{supervisorId}/shutdown</code></p></div></article><nav class="pagination-nav docusaurus-mt-lg" aria-label="Docs pages"><a class="pagination-nav__link pagination-nav__link--prev" href="/docs/latest/api-reference/tasks-api"><div class="pagination-nav__sublabel">Previous</div><div class="pagination-nav__label">Tasks</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/docs/latest/api-reference/retention-rules-api" [...]
+<h4 class="anchor anchorWithStickyNavbar_LWe7" id="url-20">URL<a href="#url-20" class="hash-link" aria-label="Direct link to URL" title="Direct link to URL">​</a></h4>
+<p><code>POST</code> <code>/druid/indexer/v1/supervisor/{supervisorId}/shutdown</code></p></div></article><nav class="pagination-nav docusaurus-mt-lg" aria-label="Docs pages"><a class="pagination-nav__link pagination-nav__link--prev" href="/docs/38.0.0/api-reference/tasks-api"><div class="pagination-nav__sublabel">Previous</div><div class="pagination-nav__label">Tasks</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/docs/38.0.0/api-reference/retention-rules-api" [...]
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/38.0.0/api-reference/tasks-api.html/index.html b/docs/38.0.0/api-reference/tasks-api.html/index.html
new file mode 100644
index 000000000..fdec69844
--- /dev/null
+++ b/docs/38.0.0/api-reference/tasks-api.html/index.html
@@ -0,0 +1,11 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <meta charset="UTF-8">
+    <meta http-equiv="refresh" content="0; url=/docs/38.0.0/api-reference/tasks-api">
+    <link rel="canonical" href="/docs/38.0.0/api-reference/tasks-api" />
+  </head>
+  <script>
+    window.location.href = '/docs/38.0.0/api-reference/tasks-api' + window.location.search + window.location.hash;
+  </script>
+</html>
\ No newline at end of file
diff --git a/docs/latest/api-reference/tasks-api/index.html b/docs/38.0.0/api-reference/tasks-api/index.html
similarity index 95%
copy from docs/latest/api-reference/tasks-api/index.html
copy to docs/38.0.0/api-reference/tasks-api/index.html
index d2fb9a096..7b1448a4d 100644
--- a/docs/latest/api-reference/tasks-api/index.html
+++ b/docs/38.0.0/api-reference/tasks-api/index.html
@@ -3,22 +3,22 @@
 <head>
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.7.0">
-<title data-rh="true">Tasks API | Apache® Druid</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://druid.apache.org/img/druid_nav.png"><meta data-rh="true" name="twitter:image" content="https://druid.apache.org/img/druid_nav.png"><meta data-rh="true" property="og:url" content="https://druid.apache.org/docs/latest/api-refere [...]
+<title data-rh="true">Tasks API | Apache® Druid</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://druid.apache.org/img/druid_nav.png"><meta data-rh="true" name="twitter:image" content="https://druid.apache.org/img/druid_nav.png"><meta data-rh="true" property="og:url" content="https://druid.apache.org/docs/38.0.0/api-refere [...]
 <script src="/js/clipboard.min.js"></script><link rel="stylesheet" href="/assets/css/styles.f3140859.css">
-<script src="/assets/js/runtime~main.3e1f3e8c.js" defer="defer"></script>
-<script src="/assets/js/main.b85ce480.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.ea7da916.js" defer="defer"></script>
+<script src="/assets/js/main.b6e60483.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
-<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const n=new URLSearchParams(window.location.search).entries();for(var[t,e]of n)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentEle [...]
+<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const n=new URLSearchParams(window.location.search).entries();for(var[t,e]of n)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentEle [...]
 <p>In this topic, <code>http://ROUTER_IP:ROUTER_PORT</code> is a placeholder for the Router service address and port. For example, on the quickstart configuration, use <code>http://localhost:8888</code>.</p>
 <h2 class="anchor anchorWithStickyNavbar_LWe7" id="task-information-and-retrieval">Task information and retrieval<a href="#task-information-and-retrieval" class="hash-link" aria-label="Direct link to Task information and retrieval" title="Direct link to Task information and retrieval">​</a></h2>
 <h3 class="anchor anchorWithStickyNavbar_LWe7" id="get-an-array-of-tasks">Get an array of tasks<a href="#get-an-array-of-tasks" class="hash-link" aria-label="Direct link to Get an array of tasks" title="Direct link to Get an array of tasks">​</a></h3>
-<p>Retrieves an array of all tasks in the Druid cluster. Each task object includes information on its ID, status, associated datasource, and other metadata. For definitions of the response properties, see the <a href="/docs/latest/querying/sql-metadata-tables#tasks-table">Tasks table</a>.</p>
+<p>Retrieves an array of all tasks in the Druid cluster. Each task object includes information on its ID, status, associated datasource, and other metadata. For definitions of the response properties, see the <a href="/docs/38.0.0/querying/sql-metadata-tables#tasks-table">Tasks table</a>.</p>
 <h4 class="anchor anchorWithStickyNavbar_LWe7" id="url">URL<a href="#url" class="hash-link" aria-label="Direct link to URL" title="Direct link to URL">​</a></h4>
 <p><code>GET</code> <code>/druid/indexer/v1/tasks</code></p>
 <h4 class="anchor anchorWithStickyNavbar_LWe7" id="query-parameters">Query parameters<a href="#query-parameters" class="hash-link" aria-label="Direct link to Query parameters" title="Direct link to Query parameters">​</a></h4>
 <p>The endpoint supports a set of optional query parameters to filter results.</p>
-<table><thead><tr><th>Parameter</th><th>Type</th><th>Description</th></tr></thead><tbody><tr><td><code>state</code></td><td>String</td><td>Filter list of tasks by task state, valid options are <code>running</code>, <code>complete</code>, <code>waiting</code>, and <code>pending</code>.</td></tr><tr><td><code>datasource</code></td><td>String</td><td>Return tasks filtered by Druid datasource.</td></tr><tr><td><code>createdTimeInterval</code></td><td>String (ISO-8601)</td><td>Return tasks cr [...]
+<table><thead><tr><th>Parameter</th><th>Type</th><th>Description</th></tr></thead><tbody><tr><td><code>state</code></td><td>String</td><td>Filter list of tasks by task state, valid options are <code>running</code>, <code>complete</code>, <code>waiting</code>, and <code>pending</code>.</td></tr><tr><td><code>datasource</code></td><td>String</td><td>Return tasks filtered by Druid datasource.</td></tr><tr><td><code>createdTimeInterval</code></td><td>String (ISO-8601)</td><td>Return tasks cr [...]
 <h4 class="anchor anchorWithStickyNavbar_LWe7" id="responses">Responses<a href="#responses" class="hash-link" aria-label="Direct link to Responses" title="Direct link to Responses">​</a></h4>
 <div class="tabs-container tabList__CuJ"><ul role="tablist" aria-orientation="horizontal" class="tabs"><li role="tab" tabindex="0" aria-selected="true" class="tabs__item tabItem_LNqP tabs__item--active">200 SUCCESS</li><li role="tab" tabindex="-1" aria-selected="false" class="tabs__item tabItem_LNqP">400 BAD REQUEST</li><li role="tab" tabindex="-1" aria-selected="false" class="tabs__item tabItem_LNqP">500 SERVER ERROR</li></ul><div class="margin-top--md"><div role="tabpanel" class="tabIt [...]
 <hr>
@@ -35,12 +35,12 @@
 <h4 class="anchor anchorWithStickyNavbar_LWe7" id="sample-response">Sample response<a href="#sample-response" class="hash-link" aria-label="Direct link to Sample response" title="Direct link to Sample response">​</a></h4>
 <details class="details_lb9f alert alert--info details_b_Ee" data-collapsed="true"><summary>View the response</summary><div><div class="collapsibleContent_i85q"><div class="language-json codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#bfc7d5;--prism-background-color:#292d3e"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-json codeBlock_bY9V thin-scrollbar" style="color:#bfc7d5;background-color:#292d3e"><code class="codeBlockLines_e6Vv"><sp [...]
 <h3 class="anchor anchorWithStickyNavbar_LWe7" id="get-an-array-of-complete-tasks">Get an array of complete tasks<a href="#get-an-array-of-complete-tasks" class="hash-link" aria-label="Direct link to Get an array of complete tasks" title="Direct link to Get an array of complete tasks">​</a></h3>
-<p>Retrieves an array of completed tasks in the Druid cluster. This is functionally equivalent to <code>/druid/indexer/v1/tasks?state=complete</code>. For definitions of the response properties, see the <a href="/docs/latest/querying/sql-metadata-tables#tasks-table">Tasks table</a>.</p>
+<p>Retrieves an array of completed tasks in the Druid cluster. This is functionally equivalent to <code>/druid/indexer/v1/tasks?state=complete</code>. For definitions of the response properties, see the <a href="/docs/38.0.0/querying/sql-metadata-tables#tasks-table">Tasks table</a>.</p>
 <h4 class="anchor anchorWithStickyNavbar_LWe7" id="url-1">URL<a href="#url-1" class="hash-link" aria-label="Direct link to URL" title="Direct link to URL">​</a></h4>
 <p><code>GET</code> <code>/druid/indexer/v1/completeTasks</code></p>
 <h4 class="anchor anchorWithStickyNavbar_LWe7" id="query-parameters-1">Query parameters<a href="#query-parameters-1" class="hash-link" aria-label="Direct link to Query parameters" title="Direct link to Query parameters">​</a></h4>
 <p>The endpoint supports a set of optional query parameters to filter results.</p>
-<table><thead><tr><th>Parameter</th><th>Type</th><th>Description</th></tr></thead><tbody><tr><td><code>datasource</code></td><td>String</td><td>Return tasks filtered by Druid datasource.</td></tr><tr><td><code>createdTimeInterval</code></td><td>String (ISO-8601)</td><td>Return tasks created within the specified interval. The interval string should be delimited by <code>_</code> instead of <code>/</code>. For example, <code>2023-06-27_2023-06-28</code>.</td></tr><tr><td><code>max</code></ [...]
+<table><thead><tr><th>Parameter</th><th>Type</th><th>Description</th></tr></thead><tbody><tr><td><code>datasource</code></td><td>String</td><td>Return tasks filtered by Druid datasource.</td></tr><tr><td><code>createdTimeInterval</code></td><td>String (ISO-8601)</td><td>Return tasks created within the specified interval. The interval string should be delimited by <code>_</code> instead of <code>/</code>. For example, <code>2023-06-27_2023-06-28</code>.</td></tr><tr><td><code>max</code></ [...]
 <h4 class="anchor anchorWithStickyNavbar_LWe7" id="responses-1">Responses<a href="#responses-1" class="hash-link" aria-label="Direct link to Responses" title="Direct link to Responses">​</a></h4>
 <div class="tabs-container tabList__CuJ"><ul role="tablist" aria-orientation="horizontal" class="tabs"><li role="tab" tabindex="0" aria-selected="true" class="tabs__item tabItem_LNqP tabs__item--active">200 SUCCESS</li><li role="tab" tabindex="-1" aria-selected="false" class="tabs__item tabItem_LNqP">404 NOT FOUND</li></ul><div class="margin-top--md"><div role="tabpanel" class="tabItem_Ymn6"><br><p><em>Successfully retrieved list of complete tasks</em></p></div><div role="tabpanel" class [...]
 <hr>
@@ -49,12 +49,12 @@
 <h4 class="anchor anchorWithStickyNavbar_LWe7" id="sample-response-1">Sample response<a href="#sample-response-1" class="hash-link" aria-label="Direct link to Sample response" title="Direct link to Sample response">​</a></h4>
 <details class="details_lb9f alert alert--info details_b_Ee" data-collapsed="true"><summary>View the response</summary><div><div class="collapsibleContent_i85q"><div class="language-json codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#bfc7d5;--prism-background-color:#292d3e"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-json codeBlock_bY9V thin-scrollbar" style="color:#bfc7d5;background-color:#292d3e"><code class="codeBlockLines_e6Vv"><sp [...]
 <h3 class="anchor anchorWithStickyNavbar_LWe7" id="get-an-array-of-running-tasks">Get an array of running tasks<a href="#get-an-array-of-running-tasks" class="hash-link" aria-label="Direct link to Get an array of running tasks" title="Direct link to Get an array of running tasks">​</a></h3>
-<p>Retrieves an array of running task objects in the Druid cluster. It is functionally equivalent to <code>/druid/indexer/v1/tasks?state=running</code>. For definitions of the response properties, see the <a href="/docs/latest/querying/sql-metadata-tables#tasks-table">Tasks table</a>.</p>
+<p>Retrieves an array of running task objects in the Druid cluster. It is functionally equivalent to <code>/druid/indexer/v1/tasks?state=running</code>. For definitions of the response properties, see the <a href="/docs/38.0.0/querying/sql-metadata-tables#tasks-table">Tasks table</a>.</p>
 <h4 class="anchor anchorWithStickyNavbar_LWe7" id="url-2">URL<a href="#url-2" class="hash-link" aria-label="Direct link to URL" title="Direct link to URL">​</a></h4>
 <p><code>GET</code> <code>/druid/indexer/v1/runningTasks</code></p>
 <h4 class="anchor anchorWithStickyNavbar_LWe7" id="query-parameters-2">Query parameters<a href="#query-parameters-2" class="hash-link" aria-label="Direct link to Query parameters" title="Direct link to Query parameters">​</a></h4>
 <p>The endpoint supports a set of optional query parameters to filter results.</p>
-<table><thead><tr><th>Parameter</th><th>Type</th><th>Description</th></tr></thead><tbody><tr><td><code>datasource</code></td><td>String</td><td>Return tasks filtered by Druid datasource.</td></tr><tr><td><code>createdTimeInterval</code></td><td>String (ISO-8601)</td><td>Return tasks created within the specified interval. The interval string should be delimited by <code>_</code> instead of <code>/</code>. For example, <code>2023-06-27_2023-06-28</code>.</td></tr><tr><td><code>max</code></ [...]
+<table><thead><tr><th>Parameter</th><th>Type</th><th>Description</th></tr></thead><tbody><tr><td><code>datasource</code></td><td>String</td><td>Return tasks filtered by Druid datasource.</td></tr><tr><td><code>createdTimeInterval</code></td><td>String (ISO-8601)</td><td>Return tasks created within the specified interval. The interval string should be delimited by <code>_</code> instead of <code>/</code>. For example, <code>2023-06-27_2023-06-28</code>.</td></tr><tr><td><code>max</code></ [...]
 <h4 class="anchor anchorWithStickyNavbar_LWe7" id="responses-2">Responses<a href="#responses-2" class="hash-link" aria-label="Direct link to Responses" title="Direct link to Responses">​</a></h4>
 <div class="tabs-container tabList__CuJ"><ul role="tablist" aria-orientation="horizontal" class="tabs"><li role="tab" tabindex="0" aria-selected="true" class="tabs__item tabItem_LNqP tabs__item--active">200 SUCCESS</li></ul><div class="margin-top--md"><div role="tabpanel" class="tabItem_Ymn6"><br><p><em>Successfully retrieved list of running tasks</em></p></div></div></div>
 <hr>
@@ -63,12 +63,12 @@
 <h4 class="anchor anchorWithStickyNavbar_LWe7" id="sample-response-2">Sample response<a href="#sample-response-2" class="hash-link" aria-label="Direct link to Sample response" title="Direct link to Sample response">​</a></h4>
 <details class="details_lb9f alert alert--info details_b_Ee" data-collapsed="true"><summary>View the response</summary><div><div class="collapsibleContent_i85q"><div class="language-json codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#bfc7d5;--prism-background-color:#292d3e"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-json codeBlock_bY9V thin-scrollbar" style="color:#bfc7d5;background-color:#292d3e"><code class="codeBlockLines_e6Vv"><sp [...]
 <h3 class="anchor anchorWithStickyNavbar_LWe7" id="get-an-array-of-waiting-tasks">Get an array of waiting tasks<a href="#get-an-array-of-waiting-tasks" class="hash-link" aria-label="Direct link to Get an array of waiting tasks" title="Direct link to Get an array of waiting tasks">​</a></h3>
-<p>Retrieves an array of waiting tasks in the Druid cluster. It is functionally equivalent to <code>/druid/indexer/v1/tasks?state=waiting</code>. For definitions of the response properties, see the <a href="/docs/latest/querying/sql-metadata-tables#tasks-table">Tasks table</a>.</p>
+<p>Retrieves an array of waiting tasks in the Druid cluster. It is functionally equivalent to <code>/druid/indexer/v1/tasks?state=waiting</code>. For definitions of the response properties, see the <a href="/docs/38.0.0/querying/sql-metadata-tables#tasks-table">Tasks table</a>.</p>
 <h4 class="anchor anchorWithStickyNavbar_LWe7" id="url-3">URL<a href="#url-3" class="hash-link" aria-label="Direct link to URL" title="Direct link to URL">​</a></h4>
 <p><code>GET</code> <code>/druid/indexer/v1/waitingTasks</code></p>
 <h4 class="anchor anchorWithStickyNavbar_LWe7" id="query-parameters-3">Query parameters<a href="#query-parameters-3" class="hash-link" aria-label="Direct link to Query parameters" title="Direct link to Query parameters">​</a></h4>
 <p>The endpoint supports a set of optional query parameters to filter results.</p>
-<table><thead><tr><th>Parameter</th><th>Type</th><th>Description</th></tr></thead><tbody><tr><td><code>datasource</code></td><td>String</td><td>Return tasks filtered by Druid datasource.</td></tr><tr><td><code>createdTimeInterval</code></td><td>String (ISO-8601)</td><td>Return tasks created within the specified interval. The interval string should be delimited by <code>_</code> instead of <code>/</code>. For example, <code>2023-06-27_2023-06-28</code>.</td></tr><tr><td><code>max</code></ [...]
+<table><thead><tr><th>Parameter</th><th>Type</th><th>Description</th></tr></thead><tbody><tr><td><code>datasource</code></td><td>String</td><td>Return tasks filtered by Druid datasource.</td></tr><tr><td><code>createdTimeInterval</code></td><td>String (ISO-8601)</td><td>Return tasks created within the specified interval. The interval string should be delimited by <code>_</code> instead of <code>/</code>. For example, <code>2023-06-27_2023-06-28</code>.</td></tr><tr><td><code>max</code></ [...]
 <h4 class="anchor anchorWithStickyNavbar_LWe7" id="responses-3">Responses<a href="#responses-3" class="hash-link" aria-label="Direct link to Responses" title="Direct link to Responses">​</a></h4>
 <div class="tabs-container tabList__CuJ"><ul role="tablist" aria-orientation="horizontal" class="tabs"><li role="tab" tabindex="0" aria-selected="true" class="tabs__item tabItem_LNqP tabs__item--active">200 SUCCESS</li></ul><div class="margin-top--md"><div role="tabpanel" class="tabItem_Ymn6"><br><p><em>Successfully retrieved list of waiting tasks</em></p></div></div></div>
 <hr>
@@ -77,12 +77,12 @@
 <h4 class="anchor anchorWithStickyNavbar_LWe7" id="sample-response-3">Sample response<a href="#sample-response-3" class="hash-link" aria-label="Direct link to Sample response" title="Direct link to Sample response">​</a></h4>
 <details class="details_lb9f alert alert--info details_b_Ee" data-collapsed="true"><summary>View the response</summary><div><div class="collapsibleContent_i85q"><div class="language-json codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#bfc7d5;--prism-background-color:#292d3e"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-json codeBlock_bY9V thin-scrollbar" style="color:#bfc7d5;background-color:#292d3e"><code class="codeBlockLines_e6Vv"><sp [...]
 <h3 class="anchor anchorWithStickyNavbar_LWe7" id="get-an-array-of-pending-tasks">Get an array of pending tasks<a href="#get-an-array-of-pending-tasks" class="hash-link" aria-label="Direct link to Get an array of pending tasks" title="Direct link to Get an array of pending tasks">​</a></h3>
-<p>Retrieves an array of pending tasks in the Druid cluster. It is functionally equivalent to <code>/druid/indexer/v1/tasks?state=pending</code>. For definitions of the response properties, see the <a href="/docs/latest/querying/sql-metadata-tables#tasks-table">Tasks table</a>.</p>
+<p>Retrieves an array of pending tasks in the Druid cluster. It is functionally equivalent to <code>/druid/indexer/v1/tasks?state=pending</code>. For definitions of the response properties, see the <a href="/docs/38.0.0/querying/sql-metadata-tables#tasks-table">Tasks table</a>.</p>
 <h4 class="anchor anchorWithStickyNavbar_LWe7" id="url-4">URL<a href="#url-4" class="hash-link" aria-label="Direct link to URL" title="Direct link to URL">​</a></h4>
 <p><code>GET</code> <code>/druid/indexer/v1/pendingTasks</code></p>
 <h4 class="anchor anchorWithStickyNavbar_LWe7" id="query-parameters-4">Query parameters<a href="#query-parameters-4" class="hash-link" aria-label="Direct link to Query parameters" title="Direct link to Query parameters">​</a></h4>
 <p>The endpoint supports a set of optional query parameters to filter results.</p>
-<table><thead><tr><th>Parameter</th><th>Type</th><th>Description</th></tr></thead><tbody><tr><td><code>datasource</code></td><td>String</td><td>Return tasks filtered by Druid datasource.</td></tr><tr><td><code>createdTimeInterval</code></td><td>String (ISO-8601)</td><td>Return tasks created within the specified interval. The interval string should be delimited by <code>_</code> instead of <code>/</code>. For example, <code>2023-06-27_2023-06-28</code>.</td></tr><tr><td><code>max</code></ [...]
+<table><thead><tr><th>Parameter</th><th>Type</th><th>Description</th></tr></thead><tbody><tr><td><code>datasource</code></td><td>String</td><td>Return tasks filtered by Druid datasource.</td></tr><tr><td><code>createdTimeInterval</code></td><td>String (ISO-8601)</td><td>Return tasks created within the specified interval. The interval string should be delimited by <code>_</code> instead of <code>/</code>. For example, <code>2023-06-27_2023-06-28</code>.</td></tr><tr><td><code>max</code></ [...]
 <h4 class="anchor anchorWithStickyNavbar_LWe7" id="responses-4">Responses<a href="#responses-4" class="hash-link" aria-label="Direct link to Responses" title="Direct link to Responses">​</a></h4>
 <div class="tabs-container tabList__CuJ"><ul role="tablist" aria-orientation="horizontal" class="tabs"><li role="tab" tabindex="0" aria-selected="true" class="tabs__item tabItem_LNqP tabs__item--active">200 SUCCESS</li></ul><div class="margin-top--md"><div role="tabpanel" class="tabItem_Ymn6"><br><p><em>Successfully retrieved list of pending tasks</em></p></div></div></div>
 <hr>
@@ -129,7 +129,7 @@ Use the metric <code>segment/added/bytes</code> instead to identify the segment
 <p>A successful request returns a <code>200 OK</code> response and an array of the task segments.</p>
 <h3 class="anchor anchorWithStickyNavbar_LWe7" id="get-task-log">Get task log<a href="#get-task-log" class="hash-link" aria-label="Direct link to Get task log" title="Direct link to Get task log">​</a></h3>
 <p>Retrieves the event log associated with a task. It returns a list of logged events during the lifecycle of the task. The endpoint is useful for providing information about the execution of the task, including any errors or warnings raised.</p>
-<p>Task logs are automatically retrieved from the Middle Manager/Indexer or in long-term storage. For reference, see <a href="/docs/latest/ingestion/tasks#task-logs">Task logs</a>.</p>
+<p>Task logs are automatically retrieved from the Middle Manager/Indexer or in long-term storage. For reference, see <a href="/docs/38.0.0/ingestion/tasks#task-logs">Task logs</a>.</p>
 <h4 class="anchor anchorWithStickyNavbar_LWe7" id="url-8">URL<a href="#url-8" class="hash-link" aria-label="Direct link to URL" title="Direct link to URL">​</a></h4>
 <p><code>GET</code> <code>/druid/indexer/v1/task/{taskId}/log</code></p>
 <h4 class="anchor anchorWithStickyNavbar_LWe7" id="query-parameters-5">Query parameters<a href="#query-parameters-5" class="hash-link" aria-label="Direct link to Query parameters" title="Direct link to Query parameters">​</a></h4>
@@ -148,9 +148,9 @@ Use the metric <code>segment/added/bytes</code> instead to identify the segment
 <p>The following examples shows how to retrieve the task log of a task with the specified ID <code>index_kafka_social_media_0e905aa31037879_nommnaeg</code>.</p>
 <div class="tabs-container tabList__CuJ"><ul role="tablist" aria-orientation="horizontal" class="tabs"><li role="tab" tabindex="0" aria-selected="true" class="tabs__item tabItem_LNqP tabs__item--active">cURL</li><li role="tab" tabindex="-1" aria-selected="false" class="tabs__item tabItem_LNqP">HTTP</li></ul><div class="margin-top--md"><div role="tabpanel" class="tabItem_Ymn6"><div class="language-shell codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#bfc7d5;--prism-backgro [...]
 <h4 class="anchor anchorWithStickyNavbar_LWe7" id="sample-response-8">Sample response<a href="#sample-response-8" class="hash-link" aria-label="Direct link to Sample response" title="Direct link to Sample response">​</a></h4>
-<details class="details_lb9f alert alert--info details_b_Ee" data-collapsed="true"><summary>View the response</summary><div><div class="collapsibleContent_i85q"><div class="language-json codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#bfc7d5;--prism-background-color:#292d3e"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-json codeBlock_bY9V thin-scrollbar" style="color:#bfc7d5;background-color:#292d3e"><code class="codeBlockLines_e6Vv"><sp [...]
+<details class="details_lb9f alert alert--info details_b_Ee" data-collapsed="true"><summary>View the response</summary><div><div class="collapsibleContent_i85q"><div class="language-json codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#bfc7d5;--prism-background-color:#292d3e"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-json codeBlock_bY9V thin-scrollbar" style="color:#bfc7d5;background-color:#292d3e"><code class="codeBlockLines_e6Vv"><sp [...]
 <h3 class="anchor anchorWithStickyNavbar_LWe7" id="get-task-completion-report">Get task completion report<a href="#get-task-completion-report" class="hash-link" aria-label="Direct link to Get task completion report" title="Direct link to Get task completion report">​</a></h3>
-<p>Retrieves a <a href="/docs/latest/ingestion/tasks#task-reports">task completion report</a> for a task. It returns a JSON object with information about the number of rows ingested, and any parse exceptions that Druid raised.</p>
+<p>Retrieves a <a href="/docs/38.0.0/ingestion/tasks#task-reports">task completion report</a> for a task. It returns a JSON object with information about the number of rows ingested, and any parse exceptions that Druid raised.</p>
 <h4 class="anchor anchorWithStickyNavbar_LWe7" id="url-9">URL<a href="#url-9" class="hash-link" aria-label="Direct link to URL" title="Direct link to URL">​</a></h4>
 <p><code>GET</code> <code>/druid/indexer/v1/task/{taskId}/reports</code></p>
 <h4 class="anchor anchorWithStickyNavbar_LWe7" id="responses-9">Responses<a href="#responses-9" class="hash-link" aria-label="Direct link to Responses" title="Direct link to Responses">​</a></h4>
@@ -163,8 +163,8 @@ Use the metric <code>segment/added/bytes</code> instead to identify the segment
 <details class="details_lb9f alert alert--info details_b_Ee" data-collapsed="true"><summary>View the response</summary><div><div class="collapsibleContent_i85q"><div class="language-json codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#bfc7d5;--prism-background-color:#292d3e"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-json codeBlock_bY9V thin-scrollbar" style="color:#bfc7d5;background-color:#292d3e"><code class="codeBlockLines_e6Vv"><sp [...]
 <h2 class="anchor anchorWithStickyNavbar_LWe7" id="task-operations">Task operations<a href="#task-operations" class="hash-link" aria-label="Direct link to Task operations" title="Direct link to Task operations">​</a></h2>
 <h3 class="anchor anchorWithStickyNavbar_LWe7" id="submit-a-task">Submit a task<a href="#submit-a-task" class="hash-link" aria-label="Direct link to Submit a task" title="Direct link to Submit a task">​</a></h3>
-<p>Submits a JSON-based ingestion spec or supervisor spec to the Overlord. It returns the task ID of the submitted task. For information on creating an ingestion spec, refer to the <a href="/docs/latest/ingestion/ingestion-spec">ingestion spec reference</a>.</p>
-<p>Note that for most batch ingestion use cases, you should use the <a href="/docs/latest/api-reference/sql-ingestion-api">SQL-ingestion API</a> instead of JSON-based batch ingestion.</p>
+<p>Submits a JSON-based ingestion spec or supervisor spec to the Overlord. It returns the task ID of the submitted task. For information on creating an ingestion spec, refer to the <a href="/docs/38.0.0/ingestion/ingestion-spec">ingestion spec reference</a>.</p>
+<p>Note that for most batch ingestion use cases, you should use the <a href="/docs/38.0.0/api-reference/sql-ingestion-api">SQL-ingestion API</a> instead of JSON-based batch ingestion.</p>
 <h4 class="anchor anchorWithStickyNavbar_LWe7" id="url-10">URL<a href="#url-10" class="hash-link" aria-label="Direct link to URL" title="Direct link to URL">​</a></h4>
 <p><code>POST</code> <code>/druid/indexer/v1/task</code></p>
 <h4 class="anchor anchorWithStickyNavbar_LWe7" id="responses-10">Responses<a href="#responses-10" class="hash-link" aria-label="Direct link to Responses" title="Direct link to Responses">​</a></h4>
@@ -215,7 +215,7 @@ Use the metric <code>segment/added/bytes</code> instead to identify the segment
 <h3 class="anchor anchorWithStickyNavbar_LWe7" id="clean-up-pending-segments-for-a-datasource">Clean up pending segments for a datasource<a href="#clean-up-pending-segments-for-a-datasource" class="hash-link" aria-label="Direct link to Clean up pending segments for a datasource" title="Direct link to Clean up pending segments for a datasource">​</a></h3>
 <p>Manually clean up pending segments table in metadata storage for <code>datasource</code>. It returns a JSON object response with
 <code>numDeleted</code> for the number of rows deleted from the pending segments table. This API is used by the
-<code>druid.coordinator.kill.pendingSegments.on</code> <a href="/docs/latest/configuration/#data-management">Coordinator setting</a>
+<code>druid.coordinator.kill.pendingSegments.on</code> <a href="/docs/38.0.0/configuration/#data-management">Coordinator setting</a>
 which automates this operation to perform periodically.</p>
 <h4 class="anchor anchorWithStickyNavbar_LWe7" id="url-14">URL<a href="#url-14" class="hash-link" aria-label="Direct link to URL" title="Direct link to URL">​</a></h4>
 <p><code>DELETE</code> <code>/druid/indexer/v1/pendingSegments/{datasource}</code></p>
@@ -226,6 +226,6 @@ which automates this operation to perform periodically.</p>
 <p>The following request is an example of cleaning up pending segments for the <code>wikipedia_api</code> datasource.</p>
 <div class="tabs-container tabList__CuJ"><ul role="tablist" aria-orientation="horizontal" class="tabs"><li role="tab" tabindex="0" aria-selected="true" class="tabs__item tabItem_LNqP tabs__item--active">cURL</li><li role="tab" tabindex="-1" aria-selected="false" class="tabs__item tabItem_LNqP">HTTP</li></ul><div class="margin-top--md"><div role="tabpanel" class="tabItem_Ymn6"><div class="language-shell codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#bfc7d5;--prism-backgro [...]
 <h4 class="anchor anchorWithStickyNavbar_LWe7" id="sample-response-14">Sample response<a href="#sample-response-14" class="hash-link" aria-label="Direct link to Sample response" title="Direct link to Sample response">​</a></h4>
-<details class="details_lb9f alert alert--info details_b_Ee" data-collapsed="true"><summary>View the response</summary><div><div class="collapsibleContent_i85q"><div class="language-json codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#bfc7d5;--prism-background-color:#292d3e"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-json codeBlock_bY9V thin-scrollbar" style="color:#bfc7d5;background-color:#292d3e"><code class="codeBlockLines_e6Vv"><sp [...]
+<details class="details_lb9f alert alert--info details_b_Ee" data-collapsed="true"><summary>View the response</summary><div><div class="collapsibleContent_i85q"><div class="language-json codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#bfc7d5;--prism-background-color:#292d3e"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-json codeBlock_bY9V thin-scrollbar" style="color:#bfc7d5;background-color:#292d3e"><code class="codeBlockLines_e6Vv"><sp [...]
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/38.0.0/comparisons/druid-vs-elasticsearch.html/index.html b/docs/38.0.0/comparisons/druid-vs-elasticsearch.html/index.html
new file mode 100644
index 000000000..3985e845a
--- /dev/null
+++ b/docs/38.0.0/comparisons/druid-vs-elasticsearch.html/index.html
@@ -0,0 +1,11 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <meta charset="UTF-8">
+    <meta http-equiv="refresh" content="0; url=/docs/38.0.0/comparisons/druid-vs-elasticsearch">
+    <link rel="canonical" href="/docs/38.0.0/comparisons/druid-vs-elasticsearch" />
+  </head>
+  <script>
+    window.location.href = '/docs/38.0.0/comparisons/druid-vs-elasticsearch' + window.location.search + window.location.hash;
+  </script>
+</html>
\ No newline at end of file
diff --git a/docs/latest/comparisons/druid-vs-elasticsearch/index.html b/docs/38.0.0/comparisons/druid-vs-elasticsearch/index.html
similarity index 94%
copy from docs/latest/comparisons/druid-vs-elasticsearch/index.html
copy to docs/38.0.0/comparisons/druid-vs-elasticsearch/index.html
index 5c56e5154..4c105550d 100644
--- a/docs/latest/comparisons/druid-vs-elasticsearch/index.html
+++ b/docs/38.0.0/comparisons/druid-vs-elasticsearch/index.html
@@ -3,13 +3,13 @@
 <head>
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.7.0">
-<title data-rh="true">Apache Druid vs Elasticsearch | Apache® Druid</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://druid.apache.org/img/druid_nav.png"><meta data-rh="true" name="twitter:image" content="https://druid.apache.org/img/druid_nav.png"><meta data-rh="true" property="og:url" content="https://druid.apache.org/do [...]
+<title data-rh="true">Apache Druid vs Elasticsearch | Apache® Druid</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://druid.apache.org/img/druid_nav.png"><meta data-rh="true" name="twitter:image" content="https://druid.apache.org/img/druid_nav.png"><meta data-rh="true" property="og:url" content="https://druid.apache.org/do [...]
 <script src="/js/clipboard.min.js"></script><link rel="stylesheet" href="/assets/css/styles.f3140859.css">
-<script src="/assets/js/runtime~main.3e1f3e8c.js" defer="defer"></script>
-<script src="/assets/js/main.b85ce480.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.ea7da916.js" defer="defer"></script>
+<script src="/assets/js/main.b6e60483.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
-<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const n=new URLSearchParams(window.location.search).entries();for(var[t,e]of n)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentEle [...]
+<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const n=new URLSearchParams(window.location.search).entries();for(var[t,e]of n)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentEle [...]
 <p>Elasticsearch is a search system based on Apache Lucene. It provides full text search for schema-free documents
 and provides access to raw event level data. Elasticsearch is increasingly adding more support for analytics and aggregations.
 <a href="https://groups.google.com/forum/#!msg/druid-development/nlpwTHNclj8/sOuWlKOzPpYJ" target="_blank" rel="noopener noreferrer">Some members of the community</a> have pointed out
diff --git a/docs/38.0.0/comparisons/druid-vs-key-value.html/index.html b/docs/38.0.0/comparisons/druid-vs-key-value.html/index.html
new file mode 100644
index 000000000..82284540c
--- /dev/null
+++ b/docs/38.0.0/comparisons/druid-vs-key-value.html/index.html
@@ -0,0 +1,11 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <meta charset="UTF-8">
+    <meta http-equiv="refresh" content="0; url=/docs/38.0.0/comparisons/druid-vs-key-value">
+    <link rel="canonical" href="/docs/38.0.0/comparisons/druid-vs-key-value" />
+  </head>
+  <script>
+    window.location.href = '/docs/38.0.0/comparisons/druid-vs-key-value' + window.location.search + window.location.hash;
+  </script>
+</html>
\ No newline at end of file
diff --git a/docs/latest/comparisons/druid-vs-key-value/index.html b/docs/38.0.0/comparisons/druid-vs-key-value/index.html
similarity index 95%
copy from docs/latest/comparisons/druid-vs-key-value/index.html
copy to docs/38.0.0/comparisons/druid-vs-key-value/index.html
index e3e946da3..ac634b9b4 100644
--- a/docs/latest/comparisons/druid-vs-key-value/index.html
+++ b/docs/38.0.0/comparisons/druid-vs-key-value/index.html
@@ -3,13 +3,13 @@
 <head>
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.7.0">
-<title data-rh="true">Apache Druid vs. Key/Value Stores (HBase/Cassandra/OpenTSDB) | Apache® Druid</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://druid.apache.org/img/druid_nav.png"><meta data-rh="true" name="twitter:image" content="https://druid.apache.org/img/druid_nav.png"><meta data-rh="true" property="og:url" conte [...]
+<title data-rh="true">Apache Druid vs. Key/Value Stores (HBase/Cassandra/OpenTSDB) | Apache® Druid</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://druid.apache.org/img/druid_nav.png"><meta data-rh="true" name="twitter:image" content="https://druid.apache.org/img/druid_nav.png"><meta data-rh="true" property="og:url" conte [...]
 <script src="/js/clipboard.min.js"></script><link rel="stylesheet" href="/assets/css/styles.f3140859.css">
-<script src="/assets/js/runtime~main.3e1f3e8c.js" defer="defer"></script>
-<script src="/assets/js/main.b85ce480.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.ea7da916.js" defer="defer"></script>
+<script src="/assets/js/main.b6e60483.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
-<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const n=new URLSearchParams(window.location.search).entries();for(var[t,e]of n)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentEle [...]
+<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const n=new URLSearchParams(window.location.search).entries();for(var[t,e]of n)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentEle [...]
 is supported in key/value stores in 2 ways:</p>
 <ol>
 <li>Pre-compute all permutations of possible user queries</li>
diff --git a/docs/38.0.0/comparisons/druid-vs-kudu.html/index.html b/docs/38.0.0/comparisons/druid-vs-kudu.html/index.html
new file mode 100644
index 000000000..0eee6ebbd
--- /dev/null
+++ b/docs/38.0.0/comparisons/druid-vs-kudu.html/index.html
@@ -0,0 +1,11 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <meta charset="UTF-8">
+    <meta http-equiv="refresh" content="0; url=/docs/38.0.0/comparisons/druid-vs-kudu">
+    <link rel="canonical" href="/docs/38.0.0/comparisons/druid-vs-kudu" />
+  </head>
+  <script>
+    window.location.href = '/docs/38.0.0/comparisons/druid-vs-kudu' + window.location.search + window.location.hash;
+  </script>
+</html>
\ No newline at end of file
diff --git a/docs/latest/comparisons/druid-vs-kudu/index.html b/docs/38.0.0/comparisons/druid-vs-kudu/index.html
similarity index 95%
copy from docs/latest/comparisons/druid-vs-kudu/index.html
copy to docs/38.0.0/comparisons/druid-vs-kudu/index.html
index e8eaad14e..1da104e80 100644
--- a/docs/latest/comparisons/druid-vs-kudu/index.html
+++ b/docs/38.0.0/comparisons/druid-vs-kudu/index.html
@@ -3,13 +3,13 @@
 <head>
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.7.0">
-<title data-rh="true">Apache Druid vs Kudu | Apache® Druid</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://druid.apache.org/img/druid_nav.png"><meta data-rh="true" name="twitter:image" content="https://druid.apache.org/img/druid_nav.png"><meta data-rh="true" property="og:url" content="https://druid.apache.org/docs/latest [...]
+<title data-rh="true">Apache Druid vs Kudu | Apache® Druid</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://druid.apache.org/img/druid_nav.png"><meta data-rh="true" name="twitter:image" content="https://druid.apache.org/img/druid_nav.png"><meta data-rh="true" property="og:url" content="https://druid.apache.org/docs/38.0.0 [...]
 <script src="/js/clipboard.min.js"></script><link rel="stylesheet" href="/assets/css/styles.f3140859.css">
-<script src="/assets/js/runtime~main.3e1f3e8c.js" defer="defer"></script>
-<script src="/assets/js/main.b85ce480.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.ea7da916.js" defer="defer"></script>
+<script src="/assets/js/main.b6e60483.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
-<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const n=new URLSearchParams(window.location.search).entries();for(var[t,e]of n)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentEle [...]
+<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const n=new URLSearchParams(window.location.search).entries();for(var[t,e]of n)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentEle [...]
 the process for updating old values should be higher latency in Druid. However, the requirements in Kudu for maintaining extra head space to store
 updates as well as organizing data by id instead of time has the potential to introduce some extra latency and accessing
 of data that is not needed to answer a query at query time.</p>
diff --git a/docs/38.0.0/comparisons/druid-vs-redshift.html/index.html b/docs/38.0.0/comparisons/druid-vs-redshift.html/index.html
new file mode 100644
index 000000000..431eb975f
--- /dev/null
+++ b/docs/38.0.0/comparisons/druid-vs-redshift.html/index.html
@@ -0,0 +1,11 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <meta charset="UTF-8">
+    <meta http-equiv="refresh" content="0; url=/docs/38.0.0/comparisons/druid-vs-redshift">
+    <link rel="canonical" href="/docs/38.0.0/comparisons/druid-vs-redshift" />
+  </head>
+  <script>
+    window.location.href = '/docs/38.0.0/comparisons/druid-vs-redshift' + window.location.search + window.location.hash;
+  </script>
+</html>
\ No newline at end of file
diff --git a/docs/latest/comparisons/druid-vs-redshift/index.html b/docs/38.0.0/comparisons/druid-vs-redshift/index.html
similarity index 96%
copy from docs/latest/comparisons/druid-vs-redshift/index.html
copy to docs/38.0.0/comparisons/druid-vs-redshift/index.html
index 98f0c7c46..5c3ad6b39 100644
--- a/docs/latest/comparisons/druid-vs-redshift/index.html
+++ b/docs/38.0.0/comparisons/druid-vs-redshift/index.html
@@ -3,13 +3,13 @@
 <head>
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.7.0">
-<title data-rh="true">Apache Druid vs Redshift | Apache® Druid</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://druid.apache.org/img/druid_nav.png"><meta data-rh="true" name="twitter:image" content="https://druid.apache.org/img/druid_nav.png"><meta data-rh="true" property="og:url" content="https://druid.apache.org/docs/la [...]
+<title data-rh="true">Apache Druid vs Redshift | Apache® Druid</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://druid.apache.org/img/druid_nav.png"><meta data-rh="true" name="twitter:image" content="https://druid.apache.org/img/druid_nav.png"><meta data-rh="true" property="og:url" content="https://druid.apache.org/docs/38 [...]
 <script src="/js/clipboard.min.js"></script><link rel="stylesheet" href="/assets/css/styles.f3140859.css">
-<script src="/assets/js/runtime~main.3e1f3e8c.js" defer="defer"></script>
-<script src="/assets/js/main.b85ce480.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.ea7da916.js" defer="defer"></script>
+<script src="/assets/js/main.b6e60483.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
-<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const n=new URLSearchParams(window.location.search).entries();for(var[t,e]of n)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentEle [...]
+<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const n=new URLSearchParams(window.location.search).entries();for(var[t,e]of n)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentEle [...]
 <p>In terms of drawing a differentiation, Redshift started out as ParAccel (Actian), which Amazon is licensing and has since heavily modified.</p>
 <p>Aside from potential performance differences, there are some functional differences:</p>
 <h3 class="anchor anchorWithStickyNavbar_LWe7" id="real-time-data-ingestion">Real-time data ingestion<a href="#real-time-data-ingestion" class="hash-link" aria-label="Direct link to Real-time data ingestion" title="Direct link to Real-time data ingestion">​</a></h3>
diff --git a/docs/38.0.0/comparisons/druid-vs-spark.html/index.html b/docs/38.0.0/comparisons/druid-vs-spark.html/index.html
new file mode 100644
index 000000000..12428f968
--- /dev/null
+++ b/docs/38.0.0/comparisons/druid-vs-spark.html/index.html
@@ -0,0 +1,11 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <meta charset="UTF-8">
+    <meta http-equiv="refresh" content="0; url=/docs/38.0.0/comparisons/druid-vs-spark">
+    <link rel="canonical" href="/docs/38.0.0/comparisons/druid-vs-spark" />
+  </head>
+  <script>
+    window.location.href = '/docs/38.0.0/comparisons/druid-vs-spark' + window.location.search + window.location.hash;
+  </script>
+</html>
\ No newline at end of file
diff --git a/docs/latest/comparisons/druid-vs-spark/index.html b/docs/38.0.0/comparisons/druid-vs-spark/index.html
similarity index 95%
copy from docs/latest/comparisons/druid-vs-spark/index.html
copy to docs/38.0.0/comparisons/druid-vs-spark/index.html
index 8bf3274ea..03b4ef594 100644
--- a/docs/latest/comparisons/druid-vs-spark/index.html
+++ b/docs/38.0.0/comparisons/druid-vs-spark/index.html
@@ -3,13 +3,13 @@
 <head>
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.7.0">
-<title data-rh="true">Apache Druid vs Spark | Apache® Druid</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://druid.apache.org/img/druid_nav.png"><meta data-rh="true" name="twitter:image" content="https://druid.apache.org/img/druid_nav.png"><meta data-rh="true" property="og:url" content="https://druid.apache.org/docs/lates [...]
+<title data-rh="true">Apache Druid vs Spark | Apache® Druid</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://druid.apache.org/img/druid_nav.png"><meta data-rh="true" name="twitter:image" content="https://druid.apache.org/img/druid_nav.png"><meta data-rh="true" property="og:url" content="https://druid.apache.org/docs/38.0. [...]
 <script src="/js/clipboard.min.js"></script><link rel="stylesheet" href="/assets/css/styles.f3140859.css">
-<script src="/assets/js/runtime~main.3e1f3e8c.js" defer="defer"></script>
-<script src="/assets/js/main.b85ce480.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.ea7da916.js" defer="defer"></script>
+<script src="/assets/js/main.b6e60483.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
-<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const n=new URLSearchParams(window.location.search).entries();for(var[t,e]of n)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentEle [...]
+<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const n=new URLSearchParams(window.location.search).entries();for(var[t,e]of n)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentEle [...]
 <p>Spark is a general cluster computing framework initially designed around the concept of Resilient Distributed Datasets (RDDs).
 RDDs enable data reuse by persisting intermediate results
 in memory and enable Spark to provide fast computations for iterative algorithms.
diff --git a/docs/38.0.0/comparisons/druid-vs-sql-on-hadoop.html/index.html b/docs/38.0.0/comparisons/druid-vs-sql-on-hadoop.html/index.html
new file mode 100644
index 000000000..11a1f14e3
--- /dev/null
+++ b/docs/38.0.0/comparisons/druid-vs-sql-on-hadoop.html/index.html
@@ -0,0 +1,11 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <meta charset="UTF-8">
+    <meta http-equiv="refresh" content="0; url=/docs/38.0.0/comparisons/druid-vs-sql-on-hadoop">
+    <link rel="canonical" href="/docs/38.0.0/comparisons/druid-vs-sql-on-hadoop" />
+  </head>
+  <script>
+    window.location.href = '/docs/38.0.0/comparisons/druid-vs-sql-on-hadoop' + window.location.search + window.location.hash;
+  </script>
+</html>
\ No newline at end of file
diff --git a/docs/latest/comparisons/druid-vs-sql-on-hadoop/index.html b/docs/38.0.0/comparisons/druid-vs-sql-on-hadoop/index.html
similarity index 96%
copy from docs/latest/comparisons/druid-vs-sql-on-hadoop/index.html
copy to docs/38.0.0/comparisons/druid-vs-sql-on-hadoop/index.html
index 5e896285e..75ba6a697 100644
--- a/docs/latest/comparisons/druid-vs-sql-on-hadoop/index.html
+++ b/docs/38.0.0/comparisons/druid-vs-sql-on-hadoop/index.html
@@ -3,13 +3,13 @@
 <head>
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.7.0">
-<title data-rh="true">Apache Druid vs SQL-on-Hadoop | Apache® Druid</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://druid.apache.org/img/druid_nav.png"><meta data-rh="true" name="twitter:image" content="https://druid.apache.org/img/druid_nav.png"><meta data-rh="true" property="og:url" content="https://druid.apache.org/do [...]
+<title data-rh="true">Apache Druid vs SQL-on-Hadoop | Apache® Druid</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://druid.apache.org/img/druid_nav.png"><meta data-rh="true" name="twitter:image" content="https://druid.apache.org/img/druid_nav.png"><meta data-rh="true" property="og:url" content="https://druid.apache.org/do [...]
 <script src="/js/clipboard.min.js"></script><link rel="stylesheet" href="/assets/css/styles.f3140859.css">
-<script src="/assets/js/runtime~main.3e1f3e8c.js" defer="defer"></script>
-<script src="/assets/js/main.b85ce480.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.ea7da916.js" defer="defer"></script>
+<script src="/assets/js/main.b6e60483.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
-<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const n=new URLSearchParams(window.location.search).entries();for(var[t,e]of n)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentEle [...]
+<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const n=new URLSearchParams(window.location.search).entries();for(var[t,e]of n)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentEle [...]
 execution engine for various data formats and data stores, and
 many can be made to push down computations down to Druid, while providing a SQL interface to Druid.</p>
 <p>For a direct comparison between the technologies and when to only use one or the other, things basically comes down to your
diff --git a/docs/38.0.0/configuration.html/index.html b/docs/38.0.0/configuration.html/index.html
new file mode 100644
index 000000000..e9ad31118
--- /dev/null
+++ b/docs/38.0.0/configuration.html/index.html
@@ -0,0 +1,11 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <meta charset="UTF-8">
+    <meta http-equiv="refresh" content="0; url=/docs/38.0.0/configuration/">
+    <link rel="canonical" href="/docs/38.0.0/configuration/" />
+  </head>
+  <script>
+    window.location.href = '/docs/38.0.0/configuration/' + window.location.search + window.location.hash;
+  </script>
+</html>
\ No newline at end of file
diff --git a/docs/38.0.0/configuration/auth.html/index.html b/docs/38.0.0/configuration/auth.html/index.html
new file mode 100644
index 000000000..1440564f4
--- /dev/null
+++ b/docs/38.0.0/configuration/auth.html/index.html
@@ -0,0 +1,11 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <meta charset="UTF-8">
+    <meta http-equiv="refresh" content="0; url=/docs/38.0.0/operations/auth">
+    <link rel="canonical" href="/docs/38.0.0/operations/auth" />
+  </head>
+  <script>
+    window.location.href = '/docs/38.0.0/operations/auth' + window.location.search + window.location.hash;
+  </script>
+</html>
\ No newline at end of file
diff --git a/docs/38.0.0/configuration/broker.html/index.html b/docs/38.0.0/configuration/broker.html/index.html
new file mode 100644
index 000000000..e9ad31118
--- /dev/null
+++ b/docs/38.0.0/configuration/broker.html/index.html
@@ -0,0 +1,11 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <meta charset="UTF-8">
+    <meta http-equiv="refresh" content="0; url=/docs/38.0.0/configuration/">
+    <link rel="canonical" href="/docs/38.0.0/configuration/" />
+  </head>
+  <script>
+    window.location.href = '/docs/38.0.0/configuration/' + window.location.search + window.location.hash;
+  </script>
+</html>
\ No newline at end of file
diff --git a/docs/38.0.0/configuration/caching.html/index.html b/docs/38.0.0/configuration/caching.html/index.html
new file mode 100644
index 000000000..e9ad31118
--- /dev/null
+++ b/docs/38.0.0/configuration/caching.html/index.html
@@ -0,0 +1,11 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <meta charset="UTF-8">
+    <meta http-equiv="refresh" content="0; url=/docs/38.0.0/configuration/">
+    <link rel="canonical" href="/docs/38.0.0/configuration/" />
+  </head>
+  <script>
+    window.location.href = '/docs/38.0.0/configuration/' + window.location.search + window.location.hash;
+  </script>
+</html>
\ No newline at end of file
diff --git a/docs/38.0.0/configuration/coordinator.html/index.html b/docs/38.0.0/configuration/coordinator.html/index.html
new file mode 100644
index 000000000..e9ad31118
--- /dev/null
+++ b/docs/38.0.0/configuration/coordinator.html/index.html
@@ -0,0 +1,11 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <meta charset="UTF-8">
+    <meta http-equiv="refresh" content="0; url=/docs/38.0.0/configuration/">
+    <link rel="canonical" href="/docs/38.0.0/configuration/" />
+  </head>
+  <script>
+    window.location.href = '/docs/38.0.0/configuration/' + window.location.search + window.location.hash;
+  </script>
+</html>
\ No newline at end of file
diff --git a/docs/38.0.0/configuration/extensions.html/index.html b/docs/38.0.0/configuration/extensions.html/index.html
new file mode 100644
index 000000000..038ff3a10
--- /dev/null
+++ b/docs/38.0.0/configuration/extensions.html/index.html
@@ -0,0 +1,11 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <meta charset="UTF-8">
+    <meta http-equiv="refresh" content="0; url=/docs/38.0.0/configuration/extensions">
+    <link rel="canonical" href="/docs/38.0.0/configuration/extensions" />
+  </head>
+  <script>
+    window.location.href = '/docs/38.0.0/configuration/extensions' + window.location.search + window.location.hash;
+  </script>
+</html>
\ No newline at end of file
diff --git a/docs/latest/configuration/extensions/index.html b/docs/38.0.0/configuration/extensions/index.html
similarity index 69%
copy from docs/latest/configuration/extensions/index.html
copy to docs/38.0.0/configuration/extensions/index.html
index 5860fe950..495b41639 100644
--- a/docs/latest/configuration/extensions/index.html
+++ b/docs/38.0.0/configuration/extensions/index.html
@@ -3,59 +3,59 @@
 <head>
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.7.0">
-<title data-rh="true">Extensions | Apache® Druid</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://druid.apache.org/img/druid_nav.png"><meta data-rh="true" name="twitter:image" content="https://druid.apache.org/img/druid_nav.png"><meta data-rh="true" property="og:url" content="https://druid.apache.org/docs/latest/configura [...]
+<title data-rh="true">Extensions | Apache® Druid</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://druid.apache.org/img/druid_nav.png"><meta data-rh="true" name="twitter:image" content="https://druid.apache.org/img/druid_nav.png"><meta data-rh="true" property="og:url" content="https://druid.apache.org/docs/38.0.0/configura [...]
 <script src="/js/clipboard.min.js"></script><link rel="stylesheet" href="/assets/css/styles.f3140859.css">
-<script src="/assets/js/runtime~main.3e1f3e8c.js" defer="defer"></script>
-<script src="/assets/js/main.b85ce480.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.ea7da916.js" defer="defer"></script>
+<script src="/assets/js/main.b6e60483.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
-<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const n=new URLSearchParams(window.location.search).entries();for(var[t,e]of n)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentEle [...]
+<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const n=new URLSearchParams(window.location.search).entries();for(var[t,e]of n)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentEle [...]
 are commonly used to add support for deep storages (like HDFS and S3), metadata stores (like MySQL
 and PostgreSQL), new aggregators, new input formats, and so on.</p>
 <p>Production clusters will generally use at least two extensions; one for deep storage and one for a
 metadata store. Many clusters will also use additional extensions.</p>
 <h2 class="anchor anchorWithStickyNavbar_LWe7" id="core-extensions">Core extensions<a href="#core-extensions" class="hash-link" aria-label="Direct link to Core extensions" title="Direct link to Core extensions">​</a></h2>
 <p>Core extensions are maintained by Druid committers.</p>
-<table><thead><tr><th>Name</th><th>Description</th><th>Docs</th></tr></thead><tbody><tr><td>druid-avro-extensions</td><td>Support for data in Apache Avro data format.</td><td><a href="/docs/latest/development/extensions-core/avro">link</a></td></tr><tr><td>druid-azure-extensions</td><td>Microsoft Azure deep storage.</td><td><a href="/docs/latest/development/extensions-core/azure">link</a></td></tr><tr><td>druid-basic-security</td><td>Support for Basic HTTP authentication and role-based a [...]
+<table><thead><tr><th>Name</th><th>Description</th><th>Docs</th></tr></thead><tbody><tr><td>druid-avro-extensions</td><td>Support for data in Apache Avro data format.</td><td><a href="/docs/38.0.0/development/extensions-core/avro">link</a></td></tr><tr><td>druid-azure-extensions</td><td>Microsoft® Azure deep storage.</td><td><a href="/docs/38.0.0/development/extensions-core/azure">link</a></td></tr><tr><td>druid-basic-security</td><td>Support for Basic HTTP authentication and role-based  [...]
 <h2 class="anchor anchorWithStickyNavbar_LWe7" id="community-extensions">Community extensions<a href="#community-extensions" class="hash-link" aria-label="Direct link to Community extensions" title="Direct link to Community extensions">​</a></h2>
 <div class="theme-admonition theme-admonition-info admonition_xJq3 alert alert--info"><div class="admonitionHeading_Gvgb"><span class="admonitionIcon_Rf37"><svg viewBox="0 0 14 16"><path fill-rule="evenodd" d="M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"></path></svg></span>info</div><div class="admonitionContent_BuS1"><p>Community extensions are not main [...]
 <p>A number of community members have contributed their own extensions to Druid that are not packaged with the default Druid tarball.
 If you&#x27;d like to take on maintenance for a community extension, please post on <a href="https://lists.apache.org/list.html?dev@druid.apache.org" target="_blank" rel="noopener noreferrer">dev@druid.apache.org</a> to let us know!</p>
-<p>All of these community extensions can be downloaded using <a href="/docs/latest/operations/pull-deps">pull-deps</a> while specifying a <code>-c</code> coordinate option to pull <code>org.apache.druid.extensions.contrib:{EXTENSION_NAME}:{DRUID_VERSION}</code>.</p>
-<table><thead><tr><th>Name</th><th>Description</th><th>Docs</th></tr></thead><tbody><tr><td>aliyun-oss-extensions</td><td>Aliyun OSS deep storage</td><td><a href="/docs/latest/development/extensions-contrib/aliyun-oss">link</a></td></tr><tr><td>ambari-metrics-emitter</td><td>Ambari Metrics Emitter</td><td><a href="/docs/latest/development/extensions-contrib/ambari-metrics-emitter">link</a></td></tr><tr><td>druid-cassandra-storage</td><td>Apache Cassandra deep storage.</td><td><a href="/d [...]
+<p>All of these community extensions can be downloaded using <a href="/docs/38.0.0/operations/pull-deps">pull-deps</a> while specifying a <code>-c</code> coordinate option to pull <code>org.apache.druid.extensions.contrib:{EXTENSION_NAME}:{DRUID_VERSION}</code>.</p>
+<table><thead><tr><th>Name</th><th>Description</th><th>Docs</th></tr></thead><tbody><tr><td>aliyun-oss-extensions</td><td>Aliyun OSS deep storage</td><td><a href="/docs/38.0.0/development/extensions-contrib/aliyun-oss">link</a></td></tr><tr><td>ambari-metrics-emitter</td><td>Ambari Metrics Emitter</td><td><a href="/docs/38.0.0/development/extensions-contrib/ambari-metrics-emitter">link</a></td></tr><tr><td>druid-cassandra-storage</td><td>Apache Cassandra deep storage.</td><td><a href="/d [...]
 <h2 class="anchor anchorWithStickyNavbar_LWe7" id="promoting-community-extensions-to-core-extensions">Promoting community extensions to core extensions<a href="#promoting-community-extensions-to-core-extensions" class="hash-link" aria-label="Direct link to Promoting community extensions to core extensions" title="Direct link to Promoting community extensions to core extensions">​</a></h2>
 <p>Please post on <a href="https://lists.apache.org/list.html?dev@druid.apache.org" target="_blank" rel="noopener noreferrer">dev@druid.apache.org</a> if you&#x27;d like an extension to be promoted to core.
 If we see a community extension actively supported by the community, we can promote it to core based on community feedback.</p>
-<p>For information how to create your own extension, please see <a href="/docs/latest/development/modules">here</a>.</p>
+<p>For information how to create your own extension, please see <a href="/docs/38.0.0/development/modules">here</a>.</p>
 <h2 class="anchor anchorWithStickyNavbar_LWe7" id="loading-extensions">Loading extensions<a href="#loading-extensions" class="hash-link" aria-label="Direct link to Loading extensions" title="Direct link to Loading extensions">​</a></h2>
 <h3 class="anchor anchorWithStickyNavbar_LWe7" id="loading-core-extensions">Loading core extensions<a href="#loading-core-extensions" class="hash-link" aria-label="Direct link to Loading core extensions" title="Direct link to Loading core extensions">​</a></h3>
-<p>Apache Druid bundles all <a href="/docs/latest/configuration/extensions#core-extensions">core extensions</a> out of the box.
-See the <a href="/docs/latest/configuration/extensions#core-extensions">list of extensions</a> for your options. You
+<p>Apache Druid bundles all <a href="/docs/38.0.0/configuration/extensions#core-extensions">core extensions</a> out of the box.
+See the <a href="/docs/38.0.0/configuration/extensions#core-extensions">list of extensions</a> for your options. You
 can load bundled extensions by adding their names to your common.runtime.properties
 <code>druid.extensions.loadList</code> property. For example, to load the postgresql-metadata-storage and
 druid-hdfs-storage extensions, use the configuration:</p>
 <div class="language-properties codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#bfc7d5;--prism-background-color:#292d3e"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-properties codeBlock_bY9V thin-scrollbar" style="color:#bfc7d5;background-color:#292d3e"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#bfc7d5"><span class="token plain">druid.extensions.loadList=[&quot;postgresql-metadata-storage&quot;, &quot;druid [...]
 <p>These extensions are located in the <code>extensions</code> directory of the distribution.</p>
-<div class="theme-admonition theme-admonition-info admonition_xJq3 alert alert--info"><div class="admonitionHeading_Gvgb"><span class="admonitionIcon_Rf37"><svg viewBox="0 0 14 16"><path fill-rule="evenodd" d="M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"></path></svg></span>info</div><div class="admonitionContent_BuS1"><p>Druid bundles two sets of configu [...]
-one for a <a href="/docs/latest/tutorials/cluster">clustered configuration</a>. Make sure you are updating the correct
+<div class="theme-admonition theme-admonition-info admonition_xJq3 alert alert--info"><div class="admonitionHeading_Gvgb"><span class="admonitionIcon_Rf37"><svg viewBox="0 0 14 16"><path fill-rule="evenodd" d="M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"></path></svg></span>info</div><div class="admonitionContent_BuS1"><p>Druid bundles two sets of configu [...]
+one for a <a href="/docs/38.0.0/tutorials/cluster">clustered configuration</a>. Make sure you are updating the correct
 <code>common.runtime.properties</code> for your setup.</p></div></div>
 <div class="theme-admonition theme-admonition-info admonition_xJq3 alert alert--info"><div class="admonitionHeading_Gvgb"><span class="admonitionIcon_Rf37"><svg viewBox="0 0 14 16"><path fill-rule="evenodd" d="M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"></path></svg></span>info</div><div class="admonitionContent_BuS1"><p>Because of licensing, the mysql-m [...]
-on how to install this library, see the <a href="/docs/latest/development/extensions-core/mysql">MySQL extension page</a>.</p></div></div>
+on how to install this library, see the <a href="/docs/38.0.0/development/extensions-core/mysql">MySQL extension page</a>.</p></div></div>
 <h3 class="anchor anchorWithStickyNavbar_LWe7" id="loading-community-extensions">Loading community extensions<a href="#loading-community-extensions" class="hash-link" aria-label="Direct link to Loading community extensions" title="Direct link to Loading community extensions">​</a></h3>
 <p>You can also load community and third-party extensions not already bundled with Druid. To do this, first download the extension and
 then install it into your <code>extensions</code> directory. You can download extensions from their distributors directly, or
-if they are available from Maven, the included <a href="/docs/latest/operations/pull-deps">pull-deps</a> can download them for you. To use <em>pull-deps</em>,
+if they are available from Maven, the included <a href="/docs/38.0.0/operations/pull-deps">pull-deps</a> can download them for you. To use <em>pull-deps</em>,
 specify the full Maven coordinate of the extension in the form <code>groupId:artifactId:version</code>. For example,
 for the (hypothetical) extension <em>com.example:druid-example-extension:1.0.0</em>, run:</p>
 <div class="language-shell codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#bfc7d5;--prism-background-color:#292d3e"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-shell codeBlock_bY9V thin-scrollbar" style="color:#bfc7d5;background-color:#292d3e"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#bfc7d5"><span class="token plain">java \</span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token [...]
 <p>You only have to install the extension once. Then, add <code>&quot;druid-example-extension&quot;</code> to
 <code>druid.extensions.loadList</code> in common.runtime.properties to instruct Druid to load the extension.</p>
-<div class="theme-admonition theme-admonition-info admonition_xJq3 alert alert--info"><div class="admonitionHeading_Gvgb"><span class="admonitionIcon_Rf37"><svg viewBox="0 0 14 16"><path fill-rule="evenodd" d="M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"></path></svg></span>info</div><div class="admonitionContent_BuS1"><p>Please make sure all the Extensio [...]
-<div class="theme-admonition theme-admonition-info admonition_xJq3 alert alert--info"><div class="admonitionHeading_Gvgb"><span class="admonitionIcon_Rf37"><svg viewBox="0 0 14 16"><path fill-rule="evenodd" d="M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"></path></svg></span>info</div><div class="admonitionContent_BuS1"><p>The Maven <code>groupId</code> fo [...]
+<div class="theme-admonition theme-admonition-info admonition_xJq3 alert alert--info"><div class="admonitionHeading_Gvgb"><span class="admonitionIcon_Rf37"><svg viewBox="0 0 14 16"><path fill-rule="evenodd" d="M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"></path></svg></span>info</div><div class="admonitionContent_BuS1"><p>Please make sure all the Extensio [...]
+<div class="theme-admonition theme-admonition-info admonition_xJq3 alert alert--info"><div class="admonitionHeading_Gvgb"><span class="admonitionIcon_Rf37"><svg viewBox="0 0 14 16"><path fill-rule="evenodd" d="M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"></path></svg></span>info</div><div class="admonitionContent_BuS1"><p>The Maven <code>groupId</code> fo [...]
 of the extension, and the version is the latest Druid stable version.</p></div></div>
 <h3 class="anchor anchorWithStickyNavbar_LWe7" id="loading-extensions-from-the-classpath">Loading extensions from the classpath<a href="#loading-extensions-from-the-classpath" class="hash-link" aria-label="Direct link to Loading extensions from the classpath" title="Direct link to Loading extensions from the classpath">​</a></h3>
 <p>If you add your extension jar to the classpath at runtime, Druid will also load it into the system. This mechanism is relatively easy to reason about,
 but it also means that you have to ensure that all dependency jars on the classpath are compatible. That is, Druid makes no provisions while using
-this method to maintain class loader isolation so you must make sure that the jars on your classpath are mutually compatible.</p></div></article><nav class="pagination-nav docusaurus-mt-lg" aria-label="Docs pages"><a class="pagination-nav__link pagination-nav__link--prev" href="/docs/latest/configuration/"><div class="pagination-nav__sublabel">Previous</div><div class="pagination-nav__label">Configuration reference</div></a><a class="pagination-nav__link pagination-nav__link--next" href= [...]
+this method to maintain class loader isolation so you must make sure that the jars on your classpath are mutually compatible.</p></div></article><nav class="pagination-nav docusaurus-mt-lg" aria-label="Docs pages"><a class="pagination-nav__link pagination-nav__link--prev" href="/docs/38.0.0/configuration/"><div class="pagination-nav__sublabel">Previous</div><div class="pagination-nav__label">Configuration reference</div></a><a class="pagination-nav__link pagination-nav__link--next" href= [...]
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/38.0.0/configuration/hadoop.html/index.html b/docs/38.0.0/configuration/hadoop.html/index.html
new file mode 100644
index 000000000..69158de58
--- /dev/null
+++ b/docs/38.0.0/configuration/hadoop.html/index.html
@@ -0,0 +1,11 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <meta charset="UTF-8">
+    <meta http-equiv="refresh" content="0; url=/docs/38.0.0/ingestion/hadoop">
+    <link rel="canonical" href="/docs/38.0.0/ingestion/hadoop" />
+  </head>
+  <script>
+    window.location.href = '/docs/38.0.0/ingestion/hadoop' + window.location.search + window.location.hash;
+  </script>
+</html>
\ No newline at end of file
diff --git a/docs/38.0.0/configuration/historical.html/index.html b/docs/38.0.0/configuration/historical.html/index.html
new file mode 100644
index 000000000..e9ad31118
--- /dev/null
+++ b/docs/38.0.0/configuration/historical.html/index.html
@@ -0,0 +1,11 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <meta charset="UTF-8">
+    <meta http-equiv="refresh" content="0; url=/docs/38.0.0/configuration/">
+    <link rel="canonical" href="/docs/38.0.0/configuration/" />
+  </head>
+  <script>
+    window.location.href = '/docs/38.0.0/configuration/' + window.location.search + window.location.hash;
+  </script>
+</html>
\ No newline at end of file
diff --git a/docs/38.0.0/configuration/human-readable-byte.html/index.html b/docs/38.0.0/configuration/human-readable-byte.html/index.html
new file mode 100644
index 000000000..faa323f01
--- /dev/null
+++ b/docs/38.0.0/configuration/human-readable-byte.html/index.html
@@ -0,0 +1,11 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <meta charset="UTF-8">
+    <meta http-equiv="refresh" content="0; url=/docs/38.0.0/configuration/human-readable-byte">
+    <link rel="canonical" href="/docs/38.0.0/configuration/human-readable-byte" />
+  </head>
+  <script>
+    window.location.href = '/docs/38.0.0/configuration/human-readable-byte' + window.location.search + window.location.hash;
+  </script>
+</html>
\ No newline at end of file
diff --git a/docs/latest/configuration/human-readable-byte/index.html b/docs/38.0.0/configuration/human-readable-byte/index.html
similarity index 97%
copy from docs/latest/configuration/human-readable-byte/index.html
copy to docs/38.0.0/configuration/human-readable-byte/index.html
index 74c22512b..a96a7ea0f 100644
--- a/docs/latest/configuration/human-readable-byte/index.html
+++ b/docs/38.0.0/configuration/human-readable-byte/index.html
@@ -3,13 +3,13 @@
 <head>
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.7.0">
-<title data-rh="true">Human-readable Byte Configuration Reference | Apache® Druid</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://druid.apache.org/img/druid_nav.png"><meta data-rh="true" name="twitter:image" content="https://druid.apache.org/img/druid_nav.png"><meta data-rh="true" property="og:url" content="https://druid [...]
+<title data-rh="true">Human-readable Byte Configuration Reference | Apache® Druid</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://druid.apache.org/img/druid_nav.png"><meta data-rh="true" name="twitter:image" content="https://druid.apache.org/img/druid_nav.png"><meta data-rh="true" property="og:url" content="https://druid [...]
 <script src="/js/clipboard.min.js"></script><link rel="stylesheet" href="/assets/css/styles.f3140859.css">
-<script src="/assets/js/runtime~main.3e1f3e8c.js" defer="defer"></script>
-<script src="/assets/js/main.b85ce480.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.ea7da916.js" defer="defer"></script>
+<script src="/assets/js/main.b6e60483.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
-<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const n=new URLSearchParams(window.location.search).entries();for(var[t,e]of n)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentEle [...]
+<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const n=new URLSearchParams(window.location.search).entries();for(var[t,e]of n)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentEle [...]
 <p>These properties can be configured through 2 ways:</p>
 <ol>
 <li>a simple number in bytes</li>
diff --git a/docs/latest/configuration/index.html b/docs/38.0.0/configuration/index.html
similarity index 87%
copy from docs/latest/configuration/index.html
copy to docs/38.0.0/configuration/index.html
index 9ef5c8595..ef48470fc 100644
--- a/docs/latest/configuration/index.html
+++ b/docs/38.0.0/configuration/index.html
@@ -3,13 +3,13 @@
 <head>
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.7.0">
-<title data-rh="true">Configuration reference | Apache® Druid</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://druid.apache.org/img/druid_nav.png"><meta data-rh="true" name="twitter:image" content="https://druid.apache.org/img/druid_nav.png"><meta data-rh="true" property="og:url" content="https://druid.apache.org/docs/lat [...]
+<title data-rh="true">Configuration reference | Apache® Druid</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://druid.apache.org/img/druid_nav.png"><meta data-rh="true" name="twitter:image" content="https://druid.apache.org/img/druid_nav.png"><meta data-rh="true" property="og:url" content="https://druid.apache.org/docs/38. [...]
 <script src="/js/clipboard.min.js"></script><link rel="stylesheet" href="/assets/css/styles.f3140859.css">
-<script src="/assets/js/runtime~main.3e1f3e8c.js" defer="defer"></script>
-<script src="/assets/js/main.b85ce480.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.ea7da916.js" defer="defer"></script>
+<script src="/assets/js/main.b6e60483.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
-<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const n=new URLSearchParams(window.location.search).entries();for(var[t,e]of n)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentEle [...]
+<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const n=new URLSearchParams(window.location.search).entries();for(var[t,e]of n)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentEle [...]
 <h2 class="anchor anchorWithStickyNavbar_LWe7" id="recommended-configuration-file-organization">Recommended configuration file organization<a href="#recommended-configuration-file-organization" class="hash-link" aria-label="Direct link to Recommended configuration file organization" title="Direct link to Recommended configuration file organization">​</a></h2>
 <p>A recommended way of organizing Druid configuration files can be seen in the <code>conf</code> directory in the Druid package root, shown below:</p>
 <div class="language-sh codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#bfc7d5;--prism-background-color:#292d3e"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-sh codeBlock_bY9V thin-scrollbar" style="color:#bfc7d5;background-color:#292d3e"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#bfc7d5"><span class="token plain">$ ls -R conf</span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token [...]
@@ -31,7 +31,7 @@
 <p>There are four JVM parameters that we set on all of our services:</p>
 <ul>
 <li>
-<p><code>-Duser.timezone=UTC</code>: This sets the default timezone of the JVM to UTC. We always set this and do not test with other default timezones, so local timezones might work, but they also might uncover weird and interesting bugs. To issue queries in a non-UTC timezone, see <a href="/docs/latest/querying/granularities#period-granularities">query granularities</a></p>
+<p><code>-Duser.timezone=UTC</code>: This sets the default timezone of the JVM to UTC. We always set this and do not test with other default timezones, so local timezones might work, but they also might uncover weird and interesting bugs. To issue queries in a non-UTC timezone, see <a href="/docs/38.0.0/querying/granularities#period-granularities">query granularities</a></p>
 </li>
 <li>
 <p><code>-Dfile.encoding=UTF-8</code> This is similar to timezone, we test assuming UTF-8. Local encodings might work, but they also might result in weird and interesting bugs.</p>
@@ -57,18 +57,12 @@
 <table><thead><tr><th>Property</th><th>Description</th><th>Default</th></tr></thead><tbody><tr><td><code>druid.modules.excludeList</code></td><td>A JSON array of canonical class names (e.g., <code>&quot;org.apache.druid.somepackage.SomeModule&quot;</code>) of module classes which shouldn&#x27;t be loaded, even if they are found in extensions specified by <code>druid.extensions.loadList</code>, or in the list of core modules specified to be loaded on a particular Druid service type. Usefu [...]
 <h3 class="anchor anchorWithStickyNavbar_LWe7" id="zookeeper">ZooKeeper<a href="#zookeeper" class="hash-link" aria-label="Direct link to ZooKeeper" title="Direct link to ZooKeeper">​</a></h3>
 <p>We recommend just setting the base ZK path and the ZK service host, but all ZK paths that Druid uses can be overwritten to absolute paths.</p>
-<table><thead><tr><th>Property</th><th>Description</th><th>Default</th></tr></thead><tbody><tr><td><code>druid.zk.paths.base</code></td><td>Base ZooKeeper path.</td><td><code>/druid</code></td></tr><tr><td><code>druid.zk.service.host</code></td><td>The ZooKeeper hosts to connect to. This is a REQUIRED property and therefore a host address must be supplied.</td><td>none</td></tr><tr><td><code>druid.zk.service.user</code></td><td>The username to authenticate with ZooKeeper. This is an opti [...]
+<table><thead><tr><th>Property</th><th>Description</th><th>Default</th></tr></thead><tbody><tr><td><code>druid.zk.paths.base</code></td><td>Base ZooKeeper path.</td><td><code>/druid</code></td></tr><tr><td><code>druid.zk.service.host</code></td><td>The ZooKeeper hosts to connect to. This is a REQUIRED property and therefore a host address must be supplied.</td><td>none</td></tr><tr><td><code>druid.zk.service.user</code></td><td>The username to authenticate with ZooKeeper. This is an opti [...]
 <h4 class="anchor anchorWithStickyNavbar_LWe7" id="zookeeper-behavior">ZooKeeper behavior<a href="#zookeeper-behavior" class="hash-link" aria-label="Direct link to ZooKeeper behavior" title="Direct link to ZooKeeper behavior">​</a></h4>
 <table><thead><tr><th>Property</th><th>Description</th><th>Default</th></tr></thead><tbody><tr><td><code>druid.zk.service.sessionTimeoutMs</code></td><td>ZooKeeper session timeout, in milliseconds.</td><td><code>30000</code></td></tr><tr><td><code>druid.zk.service.connectionTimeoutMs</code></td><td>ZooKeeper connection timeout, in milliseconds.</td><td><code>15000</code></td></tr><tr><td><code>druid.zk.service.compress</code></td><td>Boolean flag for whether or not created Znodes should  [...]
 <h4 class="anchor anchorWithStickyNavbar_LWe7" id="path-configuration">Path configuration<a href="#path-configuration" class="hash-link" aria-label="Direct link to Path configuration" title="Direct link to Path configuration">​</a></h4>
 <p>Druid interacts with ZooKeeper through a set of standard path configurations. We recommend just setting the base ZooKeeper path, but all ZooKeeper paths that Druid uses can be overwritten to absolute paths.</p>
-<table><thead><tr><th>Property</th><th>Description</th><th>Default</th></tr></thead><tbody><tr><td><code>druid.zk.paths.base</code></td><td>Base ZooKeeper path.</td><td><code>/druid</code></td></tr><tr><td><code>druid.zk.paths.propertiesPath</code></td><td>ZooKeeper properties path.</td><td><code>${druid.zk.paths.base}/properties</code></td></tr><tr><td><code>druid.zk.paths.announcementsPath</code></td><td>Druid service announcement path.</td><td><code>${druid.zk.paths.base}/announcement [...]
-<p>The indexing service also uses its own set of paths. These configs can be included in the common configuration.</p>
-<table><thead><tr><th>Property</th><th>Description</th><th>Default</th></tr></thead><tbody><tr><td><code>druid.zk.paths.indexer.base</code></td><td>Base ZooKeeper path for</td><td><code>${druid.zk.paths.base}/indexer</code></td></tr><tr><td><code>druid.zk.paths.indexer.announcementsPath</code></td><td>Middle Managers announce themselves here.</td><td><code>${druid.zk.paths.indexer.base}/announcements</code></td></tr><tr><td><code>druid.zk.paths.indexer.tasksPath</code></td><td>Used to as [...]
-<p>If <code>druid.zk.paths.base</code> and <code>druid.zk.paths.indexer.base</code> are both set, and none of the other <code>druid.zk.paths.*</code> or <code>druid.zk.paths.indexer.*</code> values are set, then the other properties will be evaluated relative to their respective <code>base</code>.
-For example, if <code>druid.zk.paths.base</code> is set to <code>/druid1</code> and <code>druid.zk.paths.indexer.base</code> is set to <code>/druid2</code> then <code>druid.zk.paths.announcementsPath</code> will default to <code>/druid1/announcements</code> while <code>druid.zk.paths.indexer.announcementsPath</code> will default to <code>/druid2/announcements</code>.</p>
-<p>The following path is used for service discovery. It is <strong>not</strong> affected by <code>druid.zk.paths.base</code> and <strong>must</strong> be specified separately.</p>
-<table><thead><tr><th>Property</th><th>Description</th><th>Default</th></tr></thead><tbody><tr><td><code>druid.discovery.curator.path</code></td><td>Services announce themselves under this ZooKeeper path.</td><td><code>/druid/discovery</code></td></tr></tbody></table>
+<table><thead><tr><th>Property</th><th>Description</th><th>Default</th></tr></thead><tbody><tr><td><code>druid.zk.paths.base</code></td><td>Base ZooKeeper path.</td><td><code>/druid</code></td></tr><tr><td><code>druid.zk.paths.coordinatorPath</code></td><td>Used by the Coordinator for leader election.</td><td><code>${druid.zk.paths.base}/coordinator</code></td></tr></tbody></table>
 <h3 class="anchor anchorWithStickyNavbar_LWe7" id="tls">TLS<a href="#tls" class="hash-link" aria-label="Direct link to TLS" title="Direct link to TLS">​</a></h3>
 <h4 class="anchor anchorWithStickyNavbar_LWe7" id="general-configuration">General configuration<a href="#general-configuration" class="hash-link" aria-label="Direct link to General configuration" title="Direct link to General configuration">​</a></h4>
 <table><thead><tr><th>Property</th><th>Description</th><th>Default</th></tr></thead><tbody><tr><td><code>druid.enablePlaintextPort</code></td><td>Enable/Disable HTTP connector.</td><td><code>true</code></td></tr><tr><td><code>druid.enableTlsPort</code></td><td>Enable/Disable HTTPS connector.</td><td><code>false</code></td></tr></tbody></table>
@@ -80,17 +74,17 @@ and <code>druid.tlsPort</code> properties on each service. Please see <code>Conf
 The <a href="https://docs.oracle.com/en/java/javase/17/docs/specs/security/standard-names.html" target="_blank" rel="noopener noreferrer">Java Cryptography Architecture
 Standard Algorithm Name Documentation for JDK 17</a> lists all possible
 values for the following properties, among others provided by the Java implementation.</p>
-<table><thead><tr><th>Property</th><th>Description</th><th>Default</th><th>Required</th></tr></thead><tbody><tr><td><code>druid.server.https.keyStorePath</code></td><td>The file path or URL of the TLS/SSL KeyStore.</td><td>none</td><td>yes</td></tr><tr><td><code>druid.server.https.keyStoreType</code></td><td>The type of the KeyStore.</td><td>none</td><td>yes</td></tr><tr><td><code>druid.server.https.certAlias</code></td><td>Alias of TLS/SSL certificate for the connector.</td><td>none</td [...]
+<table><thead><tr><th>Property</th><th>Description</th><th>Default</th><th>Required</th></tr></thead><tbody><tr><td><code>druid.server.https.keyStorePath</code></td><td>The file path or URL of the TLS/SSL KeyStore.</td><td>none</td><td>yes</td></tr><tr><td><code>druid.server.https.keyStoreType</code></td><td>The type of the KeyStore.</td><td>none</td><td>yes</td></tr><tr><td><code>druid.server.https.certAlias</code></td><td>Alias of TLS/SSL certificate for the connector.</td><td>none</td [...]
 <p>Following table contains non-mandatory advanced configuration options, use caution.</p>
-<table><thead><tr><th>Property</th><th>Description</th><th>Default</th><th>Required</th></tr></thead><tbody><tr><td><code>druid.server.https.keyManagerFactoryAlgorithm</code></td><td>Algorithm to use for creating KeyManager, more details <a href="https://docs.oracle.com/javase/7/docs/technotes/guides/security/jsse/JSSERefGuide.html#KeyManager" target="_blank" rel="noopener noreferrer">here</a>.</td><td><code>javax.net.ssl.KeyManagerFactory.getDefaultAlgorithm()</code></td><td>no</td></tr [...]
+<table><thead><tr><th>Property</th><th>Description</th><th>Default</th><th>Required</th></tr></thead><tbody><tr><td><code>druid.server.https.keyManagerFactoryAlgorithm</code></td><td>Algorithm to use for creating KeyManager, more details <a href="https://docs.oracle.com/javase/7/docs/technotes/guides/security/jsse/JSSERefGuide.html#KeyManager" target="_blank" rel="noopener noreferrer">here</a>.</td><td><code>javax.net.ssl.KeyManagerFactory.getDefaultAlgorithm()</code></td><td>no</td></tr [...]
 <h4 class="anchor anchorWithStickyNavbar_LWe7" id="internal-client-tls-configuration-requires-simple-client-sslcontext-extension">Internal client TLS configuration (requires <code>simple-client-sslcontext</code> extension)<a href="#internal-client-tls-configuration-requires-simple-client-sslcontext-extension" class="hash-link" aria-label="Direct link to internal-client-tls-configuration-requires-simple-client-sslcontext-extension" title="Direct link to internal-client-tls-configuration-r [...]
 <p>These properties apply to the SSLContext that will be provided to the internal HTTP client that Druid services use to communicate with each other. These properties require the <code>simple-client-sslcontext</code> extension to be loaded. Without it, Druid services will be unable to communicate with each other when TLS is enabled.</p>
-<table><thead><tr><th>Property</th><th>Description</th><th>Default</th><th>Required</th></tr></thead><tbody><tr><td><code>druid.client.https.protocol</code></td><td>SSL protocol to use.</td><td><code>TLSv1.2</code></td><td>no</td></tr><tr><td><code>druid.client.https.trustStoreType</code></td><td>The type of the key store where trusted root certificates are stored.</td><td><code>java.security.KeyStore.getDefaultType()</code></td><td>no</td></tr><tr><td><code>druid.client.https.trustStore [...]
+<table><thead><tr><th>Property</th><th>Description</th><th>Default</th><th>Required</th></tr></thead><tbody><tr><td><code>druid.client.https.protocol</code></td><td>SSL protocol to use.</td><td><code>TLSv1.2</code></td><td>no</td></tr><tr><td><code>druid.client.https.trustStoreType</code></td><td>The type of the key store where trusted root certificates are stored.</td><td><code>java.security.KeyStore.getDefaultType()</code></td><td>no</td></tr><tr><td><code>druid.client.https.trustStore [...]
 <p>This <a href="https://docs.oracle.com/en/java/javase/17/docs/specs/security/standard-names.html" target="_blank" rel="noopener noreferrer">document</a> lists all the possible
 values for the above mentioned configs among others provided by Java implementation.</p>
 <h3 class="anchor anchorWithStickyNavbar_LWe7" id="authentication-and-authorization">Authentication and authorization<a href="#authentication-and-authorization" class="hash-link" aria-label="Direct link to Authentication and authorization" title="Direct link to Authentication and authorization">​</a></h3>
-<table><thead><tr><th>Property</th><th>Type</th><th>Description</th><th>Default</th><th>Required</th></tr></thead><tbody><tr><td><code>druid.auth.authenticatorChain</code></td><td>JSON List of Strings</td><td>List of Authenticator type names</td><td>[&quot;allowAll&quot;]</td><td>no</td></tr><tr><td><code>druid.escalator.type</code></td><td>String</td><td>Type of the Escalator that should be used for internal Druid communications. This Escalator must use an authentication scheme that is  [...]
-<p>For more information, please see <a href="/docs/latest/operations/auth">Authentication and Authorization</a>.</p>
+<table><thead><tr><th>Property</th><th>Type</th><th>Description</th><th>Default</th><th>Required</th></tr></thead><tbody><tr><td><code>druid.auth.authenticatorChain</code></td><td>JSON List of Strings</td><td>List of Authenticator type names</td><td>[&quot;allowAll&quot;]</td><td>no</td></tr><tr><td><code>druid.escalator.type</code></td><td>String</td><td>Type of the Escalator that should be used for internal Druid communications. This Escalator must use an authentication scheme that is  [...]
+<p>For more information, please see <a href="/docs/38.0.0/operations/auth">Authentication and Authorization</a>.</p>
 <p>For configuration options for specific auth extensions, please refer to the extension documentation.</p>
 <h3 class="anchor anchorWithStickyNavbar_LWe7" id="startup-logging">Startup logging<a href="#startup-logging" class="hash-link" aria-label="Direct link to Startup logging" title="Direct link to Startup logging">​</a></h3>
 <p>All services can log debugging information on startup.</p>
@@ -98,9 +92,9 @@ values for the above mentioned configs among others provided by Java implementat
 <p>Note that some sensitive information may be logged if these settings are enabled.</p>
 <h3 class="anchor anchorWithStickyNavbar_LWe7" id="request-logging">Request logging<a href="#request-logging" class="hash-link" aria-label="Direct link to Request logging" title="Direct link to Request logging">​</a></h3>
 <p>All services that can serve queries can also log the query requests they see. Broker services can additionally log the SQL requests (both from HTTP and JDBC) they see.
-For an example of setting up request logging, see <a href="/docs/latest/operations/request-logging">Request logging</a>.</p>
+For an example of setting up request logging, see <a href="/docs/38.0.0/operations/request-logging">Request logging</a>.</p>
 <table><thead><tr><th>Property</th><th>Description</th><th>Default</th></tr></thead><tbody><tr><td><code>druid.request.logging.type</code></td><td>How to log every query request. Choices: <code>noop</code>, <a href="#file-request-logging"><code>file</code></a>, <a href="#emitter-request-logging"><code>emitter</code></a>, <a href="#slf4j-request-logging"><code>slf4j</code></a>, <a href="#filtered-request-logging"><code>filtered</code></a>, <a href="#composing-request-logging"><code>compos [...]
-<p>To enable sending all the HTTP requests to a log, set <code>org.apache.druid.jetty.RequestLog</code> to the <code>DEBUG</code> level. See <a href="/docs/latest/configuration/logging">Logging</a> for more information.</p>
+<p>To enable sending all the HTTP requests to a log, set <code>org.apache.druid.jetty.RequestLog</code> to the <code>DEBUG</code> level. See <a href="/docs/38.0.0/configuration/logging">Logging</a> for more information.</p>
 <h4 class="anchor anchorWithStickyNavbar_LWe7" id="file-request-logging">File request logging<a href="#file-request-logging" class="hash-link" aria-label="Direct link to File request logging" title="Direct link to File request logging">​</a></h4>
 <p>The <code>file</code> request logger stores daily request logs on disk.</p>
 <table><thead><tr><th>Property</th><th>Description</th><th>Default</th></tr></thead><tbody><tr><td><code>druid.request.logging.dir</code></td><td>Historical, Realtime, and Broker services maintain request logs of all of the requests they get (interaction is via POST, so normal request logs don’t generally capture information about the actual query), this specifies the directory to store the request logs in.</td><td>none</td></tr><tr><td><code>druid.request.logging.filePattern</code></td> [...]
@@ -121,9 +115,9 @@ For an example of setting up request logging, see <a href="/docs/latest/operatio
 <p>The <code>filtered</code> request logger filters requests based on the query type or how long a query takes to complete.
 For native queries, the logger only logs requests when the <code>query/time</code> metric exceeds the threshold provided in <code>queryTimeThresholdMs</code>.
 For SQL queries, it only logs requests when the <code>sqlQuery/time</code> metric exceeds threshold provided in <code>sqlQueryTimeThresholdMs</code>.
-See <a href="/docs/latest/operations/metrics">Metrics</a> for more details on query metrics.</p>
+See <a href="/docs/38.0.0/operations/metrics">Metrics</a> for more details on query metrics.</p>
 <p>Requests that meet the threshold are logged using the request logger type set in <code>druid.request.logging.delegate.type</code>.</p>
-<table><thead><tr><th>Property</th><th>Description</th><th>Default</th></tr></thead><tbody><tr><td><code>druid.request.logging.queryTimeThresholdMs</code></td><td>Threshold value for the <code>query/time</code> metric in milliseconds.</td><td>0, i.e., no filtering</td></tr><tr><td><code>druid.request.logging.sqlQueryTimeThresholdMs</code></td><td>Threshold value for the <code>sqlQuery/time</code> metric in milliseconds.</td><td>0, i.e., no filtering</td></tr><tr><td><code>druid.request.l [...]
+<table><thead><tr><th>Property</th><th>Description</th><th>Default</th></tr></thead><tbody><tr><td><code>druid.request.logging.queryTimeThresholdMs</code></td><td>Threshold value for the <code>query/time</code> metric in milliseconds.</td><td>0, i.e., no filtering</td></tr><tr><td><code>druid.request.logging.sqlQueryTimeThresholdMs</code></td><td>Threshold value for the <code>sqlQuery/time</code> metric in milliseconds.</td><td>0, i.e., no filtering</td></tr><tr><td><code>druid.request.l [...]
 <h4 class="anchor anchorWithStickyNavbar_LWe7" id="composing-request-logging">Composing request logging<a href="#composing-request-logging" class="hash-link" aria-label="Direct link to Composing request logging" title="Direct link to Composing request logging">​</a></h4>
 <p>The <code>composing</code> request logger emits request logs to multiple request loggers.</p>
 <table><thead><tr><th>Property</th><th>Description</th><th>Default</th></tr></thead><tbody><tr><td><code>druid.request.logging.loggerProviders</code></td><td>List of request loggers for emitting request logs.</td><td>none</td></tr></tbody></table>
@@ -132,12 +126,12 @@ See <a href="/docs/latest/operations/metrics">Metrics</a> for more details on qu
 <table><thead><tr><th>Property</th><th>Description</th><th>Default</th></tr></thead><tbody><tr><td><code>druid.request.logging.nativeQueryLogger</code></td><td>Request logger for emitting native query request logs.</td><td>none</td></tr><tr><td><code>druid.request.logging.sqlQueryLogger</code></td><td>Request logger for emitting SQL query request logs.</td><td>none</td></tr></tbody></table>
 <h3 class="anchor anchorWithStickyNavbar_LWe7" id="audit-logging">Audit logging<a href="#audit-logging" class="hash-link" aria-label="Direct link to Audit logging" title="Direct link to Audit logging">​</a></h3>
 <p>Coordinator and Overlord log changes to lookups, segment load/drop rules, and dynamic configuration changes for auditing.</p>
-<table><thead><tr><th>Property</th><th>Description</th><th>Default</th></tr></thead><tbody><tr><td><code>druid.audit.manager.type</code></td><td>Type of audit manager used for handling audited events. Audited events are logged when set to <code>log</code> or persisted in metadata store when set to <code>sql</code>.</td><td>sql</td></tr><tr><td><code>druid.audit.manager.logLevel</code></td><td>Log level of audit events with possible values DEBUG, INFO, WARN. This property is used only whe [...]
+<table><thead><tr><th>Property</th><th>Description</th><th>Default</th></tr></thead><tbody><tr><td><code>druid.audit.manager.type</code></td><td>Type of audit manager used for handling audited events. Audited events are logged when set to <code>log</code> or persisted in metadata store when set to <code>sql</code>.</td><td>sql</td></tr><tr><td><code>druid.audit.manager.logLevel</code></td><td>Log level of audit events with possible values DEBUG, INFO, WARN. This property is used only whe [...]
 <h3 class="anchor anchorWithStickyNavbar_LWe7" id="metadata-storage">Metadata storage<a href="#metadata-storage" class="hash-link" aria-label="Direct link to Metadata storage" title="Direct link to Metadata storage">​</a></h3>
-<p>These properties specify the JDBC connection and other configuration around the metadata storage. The only services that connect to the metadata storage with these properties are the <a href="/docs/latest/design/coordinator">Coordinator</a> and <a href="/docs/latest/design/overlord">Overlord</a>.</p>
-<table><thead><tr><th>Property</th><th>Description</th><th>Default</th></tr></thead><tbody><tr><td><code>druid.metadata.storage.type</code></td><td>The type of metadata storage to use. One of <code>mysql</code>, <code>postgresql</code>, or <code>derby</code>.</td><td><code>derby</code></td></tr><tr><td><code>druid.metadata.storage.connector.connectURI</code></td><td>The JDBC URI for the database to connect to</td><td>none</td></tr><tr><td><code>druid.metadata.storage.connector.user</code [...]
+<p>These properties specify the JDBC connection and other configuration around the metadata storage. The only services that connect to the metadata storage with these properties are the <a href="/docs/38.0.0/design/coordinator">Coordinator</a> and <a href="/docs/38.0.0/design/overlord">Overlord</a>.</p>
+<table><thead><tr><th>Property</th><th>Description</th><th>Default</th></tr></thead><tbody><tr><td><code>druid.metadata.storage.type</code></td><td>The type of metadata storage to use. One of <code>mysql</code>, <code>postgresql</code>, or <code>derby</code>.</td><td><code>derby</code></td></tr><tr><td><code>druid.metadata.storage.connector.connectURI</code></td><td>The JDBC URI for the database to connect to</td><td>none</td></tr><tr><td><code>druid.metadata.storage.connector.user</code [...]
 <h3 class="anchor anchorWithStickyNavbar_LWe7" id="deep-storage">Deep storage<a href="#deep-storage" class="hash-link" aria-label="Direct link to Deep storage" title="Direct link to Deep storage">​</a></h3>
-<p>The configurations concern how to push and pull <a href="/docs/latest/design/segments">Segments</a> from deep storage.</p>
+<p>The configurations concern how to push and pull <a href="/docs/38.0.0/design/segments">Segments</a> from deep storage.</p>
 <table><thead><tr><th>Property</th><th>Description</th><th>Default</th></tr></thead><tbody><tr><td><code>druid.storage.type</code></td><td>The type of deep storage to use. One of <code>local</code>, <code>noop</code>, <code>s3</code>, <code>hdfs</code>, <code>c*</code>.</td><td>local</td></tr></tbody></table>
 <h4 class="anchor anchorWithStickyNavbar_LWe7" id="local-deep-storage">Local deep storage<a href="#local-deep-storage" class="hash-link" aria-label="Direct link to Local deep storage" title="Direct link to Local deep storage">​</a></h4>
 <p>Local deep storage uses the local filesystem.</p>
@@ -146,8 +140,8 @@ See <a href="/docs/latest/operations/metrics">Metrics</a> for more details on qu
 <p>This deep storage doesn&#x27;t do anything. There are no configs.</p>
 <h4 class="anchor anchorWithStickyNavbar_LWe7" id="s3-deep-storage">S3 deep storage<a href="#s3-deep-storage" class="hash-link" aria-label="Direct link to S3 deep storage" title="Direct link to S3 deep storage">​</a></h4>
 <p>This deep storage is used to interface with Amazon&#x27;s S3. Note that the <code>druid-s3-extensions</code> extension must be loaded.
-The below table shows some important configurations for S3. See <a href="/docs/latest/development/extensions-core/s3">S3 Deep Storage</a> for full configurations.</p>
-<table><thead><tr><th>Property</th><th>Description</th><th>Default</th></tr></thead><tbody><tr><td><code>druid.storage.bucket</code></td><td>S3 bucket name.</td><td>none</td></tr><tr><td><code>druid.storage.baseKey</code></td><td>S3 object key prefix for storage.</td><td>none</td></tr><tr><td><code>druid.storage.disableAcl</code></td><td>Boolean flag for ACL. If this is set to <code>false</code>, the full control would be granted to the bucket owner. This may require to set additional pe [...]
+The below table shows some important configurations for S3. See <a href="/docs/38.0.0/development/extensions-core/s3">S3 Deep Storage</a> for full configurations.</p>
+<table><thead><tr><th>Property</th><th>Description</th><th>Default</th></tr></thead><tbody><tr><td><code>druid.storage.bucket</code></td><td>S3 bucket name.</td><td>none</td></tr><tr><td><code>druid.storage.baseKey</code></td><td>S3 object key prefix for storage.</td><td>none</td></tr><tr><td><code>druid.storage.disableAcl</code></td><td>Boolean flag for ACL. If this is set to <code>false</code>, the full control would be granted to the bucket owner. This may require to set additional pe [...]
 <h4 class="anchor anchorWithStickyNavbar_LWe7" id="hdfs-deep-storage">HDFS deep storage<a href="#hdfs-deep-storage" class="hash-link" aria-label="Direct link to HDFS deep storage" title="Direct link to HDFS deep storage">​</a></h4>
 <p>This deep storage is used to interface with HDFS. You must load the <code>druid-hdfs-storage</code> extension.</p>
 <table><thead><tr><th>Property</th><th>Description</th><th>Default</th></tr></thead><tbody><tr><td><code>druid.storage.storageDirectory</code></td><td>HDFS directory to use as deep storage.</td><td>none</td></tr><tr><td><code>druid.storage.compressionFormat</code></td><td>The compression format applied to the segments uploaded to HDFS. Only <code>zip</code> and <code>lz4</code> are supported.</td><td>zip</td></tr></tbody></table>
@@ -155,7 +149,7 @@ The below table shows some important configurations for S3. See <a href="/docs/l
 <p>This deep storage is used to interface with Cassandra. You must load the <code>druid-cassandra-storage</code> extension.</p>
 <table><thead><tr><th>Property</th><th>Description</th><th>Default</th></tr></thead><tbody><tr><td><code>druid.storage.host</code></td><td>Cassandra host.</td><td>none</td></tr><tr><td><code>druid.storage.keyspace</code></td><td>Cassandra key space.</td><td>none</td></tr></tbody></table>
 <h4 class="anchor anchorWithStickyNavbar_LWe7" id="centralized-datasource-schema-experimental">Centralized datasource schema (Experimental)<a href="#centralized-datasource-schema-experimental" class="hash-link" aria-label="Direct link to Centralized datasource schema (Experimental)" title="Direct link to Centralized datasource schema (Experimental)">​</a></h4>
-<p>This is an <a href="/docs/latest/development/experimental">experimental feature</a> to improve datasource schema management by persisting segment schemas to the metadata store and caching them on the Coordinator.
+<p>This is an <a href="/docs/38.0.0/development/experimental">experimental feature</a> to improve datasource schema management by persisting segment schemas to the metadata store and caching them on the Coordinator.
 Traditionally, Brokers issue segment metadata queries to data nodes and tasks to fetch the schemas of all available segments.
 Each Broker then individually builds the schema of a datasource by combining the schemas of all the segments of that datasource.
 This mechanism is redundant and prone to errors as there is no single source of truth for schemas.</p>
@@ -168,30 +162,30 @@ This mechanism is redundant and prone to errors as there is no single source of
 <li>Brokers still retain the ability to build a datasource schema if they are unable to fetch it from the Coordinator.</li>
 </ul>
 <table><thead><tr><th>Property</th><th>Description</th><th>Default</th><th>Required</th></tr></thead><tbody><tr><td><code>druid.centralizedDatasourceSchema.enabled</code></td><td>Boolean flag for enabling datasource schema building and caching on the Coordinator. This property should be specified in the common runtime properties.</td><td>false</td><td>No.</td></tr><tr><td><code>druid.indexer.fork.property.druid.centralizedDatasourceSchema.enabled</code></td><td>This config should be set  [...]
-<p>If you enable this feature, you can query datasources that are only stored in deep storage and are not loaded on a Historical. For more information, see <a href="/docs/latest/querying/query-deep-storage">Query from deep storage</a>.</p>
+<p>If you enable this feature, you can query datasources that are only stored in deep storage and are not loaded on a Historical. For more information, see <a href="/docs/38.0.0/querying/query-deep-storage">Query from deep storage</a>.</p>
 <p>For stale schema cleanup configs, refer to properties with the prefix <code>druid.coordinator.kill.segmentSchema</code> in <a href="#metadata-management">Metadata Management</a>.</p>
 <h3 class="anchor anchorWithStickyNavbar_LWe7" id="ingestion-security-configuration">Ingestion security configuration<a href="#ingestion-security-configuration" class="hash-link" aria-label="Direct link to Ingestion security configuration" title="Direct link to Ingestion security configuration">​</a></h3>
 <h4 class="anchor anchorWithStickyNavbar_LWe7" id="hdfs-input-source">HDFS input source<a href="#hdfs-input-source" class="hash-link" aria-label="Direct link to HDFS input source" title="Direct link to HDFS input source">​</a></h4>
 <p>You can set the following property to specify permissible protocols for
-the <a href="/docs/latest/ingestion/input-sources#hdfs-input-source">HDFS input source</a>.</p>
+the <a href="/docs/38.0.0/ingestion/input-sources#hdfs-input-source">HDFS input source</a>.</p>
 <table><thead><tr><th>Property</th><th>Possible values</th><th>Description</th><th>Default</th></tr></thead><tbody><tr><td><code>druid.ingestion.hdfs.allowedProtocols</code></td><td>List of protocols</td><td>Allowed protocols for the HDFS input source.</td><td><code>[&quot;hdfs&quot;]</code></td></tr></tbody></table>
 <h4 class="anchor anchorWithStickyNavbar_LWe7" id="http-input-source">HTTP input source<a href="#http-input-source" class="hash-link" aria-label="Direct link to HTTP input source" title="Direct link to HTTP input source">​</a></h4>
 <p>You can set the following property to specify permissible protocols for
-the <a href="/docs/latest/ingestion/input-sources#http-input-source">HTTP input source</a>.</p>
+the <a href="/docs/38.0.0/ingestion/input-sources#http-input-source">HTTP input source</a>.</p>
 <table><thead><tr><th>Property</th><th>Possible values</th><th>Description</th><th>Default</th></tr></thead><tbody><tr><td><code>druid.ingestion.http.allowedProtocols</code></td><td>List of protocols</td><td>Allowed protocols for the HTTP input source.</td><td><code>[&quot;http&quot;, &quot;https&quot;]</code></td></tr><tr><td><code>druid.ingestion.http.allowedHeaders</code></td><td>A list of permitted request headers for the HTTP input source. By default, the list is empty, which means  [...]
 <h3 class="anchor anchorWithStickyNavbar_LWe7" id="external-data-access-security-configuration">External data access security configuration<a href="#external-data-access-security-configuration" class="hash-link" aria-label="Direct link to External data access security configuration" title="Direct link to External data access security configuration">​</a></h3>
 <h4 class="anchor anchorWithStickyNavbar_LWe7" id="jdbc-connections-to-external-databases">JDBC connections to external databases<a href="#jdbc-connections-to-external-databases" class="hash-link" aria-label="Direct link to JDBC connections to external databases" title="Direct link to JDBC connections to external databases">​</a></h4>
 <p>You can use the following properties to specify permissible JDBC options for:</p>
 <ul>
-<li><a href="/docs/latest/ingestion/input-sources#sql-input-source">SQL input source</a></li>
-<li><a href="/docs/latest/querying/lookups-cached-global#jdbc-lookup">globally cached JDBC lookups</a></li>
-<li><a href="/docs/latest/development/extensions-core/druid-lookups#data-fetcher-layer">JDBC Data Fetcher for per-lookup caching</a>.</li>
+<li><a href="/docs/38.0.0/ingestion/input-sources#sql-input-source">SQL input source</a></li>
+<li><a href="/docs/38.0.0/querying/lookups-cached-global#jdbc-lookup">globally cached JDBC lookups</a></li>
+<li><a href="/docs/38.0.0/development/extensions-core/druid-lookups#data-fetcher-layer">JDBC Data Fetcher for per-lookup caching</a>.</li>
 </ul>
 <p>These properties do not apply to metadata storage connections.</p>
 <table><thead><tr><th>Property</th><th>Possible values</th><th>Description</th><th>Default</th></tr></thead><tbody><tr><td><code>druid.access.jdbc.enforceAllowedProperties</code></td><td>Boolean</td><td>When true, Druid applies <code>druid.access.jdbc.allowedProperties</code> to JDBC connections starting with <code>jdbc:postgresql:</code>, <code>jdbc:mysql:</code>, or <code>jdbc:mariadb:</code>. When false, Druid allows any kind of JDBC connections without JDBC property validation. This  [...]
 <h3 class="anchor anchorWithStickyNavbar_LWe7" id="task-logging">Task logging<a href="#task-logging" class="hash-link" aria-label="Direct link to Task logging" title="Direct link to Task logging">​</a></h3>
 <p>You can use the <code>druid.indexer</code> configuration to set a <a href="#log-long-term-storage">long-term storage</a> location for task log files, and to set a <a href="#log-retention-policy">retention policy</a>.</p>
-<p>For more information about ingestion tasks and the services of generating logs, see the <a href="/docs/latest/ingestion/tasks">task reference</a>.</p>
+<p>For more information about ingestion tasks and the services of generating logs, see the <a href="/docs/38.0.0/ingestion/tasks">task reference</a>.</p>
 <h4 class="anchor anchorWithStickyNavbar_LWe7" id="log-long-term-storage">Log long-term storage<a href="#log-long-term-storage" class="hash-link" aria-label="Direct link to Log long-term storage" title="Direct link to Log long-term storage">​</a></h4>
 <table><thead><tr><th>Property</th><th>Description</th><th>Default</th></tr></thead><tbody><tr><td><code>druid.indexer.logs.type</code></td><td>Where to store task logs.  <code>noop</code>, <a href="#s3-task-logs"><code>s3</code></a>, <a href="#azure-blob-store-task-logs"><code>azure</code></a>, <a href="#google-cloud-storage-task-logs"><code>google</code></a>, <a href="#hdfs-task-logs"><code>hdfs</code></a>, <a href="#file-task-logs"><code>file</code></a></td><td><code>file</code></td>< [...]
 <h5 class="anchor anchorWithStickyNavbar_LWe7" id="file-task-logs">File task logs<a href="#file-task-logs" class="hash-link" aria-label="Direct link to File task logs" title="Direct link to File task logs">​</a></h5>
@@ -239,23 +233,20 @@ This is the default Druid error response mode. To explicitly enable this strateg
 <p>In this mode, Druid transforms any exceptions which are targeted at non-users personas. Instead of returning such exception directly, the strategy logs the exception against a random id and returns the id along with a generic error message to the user.</p>
 <p>To enable this strategy, set <code>druid.server.http.errorResponseTransform.strategy</code> to <code>persona</code>.</p>
 <h3 class="anchor anchorWithStickyNavbar_LWe7" id="overlord-discovery">Overlord discovery<a href="#overlord-discovery" class="hash-link" aria-label="Direct link to Overlord discovery" title="Direct link to Overlord discovery">​</a></h3>
-<p>This config is used to find the <a href="/docs/latest/design/overlord">Overlord</a> using Curator service discovery. Only required if you are actually running an Overlord.</p>
+<p>This config is used to find the <a href="/docs/38.0.0/design/overlord">Overlord</a> using Curator service discovery. Only required if you are actually running an Overlord.</p>
 <table><thead><tr><th>Property</th><th>Description</th><th>Default</th></tr></thead><tbody><tr><td><code>druid.selectors.indexing.serviceName</code></td><td>The druid.service name of the Overlord service. To start the Overlord with a different name, set it with this property.</td><td>druid/overlord</td></tr></tbody></table>
 <h3 class="anchor anchorWithStickyNavbar_LWe7" id="coordinator-discovery">Coordinator discovery<a href="#coordinator-discovery" class="hash-link" aria-label="Direct link to Coordinator discovery" title="Direct link to Coordinator discovery">​</a></h3>
-<p>This config is used to find the <a href="/docs/latest/design/coordinator">Coordinator</a> using Curator service discovery. This config is used by the realtime indexing services to get information about the segments loaded in the cluster.</p>
+<p>This config is used to find the <a href="/docs/38.0.0/design/coordinator">Coordinator</a> using Curator service discovery. This config is used by the realtime indexing services to get information about the segments loaded in the cluster.</p>
 <table><thead><tr><th>Property</th><th>Description</th><th>Default</th></tr></thead><tbody><tr><td><code>druid.selectors.coordinator.serviceName</code></td><td>The druid.service name of the Coordinator service. To start the Coordinator with a different name, set it with this property.</td><td>druid/coordinator</td></tr></tbody></table>
-<h3 class="anchor anchorWithStickyNavbar_LWe7" id="announcing-segments">Announcing segments<a href="#announcing-segments" class="hash-link" aria-label="Direct link to Announcing segments" title="Direct link to Announcing segments">​</a></h3>
-<p>You can configure how to announce and unannounce Znodes in ZooKeeper (using Curator). For normal operations you do not need to override any of these configs.</p>
-<h4 class="anchor anchorWithStickyNavbar_LWe7" id="batch-data-segment-announcer">Batch data segment announcer<a href="#batch-data-segment-announcer" class="hash-link" aria-label="Direct link to Batch data segment announcer" title="Direct link to Batch data segment announcer">​</a></h4>
-<p>In current Druid, multiple data segments may be announced under the same Znode.</p>
-<table><thead><tr><th>Property</th><th>Description</th><th>Default</th></tr></thead><tbody><tr><td><code>druid.announcer.segmentsPerNode</code></td><td>Each Znode contains info for up to this many segments.</td><td>50</td></tr><tr><td><code>druid.announcer.maxBytesPerNode</code></td><td>Max byte size for Znode. Allowed range is [1024, 1048576].</td><td>524288</td></tr><tr><td><code>druid.announcer.skipDimensionsAndMetrics</code></td><td>Skip Dimensions and Metrics list from segment annou [...]
-<p>If you want to turn off the batch data segment announcer, you can add a property to skip announcing segments. <strong>You do not want to enable this config if you have any services using <code>batch</code> for <code>druid.serverview.type</code></strong></p>
-<table><thead><tr><th>Property</th><th>Description</th><th>Default</th></tr></thead><tbody><tr><td><code>druid.announcer.skipSegmentAnnouncementOnZk</code></td><td>Skip announcing segments to ZooKeeper. Note that the batch server view will not work if this is set to true.</td><td>false</td></tr></tbody></table>
 <h3 class="anchor anchorWithStickyNavbar_LWe7" id="javascript">JavaScript<a href="#javascript" class="hash-link" aria-label="Direct link to JavaScript" title="Direct link to JavaScript">​</a></h3>
 <p>Druid supports dynamic runtime extension through JavaScript functions. This functionality can be configured through
 the following properties.</p>
 <table><thead><tr><th>Property</th><th>Description</th><th>Default</th></tr></thead><tbody><tr><td><code>druid.javascript.enabled</code></td><td>Set to &quot;true&quot; to enable JavaScript functionality. This affects the JavaScript filter, extractionFn, aggregator, post-aggregator, router strategy, and worker selection strategy.</td><td>false</td></tr></tbody></table>
-<div class="theme-admonition theme-admonition-info admonition_xJq3 alert alert--info"><div class="admonitionHeading_Gvgb"><span class="admonitionIcon_Rf37"><svg viewBox="0 0 14 16"><path fill-rule="evenodd" d="M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"></path></svg></span>info</div><div class="admonitionContent_BuS1"><p>JavaScript-based functionality is [...]
+<div class="theme-admonition theme-admonition-info admonition_xJq3 alert alert--info"><div class="admonitionHeading_Gvgb"><span class="admonitionIcon_Rf37"><svg viewBox="0 0 14 16"><path fill-rule="evenodd" d="M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"></path></svg></span>info</div><div class="admonitionContent_BuS1"><p>JavaScript-based functionality is [...]
+<h3 class="anchor anchorWithStickyNavbar_LWe7" id="expression-processing">Expression processing<a href="#expression-processing" class="hash-link" aria-label="Direct link to Expression processing" title="Direct link to Expression processing">​</a></h3>
+<p>The properties below tune Druid&#x27;s native expression engine, which evaluates virtual columns, expression-based filters,
+the <code>expression</code> aggregator/post-aggregator, and any SQL functions that lower to native expressions.</p>
+<table><thead><tr><th>Property</th><th>Description</th><th>Default</th></tr></thead><tbody><tr><td><code>druid.expressions.processArraysAsMultiValueStrings</code></td><td>If true, all <code>ARRAY</code> typed values are converted to <code>STRING</code> by column selectors and treated as multi-value strings rather than native arrays. Provided for backwards compatibility with the behavior of Druid 24.0 and earlier, before array types were introduced.</td><td>false</td></tr><tr><td><code>dr [...]
 <h3 class="anchor anchorWithStickyNavbar_LWe7" id="double-column-storage">Double column storage<a href="#double-column-storage" class="hash-link" aria-label="Direct link to Double column storage" title="Direct link to Double column storage">​</a></h3>
 <p>Prior to version 0.13.0, Druid&#x27;s storage layer used a 32-bit float representation to store columns created by the
 doubleSum, doubleMin, and doubleMax aggregators at indexing time.
@@ -272,28 +263,28 @@ Support for 64-bit floating point columns was released in Druid 0.11.0, so if yo
 <p>This section contains the configuration options for endpoints that are supported by all services.</p>
 <table><thead><tr><th>Property</th><th>Description</th><th>Default</th></tr></thead><tbody><tr><td><code>druid.server.hiddenProperties</code></td><td>If property names or substring of property names (case insensitive) is in this list, responses of the <code>/status/properties</code> endpoint do not show these properties</td><td><code>[&quot;druid.s3.accessKey&quot;,&quot;druid.s3.secretKey&quot;,&quot;druid.metadata.storage.connector.password&quot;, &quot;password&quot;, &quot;key&quot;, [...]
 <h2 class="anchor anchorWithStickyNavbar_LWe7" id="master-server">Master server<a href="#master-server" class="hash-link" aria-label="Direct link to Master server" title="Direct link to Master server">​</a></h2>
-<p>This section contains the configuration options for the services that reside on Master servers (Coordinators and Overlords) in the suggested <a href="/docs/latest/design/architecture#druid-servers">three-server configuration</a>.</p>
+<p>This section contains the configuration options for the services that reside on Master servers (Coordinators and Overlords) in the suggested <a href="/docs/38.0.0/design/architecture#druid-servers">three-server configuration</a>.</p>
 <h3 class="anchor anchorWithStickyNavbar_LWe7" id="coordinator">Coordinator<a href="#coordinator" class="hash-link" aria-label="Direct link to Coordinator" title="Direct link to Coordinator">​</a></h3>
-<p>For general Coordinator services information, see <a href="/docs/latest/design/coordinator">Coordinator service</a>.</p>
+<p>For general Coordinator services information, see <a href="/docs/38.0.0/design/coordinator">Coordinator service</a>.</p>
 <h4 class="anchor anchorWithStickyNavbar_LWe7" id="static-configuration">Static Configuration<a href="#static-configuration" class="hash-link" aria-label="Direct link to Static Configuration" title="Direct link to Static Configuration">​</a></h4>
 <p>These Coordinator static configurations can be defined in the <code>coordinator/runtime.properties</code> file.</p>
 <h5 class="anchor anchorWithStickyNavbar_LWe7" id="coordinator-service-config">Coordinator service config<a href="#coordinator-service-config" class="hash-link" aria-label="Direct link to Coordinator service config" title="Direct link to Coordinator service config">​</a></h5>
-<table><thead><tr><th>Property</th><th>Description</th><th>Default</th></tr></thead><tbody><tr><td><code>druid.host</code></td><td>The host for the current service. This is used to advertise the current service location as reachable from another service and should generally be specified such that <code>http://${druid.host}/</code> could actually talk to this service.</td><td><code>InetAddress.getLocalHost().getCanonicalHostName()</code></td></tr><tr><td><code>druid.bindOnHost</code></td> [...]
+<table><thead><tr><th>Property</th><th>Description</th><th>Default</th></tr></thead><tbody><tr><td><code>druid.host</code></td><td>The host for the current service. This is used to advertise the current service location as reachable from another service and should generally be specified such that <code>http://${druid.host}/</code> could actually talk to this service.</td><td><code>InetAddress.getLocalHost().getCanonicalHostName()</code></td></tr><tr><td><code>druid.bindOnHost</code></td> [...]
 <h5 class="anchor anchorWithStickyNavbar_LWe7" id="coordinator-operation">Coordinator operation<a href="#coordinator-operation" class="hash-link" aria-label="Direct link to Coordinator operation" title="Direct link to Coordinator operation">​</a></h5>
-<table><thead><tr><th>Property</th><th>Description</th><th>Default</th></tr></thead><tbody><tr><td><code>druid.coordinator.period</code></td><td>The run period for the Coordinator. The Coordinator operates by maintaining the current state of the world in memory and periodically looking at the set of &quot;used&quot; segments and segments being served to make decisions about whether any changes need to be made to the data topology. This property sets the delay between each of these runs.< [...]
+<table><thead><tr><th>Property</th><th>Description</th><th>Default</th></tr></thead><tbody><tr><td><code>druid.coordinator.period</code></td><td>The run period for the Coordinator. The Coordinator operates by maintaining the current state of the world in memory and periodically looking at the set of &quot;used&quot; segments and segments being served to make decisions about whether any changes need to be made to the data topology. This property sets the delay between each of these runs.< [...]
 <h5 class="anchor anchorWithStickyNavbar_LWe7" id="data-management">Data management<a href="#data-management" class="hash-link" aria-label="Direct link to Data management" title="Direct link to Data management">​</a></h5>
 <table><thead><tr><th>Property</th><th>Description</th><th>Default</th></tr></thead><tbody><tr><td><code>druid.coordinator.period.indexingPeriod</code></td><td>Period to run data management duties on the Coordinator including launching compact tasks and performing clean up of unused data. It is recommended to keep this value longer than <code>druid.manager.segments.pollDuration</code>.</td><td><code>PT1800S</code> (30 mins)</td></tr><tr><td><code>druid.coordinator.kill.pendingSegments.on [...]
 <h5 class="anchor anchorWithStickyNavbar_LWe7" id="metadata-management">Metadata management<a href="#metadata-management" class="hash-link" aria-label="Direct link to Metadata management" title="Direct link to Metadata management">​</a></h5>
 <table><thead><tr><th>Property</th><th>Description</th><th>Required</th><th>Default</th></tr></thead><tbody><tr><td><code>druid.coordinator.period.metadataStoreManagementPeriod</code></td><td>How often to run metadata management tasks in <a href="https://en.wikipedia.org/wiki/ISO_8601" target="_blank" rel="noopener noreferrer">ISO 8601</a> duration format.</td><td>No</td><td><code>PT1H</code></td></tr><tr><td><code>druid.coordinator.kill.supervisor.on</code></td><td>Boolean value for whe [...]
 <h5 class="anchor anchorWithStickyNavbar_LWe7" id="segment-management">Segment management<a href="#segment-management" class="hash-link" aria-label="Direct link to Segment management" title="Direct link to Segment management">​</a></h5>
-<table><thead><tr><th>Property</th><th>Possible values</th><th>Description</th><th>Default</th></tr></thead><tbody><tr><td><code>druid.serverview.type</code></td><td>batch or http</td><td>Segment discovery method to use. &quot;http&quot; enables discovering segments using HTTP instead of ZooKeeper.</td><td>http</td></tr><tr><td><code>druid.coordinator.segment.awaitInitializationOnStart</code></td><td>true or false</td><td>Whether the Coordinator will wait for its view of segments to full [...]
+<table><thead><tr><th>Property</th><th>Possible values</th><th>Description</th><th>Default</th></tr></thead><tbody><tr><td><code>druid.coordinator.segment.awaitInitializationOnStart</code></td><td>true or false</td><td>Whether the Coordinator will wait for its view of segments to fully initialize before starting up. If set to &#x27;true&#x27;, the Coordinator&#x27;s HTTP server will not start up, and the Coordinator will not announce itself as available, until the server view is initiali [...]
 <h5 class="anchor anchorWithStickyNavbar_LWe7" id="metadata-retrieval">Metadata retrieval<a href="#metadata-retrieval" class="hash-link" aria-label="Direct link to Metadata retrieval" title="Direct link to Metadata retrieval">​</a></h5>
 <table><thead><tr><th>Property</th><th>Description</th><th>Default</th></tr></thead><tbody><tr><td><code>druid.manager.config.pollDuration</code></td><td>How often the manager polls the config table for updates.</td><td><code>PT1M</code></td></tr><tr><td><code>druid.manager.segments.pollDuration</code></td><td>The duration between polls the Coordinator does for updates to the set of active segments. Generally defines the amount of lag time it can take for the Coordinator to notice new se [...]
 <h4 class="anchor anchorWithStickyNavbar_LWe7" id="dynamic-configuration">Dynamic configuration<a href="#dynamic-configuration" class="hash-link" aria-label="Direct link to Dynamic configuration" title="Direct link to Dynamic configuration">​</a></h4>
 <p>The Coordinator has dynamic configurations to tune certain behavior on the fly, without requiring a service restart.
-You can configure these parameters using the <a href="/docs/latest/operations/web-console">web console</a>(recommended) or through the <a href="/docs/latest/api-reference/dynamic-configuration-api#coordinator-dynamic-configuration">Coordinator dynamic configuration API</a>.</p>
+You can configure these parameters using the <a href="/docs/38.0.0/operations/web-console">web console</a>(recommended) or through the <a href="/docs/38.0.0/api-reference/dynamic-configuration-api#coordinator-dynamic-configuration">Coordinator dynamic configuration API</a>.</p>
 <p>The following table shows the dynamic configuration properties for the Coordinator.</p>
-<table><thead><tr><th>Property</th><th>Description</th><th>Default</th></tr></thead><tbody><tr><td><code>millisToWaitBeforeDeleting</code></td><td>How long does the Coordinator need to be a leader before it can start marking overshadowed segments as unused in metadata storage.</td><td>900000 (15 mins)</td></tr><tr><td><code>smartSegmentLoading</code></td><td>Enables <a href="#smart-segment-loading">&quot;smart&quot; segment loading mode</a> which dynamically computes the optimal values o [...]
+<table><thead><tr><th>Property</th><th>Description</th><th>Default</th></tr></thead><tbody><tr><td><code>millisToWaitBeforeDeleting</code></td><td>How long does the Coordinator need to be a leader before it can start marking overshadowed segments as unused in metadata storage.</td><td>900000 (15 mins)</td></tr><tr><td><code>smartSegmentLoading</code></td><td>Enables <a href="#smart-segment-loading">&quot;smart&quot; segment loading mode</a> which dynamically computes the optimal values o [...]
 <h5 class="anchor anchorWithStickyNavbar_LWe7" id="smart-segment-loading">Smart segment loading<a href="#smart-segment-loading" class="hash-link" aria-label="Direct link to Smart segment loading" title="Direct link to Smart segment loading">​</a></h5>
 <p>The <code>smartSegmentLoading</code> mode simplifies Coordinator configuration for segment loading and balancing.
 If you enable this mode, do not provide values for the properties in the table below as the Coordinator computes them automatically.
@@ -303,60 +294,60 @@ Druid computes the values to optimize Coordinator performance, based on the curr
 <p>When <code>smartSegmentLoading</code> is disabled, Druid uses the configured values of these properties.
 Disable <code>smartSegmentLoading</code> only if you want to explicitly set the values of any of the above properties.</p>
 <h5 class="anchor anchorWithStickyNavbar_LWe7" id="lookups-dynamic-configuration">Lookups dynamic configuration<a href="#lookups-dynamic-configuration" class="hash-link" aria-label="Direct link to Lookups dynamic configuration" title="Direct link to Lookups dynamic configuration">​</a></h5>
-<p>These configuration options control Coordinator lookup management. For configurations that affect lookup propagation, see <a href="/docs/latest/querying/lookups#dynamic-configuration">Dynamic configuration for lookups</a>.</p>
+<p>These configuration options control Coordinator lookup management. For configurations that affect lookup propagation, see <a href="/docs/38.0.0/querying/lookups#dynamic-configuration">Dynamic configuration for lookups</a>.</p>
 <table><thead><tr><th>Property</th><th>Description</th><th>Default</th></tr></thead><tbody><tr><td><code>druid.manager.lookups.hostDeleteTimeout</code></td><td>How long to wait for a <code>DELETE</code> request to a particular service before considering the <code>DELETE</code> a failure.</td><td><code>PT1S</code></td></tr><tr><td><code>druid.manager.lookups.hostUpdateTimeout</code></td><td>How long to wait for a <code>POST</code> request to a particular service before considering the <co [...]
 <h5 class="anchor anchorWithStickyNavbar_LWe7" id="automatic-compaction-dynamic-configuration">Automatic compaction dynamic configuration<a href="#automatic-compaction-dynamic-configuration" class="hash-link" aria-label="Direct link to Automatic compaction dynamic configuration" title="Direct link to Automatic compaction dynamic configuration">​</a></h5>
-<p>You can set or update <a href="/docs/latest/data-management/automatic-compaction">automatic compaction</a> properties dynamically using the
-<a href="/docs/latest/api-reference/automatic-compaction-api">Automatic compaction API</a> without restarting Coordinators.</p>
-<p>For details about segment compaction, see <a href="/docs/latest/operations/segment-optimization">Segment size optimization</a>.</p>
+<p>You can set or update <a href="/docs/38.0.0/data-management/automatic-compaction">automatic compaction</a> properties dynamically using the
+<a href="/docs/38.0.0/api-reference/automatic-compaction-api">Automatic compaction API</a> without restarting Coordinators.</p>
+<p>For details about segment compaction, see <a href="/docs/38.0.0/operations/segment-optimization">Segment size optimization</a>.</p>
 <p>You can configure automatic compaction through the following properties:</p>
-<table><thead><tr><th>Property</th><th>Description</th><th>Required</th></tr></thead><tbody><tr><td><code>dataSource</code></td><td>The datasource name to be compacted.</td><td>yes</td></tr><tr><td><code>taskPriority</code></td><td><a href="/docs/latest/ingestion/tasks#lock-priority">Priority</a> of compaction task.</td><td>no (default = 25)</td></tr><tr><td><code>inputSegmentSizeBytes</code></td><td>Maximum number of total segment bytes processed per compaction task. Since a time chunk  [...]
+<table><thead><tr><th>Property</th><th>Description</th><th>Required</th></tr></thead><tbody><tr><td><code>dataSource</code></td><td>The datasource name to be compacted.</td><td>yes</td></tr><tr><td><code>taskPriority</code></td><td><a href="/docs/38.0.0/ingestion/tasks#lock-priority">Priority</a> of compaction task.</td><td>no (default = 25)</td></tr><tr><td><code>inputSegmentSizeBytes</code></td><td>Maximum number of total segment bytes processed per compaction task. Since a time chunk  [...]
 <p>Automatic compaction config example:</p>
 <div class="language-json codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#bfc7d5;--prism-background-color:#292d3e"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-json codeBlock_bY9V thin-scrollbar" style="color:#bfc7d5;background-color:#292d3e"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#bfc7d5"><span class="token punctuation" style="color:rgb(199, 146, 234)">{</span><span class="token plain"></span><br></span> [...]
 <p>Compaction tasks fail when higher priority tasks cause Druid to revoke their locks. By default, realtime tasks like ingestion have a higher priority than compaction tasks. Frequent conflicts between compaction tasks and realtime tasks can cause the Coordinator&#x27;s automatic compaction to hang.
 You may see this issue with streaming ingestion from Kafka and Kinesis, which ingest late-arriving data.</p>
 <p>To mitigate this problem, set <code>skipOffsetFromLatest</code> to a value large enough so that arriving data tends to fall outside the offset value from the current time. This way you can avoid conflicts between compaction tasks and realtime ingestion tasks.
 For example, if you want to skip over segments from thirty days prior to the end time of the most recent segment, assign <code>&quot;skipOffsetFromLatest&quot;: &quot;P30D&quot;</code>.
-For more information, see <a href="/docs/latest/data-management/automatic-compaction#avoid-conflicts-with-ingestion">Avoid conflicts with ingestion</a>.</p>
+For more information, see <a href="/docs/38.0.0/data-management/automatic-compaction#avoid-conflicts-with-ingestion">Avoid conflicts with ingestion</a>.</p>
 <h6 class="anchor anchorWithStickyNavbar_LWe7" id="automatic-compaction-tuningconfig">Automatic compaction tuningConfig<a href="#automatic-compaction-tuningconfig" class="hash-link" aria-label="Direct link to Automatic compaction tuningConfig" title="Direct link to Automatic compaction tuningConfig">​</a></h6>
-<p>Auto-compaction supports a subset of the <a href="/docs/latest/ingestion/native-batch#tuningconfig">tuningConfig for Parallel task</a>.</p>
+<p>Auto-compaction supports a subset of the <a href="/docs/38.0.0/ingestion/native-batch#tuningconfig">tuningConfig for Parallel task</a>.</p>
 <p>The following table shows the supported configurations for auto-compaction.</p>
-<table><thead><tr><th>Property</th><th>Description</th><th>Required</th></tr></thead><tbody><tr><td>type</td><td>The task type. If you&#x27;re using Coordinator duties for auto-compaction, set it to <code>index_parallel</code>. If you&#x27;re using compaction supervisors, set it to <code>autocompact</code>.</td><td>yes</td></tr><tr><td><code>maxRowsInMemory</code></td><td>Used in determining when intermediate persists to disk should occur. Normally user does not need to set this, but dep [...]
+<table><thead><tr><th>Property</th><th>Description</th><th>Required</th></tr></thead><tbody><tr><td>type</td><td>The task type. If you&#x27;re using Coordinator duties for auto-compaction, set it to <code>index_parallel</code>. If you&#x27;re using compaction supervisors, set it to <code>autocompact</code>.</td><td>yes</td></tr><tr><td><code>maxRowsInMemory</code></td><td>Used in determining when intermediate persists to disk should occur. Normally user does not need to set this, but dep [...]
 <h6 class="anchor anchorWithStickyNavbar_LWe7" id="automatic-compaction-granularityspec">Automatic compaction granularitySpec<a href="#automatic-compaction-granularityspec" class="hash-link" aria-label="Direct link to Automatic compaction granularitySpec" title="Direct link to Automatic compaction granularitySpec">​</a></h6>
-<table><thead><tr><th>Field</th><th>Description</th><th>Required</th></tr></thead><tbody><tr><td><code>segmentGranularity</code></td><td>Time chunking period for the segment granularity. Defaults to &#x27;null&#x27;, which preserves the original segment granularity. Accepts all <a href="/docs/latest/querying/granularities">Query granularity</a> values.</td><td>No</td></tr><tr><td><code>queryGranularity</code></td><td>The resolution of timestamp storage within each segment. Defaults to &# [...]
+<table><thead><tr><th>Field</th><th>Description</th><th>Required</th></tr></thead><tbody><tr><td><code>segmentGranularity</code></td><td>Time chunking period for the segment granularity. Defaults to &#x27;null&#x27;, which preserves the original segment granularity. Accepts all <a href="/docs/38.0.0/querying/granularities">Query granularity</a> values.</td><td>No</td></tr><tr><td><code>queryGranularity</code></td><td>The resolution of timestamp storage within each segment. Defaults to &# [...]
 <h6 class="anchor anchorWithStickyNavbar_LWe7" id="automatic-compaction-dimensionsspec">Automatic compaction dimensionsSpec<a href="#automatic-compaction-dimensionsspec" class="hash-link" aria-label="Direct link to Automatic compaction dimensionsSpec" title="Direct link to Automatic compaction dimensionsSpec">​</a></h6>
 <table><thead><tr><th>Field</th><th>Description</th><th>Required</th></tr></thead><tbody><tr><td><code>dimensions</code></td><td>A list of dimension names or objects. Defaults to null, which preserves the original dimensions. Note that setting this will cause segments manually compacted with <code>dimensionExclusions</code> to be compacted again.</td><td>No</td></tr></tbody></table>
 <h6 class="anchor anchorWithStickyNavbar_LWe7" id="automatic-compaction-transformspec">Automatic compaction transformSpec<a href="#automatic-compaction-transformspec" class="hash-link" aria-label="Direct link to Automatic compaction transformSpec" title="Direct link to Automatic compaction transformSpec">​</a></h6>
-<table><thead><tr><th>Field</th><th>Description</th><th>Required</th></tr></thead><tbody><tr><td><code>filter</code></td><td>Conditionally filters input rows during compaction. Only rows that pass the filter will be included in the compacted segments. Any of Druid&#x27;s standard <a href="/docs/latest/querying/filters">query filters</a> can be used. Defaults to null, which will not filter any row.</td><td>No</td></tr></tbody></table>
+<table><thead><tr><th>Field</th><th>Description</th><th>Required</th></tr></thead><tbody><tr><td><code>filter</code></td><td>Conditionally filters input rows during compaction. Only rows that pass the filter will be included in the compacted segments. Any of Druid&#x27;s standard <a href="/docs/38.0.0/querying/filters">query filters</a> can be used. Defaults to null, which will not filter any row.</td><td>No</td></tr></tbody></table>
 <h6 class="anchor anchorWithStickyNavbar_LWe7" id="automatic-compaction-ioconfig">Automatic compaction ioConfig<a href="#automatic-compaction-ioconfig" class="hash-link" aria-label="Direct link to Automatic compaction ioConfig" title="Direct link to Automatic compaction ioConfig">​</a></h6>
-<p>Auto-compaction supports a subset of the <a href="/docs/latest/ingestion/native-batch">ioConfig for Parallel task</a>.
+<p>Auto-compaction supports a subset of the <a href="/docs/38.0.0/ingestion/native-batch">ioConfig for Parallel task</a>.
 The below is a list of the supported configurations for auto-compaction.</p>
 <table><thead><tr><th>Property</th><th>Description</th><th>Default</th><th>Required</th></tr></thead><tbody><tr><td><code>dropExisting</code></td><td>If <code>true</code> the compaction task replaces all existing segments fully contained by the umbrella interval of the compacted segments when the task publishes new segments and tombstones. If compaction fails, Druid does not publish any segments or tombstones. WARNING: this functionality is still in beta. Note that changing this config d [...]
 <h3 class="anchor anchorWithStickyNavbar_LWe7" id="overlord">Overlord<a href="#overlord" class="hash-link" aria-label="Direct link to Overlord" title="Direct link to Overlord">​</a></h3>
-<p>For general Overlord service information, see <a href="/docs/latest/design/overlord">Overlord</a>.</p>
+<p>For general Overlord service information, see <a href="/docs/38.0.0/design/overlord">Overlord</a>.</p>
 <h4 class="anchor anchorWithStickyNavbar_LWe7" id="overlord-static-configuration">Overlord static configuration<a href="#overlord-static-configuration" class="hash-link" aria-label="Direct link to Overlord static configuration" title="Direct link to Overlord static configuration">​</a></h4>
 <p>These Overlord static configurations can be defined in the <code>overlord/runtime.properties</code> file.</p>
 <h5 class="anchor anchorWithStickyNavbar_LWe7" id="overlord-service-configs">Overlord service configs<a href="#overlord-service-configs" class="hash-link" aria-label="Direct link to Overlord service configs" title="Direct link to Overlord service configs">​</a></h5>
-<table><thead><tr><th>Property</th><th>Description</th><th>Default</th></tr></thead><tbody><tr><td><code>druid.host</code></td><td>The host for the current service. This is used to advertise the current service location as reachable from another service and should generally be specified such that <code>http://${druid.host}/</code> could actually talk to this service.</td><td><code>InetAddress.getLocalHost().getCanonicalHostName()</code></td></tr><tr><td><code>druid.bindOnHost</code></td> [...]
+<table><thead><tr><th>Property</th><th>Description</th><th>Default</th></tr></thead><tbody><tr><td><code>druid.host</code></td><td>The host for the current service. This is used to advertise the current service location as reachable from another service and should generally be specified such that <code>http://${druid.host}/</code> could actually talk to this service.</td><td><code>InetAddress.getLocalHost().getCanonicalHostName()</code></td></tr><tr><td><code>druid.bindOnHost</code></td> [...]
 <h5 class="anchor anchorWithStickyNavbar_LWe7" id="overlord-operations">Overlord operations<a href="#overlord-operations" class="hash-link" aria-label="Direct link to Overlord operations" title="Direct link to Overlord operations">​</a></h5>
-<table><thead><tr><th>Property</th><th>Description</th><th>Default</th></tr></thead><tbody><tr><td><code>druid.indexer.runner.type</code></td><td>Indicates whether tasks should be run locally using <code>local</code> or in a distributed environment using <code>remote</code>. The recommended option is <code>httpRemote</code>, which is similar to <code>remote</code> but uses HTTP to interact with Middle Managers instead of ZooKeeper.</td><td><code>httpRemote</code></td></tr><tr><td><code>d [...]
-<p>The following configs only apply if the Overlord is running in remote mode. For a description of local vs. remote mode, see <a href="/docs/latest/design/overlord">Overlord service</a>.</p>
-<table><thead><tr><th>Property</th><th>Description</th><th>Default</th></tr></thead><tbody><tr><td><code>druid.indexer.runner.taskAssignmentTimeout</code></td><td>How long to wait after a task has been assigned to a Middle Manager before throwing an error.</td><td><code>PT5M</code></td></tr><tr><td><code>druid.indexer.runner.minWorkerVersion</code></td><td>The minimum Middle Manager version to send tasks to. The version number is a string. This affects the expected behavior during certai [...]
+<table><thead><tr><th>Property</th><th>Description</th><th>Default</th></tr></thead><tbody><tr><td><code>druid.indexer.runner.type</code></td><td>Indicates whether tasks should be run locally using <code>local</code> or in a distributed environment using <code>httpRemote</code>. <code>httpRemote</code> is recommended for distributed deployments and uses HTTP to interact with Middle Managers.</td><td><code>httpRemote</code></td></tr><tr><td><code>druid.indexer.server.maxConcurrentActions< [...]
+<p>The following configs apply when the Overlord is running with the <code>httpRemote</code> runner. For a description of local vs. distributed mode, see <a href="/docs/38.0.0/design/overlord">Overlord service</a>.</p>
+<table><thead><tr><th>Property</th><th>Description</th><th>Default</th></tr></thead><tbody><tr><td><code>druid.indexer.runner.taskAssignmentTimeout</code></td><td>How long to wait after a task has been assigned to a Middle Manager before throwing an error.</td><td><code>PT5M</code></td></tr><tr><td><code>druid.indexer.runner.minWorkerVersion</code></td><td>The minimum Middle Manager version to send tasks to. The version number is a string. This affects the expected behavior during certai [...]
 <p>If autoscaling is enabled, you can set these additional configs:</p>
 <table><thead><tr><th>Property</th><th>Description</th><th>Default</th></tr></thead><tbody><tr><td><code>druid.indexer.autoscale.strategy</code></td><td>Sets the strategy to run when autoscaling is required. One of <code>noop</code>, <code>ec2</code> or <code>gce</code>.</td><td><code>noop</code></td></tr><tr><td><code>druid.indexer.autoscale.doAutoscale</code></td><td>If set to true, autoscaling will be enabled.</td><td>false</td></tr><tr><td><code>druid.indexer.autoscale.provisionPerio [...]
 <h5 class="anchor anchorWithStickyNavbar_LWe7" id="supervisors">Supervisors<a href="#supervisors" class="hash-link" aria-label="Direct link to Supervisors" title="Direct link to Supervisors">​</a></h5>
 <table><thead><tr><th>Property</th><th>Description</th><th>Default</th></tr></thead><tbody><tr><td><code>druid.supervisor.healthinessThreshold</code></td><td>The number of successful runs before an unhealthy supervisor is again considered healthy.</td><td>3</td></tr><tr><td><code>druid.supervisor.unhealthinessThreshold</code></td><td>The number of failed runs before the supervisor is considered unhealthy.</td><td>3</td></tr><tr><td><code>druid.supervisor.taskHealthinessThreshold</code></ [...]
-<p>The <code>druid.supervisor.idleConfig.*</code> specification in the Overlord runtime properties defines the default behavior for the entire cluster. See <a href="/docs/latest/ingestion/kinesis-ingestion#io-configuration">Idle Configuration in Kafka Supervisor IOConfig</a> to override it for an individual supervisor.</p>
+<p>The <code>druid.supervisor.idleConfig.*</code> specification in the Overlord runtime properties defines the default behavior for the entire cluster. See <a href="/docs/38.0.0/ingestion/kinesis-ingestion#io-configuration">Idle Configuration in Kafka Supervisor IOConfig</a> to override it for an individual supervisor.</p>
 <h5 class="anchor anchorWithStickyNavbar_LWe7" id="segment-metadata-cache">Segment metadata cache<a href="#segment-metadata-cache" class="hash-link" aria-label="Direct link to Segment metadata cache" title="Direct link to Segment metadata cache">​</a></h5>
 <p>The following properties pertain to segment metadata caching on the Overlord that may be used to speed up segment allocation and other metadata operations.</p>
 <table><thead><tr><th>Property</th><th>Description</th><th>Default</th></tr></thead><tbody><tr><td><code>druid.manager.segments.useIncrementalCache</code></td><td>Denotes the usage mode of the segment metadata incremental cache. Possible modes are: (a) <code>never</code>: Cache is disabled. (b) <code>always</code>: Reads are always done from the cache. Service start-up will be blocked until cache has synced with the metadata store at least once. Transactions will block until cache has sy [...]
 <h5 class="anchor anchorWithStickyNavbar_LWe7" id="auto-kill-unused-segments-experimental">Auto-kill unused segments (Experimental)<a href="#auto-kill-unused-segments-experimental" class="hash-link" aria-label="Direct link to Auto-kill unused segments (Experimental)" title="Direct link to Auto-kill unused segments (Experimental)">​</a></h5>
-<p>These configs pertain to the new embedded mode of running <a href="/docs/latest/data-management/delete#auto-kill-data-on-the-overlord-experimental">kill tasks on the Overlord</a>.
-None of the configs that apply to <a href="/docs/latest/data-management/delete#auto-kill-data-using-coordinator-duties">auto-kill performed by the Coordinator</a> are used by this feature.</p>
+<p>These configs pertain to the new embedded mode of running <a href="/docs/38.0.0/data-management/delete#auto-kill-data-on-the-overlord-experimental">kill tasks on the Overlord</a>.
+None of the configs that apply to <a href="/docs/38.0.0/data-management/delete#auto-kill-data-using-coordinator-duties">auto-kill performed by the Coordinator</a> are used by this feature.</p>
 <table><thead><tr><th>Property</th><th>Description</th><th>Default</th></tr></thead><tbody><tr><td><code>druid.manager.segments.killUnused.enabled</code></td><td>Boolean flag to enable auto-kill of eligible unused segments on the Overlord. This feature can be used only when <a href="#segment-metadata-cache">segment metadata caching</a> is enabled on the Overlord and MUST NOT be enabled if <code>druid.coordinator.kill.on</code> is already set to <code>true</code> on the Coordinator.</td>< [...]
 <h4 class="anchor anchorWithStickyNavbar_LWe7" id="overlord-dynamic-configuration">Overlord dynamic configuration<a href="#overlord-dynamic-configuration" class="hash-link" aria-label="Direct link to Overlord dynamic configuration" title="Direct link to Overlord dynamic configuration">​</a></h4>
 <p>The Overlord has dynamic configurations to tune how Druid assigns tasks to workers.
-You can configure these parameters using the <a href="/docs/latest/operations/web-console">web console</a> or through the <a href="/docs/latest/api-reference/dynamic-configuration-api#overlord-dynamic-configuration">Overlord dynamic configuration API</a>.</p>
+You can configure these parameters using the <a href="/docs/38.0.0/operations/web-console">web console</a> or through the <a href="/docs/38.0.0/api-reference/dynamic-configuration-api#overlord-dynamic-configuration">Overlord dynamic configuration API</a>.</p>
 <p>The following table shows the dynamic configuration properties for the Overlord.</p>
 <table><thead><tr><th>Property</th><th>Description</th><th>Default</th></tr></thead><tbody><tr><td><code>selectStrategy</code></td><td>Describes how to assign tasks to Middle Managers. The type can be <code>equalDistribution</code>, <code>equalDistributionWithCategorySpec</code>, <code>fillCapacity</code>, <code>fillCapacityWithCategorySpec</code>, and <code>javascript</code>.</td><td><code>{&quot;type&quot;:&quot;equalDistribution&quot;}</code></td></tr><tr><td><code>autoScaler</code></ [...]
 <p>The following is an example of an Overlord dynamic config:</p>
@@ -426,7 +417,7 @@ its better to write a druid extension module with extending current worker selec
 <table><thead><tr><th>Property</th><th>Description</th><th>Default</th></tr></thead><tbody><tr><td><code>type</code></td><td><code>javascript</code></td><td>required; must be <code>javascript</code></td></tr><tr><td><code>function</code></td><td>String representing JavaScript function</td><td></td></tr></tbody></table>
 <p>The following example shows a function that sends <code>batch_index_task</code> to workers <code>10.0.0.1</code> and <code>10.0.0.2</code> and all other tasks to other available workers.</p>
 <div class="language-json codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#bfc7d5;--prism-background-color:#292d3e"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-json codeBlock_bY9V thin-scrollbar" style="color:#bfc7d5;background-color:#292d3e"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#bfc7d5"><span class="token punctuation" style="color:rgb(199, 146, 234)">{</span><span class="token plain"></span><br></span> [...]
-<div class="theme-admonition theme-admonition-info admonition_xJq3 alert alert--info"><div class="admonitionHeading_Gvgb"><span class="admonitionIcon_Rf37"><svg viewBox="0 0 14 16"><path fill-rule="evenodd" d="M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"></path></svg></span>info</div><div class="admonitionContent_BuS1"><p>JavaScript-based functionality is [...]
+<div class="theme-admonition theme-admonition-info admonition_xJq3 alert alert--info"><div class="admonitionHeading_Gvgb"><span class="admonitionIcon_Rf37"><svg viewBox="0 0 14 16"><path fill-rule="evenodd" d="M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"></path></svg></span>info</div><div class="admonitionContent_BuS1"><p>JavaScript-based functionality is [...]
 <h6 class="anchor anchorWithStickyNavbar_LWe7" id="affinityconfig">affinityConfig<a href="#affinityconfig" class="hash-link" aria-label="Direct link to affinityConfig" title="Direct link to affinityConfig">​</a></h6>
 <p>Use the <code>affinityConfig</code> field to pass affinity configuration to the <code>equalDistribution</code> and <code>fillCapacity</code> strategies.
 If not provided, the default is to have no affinity.</p>
@@ -445,20 +436,20 @@ If you don&#x27;t provide it, it will default to not being used.</p>
 <p>Amazon&#x27;s EC2 together with Google&#x27;s GCE are currently the only supported autoscalers.</p>
 <p>EC2&#x27;s autoscaler properties are:</p>
 <table><thead><tr><th>Property</th><th>Description</th><th>Default</th></tr></thead><tbody><tr><td><code>type</code></td><td><code>ec2</code></td><td>0</td></tr><tr><td><code>minNumWorkers</code></td><td>The minimum number of workers that can be in the cluster at any given time.</td><td>0</td></tr><tr><td><code>maxNumWorkers</code></td><td>The maximum number of workers that can be in the cluster at any given time.</td><td>0</td></tr><tr><td><code>envConfig.availabilityZone</code></td><td [...]
-<p>For GCE&#x27;s properties, please refer to the <a href="/docs/latest/development/extensions-contrib/gce-extensions">gce-extensions</a>.</p>
+<p>For GCE&#x27;s properties, please refer to the <a href="/docs/38.0.0/development/extensions-contrib/gce-extensions">gce-extensions</a>.</p>
 <h2 class="anchor anchorWithStickyNavbar_LWe7" id="data-server">Data server<a href="#data-server" class="hash-link" aria-label="Direct link to Data server" title="Direct link to Data server">​</a></h2>
-<p>This section contains the configuration options for the services that reside on Data servers (Middle Managers/Peons and Historicals) in the suggested <a href="/docs/latest/design/architecture#druid-servers">three-server configuration</a>.</p>
-<p>Configuration options for the <a href="/docs/latest/design/indexer">Indexer process</a> are also provided here.</p>
+<p>This section contains the configuration options for the services that reside on Data servers (Middle Managers/Peons and Historicals) in the suggested <a href="/docs/38.0.0/design/architecture#druid-servers">three-server configuration</a>.</p>
+<p>Configuration options for the <a href="/docs/38.0.0/design/indexer">Indexer process</a> are also provided here.</p>
 <h3 class="anchor anchorWithStickyNavbar_LWe7" id="middle-manager-and-peon">Middle Manager and Peon<a href="#middle-manager-and-peon" class="hash-link" aria-label="Direct link to Middle Manager and Peon" title="Direct link to Middle Manager and Peon">​</a></h3>
 <p>These Middle Manager and Peon configurations can be defined in the <code>middleManager/runtime.properties</code> file.</p>
 <h4 class="anchor anchorWithStickyNavbar_LWe7" id="middle-manager-service-config">Middle Manager service config<a href="#middle-manager-service-config" class="hash-link" aria-label="Direct link to Middle Manager service config" title="Direct link to Middle Manager service config">​</a></h4>
-<table><thead><tr><th>Property</th><th>Description</th><th>Default</th></tr></thead><tbody><tr><td><code>druid.host</code></td><td>The host for the current service. This is used to advertise the current service location as reachable from another service and should generally be specified such that <code>http://${druid.host}/</code> could actually talk to this service</td><td><code>InetAddress.getLocalHost().getCanonicalHostName()</code></td></tr><tr><td><code>druid.bindOnHost</code></td>< [...]
+<table><thead><tr><th>Property</th><th>Description</th><th>Default</th></tr></thead><tbody><tr><td><code>druid.host</code></td><td>The host for the current service. This is used to advertise the current service location as reachable from another service and should generally be specified such that <code>http://${druid.host}/</code> could actually talk to this service</td><td><code>InetAddress.getLocalHost().getCanonicalHostName()</code></td></tr><tr><td><code>druid.bindOnHost</code></td>< [...]
 <h4 class="anchor anchorWithStickyNavbar_LWe7" id="middle-manager-configuration">Middle Manager configuration<a href="#middle-manager-configuration" class="hash-link" aria-label="Direct link to Middle Manager configuration" title="Direct link to Middle Manager configuration">​</a></h4>
 <p>Middle Managers pass their configurations down to their child peons. The Middle Manager requires the following configs:</p>
-<table><thead><tr><th>Property</th><th>Description</th><th>Default</th></tr></thead><tbody><tr><td><code>druid.indexer.runner.allowedPrefixes</code></td><td>Whitelist of prefixes for configs that can be passed down to child peons.</td><td><code>com.metamx</code>, <code>druid</code>, <code>org.apache.druid</code>, <code>user.timezone</code>, <code>file.encoding</code>, <code>java.io.tmpdir</code>, <code>hadoop</code></td></tr><tr><td><code>druid.indexer.runner.compressZnodes</code></td><t [...]
+<table><thead><tr><th>Property</th><th>Description</th><th>Default</th></tr></thead><tbody><tr><td><code>druid.indexer.runner.allowedPrefixes</code></td><td>Whitelist of prefixes for configs that can be passed down to child peons.</td><td><code>com.metamx</code>, <code>druid</code>, <code>org.apache.druid</code>, <code>user.timezone</code>, <code>file.encoding</code>, <code>java.io.tmpdir</code>, <code>hadoop</code></td></tr><tr><td><code>druid.indexer.runner.classpath</code></td><td>Jav [...]
 <h4 class="anchor anchorWithStickyNavbar_LWe7" id="peon-processing">Peon processing<a href="#peon-processing" class="hash-link" aria-label="Direct link to Peon processing" title="Direct link to Peon processing">​</a></h4>
 <p>Processing properties set on the Middle Manager are passed through to Peons.</p>
-<table><thead><tr><th>Property</th><th>Description</th><th>Default</th></tr></thead><tbody><tr><td><code>druid.processing.buffer.sizeBytes</code></td><td>This specifies a buffer size (less than 2GiB) for the storage of intermediate results. The computation engine in both the Historical and Realtime processes will use a scratch buffer of this size to do all of their intermediate computations off-heap. Larger values allow for more aggregations in a single pass over the data while smaller v [...]
+<table><thead><tr><th>Property</th><th>Description</th><th>Default</th></tr></thead><tbody><tr><td><code>druid.processing.buffer.sizeBytes</code></td><td>This specifies a buffer size (less than 2GiB) for the storage of intermediate results. The computation engine in both the Historical and Realtime processes will use a scratch buffer of this size to do all of their intermediate computations off-heap. Larger values allow for more aggregations in a single pass over the data while smaller v [...]
 <p>The amount of direct memory needed by Druid is at least
 <code>druid.processing.buffer.sizeBytes * (druid.processing.numMergeBuffers + druid.processing.numThreads + 1)</code>. You can
 ensure at least this amount of direct memory is available by providing <code>-XX:MaxDirectMemorySize=&lt;VALUE&gt;</code> in
@@ -473,7 +464,7 @@ ensure at least this amount of direct memory is available by providing <code>-XX
 <p>Although Peons inherit the configurations of their parent Middle Managers, explicit child Peon configs in Middle Manager can be set by prefixing them with:</p>
 <div class="language-properties codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#bfc7d5;--prism-background-color:#292d3e"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-properties codeBlock_bY9V thin-scrollbar" style="color:#bfc7d5;background-color:#292d3e"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#bfc7d5"><span class="token plain">druid.indexer.fork.property</span><br></span></code></pre><div class="buttonGro [...]
 <p>Additional Peon configs include:</p>
-<table><thead><tr><th>Property</th><th>Description</th><th>Default</th></tr></thead><tbody><tr><td><code>druid.peon.mode</code></td><td>One of <code>local</code> or <code>remote</code>. Setting this property to <code>local</code> means you intend to run the Peon as a standalone process which is not recommended.</td><td><code>remote</code></td></tr><tr><td><code>druid.indexer.task.baseDir</code></td><td>Base temporary working directory.</td><td><code>System.getProperty(&quot;java.io.tmpdi [...]
+<table><thead><tr><th>Property</th><th>Description</th><th>Default</th></tr></thead><tbody><tr><td><code>druid.peon.mode</code></td><td>One of <code>local</code> or <code>remote</code>. Setting this property to <code>local</code> means you intend to run the Peon as a standalone process which is not recommended.</td><td><code>remote</code></td></tr><tr><td><code>druid.indexer.task.baseDir</code></td><td>Base temporary working directory.</td><td><code>System.getProperty(&quot;java.io.tmpdi [...]
 <p>If the Peon is running in remote mode, there must be an Overlord up and running. Peons in remote mode can set the following configurations:</p>
 <table><thead><tr><th>Property</th><th>Description</th><th>Default</th></tr></thead><tbody><tr><td><code>druid.peon.taskActionClient.retry.minWait</code></td><td>The minimum retry time to communicate with Overlord.</td><td><code>PT5S</code></td></tr><tr><td><code>druid.peon.taskActionClient.retry.maxWait</code></td><td>The maximum retry time to communicate with Overlord.</td><td><code>PT1M</code></td></tr><tr><td><code>druid.peon.taskActionClient.retry.maxRetryCount</code></td><td>The ma [...]
 <h5 class="anchor anchorWithStickyNavbar_LWe7" id="segmentwriteoutmediumfactory">SegmentWriteOutMediumFactory<a href="#segmentwriteoutmediumfactory" class="hash-link" aria-label="Direct link to SegmentWriteOutMediumFactory" title="Direct link to SegmentWriteOutMediumFactory">​</a></h5>
@@ -492,18 +483,18 @@ This type of medium is preferred, but it may require you to allow the JVM to hav
 <p><strong>On-heap memory</strong> (<code>onHeapMemory</code>) creates buffers using the allocated heap memory of the JVM process running a task. Using on-heap memory introduces garbage collection overhead and so is not recommended in most cases. This type of medium is most helpful for tasks run on external clusters where it may be difficult to allocate and work with direct memory effectively.</p>
 </li>
 </ul>
-<p>For most types of tasks, <code>SegmentWriteOutMediumFactory</code> can be configured per-task (see <a href="/docs/latest/ingestion/tasks">Tasks</a> for more information), but if it&#x27;s not specified for a task, or it&#x27;s not supported for a particular task type, then Druid uses the value from the following configuration:</p>
+<p>For most types of tasks, <code>SegmentWriteOutMediumFactory</code> can be configured per-task (see <a href="/docs/38.0.0/ingestion/tasks">Tasks</a> for more information), but if it&#x27;s not specified for a task, or it&#x27;s not supported for a particular task type, then Druid uses the value from the following configuration:</p>
 <table><thead><tr><th>Property</th><th>Description</th><th>Default</th></tr></thead><tbody><tr><td><code>druid.peon.defaultSegmentWriteOutMediumFactory.type</code></td><td><code>tmpFile</code>, <code>offHeapMemory</code>, or <code>onHeapMemory</code></td><td><code>tmpFile</code></td></tr></tbody></table>
 <h3 class="anchor anchorWithStickyNavbar_LWe7" id="indexer">Indexer<a href="#indexer" class="hash-link" aria-label="Direct link to Indexer" title="Direct link to Indexer">​</a></h3>
 <h4 class="anchor anchorWithStickyNavbar_LWe7" id="indexer-process-configuration">Indexer process configuration<a href="#indexer-process-configuration" class="hash-link" aria-label="Direct link to Indexer process configuration" title="Direct link to Indexer process configuration">​</a></h4>
-<table><thead><tr><th>Property</th><th>Description</th><th>Default</th></tr></thead><tbody><tr><td><code>druid.host</code></td><td>The host for the current process. This is used to advertise the current processes location as reachable from another process and should generally be specified such that <code>http://${druid.host}/</code> could actually talk to this process</td><td><code>InetAddress.getLocalHost().getCanonicalHostName()</code></td></tr><tr><td><code>druid.bindOnHost</code></td [...]
+<table><thead><tr><th>Property</th><th>Description</th><th>Default</th></tr></thead><tbody><tr><td><code>druid.host</code></td><td>The host for the current process. This is used to advertise the current processes location as reachable from another process and should generally be specified such that <code>http://${druid.host}/</code> could actually talk to this process</td><td><code>InetAddress.getLocalHost().getCanonicalHostName()</code></td></tr><tr><td><code>druid.bindOnHost</code></td [...]
 <h4 class="anchor anchorWithStickyNavbar_LWe7" id="indexer-general-configuration">Indexer general configuration<a href="#indexer-general-configuration" class="hash-link" aria-label="Direct link to Indexer general configuration" title="Direct link to Indexer general configuration">​</a></h4>
-<table><thead><tr><th>Property</th><th>Description</th><th>Default</th></tr></thead><tbody><tr><td><code>druid.worker.version</code></td><td>Version identifier for the Indexer.</td><td>0</td></tr><tr><td><code>druid.worker.capacity</code></td><td>Maximum number of tasks the Indexer can accept.</td><td>Number of available processors - 1</td></tr><tr><td><code>druid.worker.baseTaskDirs</code></td><td>List of base temporary working directories, one of which is assigned per task in a round-r [...]
+<table><thead><tr><th>Property</th><th>Description</th><th>Default</th></tr></thead><tbody><tr><td><code>druid.worker.version</code></td><td>Version identifier for the Indexer.</td><td>0</td></tr><tr><td><code>druid.worker.capacity</code></td><td>Maximum number of tasks the Indexer can accept.</td><td>Number of available processors - 1</td></tr><tr><td><code>druid.worker.baseTaskDirs</code></td><td>List of base temporary working directories, one of which is assigned per task in a round-r [...]
 <h4 class="anchor anchorWithStickyNavbar_LWe7" id="indexer-concurrent-requests">Indexer concurrent requests<a href="#indexer-concurrent-requests" class="hash-link" aria-label="Direct link to Indexer concurrent requests" title="Direct link to Indexer concurrent requests">​</a></h4>
 <p>Druid uses Jetty to serve HTTP requests.</p>
-<table><thead><tr><th>Property</th><th>Description</th><th>Default</th></tr></thead><tbody><tr><td><code>druid.server.http.numThreads</code></td><td>Number of threads for HTTP requests. Please see the <a href="/docs/latest/design/indexer#server-http-threads">Indexer Server HTTP threads</a> documentation for more details on how the Indexer uses this configuration.</td><td>max(10, (Number of cores * 17) / 16 + 2) + 30</td></tr><tr><td><code>druid.server.http.queueSize</code></td><td>Size o [...]
+<table><thead><tr><th>Property</th><th>Description</th><th>Default</th></tr></thead><tbody><tr><td><code>druid.server.http.numThreads</code></td><td>Number of threads for HTTP requests. Please see the <a href="/docs/38.0.0/design/indexer#server-http-threads">Indexer Server HTTP threads</a> documentation for more details on how the Indexer uses this configuration.</td><td>max(10, (Number of cores * 17) / 16 + 2) + 30</td></tr><tr><td><code>druid.server.http.queueSize</code></td><td>Size o [...]
 <h4 class="anchor anchorWithStickyNavbar_LWe7" id="indexer-processing-resources">Indexer processing resources<a href="#indexer-processing-resources" class="hash-link" aria-label="Direct link to Indexer processing resources" title="Direct link to Indexer processing resources">​</a></h4>
-<table><thead><tr><th>Property</th><th>Description</th><th>Default</th></tr></thead><tbody><tr><td><code>druid.processing.buffer.sizeBytes</code></td><td>This specifies a buffer size (less than 2GiB) for the storage of intermediate results. The computation engine in the Indexer processes will use a scratch buffer of this size to do all of their intermediate computations off-heap. Larger values allow for more aggregations in a single pass over the data while smaller values can require mor [...]
+<table><thead><tr><th>Property</th><th>Description</th><th>Default</th></tr></thead><tbody><tr><td><code>druid.processing.buffer.sizeBytes</code></td><td>This specifies a buffer size (less than 2GiB) for the storage of intermediate results. The computation engine in the Indexer processes will use a scratch buffer of this size to do all of their intermediate computations off-heap. Larger values allow for more aggregations in a single pass over the data while smaller values can require mor [...]
 <p>The amount of direct memory needed by Druid is at least
 <code>druid.processing.buffer.sizeBytes * (druid.processing.numMergeBuffers + druid.processing.numThreads + 1)</code>. You can
 ensure at least this amount of direct memory is available by providing <code>-XX:MaxDirectMemorySize=&lt;VALUE&gt;</code> at the command
@@ -516,12 +507,12 @@ line.</p>
 <p>See <a href="#cache-configuration">cache configuration</a> for how to configure cache settings.</p>
 <p>Note that only local caches such as the <code>local</code>-type cache and <code>caffeine</code> cache are supported. If a remote cache such as <code>memcached</code> is used, it will be ignored.</p>
 <h3 class="anchor anchorWithStickyNavbar_LWe7" id="historical">Historical<a href="#historical" class="hash-link" aria-label="Direct link to Historical" title="Direct link to Historical">​</a></h3>
-<p>For general Historical service information, see <a href="/docs/latest/design/historical">Historical</a>.</p>
+<p>For general Historical service information, see <a href="/docs/38.0.0/design/historical">Historical</a>.</p>
 <p>These Historical configurations can be defined in the <code>historical/runtime.properties</code> file.</p>
 <h4 class="anchor anchorWithStickyNavbar_LWe7" id="historical-service-configuration">Historical service configuration<a href="#historical-service-configuration" class="hash-link" aria-label="Direct link to Historical service configuration" title="Direct link to Historical service configuration">​</a></h4>
-<table><thead><tr><th>Property</th><th>Description</th><th>Default</th></tr></thead><tbody><tr><td><code>druid.host</code></td><td>The host for the current service. This is used to advertise the current service location as reachable from another service and should generally be specified such that <code>http://${druid.host}/</code> could actually talk to this service</td><td><code>InetAddress.getLocalHost().getCanonicalHostName()</code></td></tr><tr><td><code>druid.bindOnHost</code></td>< [...]
+<table><thead><tr><th>Property</th><th>Description</th><th>Default</th></tr></thead><tbody><tr><td><code>druid.host</code></td><td>The host for the current service. This is used to advertise the current service location as reachable from another service and should generally be specified such that <code>http://${druid.host}/</code> could actually talk to this service</td><td><code>InetAddress.getLocalHost().getCanonicalHostName()</code></td></tr><tr><td><code>druid.bindOnHost</code></td>< [...]
 <h4 class="anchor anchorWithStickyNavbar_LWe7" id="historical-general-configuration">Historical general configuration<a href="#historical-general-configuration" class="hash-link" aria-label="Direct link to Historical general configuration" title="Direct link to Historical general configuration">​</a></h4>
-<table><thead><tr><th>Property</th><th>Description</th><th>Default</th></tr></thead><tbody><tr><td><code>druid.server.maxSize</code></td><td>The maximum number of bytes-worth of segments that the service wants assigned to it. The Coordinator service will attempt to assign segments to a Historical service only if this property is greater than the total size of segments served by it. Since this property defines the upper limit on the total segment size that can be assigned to a Historical, [...]
+<table><thead><tr><th>Property</th><th>Description</th><th>Default</th></tr></thead><tbody><tr><td><code>druid.server.maxSize</code></td><td>The maximum number of bytes-worth of segments that the service wants assigned to it. The Coordinator service will attempt to assign segments to a Historical service only if this property is greater than the total size of segments served by it. Since this property defines the upper limit on the total segment size that can be assigned to a Historical, [...]
 <h4 class="anchor anchorWithStickyNavbar_LWe7" id="storing-segments">Storing segments<a href="#storing-segments" class="hash-link" aria-label="Direct link to Storing segments" title="Direct link to Storing segments">​</a></h4>
 <table><thead><tr><th>Property</th><th>Description</th><th>Default</th></tr></thead><tbody><tr><td><code>druid.segmentCache.locations</code></td><td>Segments assigned to a Historical services are first stored on the local file system (in a disk cache) and then served by the Historical services. These locations define where that local cache resides. This value cannot be NULL or EMPTY. Here is an example <code>druid.segmentCache.locations=[{&quot;path&quot;: &quot;/mnt/druidSegments&quot;, [...]
 <p>In <code>druid.segmentCache.locations</code>, <code>freeSpacePercent</code> was added because the <code>maxSize</code> setting is only a theoretical limit and assumes that much space will always be available for storing segments. In case of any druid bug leading to unaccounted segment files left alone on disk or some other service writing stuff to disk, This check can start failing segment loading early before filling up the disk completely and leaving the host usable otherwise.</p>
@@ -531,9 +522,9 @@ line.</p>
 <h4 class="anchor anchorWithStickyNavbar_LWe7" id="historical-query-configs">Historical query configs<a href="#historical-query-configs" class="hash-link" aria-label="Direct link to Historical query configs" title="Direct link to Historical query configs">​</a></h4>
 <h5 class="anchor anchorWithStickyNavbar_LWe7" id="concurrent-requests">Concurrent requests<a href="#concurrent-requests" class="hash-link" aria-label="Direct link to Concurrent requests" title="Direct link to Concurrent requests">​</a></h5>
 <p>Druid uses Jetty to serve HTTP requests.</p>
-<table><thead><tr><th>Property</th><th>Description</th><th>Default</th></tr></thead><tbody><tr><td><code>druid.server.http.numThreads</code></td><td>Number of threads for HTTP requests.</td><td>max(10, (Number of cores * 17) / 16 + 2) + 30</td></tr><tr><td><code>druid.server.http.queueSize</code></td><td>Size of the worker queue used by Jetty server to temporarily store incoming client connections. If this value is set and a request is rejected by jetty because queue is full then client  [...]
+<table><thead><tr><th>Property</th><th>Description</th><th>Default</th></tr></thead><tbody><tr><td><code>druid.server.http.numThreads</code></td><td>Number of threads for HTTP requests.</td><td>max(10, (Number of cores * 17) / 16 + 2) + 30</td></tr><tr><td><code>druid.server.http.queueSize</code></td><td>Size of the worker queue used by Jetty server to temporarily store incoming client connections. If this value is set and a request is rejected by jetty because queue is full then client  [...]
 <h5 class="anchor anchorWithStickyNavbar_LWe7" id="processing">Processing<a href="#processing" class="hash-link" aria-label="Direct link to Processing" title="Direct link to Processing">​</a></h5>
-<table><thead><tr><th>Property</th><th>Description</th><th>Default</th></tr></thead><tbody><tr><td><code>druid.processing.buffer.sizeBytes</code></td><td>This specifies a buffer size (less than 2GiB), for the storage of intermediate results. The computation engine in both the Historical and Realtime processes will use a scratch buffer of this size to do all of their intermediate computations off-heap. Larger values allow for more aggregations in a single pass over the data while smaller  [...]
+<table><thead><tr><th>Property</th><th>Description</th><th>Default</th></tr></thead><tbody><tr><td><code>druid.processing.buffer.sizeBytes</code></td><td>This specifies a buffer size (less than 2GiB), for the storage of intermediate results. The computation engine in both the Historical and Realtime processes will use a scratch buffer of this size to do all of their intermediate computations off-heap. Larger values allow for more aggregations in a single pass over the data while smaller  [...]
 <p>The amount of direct memory needed by Druid is at least
 <code>druid.processing.buffer.sizeBytes * (druid.processing.numMergeBuffers + druid.processing.numThreads + 1)</code>. You can
 ensure at least this amount of direct memory is available by providing <code>-XX:MaxDirectMemorySize=&lt;VALUE&gt;</code> at the command
@@ -545,22 +536,22 @@ line.</p>
 <table><thead><tr><th>Property</th><th>Possible Values</th><th>Description</th><th>Default</th></tr></thead><tbody><tr><td><code>druid.historical.cache.useCache</code></td><td>true, false</td><td>Enable the cache on the Historical.</td><td>false</td></tr><tr><td><code>druid.historical.cache.populateCache</code></td><td>true, false</td><td>Populate the cache on the Historical.</td><td>false</td></tr><tr><td><code>druid.historical.cache.unCacheable</code></td><td>All druid query types</td> [...]
 <p>See <a href="#cache-configuration">cache configuration</a> for how to configure cache settings.</p>
 <h2 class="anchor anchorWithStickyNavbar_LWe7" id="query-server">Query server<a href="#query-server" class="hash-link" aria-label="Direct link to Query server" title="Direct link to Query server">​</a></h2>
-<p>This section contains the configuration options for the services that reside on Query servers (Brokers) in the suggested <a href="/docs/latest/design/architecture#druid-servers">three-server configuration</a>.</p>
-<p>Configuration options for the <a href="/docs/latest/design/router">Router process</a> are also provided here.</p>
+<p>This section contains the configuration options for the services that reside on Query servers (Brokers) in the suggested <a href="/docs/38.0.0/design/architecture#druid-servers">three-server configuration</a>.</p>
+<p>Configuration options for the <a href="/docs/38.0.0/design/router">Router process</a> are also provided here.</p>
 <h3 class="anchor anchorWithStickyNavbar_LWe7" id="broker">Broker<a href="#broker" class="hash-link" aria-label="Direct link to Broker" title="Direct link to Broker">​</a></h3>
-<p>For general Broker process information, see <a href="/docs/latest/design/broker">here</a>.</p>
+<p>For general Broker process information, see <a href="/docs/38.0.0/design/broker">here</a>.</p>
 <p>These Broker configurations can be defined in the <code>broker/runtime.properties</code> file.</p>
 <h4 class="anchor anchorWithStickyNavbar_LWe7" id="broker-process-configs">Broker process configs<a href="#broker-process-configs" class="hash-link" aria-label="Direct link to Broker process configs" title="Direct link to Broker process configs">​</a></h4>
-<table><thead><tr><th>Property</th><th>Description</th><th>Default</th></tr></thead><tbody><tr><td><code>druid.host</code></td><td>The host for the current process. This is used to advertise the current processes location as reachable from another process and should generally be specified such that <code>http://${druid.host}/</code> could actually talk to this process</td><td><code>InetAddress.getLocalHost().getCanonicalHostName()</code></td></tr><tr><td><code>druid.bindOnHost</code></td [...]
+<table><thead><tr><th>Property</th><th>Description</th><th>Default</th></tr></thead><tbody><tr><td><code>druid.host</code></td><td>The host for the current process. This is used to advertise the current processes location as reachable from another process and should generally be specified such that <code>http://${druid.host}/</code> could actually talk to this process</td><td><code>InetAddress.getLocalHost().getCanonicalHostName()</code></td></tr><tr><td><code>druid.bindOnHost</code></td [...]
 <h4 class="anchor anchorWithStickyNavbar_LWe7" id="query-configuration">Query configuration<a href="#query-configuration" class="hash-link" aria-label="Direct link to Query configuration" title="Direct link to Query configuration">​</a></h4>
 <h5 class="anchor anchorWithStickyNavbar_LWe7" id="query-routing">Query routing<a href="#query-routing" class="hash-link" aria-label="Direct link to Query routing" title="Direct link to Query routing">​</a></h5>
-<table><thead><tr><th>Property</th><th>Possible Values</th><th>Description</th><th>Default</th></tr></thead><tbody><tr><td><code>druid.broker.balancer.type</code></td><td><code>random</code>, <code>connectionCount</code></td><td>Determines how the broker balances connections to Historical processes. <code>random</code> choose randomly, <code>connectionCount</code> picks the process with the fewest number of active connections to</td><td><code>random</code></td></tr><tr><td><code>druid.br [...]
+<table><thead><tr><th>Property</th><th>Possible Values</th><th>Description</th><th>Default</th></tr></thead><tbody><tr><td><code>druid.broker.balancer.type</code></td><td><code>random</code>, <code>connectionCount</code></td><td>Determines how the broker balances connections to Historical processes. <code>random</code> chooses randomly, <code>connectionCount</code> picks the process with the fewest number of active connections to it.</td><td><code>random</code></td></tr><tr><td><code>dru [...]
 <h5 class="anchor anchorWithStickyNavbar_LWe7" id="query-prioritization-and-laning">Query prioritization and laning<a href="#query-prioritization-and-laning" class="hash-link" aria-label="Direct link to Query prioritization and laning" title="Direct link to Query prioritization and laning">​</a></h5>
 <p>Laning strategies allow you to control capacity utilization for heterogeneous query workloads. With laning, the broker examines and classifies a query for the purpose of assigning it to a lane. Lanes have capacity limits, enforced by the broker, that can be used to ensure sufficient resources are available for other lanes or for interactive queries (with no lane), or to limit overall throughput for queries within the lane. Requests in excess of the capacity are discarded with an HTTP  [...]
 <table><thead><tr><th>Property</th><th>Description</th><th>Default</th></tr></thead><tbody><tr><td><code>druid.query.scheduler.numThreads</code></td><td>Maximum number of concurrently-running queries. When this parameter is set lower than <code>druid.server.http.numThreads</code>, query requests beyond the limit are put into the Jetty request queue. This has the effect of reserving the leftover Jetty threads for non-query requests.<br><br>When this parameter is set equal to or higher tha [...]
 <h5 class="anchor anchorWithStickyNavbar_LWe7" id="prioritization-strategies">Prioritization strategies<a href="#prioritization-strategies" class="hash-link" aria-label="Direct link to Prioritization strategies" title="Direct link to Prioritization strategies">​</a></h5>
 <h6 class="anchor anchorWithStickyNavbar_LWe7" id="manual-prioritization-strategy">Manual prioritization strategy<a href="#manual-prioritization-strategy" class="hash-link" aria-label="Direct link to Manual prioritization strategy" title="Direct link to Manual prioritization strategy">​</a></h6>
-<p>With this configuration, queries are never assigned a priority automatically, but will preserve a priority manually set on the <a href="/docs/latest/querying/query-context-reference">query context</a> with the <code>priority</code> key. This mode can be explicitly set by setting <code>druid.query.scheduler.prioritization.strategy</code> to <code>manual</code>.</p>
+<p>With this configuration, queries are never assigned a priority automatically, but will preserve a priority manually set on the <a href="/docs/38.0.0/querying/query-context-reference">query context</a> with the <code>priority</code> key. This mode can be explicitly set by setting <code>druid.query.scheduler.prioritization.strategy</code> to <code>manual</code>.</p>
 <h6 class="anchor anchorWithStickyNavbar_LWe7" id="threshold-prioritization-strategy">Threshold prioritization strategy<a href="#threshold-prioritization-strategy" class="hash-link" aria-label="Direct link to Threshold prioritization strategy" title="Direct link to Threshold prioritization strategy">​</a></h6>
 <p>This prioritization strategy lowers the priority of queries that cross any of a configurable set of thresholds, such as how far in the past the data is, how large of an interval a query covers, or the number of segments taking part in a query.</p>
 <p>This strategy can be enabled by setting <code>druid.query.scheduler.prioritization.strategy</code> to <code>threshold</code>.</p>
@@ -570,7 +561,7 @@ line.</p>
 <p>In this mode, queries are never assigned a lane, and the concurrent query count will only be limited by <code>druid.server.http.numThreads</code> or <code>druid.query.scheduler.numThreads</code>, if set. This is the default Druid query scheduler operating mode. Enable this strategy explicitly by setting <code>druid.query.scheduler.laning.strategy</code> to <code>none</code>.</p>
 <h6 class="anchor anchorWithStickyNavbar_LWe7" id="highlow-laning-strategy">&#x27;High/Low&#x27; laning strategy<a href="#highlow-laning-strategy" class="hash-link" aria-label="Direct link to &#x27;High/Low&#x27; laning strategy" title="Direct link to &#x27;High/Low&#x27; laning strategy">​</a></h6>
 <p>This laning strategy splits queries with a <code>priority</code> below zero into a <code>low</code> query lane, automatically. Queries with priority of zero (the default) or above are considered &#x27;interactive&#x27;. The limit on <code>low</code> queries can be set to some desired percentage of the total capacity (or HTTP thread pool size), reserving capacity for interactive queries. Queries in the <code>low</code> lane are <em>not</em> guaranteed their capacity, which may be consu [...]
-<p>If the <code>low</code> lane is specified in the <a href="/docs/latest/querying/query-context-reference">query context</a> <code>lane</code> parameter, this will override the computed lane.</p>
+<p>If the <code>low</code> lane is specified in the <a href="/docs/38.0.0/querying/query-context-reference">query context</a> <code>lane</code> parameter, this will override the computed lane.</p>
 <p>This strategy can be enabled by setting <code>druid.query.scheduler.laning.strategy=hilo</code>.</p>
 <table><thead><tr><th>Property</th><th>Description</th><th>Default</th></tr></thead><tbody><tr><td><code>druid.query.scheduler.laning.maxLowPercent</code></td><td>Maximum percent of the smaller number of <code>druid.server.http.numThreads</code> or <code>druid.query.scheduler.numThreads</code>, defining the number of HTTP threads that can be used by queries with a priority lower than 0. Value must be an integer in the range 1 to 100, and will be rounded up</td><td>No default, must be set [...]
 <h5 class="anchor anchorWithStickyNavbar_LWe7" id="guardrails-for-materialization-of-subqueries">Guardrails for materialization of subqueries<a href="#guardrails-for-materialization-of-subqueries" class="hash-link" aria-label="Direct link to Guardrails for materialization of subqueries" title="Direct link to Guardrails for materialization of subqueries">​</a></h5>
@@ -594,21 +585,28 @@ rows in the order of magnitude of around 10 million and above. In those scenario
 <p>If you choose to modify or set any of the above limits, you must also think about the heap size of all Brokers, Historicals, and task Peons that process data for the subqueries to accommodate the subquery results.
 There is no formula to calculate the correct value. Trial and error is the best approach.</p>
 <h6 class="anchor anchorWithStickyNavbar_LWe7" id="manual-laning-strategy">Manual laning strategy<a href="#manual-laning-strategy" class="hash-link" aria-label="Direct link to Manual laning strategy" title="Direct link to Manual laning strategy">​</a></h6>
-<p>This laning strategy is best suited for cases where one or more external applications which query Druid are capable of manually deciding what lane a given query should belong to. Configured with a map of lane names to percent or exact max capacities, queries with a matching <code>lane</code> parameter in the <a href="/docs/latest/querying/query-context-reference">query context</a> will be subjected to those limits.</p>
+<p>This laning strategy is best suited for cases where one or more external applications which query Druid are capable of manually deciding what lane a given query should belong to. Configured with a map of lane names to percent or exact max capacities, queries with a matching <code>lane</code> parameter in the <a href="/docs/38.0.0/querying/query-context-reference">query context</a> will be subjected to those limits.</p>
 <table><thead><tr><th>Property</th><th>Description</th><th>Default</th></tr></thead><tbody><tr><td><code>druid.query.scheduler.laning.lanes.{name}</code></td><td>Maximum percent or exact limit of queries that can concurrently run in the defined lanes. Any number of lanes may be defined like this. The lane names &#x27;total&#x27; and &#x27;default&#x27; are reserved for internal use.</td><td>No default, must define at least one lane with a limit above 0. If <code>druid.query.scheduler.lan [...]
+<h6 class="anchor anchorWithStickyNavbar_LWe7" id="weighted-laning-strategy">Weighted laning strategy<a href="#weighted-laning-strategy" class="hash-link" aria-label="Direct link to Weighted laning strategy" title="Direct link to Weighted laning strategy">​</a></h6>
+<p>This laning strategy assigns a cost to each query based on how many of a configurable set of thresholds it breaches, then routes the query to the most restrictive lane whose <code>minCost</code> the query meets. It is a more granular alternative to the &#x27;High/Low&#x27; strategy: rather than a binary split, a query that breaches one threshold can be assigned to a different lane than one that breaches several. The thresholds are the same ones used by the <a href="#threshold-prioriti [...]
+<p>If a lane is specified in the <a href="/docs/38.0.0/querying/query-context-reference">query context</a> <code>lane</code> parameter, this will override the computed lane.</p>
+<p>This strategy can be enabled by setting <code>druid.query.scheduler.laning.strategy=weighted</code>.</p>
+<table><thead><tr><th>Property</th><th>Description</th><th>Default</th></tr></thead><tbody><tr><td><code>druid.query.scheduler.laning.periodThreshold</code></td><td>ISO 8601 period. A query is charged 1 if any of its intervals starts before <code>now - periodThreshold</code> (that is, it reads data older than this).</td><td>null (not evaluated)</td></tr><tr><td><code>druid.query.scheduler.laning.durationThreshold</code></td><td>ISO 8601 duration (must not contain month or year components [...]
+<p>At least one of <code>periodThreshold</code>, <code>durationThreshold</code>, <code>segmentCountThreshold</code>, or <code>segmentRangeThreshold</code> must be set. For example, the following configuration routes queries breaching 1 or 2 thresholds to a <code>low</code> lane capped at 30% capacity, and queries breaching 3 or 4 thresholds to a <code>very-low</code> lane capped at 10%:</p>
+<div class="language-json codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#bfc7d5;--prism-background-color:#292d3e"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-json codeBlock_bY9V thin-scrollbar" style="color:#bfc7d5;background-color:#292d3e"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#bfc7d5"><span class="token punctuation" style="color:rgb(199, 146, 234)">{</span><span class="token plain"></span><br></span> [...]
 <h5 class="anchor anchorWithStickyNavbar_LWe7" id="server-configuration">Server configuration<a href="#server-configuration" class="hash-link" aria-label="Direct link to Server configuration" title="Direct link to Server configuration">​</a></h5>
 <p>Druid uses Jetty to serve HTTP requests. Each query being processed consumes a single thread from <code>druid.server.http.numThreads</code>, so consider defining <code>druid.query.scheduler.numThreads</code> to a lower value in order to reserve HTTP threads for responding to health checks, lookup loading, and other non-query, (in most cases) comparatively very short-lived, HTTP requests.</p>
-<table><thead><tr><th>Property</th><th>Description</th><th>Default</th></tr></thead><tbody><tr><td><code>druid.server.http.numThreads</code></td><td>Number of threads for HTTP requests.</td><td>max(10, (Number of cores * 17) / 16 + 2) + 30</td></tr><tr><td><code>druid.server.http.queueSize</code></td><td>Size of the worker queue used by Jetty server to temporarily store incoming client connections. If this value is set and a request is rejected by jetty because queue is full then client  [...]
+<table><thead><tr><th>Property</th><th>Description</th><th>Default</th></tr></thead><tbody><tr><td><code>druid.server.http.numThreads</code></td><td>Number of threads for HTTP requests.</td><td>max(10, (Number of cores * 17) / 16 + 2) + 30</td></tr><tr><td><code>druid.server.http.queueSize</code></td><td>Size of the worker queue used by Jetty server to temporarily store incoming client connections. If this value is set and a request is rejected by jetty because queue is full then client  [...]
 <h5 class="anchor anchorWithStickyNavbar_LWe7" id="client-configuration">Client configuration<a href="#client-configuration" class="hash-link" aria-label="Direct link to Client configuration" title="Direct link to Client configuration">​</a></h5>
 <p>Druid Brokers use an HTTP client to communicate with data servers (Historical servers and real-time tasks). This
 client has the following configuration options.</p>
-<table><thead><tr><th>Property</th><th>Description</th><th>Default</th></tr></thead><tbody><tr><td><code>druid.broker.http.numConnections</code></td><td>Size of connection pool for the Broker to connect to Historical and real-time processes. If there are more queries than this number that all need to speak to the same process, then they will queue up.</td><td>20</td></tr><tr><td><code>druid.broker.http.eagerInitialization</code></td><td>Indicates that http connections from Broker to Hist [...]
+<table><thead><tr><th>Property</th><th>Description</th><th>Default</th></tr></thead><tbody><tr><td><code>druid.broker.http.numConnections</code></td><td>Size of connection pool for the Broker to connect to Historical and real-time processes. If there are more queries than this number that all need to speak to the same process, then they will queue up.</td><td>20</td></tr><tr><td><code>druid.broker.http.eagerInitialization</code></td><td>Indicates that http connections from Broker to Hist [...]
 <h5 class="anchor anchorWithStickyNavbar_LWe7" id="retry-policy">Retry policy<a href="#retry-policy" class="hash-link" aria-label="Direct link to Retry policy" title="Direct link to Retry policy">​</a></h5>
 <p>Druid broker can optionally retry queries internally for transient errors.</p>
 <table><thead><tr><th>Property</th><th>Description</th><th>Default</th></tr></thead><tbody><tr><td><code>druid.broker.retryPolicy.numTries</code></td><td>Number of tries.</td><td>1</td></tr></tbody></table>
 <h5 class="anchor anchorWithStickyNavbar_LWe7" id="processing-1">Processing<a href="#processing-1" class="hash-link" aria-label="Direct link to Processing" title="Direct link to Processing">​</a></h5>
 <p>The broker uses processing configs for nested groupBy queries.</p>
-<table><thead><tr><th>Property</th><th>Description</th><th>Default</th></tr></thead><tbody><tr><td><code>druid.processing.buffer.sizeBytes</code></td><td>This specifies a buffer size (less than 2GiB) for the storage of intermediate results. The computation engine in both the Historical and Realtime processes will use a scratch buffer of this size to do all of their intermediate computations off-heap. Larger values allow for more aggregations in a single pass over the data while smaller v [...]
+<table><thead><tr><th>Property</th><th>Description</th><th>Default</th></tr></thead><tbody><tr><td><code>druid.processing.buffer.sizeBytes</code></td><td>This specifies a buffer size (less than 2GiB) for the storage of intermediate results. The computation engine in both the Historical and Realtime processes will use a scratch buffer of this size to do all of their intermediate computations off-heap. Larger values allow for more aggregations in a single pass over the data while smaller v [...]
 <p>The amount of direct memory needed by Druid is at least
 <code>druid.processing.buffer.sizeBytes * (druid.processing.numMergeBuffers + 1)</code>. You can
 ensure at least this amount of direct memory is available by providing <code>-XX:MaxDirectMemorySize=&lt;VALUE&gt;</code> at the command
@@ -624,10 +622,10 @@ queries in order to avoid running as a default priority of 0.</p>
 <table><thead><tr><th>Property</th><th>Description</th><th>Default</th></tr></thead><tbody><tr><td><code>druid.broker.internal.query.config.context</code></td><td>A string formatted <code>key:value</code> map of a query context to add to internally generated broker queries.</td><td>null</td></tr></tbody></table>
 <h4 class="anchor anchorWithStickyNavbar_LWe7" id="dynamic-configuration-1">Dynamic configuration<a href="#dynamic-configuration-1" class="hash-link" aria-label="Direct link to Dynamic configuration" title="Direct link to Dynamic configuration">​</a></h4>
 <p>The Broker has dynamic configurations to tune certain behavior dynamically, without requiring a service restart.
-You can configure these parameters using the <a href="/docs/latest/operations/web-console">web console</a> (recommended) or through the <a href="/docs/latest/api-reference/dynamic-configuration-api#broker-dynamic-configuration">Broker dynamic configuration API</a>.</p>
+You can configure these parameters using the <a href="/docs/38.0.0/operations/web-console">web console</a> (recommended) or through the <a href="/docs/38.0.0/api-reference/dynamic-configuration-api#broker-dynamic-configuration">Broker dynamic configuration API</a>.</p>
 <h4 class="anchor anchorWithStickyNavbar_LWe7" id="sql">SQL<a href="#sql" class="hash-link" aria-label="Direct link to SQL" title="Direct link to SQL">​</a></h4>
 <p>The Druid SQL server is configured through the following properties on the Broker.</p>
-<table><thead><tr><th>Property</th><th>Description</th><th>Default</th></tr></thead><tbody><tr><td><code>druid.sql.enable</code></td><td>Whether to enable SQL at all, including background metadata fetching. If false, this overrides all other SQL-related properties and disables SQL metadata, serving, and planning completely.</td><td>true</td></tr><tr><td><code>druid.sql.avatica.enable</code></td><td>Whether to enable JDBC querying at <code>/druid/v2/sql/avatica/</code>.</td><td>true</td>< [...]
+<table><thead><tr><th>Property</th><th>Description</th><th>Default</th></tr></thead><tbody><tr><td><code>druid.sql.enable</code></td><td>Whether to enable SQL at all, including background metadata fetching. If false, this overrides all other SQL-related properties and disables SQL metadata, serving, and planning completely.</td><td>true</td></tr><tr><td><code>druid.sql.avatica.enable</code></td><td>Whether to enable JDBC querying at <code>/druid/v2/sql/avatica/</code>.</td><td>true</td>< [...]
 <div class="theme-admonition theme-admonition-info admonition_xJq3 alert alert--info"><div class="admonitionHeading_Gvgb"><span class="admonitionIcon_Rf37"><svg viewBox="0 0 14 16"><path fill-rule="evenodd" d="M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"></path></svg></span>info</div><div class="admonitionContent_BuS1"><p>Previous versions of Druid had pr [...]
 These properties are no longer available. Since Druid 0.18.0, you can use <code>druid.server.http.maxSubqueryRows</code> to control the maximum
 number of rows permitted across all subqueries.</p></div></div>
@@ -635,12 +633,12 @@ number of rows permitted across all subqueries.</p></div></div>
 <p>You can optionally only configure caching to be enabled on the Broker by setting caching configs here.</p>
 <table><thead><tr><th>Property</th><th>Possible Values</th><th>Description</th><th>Default</th></tr></thead><tbody><tr><td><code>druid.broker.cache.useCache</code></td><td>true, false</td><td>Enable the cache on the Broker.</td><td>false</td></tr><tr><td><code>druid.broker.cache.populateCache</code></td><td>true, false</td><td>Populate the cache on the Broker.</td><td>false</td></tr><tr><td><code>druid.broker.cache.useResultLevelCache</code></td><td>true, false</td><td>Enable result leve [...]
 <p>See <a href="#cache-configuration">cache configuration</a> for how to configure cache settings.</p>
-<div class="theme-admonition theme-admonition-info admonition_xJq3 alert alert--info"><div class="admonitionHeading_Gvgb"><span class="admonitionIcon_Rf37"><svg viewBox="0 0 14 16"><path fill-rule="evenodd" d="M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"></path></svg></span>info</div><div class="admonitionContent_BuS1"><p>Note: Even if cache is enabled, f [...]
-See <a href="/docs/latest/querying/caching">Query caching</a> for more information.</p></div></div>
+<div class="theme-admonition theme-admonition-info admonition_xJq3 alert alert--info"><div class="admonitionHeading_Gvgb"><span class="admonitionIcon_Rf37"><svg viewBox="0 0 14 16"><path fill-rule="evenodd" d="M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"></path></svg></span>info</div><div class="admonitionContent_BuS1"><p>Note: Even if cache is enabled, f [...]
+See <a href="/docs/38.0.0/querying/caching">Query caching</a> for more information.</p></div></div>
 <h4 class="anchor anchorWithStickyNavbar_LWe7" id="segment-discovery">Segment discovery<a href="#segment-discovery" class="hash-link" aria-label="Direct link to Segment discovery" title="Direct link to Segment discovery">​</a></h4>
-<table><thead><tr><th>Property</th><th>Possible Values</th><th>Description</th><th>Default</th></tr></thead><tbody><tr><td><code>druid.serverview.type</code></td><td>batch or http</td><td>Segment discovery method to use. &quot;http&quot; enables discovering segments using HTTP instead of ZooKeeper.</td><td>http</td></tr><tr><td><code>druid.broker.segment.watchedTiers</code></td><td>List of strings</td><td>The Broker watches segment announcements from processes that serve segments to buil [...]
+<table><thead><tr><th>Property</th><th>Possible Values</th><th>Description</th><th>Default</th></tr></thead><tbody><tr><td><code>druid.broker.segment.watchedTiers</code></td><td>List of strings</td><td>The Broker watches segment announcements from processes that serve segments to build a cache to relate each process to the segments it serves. This configuration allows the Broker to only consider segments being served from a list of tiers. By default, Broker considers all tiers. This can  [...]
 <h2 class="anchor anchorWithStickyNavbar_LWe7" id="metrics-monitors">Metrics monitors<a href="#metrics-monitors" class="hash-link" aria-label="Direct link to Metrics monitors" title="Direct link to Metrics monitors">​</a></h2>
-<p>You can configure Druid services to emit <a href="/docs/latest/operations/metrics">metrics</a> regularly from a number of <a href="#metrics-monitors-for-each-service">monitors</a> via <a href="#metrics-emitters">emitters</a>. The following table lists general configurations for metrics:</p>
+<p>You can configure Druid services to emit <a href="/docs/38.0.0/operations/metrics">metrics</a> regularly from a number of <a href="#metrics-monitors-for-each-service">monitors</a> via <a href="#metrics-emitters">emitters</a>. The following table lists general configurations for metrics:</p>
 <table><thead><tr><th>Property</th><th>Description</th><th>Default</th></tr></thead><tbody><tr><td><code>druid.monitoring.emissionPeriod</code></td><td>Frequency that Druid emits metrics.</td><td><code>PT1M</code></td></tr><tr><td><a href="#metrics-monitors-for-each-service"><code>druid.monitoring.monitors</code></a></td><td>Sets list of Druid monitors used by a service.</td><td>none (no monitors)</td></tr><tr><td><a href="#metrics-emitters"><code>druid.emitter</code></a></td><td>Setting [...]
 <h3 class="anchor anchorWithStickyNavbar_LWe7" id="metrics-monitors-for-each-service">Metrics monitors for each service<a href="#metrics-monitors-for-each-service" class="hash-link" aria-label="Direct link to Metrics monitors for each service" title="Direct link to Metrics monitors for each service">​</a></h3>
 <p>Metric monitoring is an essential part of Druid operations.
@@ -673,12 +671,12 @@ If a monitor is not supported on a certain service, it will simply be ignored wh
 log4j config to route these logs to different sources based on the feed of the event.</p>
 <table><thead><tr><th>Property</th><th>Description</th><th>Default</th></tr></thead><tbody><tr><td><code>druid.emitter.logging.loggerClass</code></td><td>The class used for logging.</td><td><code>org.apache.druid.java.util.emitter.core.LoggingEmitter</code></td></tr><tr><td><code>druid.emitter.logging.logLevel</code></td><td>Choices: debug, info, warn, error. The log level at which message are logged.</td><td>info</td></tr><tr><td><code>druid.emitter.logging.shouldFilterMetrics</code></t [...]
 <h4 class="anchor anchorWithStickyNavbar_LWe7" id="http-emitter-module">HTTP emitter module<a href="#http-emitter-module" class="hash-link" aria-label="Direct link to HTTP emitter module" title="Direct link to HTTP emitter module">​</a></h4>
-<table><thead><tr><th>Property</th><th>Description</th><th>Default</th></tr></thead><tbody><tr><td><code>druid.emitter.http.flushMillis</code></td><td>How often the internal message buffer is flushed (data is sent).</td><td>60000</td></tr><tr><td><code>druid.emitter.http.flushCount</code></td><td>How many messages the internal message buffer can hold before flushing (sending).</td><td>500</td></tr><tr><td><code>druid.emitter.http.basicAuthentication</code></td><td><a href="/docs/latest/o [...]
+<table><thead><tr><th>Property</th><th>Description</th><th>Default</th></tr></thead><tbody><tr><td><code>druid.emitter.http.flushMillis</code></td><td>How often the internal message buffer is flushed (data is sent).</td><td>60000</td></tr><tr><td><code>druid.emitter.http.flushCount</code></td><td>How many messages the internal message buffer can hold before flushing (sending).</td><td>500</td></tr><tr><td><code>druid.emitter.http.basicAuthentication</code></td><td><a href="/docs/38.0.0/o [...]
 <h4 class="anchor anchorWithStickyNavbar_LWe7" id="http-emitter-module-tls-overrides">HTTP emitter module TLS overrides<a href="#http-emitter-module-tls-overrides" class="hash-link" aria-label="Direct link to HTTP emitter module TLS overrides" title="Direct link to HTTP emitter module TLS overrides">​</a></h4>
-<p>By default, when sending events to a TLS-enabled receiver, the HTTP Emitter uses an SSLContext obtained from the service described at <a href="/docs/latest/operations/tls-support">Druid&#x27;s internal communication over TLS</a>, that is the same SSLContext that would be used for internal communications between Druid services.</p>
+<p>By default, when sending events to a TLS-enabled receiver, the HTTP Emitter uses an SSLContext obtained from the service described at <a href="/docs/38.0.0/operations/tls-support">Druid&#x27;s internal communication over TLS</a>, that is the same SSLContext that would be used for internal communications between Druid services.</p>
 <p>In some use cases it may be desirable to have the HTTP Emitter use its own separate truststore configuration. For example, there may be organizational policies that prevent the TLS-enabled metrics receiver&#x27;s certificate from being added to the same truststore used by Druid&#x27;s internal HTTP client.</p>
 <p>The following properties allow the HTTP Emitter to use its own truststore configuration when building its SSLContext.</p>
-<table><thead><tr><th>Property</th><th>Description</th><th>Default</th></tr></thead><tbody><tr><td><code>druid.emitter.http.ssl.useDefaultJavaContext</code></td><td>If set to true, the HttpEmitter will use <code>SSLContext.getDefault()</code>, the default Java SSLContext, and all other properties below are ignored.</td><td>false</td></tr><tr><td><code>druid.emitter.http.ssl.trustStorePath</code></td><td>The file path or URL of the TLS/SSL Key store where trusted root certificates are sto [...]
+<table><thead><tr><th>Property</th><th>Description</th><th>Default</th></tr></thead><tbody><tr><td><code>druid.emitter.http.ssl.useDefaultJavaContext</code></td><td>If set to true, the HttpEmitter will use <code>SSLContext.getDefault()</code>, the default Java SSLContext, and all other properties below are ignored.</td><td>false</td></tr><tr><td><code>druid.emitter.http.ssl.trustStorePath</code></td><td>The file path or URL of the TLS/SSL Key store where trusted root certificates are sto [...]
 <h4 class="anchor anchorWithStickyNavbar_LWe7" id="parametrized-http-emitter-module">Parametrized HTTP emitter module<a href="#parametrized-http-emitter-module" class="hash-link" aria-label="Direct link to Parametrized HTTP emitter module" title="Direct link to Parametrized HTTP emitter module">​</a></h4>
 <p>The parametrized emitter takes the same configs as the <a href="#http-emitter-module"><code>http</code> emitter</a> using the prefix <code>druid.emitter.parametrized.httpEmitting.</code>.
 For example:</p>
@@ -693,7 +691,7 @@ Instead use <code>recipientBaseUrlPattern</code> described in the table below.</
 <h4 class="anchor anchorWithStickyNavbar_LWe7" id="composing-emitter-module">Composing emitter module<a href="#composing-emitter-module" class="hash-link" aria-label="Direct link to Composing emitter module" title="Direct link to Composing emitter module">​</a></h4>
 <table><thead><tr><th>Property</th><th>Description</th><th>Default</th></tr></thead><tbody><tr><td><code>druid.emitter.composing.emitters</code></td><td>List of emitter modules to load, such as [&quot;logging&quot;,&quot;http&quot;].</td><td>[]</td></tr></tbody></table>
 <h4 class="anchor anchorWithStickyNavbar_LWe7" id="graphite-emitter">Graphite emitter<a href="#graphite-emitter" class="hash-link" aria-label="Direct link to Graphite emitter" title="Direct link to Graphite emitter">​</a></h4>
-<p>To use graphite as emitter set <code>druid.emitter=graphite</code>. For configuration details, see <a href="/docs/latest/development/extensions-contrib/graphite">Graphite emitter</a> for the Graphite emitter Druid extension.</p>
+<p>To use graphite as emitter set <code>druid.emitter=graphite</code>. For configuration details, see <a href="/docs/38.0.0/development/extensions-contrib/graphite">Graphite emitter</a> for the Graphite emitter Druid extension.</p>
 <h4 class="anchor anchorWithStickyNavbar_LWe7" id="switching-emitter">Switching emitter<a href="#switching-emitter" class="hash-link" aria-label="Direct link to Switching emitter" title="Direct link to Switching emitter">​</a></h4>
 <p>To use switching as emitter set <code>druid.emitter=switching</code>.</p>
 <table><thead><tr><th>Property</th><th>Description</th><th>Default</th></tr></thead><tbody><tr><td><code>druid.emitter.switching.emitters</code></td><td>JSON map of feed to list of emitter modules that will be used for the mapped feed, such as <code>{&quot;metrics&quot;:[&quot;http&quot;], &quot;alerts&quot;:[&quot;logging&quot;]}</code></td><td></td></tr><tr><td><code>druid.emitter.switching.defaultEmitters</code></td><td>JSON list of emitter modules to load that will be used if there i [...]
@@ -717,7 +715,7 @@ for both Broker and Historical processes, when defined in the common properties
 <p>A highly performant local cache implementation for Druid based on <a href="https://github.com/ben-manes/caffeine" target="_blank" rel="noopener noreferrer">Caffeine</a>. Requires a JRE8u60 or higher if using <code>COMMON_FJP</code>.</p>
 <h5 class="anchor anchorWithStickyNavbar_LWe7" id="configuration">Configuration<a href="#configuration" class="hash-link" aria-label="Direct link to Configuration" title="Direct link to Configuration">​</a></h5>
 <p>The following table shows the configuration options known to this module:</p>
-<table><thead><tr><th><code>runtime.properties</code></th><th>Description</th><th>Default</th></tr></thead><tbody><tr><td><code>druid.cache.type</code></td><td>Set this to <code>caffeine</code> or leave out parameter</td><td><code>caffeine</code></td></tr><tr><td><code>druid.cache.sizeInBytes</code></td><td>The maximum size of the cache in bytes on heap. It can be configured as described in <a href="/docs/latest/configuration/human-readable-byte">here</a>.</td><td>min(1GiB, Runtime.maxMe [...]
+<table><thead><tr><th><code>runtime.properties</code></th><th>Description</th><th>Default</th></tr></thead><tbody><tr><td><code>druid.cache.type</code></td><td>Set this to <code>caffeine</code> or leave out parameter</td><td><code>caffeine</code></td></tr><tr><td><code>druid.cache.sizeInBytes</code></td><td>The maximum size of the cache in bytes on heap. It can be configured as described in <a href="/docs/38.0.0/configuration/human-readable-byte">here</a>.</td><td>min(1GiB, Runtime.maxMe [...]
 <h5 class="anchor anchorWithStickyNavbar_LWe7" id="druidcachecacheexecutorfactory"><code>druid.cache.cacheExecutorFactory</code><a href="#druidcachecacheexecutorfactory" class="hash-link" aria-label="Direct link to druidcachecacheexecutorfactory" title="Direct link to druidcachecacheexecutorfactory">​</a></h5>
 <p>The following are the possible values for <code>druid.cache.cacheExecutorFactory</code>, which controls how maintenance tasks are run:</p>
 <ul>
@@ -740,7 +738,7 @@ If there is an L1 miss and L2 hit, it will also populate L1.</p>
 <h2 class="anchor anchorWithStickyNavbar_LWe7" id="general-query-configuration">General query configuration<a href="#general-query-configuration" class="hash-link" aria-label="Direct link to General query configuration" title="Direct link to General query configuration">​</a></h2>
 <p>This section describes configurations that control behavior of Druid&#x27;s query types, applicable to Broker, Historical, and Middle Manager processes.</p>
 <h3 class="anchor anchorWithStickyNavbar_LWe7" id="overriding-default-query-context-values">Overriding default query context values<a href="#overriding-default-query-context-values" class="hash-link" aria-label="Direct link to Overriding default query context values" title="Direct link to Overriding default query context values">​</a></h3>
-<p>You can override any <a href="/docs/latest/querying/query-context-reference#general-parameters">query context general parameter</a> default value by setting the runtime property in the format of <code>druid.query.default.context.{query_context_key}</code>.
+<p>You can override any <a href="/docs/38.0.0/querying/query-context-reference#general-parameters">query context general parameter</a> default value by setting the runtime property in the format of <code>druid.query.default.context.{query_context_key}</code>.
 The <code>druid.query.default.context.{query_context_key}</code> runtime property prefix applies to all current and future query context keys, the same as how query context parameter passed with the query works. You can override the runtime property value if the value for the same key is specified in the query contexts.</p>
 <p>The precedence chain for query context values is as follows:</p>
 <p>hard-coded default value in Druid code <code>&lt;-</code> runtime property not prefixed with <code>druid.query.default.context</code>
@@ -764,11 +762,11 @@ context). If query does have <code>maxQueuedBytes</code> in the context, then th
 <h3 class="anchor anchorWithStickyNavbar_LWe7" id="segmentmetadata-query-config">SegmentMetadata query config<a href="#segmentmetadata-query-config" class="hash-link" aria-label="Direct link to SegmentMetadata query config" title="Direct link to SegmentMetadata query config">​</a></h3>
 <table><thead><tr><th>Property</th><th>Description</th><th>Default</th></tr></thead><tbody><tr><td><code>druid.query.segmentMetadata.defaultHistory</code></td><td>When no interval is specified in the query, use a default interval of defaultHistory before the end time of the most recent segment, specified in ISO8601 format. This property also controls the duration of the default interval used by <code>GET</code> <code>/druid/v2/datasources/{dataSourceName}</code> interactions for retrievi [...]
 <h3 class="anchor anchorWithStickyNavbar_LWe7" id="groupby-query-config">GroupBy query config<a href="#groupby-query-config" class="hash-link" aria-label="Direct link to GroupBy query config" title="Direct link to GroupBy query config">​</a></h3>
-<p>This section describes the configurations for groupBy queries. You can set the runtime properties in the <code>runtime.properties</code> file on Broker, Historical, and Middle Manager processes. You can set the query context parameters through the <a href="/docs/latest/querying/query-context-reference">query context</a>.</p>
+<p>This section describes the configurations for groupBy queries. You can set the runtime properties in the <code>runtime.properties</code> file on Broker, Historical, and Middle Manager processes. You can set the query context parameters through the <a href="/docs/38.0.0/querying/query-context-reference">query context</a>.</p>
 <p>Supported runtime properties:</p>
-<table><thead><tr><th>Property</th><th>Description</th><th>Default</th></tr></thead><tbody><tr><td><code>druid.query.groupBy.maxSelectorDictionarySize</code></td><td>Maximum amount of heap space (approximately) to use for per-segment string dictionaries. See <a href="/docs/latest/querying/groupbyquery#memory-tuning-and-resource-limits">groupBy memory tuning and resource limits</a> for details.</td><td>100000000</td></tr><tr><td><code>druid.query.groupBy.maxMergingDictionarySize</code></t [...]
+<table><thead><tr><th>Property</th><th>Description</th><th>Default</th></tr></thead><tbody><tr><td><code>druid.query.groupBy.maxSelectorDictionarySize</code></td><td>Maximum amount of heap space (approximately) to use for per-segment string dictionaries. See <a href="/docs/38.0.0/querying/groupbyquery#memory-tuning-and-resource-limits">groupBy memory tuning and resource limits</a> for details.</td><td>100000000</td></tr><tr><td><code>druid.query.groupBy.maxMergingDictionarySize</code></t [...]
 <p>Supported query contexts:</p>
-<table><thead><tr><th>Key</th><th>Description</th></tr></thead><tbody><tr><td><code>maxSelectorDictionarySize</code></td><td>Can be used to lower the value of <code>druid.query.groupBy.maxMergingDictionarySize</code> for this query.</td></tr><tr><td><code>maxMergingDictionarySize</code></td><td>Can be used to lower the value of <code>druid.query.groupBy.maxMergingDictionarySize</code> for this query.</td></tr><tr><td><code>maxOnDiskStorage</code></td><td>Can be used to set <code>maxOnDis [...]
+<table><thead><tr><th>Key</th><th>Description</th></tr></thead><tbody><tr><td><code>maxSelectorDictionarySize</code></td><td>Can be used to lower the value of <code>druid.query.groupBy.maxMergingDictionarySize</code> for this query.</td></tr><tr><td><code>maxMergingDictionarySize</code></td><td>Can be used to lower the value of <code>druid.query.groupBy.maxMergingDictionarySize</code> for this query.</td></tr><tr><td><code>maxOnDiskStorage</code></td><td>Can be used to set <code>maxOnDis [...]
 <h3 class="anchor anchorWithStickyNavbar_LWe7" id="advanced-configurations">Advanced configurations<a href="#advanced-configurations" class="hash-link" aria-label="Direct link to Advanced configurations" title="Direct link to Advanced configurations">​</a></h3>
 <p>Supported runtime properties:</p>
 <table><thead><tr><th>Property</th><th>Description</th><th>Default</th></tr></thead><tbody><tr><td><code>druid.query.groupBy.singleThreaded</code></td><td>Merge results using a single thread.</td><td>false</td></tr><tr><td><code>druid.query.groupBy.bufferGrouperInitialBuckets</code></td><td>Initial number of buckets in the off-heap hash table used for grouping results. Set to 0 to use a reasonable default (1024).</td><td>0</td></tr><tr><td><code>druid.query.groupBy.bufferGrouperMaxLoadFa [...]
@@ -776,8 +774,8 @@ context). If query does have <code>maxQueuedBytes</code> in the context, then th
 <table><thead><tr><th>Key</th><th>Description</th><th>Default</th></tr></thead><tbody><tr><td><code>groupByIsSingleThreaded</code></td><td>Overrides the value of <code>druid.query.groupBy.singleThreaded</code> for this query.</td><td></td></tr><tr><td><code>bufferGrouperInitialBuckets</code></td><td>Overrides the value of <code>druid.query.groupBy.bufferGrouperInitialBuckets</code> for this query.</td><td>none</td></tr><tr><td><code>bufferGrouperMaxLoadFactor</code></td><td>Overrides the [...]
 <h3 class="anchor anchorWithStickyNavbar_LWe7" id="router">Router<a href="#router" class="hash-link" aria-label="Direct link to Router" title="Direct link to Router">​</a></h3>
 <h4 class="anchor anchorWithStickyNavbar_LWe7" id="router-process-configs">Router process configs<a href="#router-process-configs" class="hash-link" aria-label="Direct link to Router process configs" title="Direct link to Router process configs">​</a></h4>
-<table><thead><tr><th>Property</th><th>Description</th><th>Default</th></tr></thead><tbody><tr><td><code>druid.host</code></td><td>The host for the current process. This is used to advertise the current processes location as reachable from another process and should generally be specified such that <code>http://${druid.host}/</code> could actually talk to this process</td><td><code>InetAddress.getLocalHost().getCanonicalHostName()</code></td></tr><tr><td><code>druid.bindOnHost</code></td [...]
+<table><thead><tr><th>Property</th><th>Description</th><th>Default</th></tr></thead><tbody><tr><td><code>druid.host</code></td><td>The host for the current process. This is used to advertise the current processes location as reachable from another process and should generally be specified such that <code>http://${druid.host}/</code> could actually talk to this process</td><td><code>InetAddress.getLocalHost().getCanonicalHostName()</code></td></tr><tr><td><code>druid.bindOnHost</code></td [...]
 <h4 class="anchor anchorWithStickyNavbar_LWe7" id="runtime-configuration">Runtime configuration<a href="#runtime-configuration" class="hash-link" aria-label="Direct link to Runtime configuration" title="Direct link to Runtime configuration">​</a></h4>
-<table><thead><tr><th>Property</th><th>Description</th><th>Default</th></tr></thead><tbody><tr><td><code>druid.router.defaultBrokerServiceName</code></td><td>The default Broker to connect to in case service discovery fails.</td><td><code>druid/broker</code></td></tr><tr><td><code>druid.router.tierToBrokerMap</code></td><td>Queries for a certain tier of data are routed to their appropriate Broker. This value should be an ordered JSON map of tiers to Broker names. The priority of Brokers i [...]
+<table><thead><tr><th>Property</th><th>Description</th><th>Default</th></tr></thead><tbody><tr><td><code>druid.router.defaultBrokerServiceName</code></td><td>The default Broker to connect to in case service discovery fails.</td><td><code>druid/broker</code></td></tr><tr><td><code>druid.router.tierToBrokerMap</code></td><td>Queries for a certain tier of data are routed to their appropriate Broker. This value should be an ordered JSON map of tiers to Broker names. The priority of Brokers i [...]
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/38.0.0/configuration/indexing-service.html/index.html b/docs/38.0.0/configuration/indexing-service.html/index.html
new file mode 100644
index 000000000..e9ad31118
--- /dev/null
+++ b/docs/38.0.0/configuration/indexing-service.html/index.html
@@ -0,0 +1,11 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <meta charset="UTF-8">
+    <meta http-equiv="refresh" content="0; url=/docs/38.0.0/configuration/">
+    <link rel="canonical" href="/docs/38.0.0/configuration/" />
+  </head>
+  <script>
+    window.location.href = '/docs/38.0.0/configuration/' + window.location.search + window.location.hash;
+  </script>
+</html>
\ No newline at end of file
diff --git a/docs/38.0.0/configuration/logging.html/index.html b/docs/38.0.0/configuration/logging.html/index.html
new file mode 100644
index 000000000..ca383bd73
--- /dev/null
+++ b/docs/38.0.0/configuration/logging.html/index.html
@@ -0,0 +1,11 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <meta charset="UTF-8">
+    <meta http-equiv="refresh" content="0; url=/docs/38.0.0/configuration/logging">
+    <link rel="canonical" href="/docs/38.0.0/configuration/logging" />
+  </head>
+  <script>
+    window.location.href = '/docs/38.0.0/configuration/logging' + window.location.search + window.location.hash;
+  </script>
+</html>
\ No newline at end of file
diff --git a/docs/latest/configuration/logging/index.html b/docs/38.0.0/configuration/logging/index.html
similarity index 74%
copy from docs/latest/configuration/logging/index.html
copy to docs/38.0.0/configuration/logging/index.html
index 3f6a47ab2..33b96e822 100644
--- a/docs/latest/configuration/logging/index.html
+++ b/docs/38.0.0/configuration/logging/index.html
@@ -3,14 +3,14 @@
 <head>
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.7.0">
-<title data-rh="true">Logging | Apache® Druid</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://druid.apache.org/img/druid_nav.png"><meta data-rh="true" name="twitter:image" content="https://druid.apache.org/img/druid_nav.png"><meta data-rh="true" property="og:url" content="https://druid.apache.org/docs/latest/configuratio [...]
+<title data-rh="true">Logging | Apache® Druid</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://druid.apache.org/img/druid_nav.png"><meta data-rh="true" name="twitter:image" content="https://druid.apache.org/img/druid_nav.png"><meta data-rh="true" property="og:url" content="https://druid.apache.org/docs/38.0.0/configuratio [...]
 <script src="/js/clipboard.min.js"></script><link rel="stylesheet" href="/assets/css/styles.f3140859.css">
-<script src="/assets/js/runtime~main.3e1f3e8c.js" defer="defer"></script>
-<script src="/assets/js/main.b85ce480.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.ea7da916.js" defer="defer"></script>
+<script src="/assets/js/main.b6e60483.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
-<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const n=new URLSearchParams(window.location.search).entries();for(var[t,e]of n)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentEle [...]
-The same services also emit periodic <a href="/docs/latest/configuration/#metrics-monitors">metrics</a> about their state.
+<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const n=new URLSearchParams(window.location.search).entries();for(var[t,e]of n)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentEle [...]
+The same services also emit periodic <a href="/docs/38.0.0/configuration/#metrics-monitors">metrics</a> about their state.
 To disable metric info logs set the following runtime property: <code>-Ddruid.emitter.logging.logLevel=debug</code>.</p>
 <p>Druid uses <a href="http://logging.apache.org/log4j/2.x/" target="_blank" rel="noopener noreferrer">log4j2</a> for logging.
 The default configuration file log4j2.xml ships with Druid at the following path: <code>conf/druid/{config}/_common/log4j2.xml</code>.</p>
@@ -19,7 +19,7 @@ If that&#x27;s not suitable in your case, modify the <code>log4j2.xml</code> acc
 <p>The following example log4j2.xml is based upon the micro quickstart:</p>
 <div class="codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#bfc7d5;--prism-background-color:#292d3e"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#bfc7d5;background-color:#292d3e"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#bfc7d5"><span class="token plain">&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; ?&gt;</span><br></span><span class="token-lin [...]
 <p>Peons always output logs to standard output. Middle Managers redirect task logs from standard output to
-<a href="/docs/latest/configuration/#log-long-term-storage">long-term storage</a>.</p>
+<a href="/docs/38.0.0/configuration/#log-long-term-storage">long-term storage</a>.</p>
 <div class="theme-admonition theme-admonition-info admonition_xJq3 alert alert--info"><div class="admonitionHeading_Gvgb"><span class="admonitionIcon_Rf37"><svg viewBox="0 0 14 16"><path fill-rule="evenodd" d="M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"></path></svg></span>info</div><div class="admonitionContent_BuS1"><p>Druid shares the log4j configurat [...]
 However, you must define a console appender in the logger for your peon processes.
 If you don&#x27;t define a console appender, Druid creates and configures a new console appender
@@ -38,10 +38,6 @@ For example, <code>log/historical.stdout.log</code>.
 This consists mainly of messages from the
 Java runtime itself.
 This file is not rotated, but it is generally small due to the low volume of messages.
-If necessary, you can truncate it using the Linux command <code>truncate --size 0 log/historical.stdout.log</code>.</p>
-<h2 class="anchor anchorWithStickyNavbar_LWe7" id="set-the-logs-to-asynchronously-write">Set the logs to asynchronously write<a href="#set-the-logs-to-asynchronously-write" class="hash-link" aria-label="Direct link to Set the logs to asynchronously write" title="Direct link to Set the logs to asynchronously write">​</a></h2>
-<p>If your logs are really chatty, you can set them to write asynchronously.
-The following example shows a <code>log4j2.xml</code> that configures some of the more chatty classes to write asynchronously:</p>
-<div class="codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#bfc7d5;--prism-background-color:#292d3e"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#bfc7d5;background-color:#292d3e"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#bfc7d5"><span class="token plain">&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; ?&gt;</span><br></span><span class="token-lin [...]
+If necessary, you can truncate it using the Linux command <code>truncate --size 0 log/historical.stdout.log</code>.</p></div></article><nav class="pagination-nav docusaurus-mt-lg" aria-label="Docs pages"><a class="pagination-nav__link pagination-nav__link--prev" href="/docs/38.0.0/configuration/extensions"><div class="pagination-nav__sublabel">Previous</div><div class="pagination-nav__label">Extensions</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/docs/38.0.0 [...]
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/38.0.0/configuration/production-cluster.html/index.html b/docs/38.0.0/configuration/production-cluster.html/index.html
new file mode 100644
index 000000000..dc4f3ffeb
--- /dev/null
+++ b/docs/38.0.0/configuration/production-cluster.html/index.html
@@ -0,0 +1,11 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <meta charset="UTF-8">
+    <meta http-equiv="refresh" content="0; url=/docs/38.0.0/tutorials/cluster">
+    <link rel="canonical" href="/docs/38.0.0/tutorials/cluster" />
+  </head>
+  <script>
+    window.location.href = '/docs/38.0.0/tutorials/cluster' + window.location.search + window.location.hash;
+  </script>
+</html>
\ No newline at end of file
diff --git a/docs/38.0.0/configuration/realtime.html/index.html b/docs/38.0.0/configuration/realtime.html/index.html
new file mode 100644
index 000000000..d8452934c
--- /dev/null
+++ b/docs/38.0.0/configuration/realtime.html/index.html
@@ -0,0 +1,11 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <meta charset="UTF-8">
+    <meta http-equiv="refresh" content="0; url=/docs/38.0.0/ingestion/standalone-realtime">
+    <link rel="canonical" href="/docs/38.0.0/ingestion/standalone-realtime" />
+  </head>
+  <script>
+    window.location.href = '/docs/38.0.0/ingestion/standalone-realtime' + window.location.search + window.location.hash;
+  </script>
+</html>
\ No newline at end of file
diff --git a/docs/38.0.0/configuration/simple-cluster.html/index.html b/docs/38.0.0/configuration/simple-cluster.html/index.html
new file mode 100644
index 000000000..dc4f3ffeb
--- /dev/null
+++ b/docs/38.0.0/configuration/simple-cluster.html/index.html
@@ -0,0 +1,11 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <meta charset="UTF-8">
+    <meta http-equiv="refresh" content="0; url=/docs/38.0.0/tutorials/cluster">
+    <link rel="canonical" href="/docs/38.0.0/tutorials/cluster" />
+  </head>
+  <script>
+    window.location.href = '/docs/38.0.0/tutorials/cluster' + window.location.search + window.location.hash;
+  </script>
+</html>
\ No newline at end of file
diff --git a/docs/38.0.0/configuration/zookeeper.html/index.html b/docs/38.0.0/configuration/zookeeper.html/index.html
new file mode 100644
index 000000000..62833ac58
--- /dev/null
+++ b/docs/38.0.0/configuration/zookeeper.html/index.html
@@ -0,0 +1,11 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <meta charset="UTF-8">
+    <meta http-equiv="refresh" content="0; url=/docs/38.0.0/design/zookeeper">
+    <link rel="canonical" href="/docs/38.0.0/design/zookeeper" />
+  </head>
+  <script>
+    window.location.href = '/docs/38.0.0/design/zookeeper' + window.location.search + window.location.hash;
+  </script>
+</html>
\ No newline at end of file
diff --git a/docs/38.0.0/data-management.html/index.html b/docs/38.0.0/data-management.html/index.html
new file mode 100644
index 000000000..71c17c56d
--- /dev/null
+++ b/docs/38.0.0/data-management.html/index.html
@@ -0,0 +1,11 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <meta charset="UTF-8">
+    <meta http-equiv="refresh" content="0; url=/docs/38.0.0/data-management/">
+    <link rel="canonical" href="/docs/38.0.0/data-management/" />
+  </head>
+  <script>
+    window.location.href = '/docs/38.0.0/data-management/' + window.location.search + window.location.hash;
+  </script>
+</html>
\ No newline at end of file
diff --git a/docs/38.0.0/data-management/automatic-compaction.html/index.html b/docs/38.0.0/data-management/automatic-compaction.html/index.html
new file mode 100644
index 000000000..72850278c
--- /dev/null
+++ b/docs/38.0.0/data-management/automatic-compaction.html/index.html
@@ -0,0 +1,11 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <meta charset="UTF-8">
+    <meta http-equiv="refresh" content="0; url=/docs/38.0.0/data-management/automatic-compaction">
+    <link rel="canonical" href="/docs/38.0.0/data-management/automatic-compaction" />
+  </head>
+  <script>
+    window.location.href = '/docs/38.0.0/data-management/automatic-compaction' + window.location.search + window.location.hash;
+  </script>
+</html>
\ No newline at end of file
diff --git a/docs/latest/data-management/automatic-compaction/index.html b/docs/38.0.0/data-management/automatic-compaction/index.html
similarity index 94%
copy from docs/latest/data-management/automatic-compaction/index.html
copy to docs/38.0.0/data-management/automatic-compaction/index.html
index 36ed516e5..0cc57d01b 100644
--- a/docs/latest/data-management/automatic-compaction/index.html
+++ b/docs/38.0.0/data-management/automatic-compaction/index.html
@@ -3,26 +3,26 @@
 <head>
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.7.0">
-<title data-rh="true">Automatic compaction | Apache® Druid</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://druid.apache.org/img/druid_nav.png"><meta data-rh="true" name="twitter:image" content="https://druid.apache.org/img/druid_nav.png"><meta data-rh="true" property="og:url" content="https://druid.apache.org/docs/latest [...]
+<title data-rh="true">Automatic compaction | Apache® Druid</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://druid.apache.org/img/druid_nav.png"><meta data-rh="true" name="twitter:image" content="https://druid.apache.org/img/druid_nav.png"><meta data-rh="true" property="og:url" content="https://druid.apache.org/docs/38.0.0 [...]
 <script src="/js/clipboard.min.js"></script><link rel="stylesheet" href="/assets/css/styles.f3140859.css">
-<script src="/assets/js/runtime~main.3e1f3e8c.js" defer="defer"></script>
-<script src="/assets/js/main.b85ce480.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.ea7da916.js" defer="defer"></script>
+<script src="/assets/js/main.b6e60483.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
-<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const n=new URLSearchParams(window.location.search).entries();for(var[t,e]of n)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentEle [...]
+<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const n=new URLSearchParams(window.location.search).entries();for(var[t,e]of n)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentEle [...]
 <div class="theme-admonition theme-admonition-info admonition_xJq3 alert alert--info"><div class="admonitionHeading_Gvgb"><span class="admonitionIcon_Rf37"><svg viewBox="0 0 14 16"><path fill-rule="evenodd" d="M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"></path></svg></span>info</div><div class="admonitionContent_BuS1"><p>Auto-compaction skips datasources [...]
 <p>There are two ways to run automatic compaction in Druid:</p>
 <ul>
 <li><strong>Compaction supervisors on the Overlord</strong> (recommended): Provides better reactivity, support for the MSQ task engine, and easier management through the supervisor framework. See <a href="#auto-compaction-using-compaction-supervisors">Auto-compaction using compaction supervisors</a>.</li>
 <li><strong>Coordinator duties</strong>: An alternative approach that runs compaction as a Coordinator duty. See <a href="#auto-compaction-using-coordinator-duties">Auto-compaction using Coordinator duties</a>.</li>
 </ul>
-<p>As a best practice, you should set up auto-compaction for all Druid datasources. You can run compaction tasks manually for cases where you want to allocate more system resources. For example, you may choose to run multiple compaction tasks in parallel to compact an existing datasource for the first time. See <a href="/docs/latest/data-management/compaction">Compaction</a> for additional details and use cases.</p>
+<p>As a best practice, you should set up auto-compaction for all Druid datasources. You can run compaction tasks manually for cases where you want to allocate more system resources. For example, you may choose to run multiple compaction tasks in parallel to compact an existing datasource for the first time. See <a href="/docs/38.0.0/data-management/compaction">Compaction</a> for additional details and use cases.</p>
 <p>This topic guides you through setting up automatic compaction for your Druid cluster. See the <a href="#examples">examples</a> for common use cases for automatic compaction.</p>
 <h2 class="anchor anchorWithStickyNavbar_LWe7" id="auto-compaction-syntax">Auto-compaction syntax<a href="#auto-compaction-syntax" class="hash-link" aria-label="Direct link to Auto-compaction syntax" title="Direct link to Auto-compaction syntax">​</a></h2>
 <p>You can configure automatic compaction dynamically without restarting Druid.
 The automatic compaction system uses the following syntax:</p>
 <div class="language-json codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#bfc7d5;--prism-background-color:#292d3e"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-json codeBlock_bY9V thin-scrollbar" style="color:#bfc7d5;background-color:#292d3e"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#bfc7d5"><span class="token punctuation" style="color:rgb(199, 146, 234)">{</span><span class="token plain"></span><br></span> [...]
-<p>Most fields in the auto-compaction configuration correlate to a typical <a href="/docs/latest/ingestion/ingestion-spec">Druid ingestion spec</a>.
+<p>Most fields in the auto-compaction configuration correlate to a typical <a href="/docs/38.0.0/ingestion/ingestion-spec">Druid ingestion spec</a>.
 The following properties only apply to auto-compaction:</p>
 <ul>
 <li><code>skipOffsetFromLatest</code></li>
@@ -37,17 +37,17 @@ The following properties are automatically set by the auto-compaction system:</p
 <li><code>id</code>: Generated using the task type, datasource name, interval, and timestamp. The task ID is prefixed with <code>auto</code>.</li>
 <li><code>context</code>: Set according to the user-provided <code>taskContext</code>.</li>
 </ul>
-<p>Compaction tasks typically fetch all <a href="/docs/latest/data-management/manual-compaction#compaction-io-configuration">relevant segments</a> prior to launching any subtasks,
+<p>Compaction tasks typically fetch all <a href="/docs/38.0.0/data-management/manual-compaction#compaction-io-configuration">relevant segments</a> prior to launching any subtasks,
 <em>unless</em> the following properties are all set to non-null values. It is strongly recommended to set them to non-null values to
 maximize performance and minimize disk usage of the <code>compact</code> tasks launched by auto-compaction:</p>
 <ul>
-<li><a href="/docs/latest/data-management/manual-compaction#compaction-granularity-spec"><code>granularitySpec</code></a>, with non-null values for each of <code>segmentGranularity</code>, <code>queryGranularity</code>, and <code>rollup</code></li>
-<li><a href="/docs/latest/data-management/manual-compaction#compaction-dimensions-spec"><code>dimensionsSpec</code></a></li>
+<li><a href="/docs/38.0.0/data-management/manual-compaction#compaction-granularity-spec"><code>granularitySpec</code></a>, with non-null values for each of <code>segmentGranularity</code>, <code>queryGranularity</code>, and <code>rollup</code></li>
+<li><a href="/docs/38.0.0/data-management/manual-compaction#compaction-dimensions-spec"><code>dimensionsSpec</code></a></li>
 <li><code>metricsSpec</code></li>
 </ul>
-<p>For more details on each of the specs in an auto-compaction configuration, see <a href="/docs/latest/configuration/#automatic-compaction-dynamic-configuration">Automatic compaction dynamic configuration</a>.</p>
+<p>For more details on each of the specs in an auto-compaction configuration, see <a href="/docs/38.0.0/configuration/#automatic-compaction-dynamic-configuration">Automatic compaction dynamic configuration</a>.</p>
 <h2 class="anchor anchorWithStickyNavbar_LWe7" id="auto-compaction-using-compaction-supervisors">Auto-compaction using compaction supervisors<a href="#auto-compaction-using-compaction-supervisors" class="hash-link" aria-label="Direct link to Auto-compaction using compaction supervisors" title="Direct link to Auto-compaction using compaction supervisors">​</a></h2>
-<div class="theme-admonition theme-admonition-info admonition_xJq3 alert alert--info"><div class="admonitionHeading_Gvgb"><span class="admonitionIcon_Rf37"><svg viewBox="0 0 14 16"><path fill-rule="evenodd" d="M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"></path></svg></span>info</div><div class="admonitionContent_BuS1"><p>For advanced time-based data life [...]
+<div class="theme-admonition theme-admonition-info admonition_xJq3 alert alert--info"><div class="admonitionHeading_Gvgb"><span class="admonitionIcon_Rf37"><svg viewBox="0 0 14 16"><path fill-rule="evenodd" d="M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"></path></svg></span>info</div><div class="admonitionContent_BuS1"><p>For advanced time-based data life [...]
 <p>The recommended way to run automatic compaction is using compaction supervisors on the Overlord. Compaction supervisors provide the following benefits:</p>
 <ul>
 <li>Can use the supervisor framework to get information about the auto-compaction, such as status or state</li>
@@ -56,7 +56,7 @@ maximize performance and minimize disk usage of the <code>compact</code> tasks l
 <li>More reactive and submits tasks as soon as a compaction slot is available</li>
 <li>Tracked compaction task status to avoid re-compacting an interval repeatedly</li>
 <li>Can be configured to store compact fingerprints instead of full compaction state in metadata storage</li>
-<li>Supports minor compaction through the <a href="/docs/latest/api-reference/automatic-compaction-api#compaction-policy-mostfragmentedfirst">Most fragmented first policy</a></li>
+<li>Supports minor compaction through the <a href="/docs/38.0.0/api-reference/automatic-compaction-api#compaction-policy-mostfragmentedfirst">Most fragmented first policy</a></li>
 </ul>
 <p>To use a compaction supervisor, submit the auto-compaction configuration as a supervisor spec. Set <code>type</code> to <code>autocompact</code> and include the auto-compaction config in the <code>spec</code>.</p>
 <p>To submit an automatic compaction task, you can submit a supervisor spec through the <a href="#manage-compaction-supervisors-with-the-web-console">web console</a> or the <a href="#manage-compaction-supervisors-with-supervisor-apis">supervisor API</a>.</p>
@@ -79,21 +79,21 @@ maximize performance and minimize disk usage of the <code>compact</code> tasks l
 <p>Submitting an automatic compaction as a supervisor task uses the same endpoint as supervisor tasks for streaming ingestion.</p>
 <p>The following example configures auto-compaction for the <code>wikipedia</code> datasource:</p>
 <div class="language-sh codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#bfc7d5;--prism-background-color:#292d3e"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-sh codeBlock_bY9V thin-scrollbar" style="color:#bfc7d5;background-color:#292d3e"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#bfc7d5"><span class="token plain">curl --location --request POST &#x27;http://localhost:8081/druid/indexer/v1/supervisor&#x27; \< [...]
-<p>Note that if you omit <code>spec.engine</code>, Druid uses the default compaction engine. You can control the default compaction engine by setting <code>engine</code> in the <a href="/docs/latest/api-reference/automatic-compaction-api#update-cluster-level-compaction-config">compaction dynamic config</a>. If <code>spec.engine</code> and <code>engine</code> in compaction dynamic config are omitted, Druid defaults to the <code>native</code> engine.</p>
+<p>Note that if you omit <code>spec.engine</code>, Druid uses the default compaction engine. You can control the default compaction engine by setting <code>engine</code> in the <a href="/docs/38.0.0/api-reference/automatic-compaction-api#update-cluster-level-compaction-config">compaction dynamic config</a>. If <code>spec.engine</code> and <code>engine</code> in compaction dynamic config are omitted, Druid defaults to the <code>native</code> engine.</p>
 <p>To stop the automatic compaction task, suspend or terminate the supervisor through the UI or API.</p>
 <h3 class="anchor anchorWithStickyNavbar_LWe7" id="use-msq-for-auto-compaction">Use MSQ for auto-compaction<a href="#use-msq-for-auto-compaction" class="hash-link" aria-label="Direct link to Use MSQ for auto-compaction" title="Direct link to Use MSQ for auto-compaction">​</a></h3>
 <p>The MSQ task engine is available as a compaction engine if you configure auto-compaction to use compaction supervisors. To use the MSQ task engine for automatic compaction, make sure the following requirements are met:</p>
 <ul>
-<li>Enable <a href="/docs/latest/configuration/#metadata-retrieval">incremental segment metadata caching</a> on the Overlord.</li>
+<li>Enable <a href="/docs/38.0.0/configuration/#metadata-retrieval">incremental segment metadata caching</a> on the Overlord.</li>
 <li>Enable <a href="#auto-compaction-using-compaction-supervisors">Auto-compaction using compaction supervisors</a>.</li>
-<li>Update the <a href="/docs/latest/api-reference/automatic-compaction-api#update-cluster-level-compaction-config">compaction dynamic config</a> and set <code>engine</code> to <code>msq</code> to use the MSQ task engine as the default compaction engine for all compaction supervisors.<!-- -->
+<li>Update the <a href="/docs/38.0.0/api-reference/automatic-compaction-api#update-cluster-level-compaction-config">compaction dynamic config</a> and set <code>engine</code> to <code>msq</code> to use the MSQ task engine as the default compaction engine for all compaction supervisors.<!-- -->
 <ul>
 <li>Alternatively, you may override the default engine by setting <code>spec.engine</code> to <code>msq</code> in the compaction supervisor for the relevant datasource.</li>
 </ul>
 </li>
 <li>Have at least two compaction task slots available or set <code>spec.taskContext.maxNumTasks</code> to two or more. The MSQ task engine requires at least two tasks to run, one controller task and one worker task.</li>
 </ul>
-<p>You can use <a href="/docs/latest/multi-stage-query/reference#context-parameters">MSQ task engine context parameters</a> in <code>spec.taskContext</code> when configuring your datasource for automatic compaction, such as setting the maximum number of tasks using the <code>spec.taskContext.maxNumTasks</code> parameter. Some of the MSQ task engine context parameters overlap with automatic compaction parameters. When these settings overlap, set one or the other.</p>
+<p>You can use <a href="/docs/38.0.0/multi-stage-query/reference#context-parameters">MSQ task engine context parameters</a> in <code>spec.taskContext</code> when configuring your datasource for automatic compaction, such as setting the maximum number of tasks using the <code>spec.taskContext.maxNumTasks</code> parameter. Some of the MSQ task engine context parameters overlap with automatic compaction parameters. When these settings overlap, set one or the other.</p>
 <h4 class="anchor anchorWithStickyNavbar_LWe7" id="msq-task-engine-limitations">MSQ task engine limitations<a href="#msq-task-engine-limitations" class="hash-link" aria-label="Direct link to MSQ task engine limitations" title="Direct link to MSQ task engine limitations">​</a></h4>
 <p>When using the MSQ task engine for auto-compaction, keep the following limitations in mind:</p>
 <ul>
@@ -126,18 +126,18 @@ maximize performance and minimize disk usage of the <code>compact</code> tasks l
 </li>
 </ul>
 <h2 class="anchor anchorWithStickyNavbar_LWe7" id="auto-compaction-using-coordinator-duties">Auto-compaction using Coordinator duties<a href="#auto-compaction-using-coordinator-duties" class="hash-link" aria-label="Direct link to Auto-compaction using Coordinator duties" title="Direct link to Auto-compaction using Coordinator duties">​</a></h2>
-<p>As an alternative to compaction supervisors, you can run automatic compaction using Coordinator duties. The Coordinator <a href="/docs/latest/configuration/#data-management">indexing period</a>, <code>druid.coordinator.period.indexingPeriod</code>, controls the frequency of compaction tasks.
+<p>As an alternative to compaction supervisors, you can run automatic compaction using Coordinator duties. The Coordinator <a href="/docs/38.0.0/configuration/#data-management">indexing period</a>, <code>druid.coordinator.period.indexingPeriod</code>, controls the frequency of compaction tasks.
 The default indexing period is 30 minutes, meaning that the Coordinator first checks for segments to compact at most 30 minutes from when auto-compaction is enabled.
 This time period also affects other Coordinator duties such as cleanup of unused segments and stale pending segments.
 To configure the auto-compaction time period without interfering with <code>indexingPeriod</code>, see <a href="#change-compaction-frequency">Set frequency of compaction runs</a>.</p>
-<p>At every invocation of auto-compaction, the Coordinator initiates a <a href="/docs/latest/design/coordinator#segment-search-policy-in-automatic-compaction">segment search</a> to determine eligible segments to compact.
+<p>At every invocation of auto-compaction, the Coordinator initiates a <a href="/docs/38.0.0/design/coordinator#segment-search-policy-in-automatic-compaction">segment search</a> to determine eligible segments to compact.
 When there are eligible segments to compact, the Coordinator issues compaction tasks based on available worker capacity.
 If a compaction task takes longer than the indexing period, the Coordinator waits for it to finish before resuming the period for segment search.</p>
 <p>You can configure Coordinator-based auto-compaction for a datasource through the web console or programmatically via an API.
-This process differs for manual compaction tasks, which can be submitted from the <a href="/docs/latest/operations/web-console">Tasks view of the web console</a> or the <a href="/docs/latest/api-reference/tasks-api">Tasks API</a>.</p>
+This process differs for manual compaction tasks, which can be submitted from the <a href="/docs/38.0.0/operations/web-console">Tasks view of the web console</a> or the <a href="/docs/38.0.0/api-reference/tasks-api">Tasks API</a>.</p>
 <p>To use Coordinator-based auto-compaction, the following configuration requirements must be met:</p>
 <ul>
-<li>update the <a href="/docs/latest/api-reference/automatic-compaction-api#update-cluster-level-compaction-config">compaction dynamic config</a> and set:<!-- -->
+<li>update the <a href="/docs/38.0.0/api-reference/automatic-compaction-api#update-cluster-level-compaction-config">compaction dynamic config</a> and set:<!-- -->
 <ul>
 <li><code>useSupervisors</code> to <code>false</code></li>
 <li><code>engine</code> to <code>native</code> to use the native engine, since MSQ task engine is not supported as the compaction engine in Coordinator.</li>
@@ -157,13 +157,13 @@ This process differs for manual compaction tasks, which can be submitted from th
 <img decoding="async" loading="lazy" alt="Compaction config in web console" src="/assets/images/compaction-config-2d5e391fe681a9c978060c383357b531.png" width="1250" height="640" class="img_ev3q"></p>
 <p>To disable auto-compaction for a datasource, click <strong>Delete</strong> from the <strong>Compaction config</strong> dialog. Druid does not retain your auto-compaction configuration.</p>
 <h3 class="anchor anchorWithStickyNavbar_LWe7" id="manage-auto-compaction-using-coordinator-apis">Manage auto-compaction using Coordinator APIs<a href="#manage-auto-compaction-using-coordinator-apis" class="hash-link" aria-label="Direct link to Manage auto-compaction using Coordinator APIs" title="Direct link to Manage auto-compaction using Coordinator APIs">​</a></h3>
-<p>Use the <a href="/docs/latest/api-reference/automatic-compaction-api#manage-automatic-compaction">Automatic compaction API</a> to configure automatic compaction.
+<p>Use the <a href="/docs/38.0.0/api-reference/automatic-compaction-api#manage-automatic-compaction">Automatic compaction API</a> to configure automatic compaction.
 To enable auto-compaction for a datasource, create a JSON object with the desired auto-compaction settings.
 See <a href="#auto-compaction-syntax">Configure automatic compaction</a> for the syntax of an auto-compaction spec.
-Send the JSON object as a payload in a <a href="/docs/latest/api-reference/automatic-compaction-api#create-or-update-automatic-compaction-configuration"><code>POST</code> request</a> to <code>/druid/coordinator/v1/config/compaction</code>.
+Send the JSON object as a payload in a <a href="/docs/38.0.0/api-reference/automatic-compaction-api#create-or-update-automatic-compaction-configuration"><code>POST</code> request</a> to <code>/druid/coordinator/v1/config/compaction</code>.
 The following example configures auto-compaction for the <code>wikipedia</code> datasource:</p>
 <div class="language-sh codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#bfc7d5;--prism-background-color:#292d3e"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-sh codeBlock_bY9V thin-scrollbar" style="color:#bfc7d5;background-color:#292d3e"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#bfc7d5"><span class="token plain">curl --location --request POST &#x27;http://localhost:8081/druid/coordinator/v1/config/compacti [...]
-<p>To disable auto-compaction for a datasource, send a <a href="/docs/latest/api-reference/automatic-compaction-api#remove-automatic-compaction-configuration"><code>DELETE</code> request</a> to <code>/druid/coordinator/v1/config/compaction/{dataSource}</code>. Replace <code>{dataSource}</code> with the name of the datasource for which to disable auto-compaction. For example:</p>
+<p>To disable auto-compaction for a datasource, send a <a href="/docs/38.0.0/api-reference/automatic-compaction-api#remove-automatic-compaction-configuration"><code>DELETE</code> request</a> to <code>/druid/coordinator/v1/config/compaction/{dataSource}</code>. Replace <code>{dataSource}</code> with the name of the datasource for which to disable auto-compaction. For example:</p>
 <div class="language-sh codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#bfc7d5;--prism-background-color:#292d3e"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-sh codeBlock_bY9V thin-scrollbar" style="color:#bfc7d5;background-color:#292d3e"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#bfc7d5"><span class="token plain">curl --location --request DELETE &#x27;http://localhost:8081/druid/coordinator/v1/config/compac [...]
 <h3 class="anchor anchorWithStickyNavbar_LWe7" id="change-compaction-frequency">Change compaction frequency<a href="#change-compaction-frequency" class="hash-link" aria-label="Direct link to Change compaction frequency" title="Direct link to Change compaction frequency">​</a></h3>
 <p>If you want the Coordinator to check for compaction more frequently than its indexing period, create a separate group to handle compaction duties.
@@ -171,15 +171,15 @@ Set the time period of the duty group in the <code>coordinator/runtime.propertie
 The following example shows how to create a duty group named <code>compaction</code> and set the auto-compaction period to 1 minute:</p>
 <div class="codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#bfc7d5;--prism-background-color:#292d3e"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#bfc7d5;background-color:#292d3e"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#bfc7d5"><span class="token plain">druid.coordinator.dutyGroups=[&quot;compaction&quot;]</span><br></span><span class="token-line" style="co [...]
 <h3 class="anchor anchorWithStickyNavbar_LWe7" id="view-coordinator-duty-auto-compaction-stats">View Coordinator duty auto-compaction stats<a href="#view-coordinator-duty-auto-compaction-stats" class="hash-link" aria-label="Direct link to View Coordinator duty auto-compaction stats" title="Direct link to View Coordinator duty auto-compaction stats">​</a></h3>
-<p>After the Coordinator has initiated auto-compaction, you can view compaction statistics for the datasource, including the number of bytes, segments, and intervals already compacted and those awaiting compaction. The Coordinator also reports the total bytes, segments, and intervals not eligible for compaction in accordance with its <a href="/docs/latest/design/coordinator#segment-search-policy-in-automatic-compaction">segment search policy</a>.</p>
+<p>After the Coordinator has initiated auto-compaction, you can view compaction statistics for the datasource, including the number of bytes, segments, and intervals already compacted and those awaiting compaction. The Coordinator also reports the total bytes, segments, and intervals not eligible for compaction in accordance with its <a href="/docs/38.0.0/design/coordinator#segment-search-policy-in-automatic-compaction">segment search policy</a>.</p>
 <p>In the web console, the Datasources view displays auto-compaction statistics. The Tasks view shows the task information for compaction tasks that were triggered by the automatic compaction system.</p>
-<p>To get statistics by API, send a <a href="/docs/latest/api-reference/automatic-compaction-api#view-automatic-compaction-status"><code>GET</code> request</a> to <code>/druid/coordinator/v1/compaction/status</code>. To filter the results to a particular datasource, pass the datasource name as a query parameter to the request—for example, <code>/druid/coordinator/v1/compaction/status?dataSource=wikipedia</code>.</p>
+<p>To get statistics by API, send a <a href="/docs/38.0.0/api-reference/automatic-compaction-api#view-automatic-compaction-status"><code>GET</code> request</a> to <code>/druid/coordinator/v1/compaction/status</code>. To filter the results to a particular datasource, pass the datasource name as a query parameter to the request—for example, <code>/druid/coordinator/v1/compaction/status?dataSource=wikipedia</code>.</p>
 <h2 class="anchor anchorWithStickyNavbar_LWe7" id="avoid-conflicts-with-ingestion">Avoid conflicts with ingestion<a href="#avoid-conflicts-with-ingestion" class="hash-link" aria-label="Direct link to Avoid conflicts with ingestion" title="Direct link to Avoid conflicts with ingestion">​</a></h2>
 <p>Compaction tasks may be interrupted when they interfere with ingestion. For example, this occurs when an ingestion task needs to write data to a segment for a time interval locked for compaction. If there are continuous failures that prevent compaction from making progress, consider one of the following strategies:</p>
 <ul>
 <li>Enable <a href="#enable-concurrent-append-and-replace">concurrent append and replace tasks</a> on your datasource and on the ingestion tasks.</li>
 <li>Set <code>skipOffsetFromLatest</code> to reduce the chance of conflicts between ingestion and compaction. See more details in <a href="#skip-compaction-for-latest-segments">Skip compaction for latest segments</a>.</li>
-<li>Increase the priority value of compaction tasks relative to ingestion tasks. Only recommended for advanced users. This approach can cause ingestion jobs to fail or lag. To change the priority of compaction tasks, set <code>taskPriority</code> to the desired priority value in the auto-compaction configuration. For details on the priority values of different task types, see <a href="/docs/latest/ingestion/tasks#lock-priority">Lock priority</a>.</li>
+<li>Increase the priority value of compaction tasks relative to ingestion tasks. Only recommended for advanced users. This approach can cause ingestion jobs to fail or lag. To change the priority of compaction tasks, set <code>taskPriority</code> to the desired priority value in the auto-compaction configuration. For details on the priority values of different task types, see <a href="/docs/38.0.0/ingestion/tasks#lock-priority">Lock priority</a>.</li>
 </ul>
 <h3 class="anchor anchorWithStickyNavbar_LWe7" id="enable-concurrent-append-and-replace">Enable concurrent append and replace<a href="#enable-concurrent-append-and-replace" class="hash-link" aria-label="Direct link to Enable concurrent append and replace" title="Direct link to Enable concurrent append and replace">​</a></h3>
 <p>You can use concurrent append and replace to safely replace the existing data in an interval of a datasource while new data is being appended to that interval even during compaction.</p>
@@ -189,27 +189,27 @@ The following example shows how to create a duty group named <code>compaction</c
 <li>If you&#x27;re using the UI, enable <strong>Use concurrent locks</strong> in the <strong>Compaction config</strong> for your datasource.</li>
 </ul>
 <p>You&#x27;ll also need to update your ingestion jobs for the datasource to include the task context <code>&quot;useConcurrentLocks&quot;: true</code>.</p>
-<p>For information on how to do this, see <a href="/docs/latest/ingestion/concurrent-append-replace">Concurrent append and replace</a>.</p>
+<p>For information on how to do this, see <a href="/docs/38.0.0/ingestion/concurrent-append-replace">Concurrent append and replace</a>.</p>
 <h3 class="anchor anchorWithStickyNavbar_LWe7" id="skip-compaction-for-latest-segments">Skip compaction for latest segments<a href="#skip-compaction-for-latest-segments" class="hash-link" aria-label="Direct link to Skip compaction for latest segments" title="Direct link to Skip compaction for latest segments">​</a></h3>
 <p>The Coordinator compacts segments from newest to oldest. In the auto-compaction configuration, you can set a time period, relative to the end time of the most recent segment, for segments that should not be compacted. Assign this value to <code>skipOffsetFromLatest</code>. Note that this offset is not relative to the current time but to the latest segment time. For example, if you want to skip over segments from five days prior to the end time of the most recent segment, assign <code> [...]
 <p>To set <code>skipOffsetFromLatest</code>, consider how frequently you expect the stream to receive late arriving data. If your stream only occasionally receives late arriving data, the auto-compaction system robustly compacts your data even though data is ingested outside the <code>skipOffsetFromLatest</code> window. For most realtime streaming ingestion use cases, it is reasonable to set <code>skipOffsetFromLatest</code> to a few hours or a day.</p>
 <h2 class="anchor anchorWithStickyNavbar_LWe7" id="examples">Examples<a href="#examples" class="hash-link" aria-label="Direct link to Examples" title="Direct link to Examples">​</a></h2>
-<p>The following examples demonstrate potential use cases in which auto-compaction may improve your Druid performance. See more details in <a href="/docs/latest/data-management/compaction#compaction-guidelines">Compaction strategies</a>. The examples in this section do not change the underlying data.</p>
+<p>The following examples demonstrate potential use cases in which auto-compaction may improve your Druid performance. See more details in <a href="/docs/38.0.0/data-management/compaction#compaction-guidelines">Compaction strategies</a>. The examples in this section do not change the underlying data.</p>
 <h3 class="anchor anchorWithStickyNavbar_LWe7" id="change-segment-granularity">Change segment granularity<a href="#change-segment-granularity" class="hash-link" aria-label="Direct link to Change segment granularity" title="Direct link to Change segment granularity">​</a></h3>
-<p>You have a stream set up to ingest data with <code>HOUR</code> segment granularity into the <code>wikistream</code> datasource. You notice that your Druid segments are smaller than the <a href="/docs/latest/operations/segment-optimization">recommended segment size</a> of 5 million rows per segment. You wish to automatically compact segments to <code>DAY</code> granularity while leaving the latest week of data <em>not</em> compacted because your stream consistently receives data within [...]
+<p>You have a stream set up to ingest data with <code>HOUR</code> segment granularity into the <code>wikistream</code> datasource. You notice that your Druid segments are smaller than the <a href="/docs/38.0.0/operations/segment-optimization">recommended segment size</a> of 5 million rows per segment. You wish to automatically compact segments to <code>DAY</code> granularity while leaving the latest week of data <em>not</em> compacted because your stream consistently receives data within [...]
 <p>The following auto-compaction configuration compacts existing <code>HOUR</code> segments into <code>DAY</code> segments while leaving the latest week of data not compacted:</p>
 <div class="language-json codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#bfc7d5;--prism-background-color:#292d3e"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-json codeBlock_bY9V thin-scrollbar" style="color:#bfc7d5;background-color:#292d3e"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#bfc7d5"><span class="token punctuation" style="color:rgb(199, 146, 234)">{</span><span class="token plain"></span><br></span> [...]
 <h3 class="anchor anchorWithStickyNavbar_LWe7" id="update-partitioning-scheme">Update partitioning scheme<a href="#update-partitioning-scheme" class="hash-link" aria-label="Direct link to Update partitioning scheme" title="Direct link to Update partitioning scheme">​</a></h3>
-<p>For your <code>wikipedia</code> datasource, you want to optimize segment access when regularly ingesting data without compromising compute time when querying the data. Your ingestion spec for batch append uses <a href="/docs/latest/ingestion/native-batch#dynamic-partitioning">dynamic partitioning</a> to optimize for write-time operations, while your stream ingestion partitioning is configured by the stream service. You want to implement auto-compaction to reorganize the data with a su [...]
+<p>For your <code>wikipedia</code> datasource, you want to optimize segment access when regularly ingesting data without compromising compute time when querying the data. Your ingestion spec for batch append uses <a href="/docs/38.0.0/ingestion/native-batch#dynamic-partitioning">dynamic partitioning</a> to optimize for write-time operations, while your stream ingestion partitioning is configured by the stream service. You want to implement auto-compaction to reorganize the data with a su [...]
 <p>The following auto-compaction configuration compacts updates the <code>wikipedia</code> segments to use multi-dimension range partitioning:</p>
 <div class="language-json codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#bfc7d5;--prism-background-color:#292d3e"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-json codeBlock_bY9V thin-scrollbar" style="color:#bfc7d5;background-color:#292d3e"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#bfc7d5"><span class="token punctuation" style="color:rgb(199, 146, 234)">{</span><span class="token plain"></span><br></span> [...]
 <h2 class="anchor anchorWithStickyNavbar_LWe7" id="learn-more">Learn more<a href="#learn-more" class="hash-link" aria-label="Direct link to Learn more" title="Direct link to Learn more">​</a></h2>
 <p>See the following topics for more information:</p>
 <ul>
-<li><a href="/docs/latest/data-management/compaction">Compaction</a> for an overview of compaction in Druid.</li>
-<li><a href="/docs/latest/data-management/manual-compaction">Manual compaction</a> for how to manually perform compaction tasks.</li>
-<li><a href="/docs/latest/operations/segment-optimization">Segment optimization</a> for guidance on evaluating and optimizing Druid segment size.</li>
-<li><a href="/docs/latest/design/coordinator#automatic-compaction">Coordinator process</a> for details on how the Coordinator plans compaction tasks.</li>
-</ul></div></article><nav class="pagination-nav docusaurus-mt-lg" aria-label="Docs pages"><a class="pagination-nav__link pagination-nav__link--prev" href="/docs/latest/data-management/compaction"><div class="pagination-nav__sublabel">Previous</div><div class="pagination-nav__label">Compaction</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/docs/latest/data-management/manual-compaction"><div class="pagination-nav__sublabel">Next</div><div class="pagination-nav__ [...]
+<li><a href="/docs/38.0.0/data-management/compaction">Compaction</a> for an overview of compaction in Druid.</li>
+<li><a href="/docs/38.0.0/data-management/manual-compaction">Manual compaction</a> for how to manually perform compaction tasks.</li>
+<li><a href="/docs/38.0.0/operations/segment-optimization">Segment optimization</a> for guidance on evaluating and optimizing Druid segment size.</li>
+<li><a href="/docs/38.0.0/design/coordinator#automatic-compaction">Coordinator process</a> for details on how the Coordinator plans compaction tasks.</li>
+</ul></div></article><nav class="pagination-nav docusaurus-mt-lg" aria-label="Docs pages"><a class="pagination-nav__link pagination-nav__link--prev" href="/docs/38.0.0/data-management/compaction"><div class="pagination-nav__sublabel">Previous</div><div class="pagination-nav__label">Compaction</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/docs/38.0.0/data-management/manual-compaction"><div class="pagination-nav__sublabel">Next</div><div class="pagination-nav__ [...]
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/38.0.0/data-management/cascading-reindexing.html/index.html b/docs/38.0.0/data-management/cascading-reindexing.html/index.html
new file mode 100644
index 000000000..47d729d3f
--- /dev/null
+++ b/docs/38.0.0/data-management/cascading-reindexing.html/index.html
@@ -0,0 +1,11 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <meta charset="UTF-8">
+    <meta http-equiv="refresh" content="0; url=/docs/38.0.0/data-management/cascading-reindexing">
+    <link rel="canonical" href="/docs/38.0.0/data-management/cascading-reindexing" />
+  </head>
+  <script>
+    window.location.href = '/docs/38.0.0/data-management/cascading-reindexing' + window.location.search + window.location.hash;
+  </script>
+</html>
\ No newline at end of file
diff --git a/docs/latest/data-management/cascading-reindexing/index.html b/docs/38.0.0/data-management/cascading-reindexing/index.html
similarity index 96%
copy from docs/latest/data-management/cascading-reindexing/index.html
copy to docs/38.0.0/data-management/cascading-reindexing/index.html
index 42a482774..dbe75e33e 100644
--- a/docs/latest/data-management/cascading-reindexing/index.html
+++ b/docs/38.0.0/data-management/cascading-reindexing/index.html
@@ -3,13 +3,13 @@
 <head>
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.7.0">
-<title data-rh="true">Cascading reindexing | Apache® Druid</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://druid.apache.org/img/druid_nav.png"><meta data-rh="true" name="twitter:image" content="https://druid.apache.org/img/druid_nav.png"><meta data-rh="true" property="og:url" content="https://druid.apache.org/docs/latest [...]
+<title data-rh="true">Cascading reindexing | Apache® Druid</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://druid.apache.org/img/druid_nav.png"><meta data-rh="true" name="twitter:image" content="https://druid.apache.org/img/druid_nav.png"><meta data-rh="true" property="og:url" content="https://druid.apache.org/docs/38.0.0 [...]
 <script src="/js/clipboard.min.js"></script><link rel="stylesheet" href="/assets/css/styles.f3140859.css">
-<script src="/assets/js/runtime~main.3e1f3e8c.js" defer="defer"></script>
-<script src="/assets/js/main.b85ce480.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.ea7da916.js" defer="defer"></script>
+<script src="/assets/js/main.b6e60483.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
-<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const n=new URLSearchParams(window.location.search).entries();for(var[t,e]of n)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentEle [...]
+<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const n=new URLSearchParams(window.location.search).entries();for(var[t,e]of n)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentEle [...]
 <p>Cascading reindexing is a compaction supervisor template that lets you define age-based rules to automatically apply different compaction configurations as data ages. Instead of a single flat compaction configuration for an entire datasource, you define rules that say &quot;for data older than X, apply configuration Y.&quot; Reindexing is a more general term than compaction. Reindexing not only can merge segments with the same schema and partitioning, but also can change the segment s [...]
 <p>For example, you might want to:</p>
 <ul>
@@ -72,7 +72,7 @@
 <div class="language-json codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#bfc7d5;--prism-background-color:#292d3e"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-json codeBlock_bY9V thin-scrollbar" style="color:#bfc7d5;background-color:#292d3e"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#bfc7d5"><span class="token punctuation" style="color:rgb(199, 146, 234)">{</span><span class="token plain"></span><br></span> [...]
 <h3 class="anchor anchorWithStickyNavbar_LWe7" id="template-properties">Template properties<a href="#template-properties" class="hash-link" aria-label="Direct link to Template properties" title="Direct link to Template properties">​</a></h3>
 <p>The following table describes the properties of the <code>reindexCascade</code> template:</p>
-<table><thead><tr><th>Field</th><th>Description</th><th>Required</th><th>Default</th></tr></thead><tbody><tr><td><code>type</code></td><td>Must be <code>reindexCascade</code>.</td><td>Yes</td><td></td></tr><tr><td><code>dataSource</code></td><td>The datasource to compact.</td><td>Yes</td><td></td></tr><tr><td><code>ruleProvider</code></td><td><a href="#rule-provider-types">Rule provider</a> configuration that supplies reindexing rules.</td><td>Yes</td><td></td></tr><tr><td><code>defaultS [...]
+<table><thead><tr><th>Field</th><th>Description</th><th>Required</th><th>Default</th></tr></thead><tbody><tr><td><code>type</code></td><td>Must be <code>reindexCascade</code>.</td><td>Yes</td><td></td></tr><tr><td><code>dataSource</code></td><td>The datasource to compact.</td><td>Yes</td><td></td></tr><tr><td><code>ruleProvider</code></td><td><a href="#rule-provider-types">Rule provider</a> configuration that supplies reindexing rules.</td><td>Yes</td><td></td></tr><tr><td><code>defaultS [...]
 <h3 class="anchor anchorWithStickyNavbar_LWe7" id="rule-provider-types">Rule provider types<a href="#rule-provider-types" class="hash-link" aria-label="Direct link to Rule provider types" title="Direct link to Rule provider types">​</a></h3>
 <p>A rule provider supplies the reindexing rules to the template. Druid supports two provider types.</p>
 <h4 class="anchor anchorWithStickyNavbar_LWe7" id="inline-provider">Inline provider<a href="#inline-provider" class="hash-link" aria-label="Direct link to Inline provider" title="Direct link to Inline provider">​</a></h4>
@@ -96,9 +96,9 @@
 <p>Example:</p>
 <div class="language-json codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#bfc7d5;--prism-background-color:#292d3e"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-json codeBlock_bY9V thin-scrollbar" style="color:#bfc7d5;background-color:#292d3e"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#bfc7d5"><span class="token punctuation" style="color:rgb(199, 146, 234)">{</span><span class="token plain"></span><br></span> [...]
 <h4 class="anchor anchorWithStickyNavbar_LWe7" id="deletion-rules">Deletion rules<a href="#deletion-rules" class="hash-link" aria-label="Direct link to Deletion rules" title="Direct link to Deletion rules">​</a></h4>
-<p>Deletion rules specify rows to remove during compaction. The <code>deleteWhere</code> field defines a <a href="/docs/latest/querying/filters">Druid filter</a> that matches rows to <strong>delete</strong>. During processing, Druid wraps these filters in NOT logic — the compacted data retains rows that do <strong>not</strong> match the filter.</p>
+<p>Deletion rules specify rows to remove during compaction. The <code>deleteWhere</code> field defines a <a href="/docs/38.0.0/querying/filters">Druid filter</a> that matches rows to <strong>delete</strong>. During processing, Druid wraps these filters in NOT logic — the compacted data retains rows that do <strong>not</strong> match the filter.</p>
 <p>This is an additive rule — multiple deletion rules can apply to the same interval.</p>
-<table><thead><tr><th>Field</th><th>Description</th><th>Required</th></tr></thead><tbody><tr><td><code>id</code></td><td>Rule identifier.</td><td>Yes</td></tr><tr><td><code>description</code></td><td>Human-readable description.</td><td>No</td></tr><tr><td><code>olderThan</code></td><td>ISO 8601 period.</td><td>Yes</td></tr><tr><td><code>deleteWhere</code></td><td>A <a href="/docs/latest/querying/filters">Druid filter</a> matching rows to remove.</td><td>Yes</td></tr><tr><td><code>virtual [...]
+<table><thead><tr><th>Field</th><th>Description</th><th>Required</th></tr></thead><tbody><tr><td><code>id</code></td><td>Rule identifier.</td><td>Yes</td></tr><tr><td><code>description</code></td><td>Human-readable description.</td><td>No</td></tr><tr><td><code>olderThan</code></td><td>ISO 8601 period.</td><td>Yes</td></tr><tr><td><code>deleteWhere</code></td><td>A <a href="/docs/38.0.0/querying/filters">Druid filter</a> matching rows to remove.</td><td>Yes</td></tr><tr><td><code>virtual [...]
 <p><strong>What you write vs what happens:</strong></p>
 <p>If you define two deletion rules:</p>
 <ul>
@@ -111,13 +111,13 @@
 <h4 class="anchor anchorWithStickyNavbar_LWe7" id="index-spec-rules">Index spec rules<a href="#index-spec-rules" class="hash-link" aria-label="Direct link to Index spec rules" title="Direct link to Index spec rules">​</a></h4>
 <p>Index spec rules control compression and encoding settings for compacted segments, independently of partitioning.</p>
 <p>This is a non-additive rule — only one index spec rule applies per interval.</p>
-<table><thead><tr><th>Field</th><th>Description</th><th>Required</th></tr></thead><tbody><tr><td><code>id</code></td><td>Rule identifier.</td><td>Yes</td></tr><tr><td><code>description</code></td><td>Human-readable description.</td><td>No</td></tr><tr><td><code>olderThan</code></td><td>ISO 8601 period.</td><td>Yes</td></tr><tr><td><code>indexSpec</code></td><td>An <a href="/docs/latest/ingestion/ingestion-spec#indexspec">IndexSpec</a> object defining bitmap type, metric compression, and  [...]
+<table><thead><tr><th>Field</th><th>Description</th><th>Required</th></tr></thead><tbody><tr><td><code>id</code></td><td>Rule identifier.</td><td>Yes</td></tr><tr><td><code>description</code></td><td>Human-readable description.</td><td>No</td></tr><tr><td><code>olderThan</code></td><td>ISO 8601 period.</td><td>Yes</td></tr><tr><td><code>indexSpec</code></td><td>An <a href="/docs/38.0.0/ingestion/ingestion-spec#indexspec">IndexSpec</a> object defining bitmap type, metric compression, and  [...]
 <p>Example:</p>
 <div class="language-json codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#bfc7d5;--prism-background-color:#292d3e"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-json codeBlock_bY9V thin-scrollbar" style="color:#bfc7d5;background-color:#292d3e"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#bfc7d5"><span class="token punctuation" style="color:rgb(199, 146, 234)">{</span><span class="token plain"></span><br></span> [...]
 <h4 class="anchor anchorWithStickyNavbar_LWe7" id="data-schema-rules">Data schema rules<a href="#data-schema-rules" class="hash-link" aria-label="Direct link to Data schema rules" title="Direct link to Data schema rules">​</a></h4>
 <p>Data schema rules control the schema of compacted segments, including dimensions, metrics, query granularity, rollup, and projections.</p>
 <p>This is a non-additive rule — only one data schema rule applies per interval. At least one of the optional fields must be non-null.</p>
-<table><thead><tr><th>Field</th><th>Description</th><th>Required</th></tr></thead><tbody><tr><td><code>id</code></td><td>Rule identifier.</td><td>Yes</td></tr><tr><td><code>description</code></td><td>Human-readable description.</td><td>No</td></tr><tr><td><code>olderThan</code></td><td>ISO 8601 period.</td><td>Yes</td></tr><tr><td><code>dimensionsSpec</code></td><td><a href="/docs/latest/ingestion/ingestion-spec#dimensionsspec">Dimensions config</a> for the compacted segments.</td><td>No [...]
+<table><thead><tr><th>Field</th><th>Description</th><th>Required</th></tr></thead><tbody><tr><td><code>id</code></td><td>Rule identifier.</td><td>Yes</td></tr><tr><td><code>description</code></td><td>Human-readable description.</td><td>No</td></tr><tr><td><code>olderThan</code></td><td>ISO 8601 period.</td><td>Yes</td></tr><tr><td><code>dimensionsSpec</code></td><td><a href="/docs/38.0.0/ingestion/ingestion-spec#dimensionsspec">Dimensions config</a> for the compacted segments.</td><td>No [...]
 <p>Example:</p>
 <div class="language-json codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#bfc7d5;--prism-background-color:#292d3e"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-json codeBlock_bY9V thin-scrollbar" style="color:#bfc7d5;background-color:#292d3e"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#bfc7d5"><span class="token punctuation" style="color:rgb(199, 146, 234)">{</span><span class="token plain"></span><br></span> [...]
 <h2 class="anchor anchorWithStickyNavbar_LWe7" id="example">Example<a href="#example" class="hash-link" aria-label="Direct link to Example" title="Direct link to Example">​</a></h2>
@@ -146,10 +146,10 @@
 <h2 class="anchor anchorWithStickyNavbar_LWe7" id="learn-more">Learn more<a href="#learn-more" class="hash-link" aria-label="Direct link to Learn more" title="Direct link to Learn more">​</a></h2>
 <p>See the following topics for more information:</p>
 <ul>
-<li><a href="/docs/latest/data-management/automatic-compaction">Automatic compaction</a> for general auto-compaction configuration.</li>
-<li><a href="/docs/latest/data-management/automatic-compaction#auto-compaction-using-compaction-supervisors">Auto-compaction using compaction supervisors</a> for supervisor setup and management.</li>
-<li><a href="/docs/latest/data-management/automatic-compaction#use-msq-for-auto-compaction">MSQ task engine for auto-compaction</a> for MSQ engine requirements and limitations.</li>
-<li><a href="/docs/latest/data-management/compaction">Compaction</a> for an overview of compaction in Druid.</li>
-</ul></div></article><nav class="pagination-nav docusaurus-mt-lg" aria-label="Docs pages"><a class="pagination-nav__link pagination-nav__link--prev" href="/docs/latest/data-management/manual-compaction"><div class="pagination-nav__sublabel">Previous</div><div class="pagination-nav__label">Manual compaction</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/docs/latest/querying/sql"><div class="pagination-nav__sublabel">Next</div><div class="pagination-nav__label"> [...]
+<li><a href="/docs/38.0.0/data-management/automatic-compaction">Automatic compaction</a> for general auto-compaction configuration.</li>
+<li><a href="/docs/38.0.0/data-management/automatic-compaction#auto-compaction-using-compaction-supervisors">Auto-compaction using compaction supervisors</a> for supervisor setup and management.</li>
+<li><a href="/docs/38.0.0/data-management/automatic-compaction#use-msq-for-auto-compaction">MSQ task engine for auto-compaction</a> for MSQ engine requirements and limitations.</li>
+<li><a href="/docs/38.0.0/data-management/compaction">Compaction</a> for an overview of compaction in Druid.</li>
+</ul></div></article><nav class="pagination-nav docusaurus-mt-lg" aria-label="Docs pages"><a class="pagination-nav__link pagination-nav__link--prev" href="/docs/38.0.0/data-management/manual-compaction"><div class="pagination-nav__sublabel">Previous</div><div class="pagination-nav__label">Manual compaction</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/docs/38.0.0/querying/sql"><div class="pagination-nav__sublabel">Next</div><div class="pagination-nav__label"> [...]
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/38.0.0/data-management/compaction.html/index.html b/docs/38.0.0/data-management/compaction.html/index.html
new file mode 100644
index 000000000..af7a4c3fd
--- /dev/null
+++ b/docs/38.0.0/data-management/compaction.html/index.html
@@ -0,0 +1,11 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <meta charset="UTF-8">
+    <meta http-equiv="refresh" content="0; url=/docs/38.0.0/data-management/compaction">
+    <link rel="canonical" href="/docs/38.0.0/data-management/compaction" />
+  </head>
+  <script>
+    window.location.href = '/docs/38.0.0/data-management/compaction' + window.location.search + window.location.hash;
+  </script>
+</html>
\ No newline at end of file
diff --git a/docs/latest/data-management/compaction/index.html b/docs/38.0.0/data-management/compaction/index.html
similarity index 88%
copy from docs/latest/data-management/compaction/index.html
copy to docs/38.0.0/data-management/compaction/index.html
index 059b96561..d785b2b79 100644
--- a/docs/latest/data-management/compaction/index.html
+++ b/docs/38.0.0/data-management/compaction/index.html
@@ -3,18 +3,18 @@
 <head>
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.7.0">
-<title data-rh="true">Compaction | Apache® Druid</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://druid.apache.org/img/druid_nav.png"><meta data-rh="true" name="twitter:image" content="https://druid.apache.org/img/druid_nav.png"><meta data-rh="true" property="og:url" content="https://druid.apache.org/docs/latest/data-mana [...]
+<title data-rh="true">Compaction | Apache® Druid</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://druid.apache.org/img/druid_nav.png"><meta data-rh="true" name="twitter:image" content="https://druid.apache.org/img/druid_nav.png"><meta data-rh="true" property="og:url" content="https://druid.apache.org/docs/38.0.0/data-mana [...]
 <script src="/js/clipboard.min.js"></script><link rel="stylesheet" href="/assets/css/styles.f3140859.css">
-<script src="/assets/js/runtime~main.3e1f3e8c.js" defer="defer"></script>
-<script src="/assets/js/main.b85ce480.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.ea7da916.js" defer="defer"></script>
+<script src="/assets/js/main.b6e60483.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
-<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const n=new URLSearchParams(window.location.search).entries();for(var[t,e]of n)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentEle [...]
+<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const n=new URLSearchParams(window.location.search).entries();for(var[t,e]of n)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentEle [...]
 <h2 class="anchor anchorWithStickyNavbar_LWe7" id="compaction-guidelines">Compaction guidelines<a href="#compaction-guidelines" class="hash-link" aria-label="Direct link to Compaction guidelines" title="Direct link to Compaction guidelines">​</a></h2>
 <p>There are several cases to consider compaction for segment optimization:</p>
 <ul>
 <li>With streaming ingestion, data can arrive out of chronological order creating many small segments.</li>
-<li>If you append data using <code>appendToExisting</code> for <a href="/docs/latest/ingestion/native-batch">native batch</a> ingestion creating suboptimal segments.</li>
+<li>If you append data using <code>appendToExisting</code> for <a href="/docs/38.0.0/ingestion/native-batch">native batch</a> ingestion creating suboptimal segments.</li>
 <li>When you use <code>index_parallel</code> for parallel batch indexing and the parallel ingestion tasks create many small segments.</li>
 <li>When a misconfigured ingestion task creates oversized segments.</li>
 </ul>
@@ -24,49 +24,49 @@
 <li>If you don&#x27;t need fine-grained granularity for older data, you can use compaction to change older segments to a coarser query granularity. For example, from <code>minute</code> to <code>hour</code> or <code>hour</code> to <code>day</code>. This reduces the storage space required for older data.</li>
 <li>You can change the dimension order to improve sorting and reduce segment size.</li>
 <li>You can remove unused columns in compaction or implement an aggregation metric for older data.</li>
-<li>You can change segment rollup from dynamic partitioning with best-effort rollup to hash or range partitioning with perfect rollup. For more information on rollup, see <a href="/docs/latest/ingestion/rollup#perfect-rollup-vs-best-effort-rollup">perfect vs best-effort rollup</a>.</li>
+<li>You can change segment rollup from dynamic partitioning with best-effort rollup to hash or range partitioning with perfect rollup. For more information on rollup, see <a href="/docs/38.0.0/ingestion/rollup#perfect-rollup-vs-best-effort-rollup">perfect vs best-effort rollup</a>.</li>
 </ul>
-<p>Compaction does not improve performance in all situations. For example, if you rewrite your data with each ingestion task, you don&#x27;t need to use compaction. See <a href="/docs/latest/operations/segment-optimization">Segment optimization</a> for additional guidance to determine if compaction will help in your environment.</p>
+<p>Compaction does not improve performance in all situations. For example, if you rewrite your data with each ingestion task, you don&#x27;t need to use compaction. See <a href="/docs/38.0.0/operations/segment-optimization">Segment optimization</a> for additional guidance to determine if compaction will help in your environment.</p>
 <h2 class="anchor anchorWithStickyNavbar_LWe7" id="ways-to-run-compaction">Ways to run compaction<a href="#ways-to-run-compaction" class="hash-link" aria-label="Direct link to Ways to run compaction" title="Direct link to Ways to run compaction">​</a></h2>
 <p>Automatic compaction, also called auto-compaction, works in most use cases and should be your first option.</p>
-<p>The Coordinator uses its <a href="/docs/latest/design/coordinator#segment-search-policy-in-automatic-compaction">segment search policy</a> to periodically identify segments for compaction starting from newest to oldest. When the Coordinator discovers segments that have not been compacted or segments that were compacted with a different or changed spec, it submits compaction tasks for the time interval covering those segments.</p>
-<p>To learn more, see <a href="/docs/latest/data-management/automatic-compaction">Automatic compaction</a>.</p>
+<p>The Coordinator uses its <a href="/docs/38.0.0/design/coordinator#segment-search-policy-in-automatic-compaction">segment search policy</a> to periodically identify segments for compaction starting from newest to oldest. When the Coordinator discovers segments that have not been compacted or segments that were compacted with a different or changed spec, it submits compaction tasks for the time interval covering those segments.</p>
+<p>To learn more, see <a href="/docs/38.0.0/data-management/automatic-compaction">Automatic compaction</a>.</p>
 <p>In cases where you require more control over compaction, you can manually submit compaction tasks. For example:</p>
 <ul>
 <li>Automatic compaction is running into the limit of task slots available to it, so tasks are waiting for previous automatic compaction tasks to complete. Manual compaction can use all available task slots, therefore you can complete compaction more quickly by submitting more concurrent tasks for more intervals.</li>
 <li>You want to force compaction for a specific time range or you want to compact data out of chronological order.</li>
 </ul>
-<p>See <a href="/docs/latest/data-management/manual-compaction#setting-up-manual-compaction">Setting up a manual compaction task</a> for more about manual compaction tasks.</p>
-<p>For advanced data lifecycle management where you need different compaction configurations at different data ages — such as coarsening segment granularity, deleting old rows, or changing compression over time — see <a href="/docs/latest/data-management/cascading-reindexing">Cascading reindexing</a>.</p>
+<p>See <a href="/docs/38.0.0/data-management/manual-compaction#setting-up-manual-compaction">Setting up a manual compaction task</a> for more about manual compaction tasks.</p>
+<p>For advanced data lifecycle management where you need different compaction configurations at different data ages — such as coarsening segment granularity, deleting old rows, or changing compression over time — see <a href="/docs/38.0.0/data-management/cascading-reindexing">Cascading reindexing</a>.</p>
 <h2 class="anchor anchorWithStickyNavbar_LWe7" id="data-handling-with-compaction">Data handling with compaction<a href="#data-handling-with-compaction" class="hash-link" aria-label="Direct link to Data handling with compaction" title="Direct link to Data handling with compaction">​</a></h2>
 <p>During compaction, Druid overwrites the original set of segments with the compacted set. Druid also locks the time interval being compacted to ensure data consistency. By default, compaction tasks do not modify the underlying data. You can configure the compaction task to change the query granularity or add or remove dimensions in the compaction task. This means that the only changes to query results should be the result of intentional, not automatic, changes.</p>
-<p>You can set <code>dropExisting</code> in <code>ioConfig</code> to &quot;true&quot; in the compaction task to configure Druid to replace all existing segments fully contained by the interval. See the suggestion for reindexing with finer granularity under <a href="/docs/latest/ingestion/native-batch#implementation-considerations">Implementation considerations</a> for an example.</p>
+<p>You can set <code>dropExisting</code> in <code>ioConfig</code> to &quot;true&quot; in the compaction task to configure Druid to replace all existing segments fully contained by the interval. See the suggestion for reindexing with finer granularity under <a href="/docs/38.0.0/ingestion/native-batch#implementation-considerations">Implementation considerations</a> for an example.</p>
 <div class="theme-admonition theme-admonition-info admonition_xJq3 alert alert--info"><div class="admonitionHeading_Gvgb"><span class="admonitionIcon_Rf37"><svg viewBox="0 0 14 16"><path fill-rule="evenodd" d="M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"></path></svg></span>info</div><div class="admonitionContent_BuS1"><p>WARNING: <code>dropExisting</code [...]
 <p>If an ingestion task needs to write data to a segment for a time interval locked for compaction, by default the ingestion task supersedes the compaction task and the compaction task fails without finishing. For manual compaction tasks, you can adjust the input spec interval to avoid conflicts between ingestion and compaction. For automatic compaction, you can set the <code>skipOffsetFromLatest</code> key to adjust the auto-compaction starting point from the current time to reduce the  [...]
 Another option is to set the compaction task to higher priority than the ingestion task.
-For more information, see <a href="/docs/latest/data-management/automatic-compaction#avoid-conflicts-with-ingestion">Avoid conflicts with ingestion</a>.</p>
+For more information, see <a href="/docs/38.0.0/data-management/automatic-compaction#avoid-conflicts-with-ingestion">Avoid conflicts with ingestion</a>.</p>
 <h3 class="anchor anchorWithStickyNavbar_LWe7" id="segment-granularity-handling">Segment granularity handling<a href="#segment-granularity-handling" class="hash-link" aria-label="Direct link to Segment granularity handling" title="Direct link to Segment granularity handling">​</a></h3>
-<p>Unless you modify the segment granularity in <a href="/docs/latest/data-management/manual-compaction#compaction-granularity-spec"><code>granularitySpec</code></a>, Druid attempts to retain the granularity for the compacted segments. When segments have different segment granularities with no overlap in interval Druid creates a separate compaction task for each to retain the segment granularity in the compacted segment.</p>
+<p>Unless you modify the segment granularity in <a href="/docs/38.0.0/data-management/manual-compaction#compaction-granularity-spec"><code>granularitySpec</code></a>, Druid attempts to retain the granularity for the compacted segments. When segments have different segment granularities with no overlap in interval Druid creates a separate compaction task for each to retain the segment granularity in the compacted segment.</p>
 <p>If segments have different segment granularities before compaction but there is some overlap in interval, Druid attempts find start and end of the overlapping interval and uses the closest segment granularity level for the compacted segment.</p>
 <p>For example consider two overlapping segments: segment &quot;A&quot; for the interval 01/01/2020-01/02/2020 with day granularity and segment &quot;B&quot; for the interval 01/01/2020-02/01/2020. Druid attempts to combine and compact the overlapped segments. In this example, the earliest start time for the two segments is 01/01/2020 and the latest end time of the two segments is 02/01/2020. Druid compacts the segments together even though they have different segment granularity. Druid  [...]
 <h3 class="anchor anchorWithStickyNavbar_LWe7" id="query-granularity-handling">Query granularity handling<a href="#query-granularity-handling" class="hash-link" aria-label="Direct link to Query granularity handling" title="Direct link to Query granularity handling">​</a></h3>
-<p>Unless you modify the query granularity in the <a href="/docs/latest/data-management/manual-compaction#compaction-granularity-spec"><code>granularitySpec</code></a>, Druid retains the query granularity for the compacted segments. If segments have different query granularities before compaction, Druid chooses the finest level of granularity for the resulting compacted segment. For example if a compaction task combines two segments, one with day query granularity and one with minute que [...]
+<p>Unless you modify the query granularity in the <a href="/docs/38.0.0/data-management/manual-compaction#compaction-granularity-spec"><code>granularitySpec</code></a>, Druid retains the query granularity for the compacted segments. If segments have different query granularities before compaction, Druid chooses the finest level of granularity for the resulting compacted segment. For example if a compaction task combines two segments, one with day query granularity and one with minute que [...]
 <div class="theme-admonition theme-admonition-info admonition_xJq3 alert alert--info"><div class="admonitionHeading_Gvgb"><span class="admonitionIcon_Rf37"><svg viewBox="0 0 14 16"><path fill-rule="evenodd" d="M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"></path></svg></span>info</div><div class="admonitionContent_BuS1"><p>In Apache Druid 0.21.0 and prior, [...]
 <p>If you configure query granularity in compaction to go from a finer granularity like month to a coarser query granularity like year, then Druid overshadows the original segment with coarser granularity. Because the new segments have a coarser granularity, running a kill task to remove the overshadowed segments for those intervals will cause you to permanently lose the finer granularity data.</p>
 <h3 class="anchor anchorWithStickyNavbar_LWe7" id="dimension-handling">Dimension handling<a href="#dimension-handling" class="hash-link" aria-label="Direct link to Dimension handling" title="Direct link to Dimension handling">​</a></h3>
-<p>Apache Druid supports schema changes. Therefore, dimensions can be different across segments even if they are a part of the same datasource. See <a href="/docs/latest/design/segments#segments-with-different-schemas">Segments with different schemas</a>. If the input segments have different dimensions, the resulting compacted segment includes all dimensions of the input segments.</p>
+<p>Apache Druid supports schema changes. Therefore, dimensions can be different across segments even if they are a part of the same datasource. See <a href="/docs/38.0.0/design/segments#segments-with-different-schemas">Segments with different schemas</a>. If the input segments have different dimensions, the resulting compacted segment includes all dimensions of the input segments.</p>
 <p>Even when the input segments have the same set of dimensions, the dimension order or the data type of dimensions can be different. The dimensions of recent segments precede that of old segments in terms of data types and the ordering because more recent segments are more likely to have the preferred order and data types.</p>
 <p>If you want to control dimension ordering or ensure specific values for dimension types, you can configure a custom <code>dimensionsSpec</code> in the compaction task spec.</p>
 <h3 class="anchor anchorWithStickyNavbar_LWe7" id="rollup">Rollup<a href="#rollup" class="hash-link" aria-label="Direct link to Rollup" title="Direct link to Rollup">​</a></h3>
 <p>Druid only rolls up the output segment when <code>rollup</code> is set for all input segments.
-See <a href="/docs/latest/ingestion/rollup">Roll-up</a> for more details.
-You can check that your segments are rolled up or not by using <a href="/docs/latest/querying/segmentmetadataquery#analysistypes">Segment Metadata Queries</a>.</p>
+See <a href="/docs/38.0.0/ingestion/rollup">Roll-up</a> for more details.
+You can check that your segments are rolled up or not by using <a href="/docs/38.0.0/querying/segmentmetadataquery#analysistypes">Segment Metadata Queries</a>.</p>
 <h2 class="anchor anchorWithStickyNavbar_LWe7" id="learn-more">Learn more<a href="#learn-more" class="hash-link" aria-label="Direct link to Learn more" title="Direct link to Learn more">​</a></h2>
 <p>See the following topics for more information:</p>
 <ul>
-<li><a href="/docs/latest/operations/segment-optimization">Segment optimization</a> for guidance to determine if compaction will help in your case.</li>
-<li><a href="/docs/latest/data-management/manual-compaction">Manual compaction</a> for how to run a one-time compaction task.</li>
-<li><a href="/docs/latest/data-management/automatic-compaction">Automatic compaction</a> for how to enable and configure automatic compaction.</li>
-</ul></div></article><nav class="pagination-nav docusaurus-mt-lg" aria-label="Docs pages"><a class="pagination-nav__link pagination-nav__link--prev" href="/docs/latest/data-management/schema-changes"><div class="pagination-nav__sublabel">Previous</div><div class="pagination-nav__label">Schema changes</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/docs/latest/data-management/automatic-compaction"><div class="pagination-nav__sublabel">Next</div><div class="pagin [...]
+<li><a href="/docs/38.0.0/operations/segment-optimization">Segment optimization</a> for guidance to determine if compaction will help in your case.</li>
+<li><a href="/docs/38.0.0/data-management/manual-compaction">Manual compaction</a> for how to run a one-time compaction task.</li>
+<li><a href="/docs/38.0.0/data-management/automatic-compaction">Automatic compaction</a> for how to enable and configure automatic compaction.</li>
+</ul></div></article><nav class="pagination-nav docusaurus-mt-lg" aria-label="Docs pages"><a class="pagination-nav__link pagination-nav__link--prev" href="/docs/38.0.0/data-management/schema-changes"><div class="pagination-nav__sublabel">Previous</div><div class="pagination-nav__label">Schema changes</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/docs/38.0.0/data-management/automatic-compaction"><div class="pagination-nav__sublabel">Next</div><div class="pagin [...]
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/38.0.0/data-management/delete.html/index.html b/docs/38.0.0/data-management/delete.html/index.html
new file mode 100644
index 000000000..b79f6909f
--- /dev/null
+++ b/docs/38.0.0/data-management/delete.html/index.html
@@ -0,0 +1,11 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <meta charset="UTF-8">
+    <meta http-equiv="refresh" content="0; url=/docs/38.0.0/data-management/delete">
+    <link rel="canonical" href="/docs/38.0.0/data-management/delete" />
+  </head>
+  <script>
+    window.location.href = '/docs/38.0.0/data-management/delete' + window.location.search + window.location.hash;
+  </script>
+</html>
\ No newline at end of file
diff --git a/docs/latest/data-management/delete/index.html b/docs/38.0.0/data-management/delete/index.html
similarity index 87%
copy from docs/latest/data-management/delete/index.html
copy to docs/38.0.0/data-management/delete/index.html
index 2324f4b62..95cdc1f5a 100644
--- a/docs/latest/data-management/delete/index.html
+++ b/docs/38.0.0/data-management/delete/index.html
@@ -3,19 +3,19 @@
 <head>
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.7.0">
-<title data-rh="true">Data deletion | Apache® Druid</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://druid.apache.org/img/druid_nav.png"><meta data-rh="true" name="twitter:image" content="https://druid.apache.org/img/druid_nav.png"><meta data-rh="true" property="og:url" content="https://druid.apache.org/docs/latest/data-m [...]
+<title data-rh="true">Data deletion | Apache® Druid</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://druid.apache.org/img/druid_nav.png"><meta data-rh="true" name="twitter:image" content="https://druid.apache.org/img/druid_nav.png"><meta data-rh="true" property="og:url" content="https://druid.apache.org/docs/38.0.0/data-m [...]
 <script src="/js/clipboard.min.js"></script><link rel="stylesheet" href="/assets/css/styles.f3140859.css">
-<script src="/assets/js/runtime~main.3e1f3e8c.js" defer="defer"></script>
-<script src="/assets/js/main.b85ce480.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.ea7da916.js" defer="defer"></script>
+<script src="/assets/js/main.b6e60483.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
-<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const n=new URLSearchParams(window.location.search).entries();for(var[t,e]of n)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentEle [...]
-<p>Apache Druid stores data <a href="/docs/latest/design/storage">partitioned by time chunk</a> and supports
+<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const n=new URLSearchParams(window.location.search).entries();for(var[t,e]of n)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentEle [...]
+<p>Apache® Druid stores data <a href="/docs/38.0.0/design/storage">partitioned by time chunk</a> and supports
 deleting data for time chunks by dropping segments. This is a fast, metadata-only operation.</p>
 <p>Deletion by time range happens in two steps:</p>
 <ol>
-<li>Segments to be deleted must first be marked as <a href="/docs/latest/design/storage#segment-lifecycle">&quot;unused&quot;</a>. This can
-happen when a segment is dropped by a <a href="/docs/latest/operations/rule-configuration">drop rule</a> or when you manually mark a
+<li>Segments to be deleted must first be marked as <a href="/docs/38.0.0/design/storage#segment-lifecycle">&quot;unused&quot;</a>. This can
+happen when a segment is dropped by a <a href="/docs/38.0.0/operations/rule-configuration">drop rule</a> or when you manually mark a
 segment unused through the Coordinator API or web console. This is a soft delete: the data is not available for
 querying, but the segment files remains in deep storage, and the segment records remains in the metadata store.</li>
 <li>Once a segment is marked &quot;unused&quot;, you can use a <a href="#kill-task"><code>kill</code> task</a> to permanently delete the segment file from
@@ -23,26 +23,26 @@ deep storage and remove its record from the metadata store. This is a hard delet
 you have a backup.</li>
 </ol>
 <p>For documentation on disabling segments using the Coordinator API, see the
-<a href="/docs/latest/api-reference/legacy-metadata-api#datasources">Legacy metadata API reference</a>.</p>
-<p>A data deletion tutorial is available at <a href="/docs/latest/tutorials/tutorial-delete-data">Tutorial: Deleting data</a>.</p>
+<a href="/docs/38.0.0/api-reference/legacy-metadata-api#datasources">Legacy metadata API reference</a>.</p>
+<p>A data deletion tutorial is available at <a href="/docs/38.0.0/tutorials/tutorial-delete-data">Tutorial: Deleting data</a>.</p>
 <h2 class="anchor anchorWithStickyNavbar_LWe7" id="delete-data-automatically-using-drop-rules">Delete data automatically using drop rules<a href="#delete-data-automatically-using-drop-rules" class="hash-link" aria-label="Direct link to Delete data automatically using drop rules" title="Direct link to Delete data automatically using drop rules">​</a></h2>
-<p>Druid supports <a href="/docs/latest/operations/rule-configuration">load and drop rules</a>, which are used to define intervals of time
+<p>Druid supports <a href="/docs/38.0.0/operations/rule-configuration">load and drop rules</a>, which are used to define intervals of time
 where data should be preserved, and intervals where data should be discarded. Data that falls under a drop rule is
 marked unused, in the same manner as if you <a href="#delete-data-for-a-time-range-manually">manually mark that time range unused</a>. This is a
 fast, metadata-only operation.</p>
 <p>Data that is dropped in this way is marked unused, but remains in deep storage. To permanently delete it, use a
 <a href="#kill-task"><code>kill</code> task</a>.</p>
 <h2 class="anchor anchorWithStickyNavbar_LWe7" id="delete-specific-records">Delete specific records<a href="#delete-specific-records" class="hash-link" aria-label="Direct link to Delete specific records" title="Direct link to Delete specific records">​</a></h2>
-<p>Druid supports deleting specific records using <a href="/docs/latest/data-management/update#reindex">reindexing</a> with a filter. The filter specifies which
+<p>Druid supports deleting specific records using <a href="/docs/38.0.0/data-management/update#reindex">reindexing</a> with a filter. The filter specifies which
 data remains after reindexing, so it must be the inverse of the data you want to delete. Because segments must be
 rewritten to delete data in this way, it can be a time-consuming operation.</p>
 <p>For example, to delete records where <code>userName</code> is <code>&#x27;bob&#x27;</code> with native batch indexing, use a
-<a href="/docs/latest/ingestion/ingestion-spec#transformspec"><code>transformSpec</code></a> with filter <code>{&quot;type&quot;: &quot;not&quot;, &quot;field&quot;: {&quot;type&quot;: &quot;selector&quot;, &quot;dimension&quot;: &quot;userName&quot;, &quot;value&quot;: &quot;bob&quot;}}</code>.</p>
-<p>To delete the same records using SQL, use <a href="/docs/latest/multi-stage-query/concepts#overwrite-data-with-replace">REPLACE</a> with <code>WHERE userName &lt;&gt; &#x27;bob&#x27;</code>.</p>
-<p>To reindex using <a href="/docs/latest/ingestion/native-batch">native batch</a>, use the <a href="/docs/latest/ingestion/input-sources#druid-input-source"><code>druid</code> input
+<a href="/docs/38.0.0/ingestion/ingestion-spec#transformspec"><code>transformSpec</code></a> with filter <code>{&quot;type&quot;: &quot;not&quot;, &quot;field&quot;: {&quot;type&quot;: &quot;selector&quot;, &quot;dimension&quot;: &quot;userName&quot;, &quot;value&quot;: &quot;bob&quot;}}</code>.</p>
+<p>To delete the same records using SQL, use <a href="/docs/38.0.0/multi-stage-query/concepts#overwrite-data-with-replace">REPLACE</a> with <code>WHERE userName &lt;&gt; &#x27;bob&#x27;</code>.</p>
+<p>To reindex using <a href="/docs/38.0.0/ingestion/native-batch">native batch</a>, use the <a href="/docs/38.0.0/ingestion/input-sources#druid-input-source"><code>druid</code> input
 source</a>. If needed,
-<a href="/docs/latest/ingestion/ingestion-spec#transformspec"><code>transformSpec</code></a> can be used to filter or modify data during the
-reindexing job. To reindex with SQL, use <a href="/docs/latest/multi-stage-query/reference#replace"><code>REPLACE &lt;table&gt; OVERWRITE</code></a>
+<a href="/docs/38.0.0/ingestion/ingestion-spec#transformspec"><code>transformSpec</code></a> can be used to filter or modify data during the
+reindexing job. To reindex with SQL, use <a href="/docs/38.0.0/multi-stage-query/reference#replace"><code>REPLACE &lt;table&gt; OVERWRITE</code></a>
 with <code>SELECT ... FROM &lt;table&gt;</code>. (Druid does not have <code>UPDATE</code> or <code>ALTER TABLE</code> statements.) Any SQL SELECT query can be
 used to filter, modify, or enrich the data during the reindexing job.</p>
 <p>Data that is deleted in this way is marked unused, but remains in deep storage. To permanently delete it, use a <a href="#kill-task"><code>kill</code>
@@ -59,15 +59,20 @@ mark all segments unused using the Coordinator API or web console. Then, optiona
 <div class="language-json codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#bfc7d5;--prism-background-color:#292d3e"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-json codeBlock_bY9V thin-scrollbar" style="color:#bfc7d5;background-color:#292d3e"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#bfc7d5"><span class="token punctuation" style="color:rgb(199, 146, 234)">{</span><span class="token plain"></span><br></span> [...]
 <p>Some of the parameters used in the task payload are further explained below:</p>
 <table><thead><tr><th>Parameter</th><th>Default</th><th>Explanation</th></tr></thead><tbody><tr><td><code>versions</code></td><td>null (all versions)</td><td>List of segment versions within the specified <code>interval</code> for the kill task to delete. The default behavior is to delete all unused segment versions in the specified <code>interval</code>.</td></tr><tr><td><code>batchSize</code></td><td>100</td><td>Maximum number of segments that are deleted in one kill batch. Some operati [...]
-<p><strong>WARNING:</strong> The <code>kill</code> task permanently removes all information about the affected segments from the metadata store and
-deep storage. This operation cannot be undone.</p>
+<div class="theme-admonition theme-admonition-warning admonition_xJq3 alert alert--warning"><div class="admonitionHeading_Gvgb"><span class="admonitionIcon_Rf37"><svg viewBox="0 0 16 16"><path fill-rule="evenodd" d="M8.893 1.5c-.183-.31-.52-.5-.887-.5s-.703.19-.886.5L.138 13.499a.98.98 0 0 0 0 1.001c.193.31.53.501.886.501h13.964c.367 0 .704-.19.877-.5a1.03 1.03 0 0 0 .01-1.002L8.893 1.5zm.133 11.497H6.987v-2.003h2.039v2.003zm0-3.004H6.987V5.987h2.039v4.006z"></path></svg></span>warning</ [...]
+<li>The <code>kill</code> task permanently removes all information about the affected segments from the metadata store and
+deep storage. This operation cannot be undone.</li>
+<li>When using <a href="/docs/38.0.0/ingestion/concurrent-append-replace">concurrent locks</a> to run a <code>kill</code> task, ensure to keep a large
+enough buffer period before killing segments after they have been marked as unused. Otherwise, there may be a potential
+data loss if a concurrent append job upgrades one of the segments that are being killed.</li>
+</ul></div></div>
 <h3 class="anchor anchorWithStickyNavbar_LWe7" id="auto-kill-data-using-coordinator-duties">Auto-kill data using Coordinator duties<a href="#auto-kill-data-using-coordinator-duties" class="hash-link" aria-label="Direct link to Auto-kill data using Coordinator duties" title="Direct link to Auto-kill data using Coordinator duties">​</a></h3>
 <p>Instead of submitting <code>kill</code> tasks manually to permanently delete data for a given interval, you can enable auto-kill of unused segments on the Coordinator.
 The Coordinator runs a duty periodically to identify intervals containing unused segments that are eligible for kill. It then launches a <code>kill</code> task for each of these intervals.</p>
-<p>Refer to <a href="/docs/latest/configuration/#data-management">Data management on the Coordinator</a> to configure auto-kill of unused segments on the Coordinator.</p>
+<p>Refer to <a href="/docs/38.0.0/configuration/#data-management">Data management on the Coordinator</a> to configure auto-kill of unused segments on the Coordinator.</p>
 <h3 class="anchor anchorWithStickyNavbar_LWe7" id="auto-kill-data-on-the-overlord-experimental">Auto-kill data on the Overlord (Experimental)<a href="#auto-kill-data-on-the-overlord-experimental" class="hash-link" aria-label="Direct link to Auto-kill data on the Overlord (Experimental)" title="Direct link to Auto-kill data on the Overlord (Experimental)">​</a></h3>
 <div class="theme-admonition theme-admonition-info admonition_xJq3 alert alert--info"><div class="admonitionHeading_Gvgb"><span class="admonitionIcon_Rf37"><svg viewBox="0 0 14 16"><path fill-rule="evenodd" d="M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"></path></svg></span>info</div><div class="admonitionContent_BuS1"><p>This is an experimental feature t [...]
-<li>Can be used only if <a href="/docs/latest/configuration/#segment-metadata-cache">segment metadata caching</a> is enabled on the Overlord.</li>
+<li>Can be used only if <a href="/docs/38.0.0/configuration/#segment-metadata-cache">segment metadata caching</a> is enabled on the Overlord.</li>
 <li>MUST NOT be used if auto-kill of unused segments is already enabled on the Coordinator.</li>
 </ul></div></div>
 <p>This is an experimental feature to run kill tasks in an &quot;embedded&quot; mode on the Overlord itself.</p>
@@ -83,7 +88,7 @@ The Coordinator runs a duty periodically to identify intervals containing unused
 <li>can keep up with a large number of unused segments in the cluster.</li>
 <li>take advantage of the segment metadata cache on the Overlord.</li>
 </ul>
-<p>Refer to <a href="/docs/latest/configuration/#auto-kill-unused-segments-experimental">Auto-kill unused segments on the Overlord</a> to configure auto-kill of unused segments on the Overlord.
-See <a href="/docs/latest/operations/metrics#auto-kill-unused-segments">Auto-kill metrics</a> for the metrics emitted by embedded kill tasks.</p></div></article><nav class="pagination-nav docusaurus-mt-lg" aria-label="Docs pages"><a class="pagination-nav__link pagination-nav__link--prev" href="/docs/latest/data-management/update"><div class="pagination-nav__sublabel">Previous</div><div class="pagination-nav__label">Data updates</div></a><a class="pagination-nav__link pagination-nav__link [...]
+<p>Refer to <a href="/docs/38.0.0/configuration/#auto-kill-unused-segments-experimental">Auto-kill unused segments on the Overlord</a> to configure auto-kill of unused segments on the Overlord.
+See <a href="/docs/38.0.0/operations/metrics#auto-kill-unused-segments">Auto-kill metrics</a> for the metrics emitted by embedded kill tasks.</p></div></article><nav class="pagination-nav docusaurus-mt-lg" aria-label="Docs pages"><a class="pagination-nav__link pagination-nav__link--prev" href="/docs/38.0.0/data-management/update"><div class="pagination-nav__sublabel">Previous</div><div class="pagination-nav__label">Data updates</div></a><a class="pagination-nav__link pagination-nav__link [...]
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/latest/data-management/index.html b/docs/38.0.0/data-management/index.html
similarity index 86%
copy from docs/latest/data-management/index.html
copy to docs/38.0.0/data-management/index.html
index 620a19704..6427d13c8 100644
--- a/docs/latest/data-management/index.html
+++ b/docs/38.0.0/data-management/index.html
@@ -3,21 +3,21 @@
 <head>
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.7.0">
-<title data-rh="true">Data management | Apache® Druid</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://druid.apache.org/img/druid_nav.png"><meta data-rh="true" name="twitter:image" content="https://druid.apache.org/img/druid_nav.png"><meta data-rh="true" property="og:url" content="https://druid.apache.org/docs/latest/data [...]
+<title data-rh="true">Data management | Apache® Druid</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://druid.apache.org/img/druid_nav.png"><meta data-rh="true" name="twitter:image" content="https://druid.apache.org/img/druid_nav.png"><meta data-rh="true" property="og:url" content="https://druid.apache.org/docs/38.0.0/data [...]
 <script src="/js/clipboard.min.js"></script><link rel="stylesheet" href="/assets/css/styles.f3140859.css">
-<script src="/assets/js/runtime~main.3e1f3e8c.js" defer="defer"></script>
-<script src="/assets/js/main.b85ce480.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.ea7da916.js" defer="defer"></script>
+<script src="/assets/js/main.b6e60483.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
-<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const n=new URLSearchParams(window.location.search).entries();for(var[t,e]of n)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentEle [...]
-files called <a href="/docs/latest/design/segments">segments</a>. Data management operations involving replacing, or deleting,
+<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const n=new URLSearchParams(window.location.search).entries();for(var[t,e]of n)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentEle [...]
+files called <a href="/docs/38.0.0/design/segments">segments</a>. Data management operations involving replacing, or deleting,
 these segments include:</p>
 <ul>
-<li><a href="/docs/latest/data-management/update">Updates</a> to existing data.</li>
-<li><a href="/docs/latest/data-management/delete">Deletion</a> of existing data.</li>
-<li><a href="/docs/latest/data-management/schema-changes">Schema changes</a> for new and existing data.</li>
-<li><a href="/docs/latest/data-management/compaction">Compaction</a> and <a href="/docs/latest/data-management/automatic-compaction">automatic compaction</a>, which reindex existing data to
+<li><a href="/docs/38.0.0/data-management/update">Updates</a> to existing data.</li>
+<li><a href="/docs/38.0.0/data-management/delete">Deletion</a> of existing data.</li>
+<li><a href="/docs/38.0.0/data-management/schema-changes">Schema changes</a> for new and existing data.</li>
+<li><a href="/docs/38.0.0/data-management/compaction">Compaction</a> and <a href="/docs/38.0.0/data-management/automatic-compaction">automatic compaction</a>, which reindex existing data to
 optimize storage footprint and performance.</li>
-</ul></div></article><nav class="pagination-nav docusaurus-mt-lg" aria-label="Docs pages"><a class="pagination-nav__link pagination-nav__link--prev" href="/docs/latest/ingestion/faq"><div class="pagination-nav__sublabel">Previous</div><div class="pagination-nav__label">Troubleshooting FAQ</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/docs/latest/data-management/update"><div class="pagination-nav__sublabel">Next</div><div class="pagination-nav__label">Data upd [...]
+</ul></div></article><nav class="pagination-nav docusaurus-mt-lg" aria-label="Docs pages"><a class="pagination-nav__link pagination-nav__link--prev" href="/docs/38.0.0/ingestion/faq"><div class="pagination-nav__sublabel">Previous</div><div class="pagination-nav__label">Troubleshooting FAQ</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/docs/38.0.0/data-management/update"><div class="pagination-nav__sublabel">Next</div><div class="pagination-nav__label">Data upd [...]
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/38.0.0/data-management/manual-compaction.html/index.html b/docs/38.0.0/data-management/manual-compaction.html/index.html
new file mode 100644
index 000000000..a24674ef1
--- /dev/null
+++ b/docs/38.0.0/data-management/manual-compaction.html/index.html
@@ -0,0 +1,11 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <meta charset="UTF-8">
+    <meta http-equiv="refresh" content="0; url=/docs/38.0.0/data-management/manual-compaction">
+    <link rel="canonical" href="/docs/38.0.0/data-management/manual-compaction" />
+  </head>
+  <script>
+    window.location.href = '/docs/38.0.0/data-management/manual-compaction' + window.location.search + window.location.hash;
+  </script>
+</html>
\ No newline at end of file
diff --git a/docs/latest/data-management/manual-compaction/index.html b/docs/38.0.0/data-management/manual-compaction/index.html
similarity index 93%
copy from docs/latest/data-management/manual-compaction/index.html
copy to docs/38.0.0/data-management/manual-compaction/index.html
index a6dd4affc..d3a3cf56e 100644
--- a/docs/latest/data-management/manual-compaction/index.html
+++ b/docs/38.0.0/data-management/manual-compaction/index.html
@@ -3,22 +3,22 @@
 <head>
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.7.0">
-<title data-rh="true">Manual compaction | Apache® Druid</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://druid.apache.org/img/druid_nav.png"><meta data-rh="true" name="twitter:image" content="https://druid.apache.org/img/druid_nav.png"><meta data-rh="true" property="og:url" content="https://druid.apache.org/docs/latest/da [...]
+<title data-rh="true">Manual compaction | Apache® Druid</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://druid.apache.org/img/druid_nav.png"><meta data-rh="true" name="twitter:image" content="https://druid.apache.org/img/druid_nav.png"><meta data-rh="true" property="og:url" content="https://druid.apache.org/docs/38.0.0/da [...]
 <script src="/js/clipboard.min.js"></script><link rel="stylesheet" href="/assets/css/styles.f3140859.css">
-<script src="/assets/js/runtime~main.3e1f3e8c.js" defer="defer"></script>
-<script src="/assets/js/main.b85ce480.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.ea7da916.js" defer="defer"></script>
+<script src="/assets/js/main.b6e60483.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
-<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const n=new URLSearchParams(window.location.search).entries();for(var[t,e]of n)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentEle [...]
-<p>You can perform manual compaction where you submit a one-time compaction task for a specific interval. Generally, you don&#x27;t need to do this if you use <a href="/docs/latest/data-management/automatic-compaction">automatic compaction</a>, which is recommended for most workloads.</p>
+<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const n=new URLSearchParams(window.location.search).entries();for(var[t,e]of n)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentEle [...]
+<p>You can perform manual compaction where you submit a one-time compaction task for a specific interval. Generally, you don&#x27;t need to do this if you use <a href="/docs/38.0.0/data-management/automatic-compaction">automatic compaction</a>, which is recommended for most workloads.</p>
 <h2 class="anchor anchorWithStickyNavbar_LWe7" id="setting-up-manual-compaction">Setting up manual compaction<a href="#setting-up-manual-compaction" class="hash-link" aria-label="Direct link to Setting up manual compaction" title="Direct link to Setting up manual compaction">​</a></h2>
 <p>Compaction tasks merge all segments for the defined interval according to the following syntax:</p>
 <div class="language-json codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#bfc7d5;--prism-background-color:#292d3e"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-json codeBlock_bY9V thin-scrollbar" style="color:#bfc7d5;background-color:#292d3e"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#bfc7d5"><span class="token punctuation" style="color:rgb(199, 146, 234)">{</span><span class="token plain"></span><br></span> [...]
-<table><thead><tr><th>Field</th><th>Description</th><th>Required</th></tr></thead><tbody><tr><td><code>type</code></td><td>Task type. Set the value to <code>compact</code>.</td><td>Yes</td></tr><tr><td><code>id</code></td><td>Task ID</td><td>No</td></tr><tr><td><code>dataSource</code></td><td>Data source name to compact</td><td>Yes</td></tr><tr><td><code>ioConfig</code></td><td>I/O configuration for compaction task. See <a href="#compaction-io-configuration">Compaction I/O configuration< [...]
+<table><thead><tr><th>Field</th><th>Description</th><th>Required</th></tr></thead><tbody><tr><td><code>type</code></td><td>Task type. Set the value to <code>compact</code>.</td><td>Yes</td></tr><tr><td><code>id</code></td><td>Task ID</td><td>No</td></tr><tr><td><code>dataSource</code></td><td>Data source name to compact</td><td>Yes</td></tr><tr><td><code>ioConfig</code></td><td>I/O configuration for compaction task. See <a href="#compaction-io-configuration">Compaction I/O configuration< [...]
 <div class="theme-admonition theme-admonition-info admonition_xJq3 alert alert--info"><div class="admonitionHeading_Gvgb"><span class="admonitionIcon_Rf37"><svg viewBox="0 0 14 16"><path fill-rule="evenodd" d="M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"></path></svg></span>info</div><div class="admonitionContent_BuS1"><p>Note: Use <code>granularitySpec</ [...]
-<p>To control the number of result segments per time chunk, you can set <a href="/docs/latest/ingestion/native-batch#partitionsspec"><code>maxRowsPerSegment</code></a> or <a href="/docs/latest/ingestion/native-batch#tuningconfig"><code>numShards</code></a>.</p>
+<p>To control the number of result segments per time chunk, you can set <a href="/docs/38.0.0/ingestion/native-batch#partitionsspec"><code>maxRowsPerSegment</code></a> or <a href="/docs/38.0.0/ingestion/native-batch#tuningconfig"><code>numShards</code></a>.</p>
 <div class="theme-admonition theme-admonition-info admonition_xJq3 alert alert--info"><div class="admonitionHeading_Gvgb"><span class="admonitionIcon_Rf37"><svg viewBox="0 0 14 16"><path fill-rule="evenodd" d="M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"></path></svg></span>info</div><div class="admonitionContent_BuS1"><p>You can run multiple compaction t [...]
-<p>A compaction task internally generates an <code>index</code> or <code>index_parallel</code> task spec for performing compaction work with some fixed parameters. For example, its <code>inputSource</code> is always the <a href="/docs/latest/ingestion/input-sources"><code>druid</code> input source</a>, and <code>dimensionsSpec</code> and <code>metricsSpec</code> include all dimensions and metrics of the input segments by default.</p>
+<p>A compaction task internally generates an <code>index</code> or <code>index_parallel</code> task spec for performing compaction work with some fixed parameters. For example, its <code>inputSource</code> is always the <a href="/docs/38.0.0/ingestion/input-sources"><code>druid</code> input source</a>, and <code>dimensionsSpec</code> and <code>metricsSpec</code> include all dimensions and metrics of the input segments by default.</p>
 <p>Compaction tasks typically fetch all <a href="#compaction-io-configuration">relevant segments</a> prior to launching any subtasks, <em>unless</em> the following properties are all set to non-null values. It is strongly recommended to set them to non-null values to maximize performance and minimize disk usage of the <code>compact</code> task:</p>
 <ul>
 <li><a href="#compaction-granularity-spec"><code>granularitySpec</code></a>, with non-null values for each of <code>segmentGranularity</code>, <code>queryGranularity</code>, and <code>rollup</code></li>
@@ -59,15 +59,15 @@ If you don&#x27;t specify <code>granularitySpec</code>, Druid retains the origin
 <h2 class="anchor anchorWithStickyNavbar_LWe7" id="compaction-dimensions-spec">Compaction dimensions spec<a href="#compaction-dimensions-spec" class="hash-link" aria-label="Direct link to Compaction dimensions spec" title="Direct link to Compaction dimensions spec">​</a></h2>
 <table><thead><tr><th>Field</th><th>Description</th><th>Required</th></tr></thead><tbody><tr><td><code>dimensions</code></td><td>A list of dimension names or objects. Cannot have the same column in both <code>dimensions</code> and <code>dimensionExclusions</code>. Defaults to <code>null</code>, which preserves the original dimensions.</td><td>No</td></tr><tr><td><code>dimensionExclusions</code></td><td>The names of dimensions to exclude from compaction. Only names are supported here, not [...]
 <h2 class="anchor anchorWithStickyNavbar_LWe7" id="compaction-transform-spec">Compaction transform spec<a href="#compaction-transform-spec" class="hash-link" aria-label="Direct link to Compaction transform spec" title="Direct link to Compaction transform spec">​</a></h2>
-<table><thead><tr><th>Field</th><th>Description</th><th>Required</th></tr></thead><tbody><tr><td><code>filter</code></td><td>The <code>filter</code> conditionally filters input rows during compaction. Only rows that pass the filter will be included in the compacted segments. Any of Druid&#x27;s standard <a href="/docs/latest/querying/filters">query filters</a> can be used. Defaults to &#x27;null&#x27;, which will not filter any row.</td><td>No</td></tr></tbody></table>
+<table><thead><tr><th>Field</th><th>Description</th><th>Required</th></tr></thead><tbody><tr><td><code>filter</code></td><td>The <code>filter</code> conditionally filters input rows during compaction. Only rows that pass the filter will be included in the compacted segments. Any of Druid&#x27;s standard <a href="/docs/38.0.0/querying/filters">query filters</a> can be used. Defaults to &#x27;null&#x27;, which will not filter any row.</td><td>No</td></tr></tbody></table>
 <h2 class="anchor anchorWithStickyNavbar_LWe7" id="compaction-granularity-spec">Compaction granularity spec<a href="#compaction-granularity-spec" class="hash-link" aria-label="Direct link to Compaction granularity spec" title="Direct link to Compaction granularity spec">​</a></h2>
-<table><thead><tr><th>Field</th><th>Description</th><th>Required</th></tr></thead><tbody><tr><td><code>segmentGranularity</code></td><td>Time chunking period for the segment granularity. Defaults to &#x27;null&#x27;, which preserves the original segment granularity. Accepts all <a href="/docs/latest/querying/granularities">Query granularity</a> values.</td><td>No</td></tr><tr><td><code>queryGranularity</code></td><td>The resolution of timestamp storage within each segment. Defaults to &# [...]
+<table><thead><tr><th>Field</th><th>Description</th><th>Required</th></tr></thead><tbody><tr><td><code>segmentGranularity</code></td><td>Time chunking period for the segment granularity. Defaults to &#x27;null&#x27;, which preserves the original segment granularity. Accepts all <a href="/docs/38.0.0/querying/granularities">Query granularity</a> values.</td><td>No</td></tr><tr><td><code>queryGranularity</code></td><td>The resolution of timestamp storage within each segment. Defaults to &# [...]
 <h2 class="anchor anchorWithStickyNavbar_LWe7" id="learn-more">Learn more<a href="#learn-more" class="hash-link" aria-label="Direct link to Learn more" title="Direct link to Learn more">​</a></h2>
 <p>See the following topics for more information:</p>
 <ul>
-<li><a href="/docs/latest/data-management/compaction">Compaction</a> for an overview of compaction and how to set up manual compaction in Druid.</li>
-<li><a href="/docs/latest/operations/segment-optimization">Segment optimization</a> for guidance on evaluating and optimizing Druid segment size.</li>
-<li><a href="/docs/latest/design/coordinator#automatic-compaction">Coordinator process</a> for details on how the Coordinator plans compaction tasks.</li>
-</ul></div></article><nav class="pagination-nav docusaurus-mt-lg" aria-label="Docs pages"><a class="pagination-nav__link pagination-nav__link--prev" href="/docs/latest/data-management/automatic-compaction"><div class="pagination-nav__sublabel">Previous</div><div class="pagination-nav__label">Automatic compaction</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/docs/latest/data-management/cascading-reindexing"><div class="pagination-nav__sublabel">Next</div><div  [...]
+<li><a href="/docs/38.0.0/data-management/compaction">Compaction</a> for an overview of compaction and how to set up manual compaction in Druid.</li>
+<li><a href="/docs/38.0.0/operations/segment-optimization">Segment optimization</a> for guidance on evaluating and optimizing Druid segment size.</li>
+<li><a href="/docs/38.0.0/design/coordinator#automatic-compaction">Coordinator process</a> for details on how the Coordinator plans compaction tasks.</li>
+</ul></div></article><nav class="pagination-nav docusaurus-mt-lg" aria-label="Docs pages"><a class="pagination-nav__link pagination-nav__link--prev" href="/docs/38.0.0/data-management/automatic-compaction"><div class="pagination-nav__sublabel">Previous</div><div class="pagination-nav__label">Automatic compaction</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/docs/38.0.0/data-management/cascading-reindexing"><div class="pagination-nav__sublabel">Next</div><div  [...]
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/38.0.0/data-management/schema-changes.html/index.html b/docs/38.0.0/data-management/schema-changes.html/index.html
new file mode 100644
index 000000000..4879932ba
--- /dev/null
+++ b/docs/38.0.0/data-management/schema-changes.html/index.html
@@ -0,0 +1,11 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <meta charset="UTF-8">
+    <meta http-equiv="refresh" content="0; url=/docs/38.0.0/data-management/schema-changes">
+    <link rel="canonical" href="/docs/38.0.0/data-management/schema-changes" />
+  </head>
+  <script>
+    window.location.href = '/docs/38.0.0/data-management/schema-changes' + window.location.search + window.location.hash;
+  </script>
+</html>
\ No newline at end of file
diff --git a/docs/latest/data-management/schema-changes/index.html b/docs/38.0.0/data-management/schema-changes/index.html
similarity index 87%
copy from docs/latest/data-management/schema-changes/index.html
copy to docs/38.0.0/data-management/schema-changes/index.html
index 4849665e0..f50f8fa51 100644
--- a/docs/latest/data-management/schema-changes/index.html
+++ b/docs/38.0.0/data-management/schema-changes/index.html
@@ -3,22 +3,22 @@
 <head>
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.7.0">
-<title data-rh="true">Schema changes | Apache® Druid</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://druid.apache.org/img/druid_nav.png"><meta data-rh="true" name="twitter:image" content="https://druid.apache.org/img/druid_nav.png"><meta data-rh="true" property="og:url" content="https://druid.apache.org/docs/latest/data- [...]
+<title data-rh="true">Schema changes | Apache® Druid</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://druid.apache.org/img/druid_nav.png"><meta data-rh="true" name="twitter:image" content="https://druid.apache.org/img/druid_nav.png"><meta data-rh="true" property="og:url" content="https://druid.apache.org/docs/38.0.0/data- [...]
 <script src="/js/clipboard.min.js"></script><link rel="stylesheet" href="/assets/css/styles.f3140859.css">
-<script src="/assets/js/runtime~main.3e1f3e8c.js" defer="defer"></script>
-<script src="/assets/js/main.b85ce480.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.ea7da916.js" defer="defer"></script>
+<script src="/assets/js/main.b6e60483.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
-<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const n=new URLSearchParams(window.location.search).entries();for(var[t,e]of n)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentEle [...]
-<p>Apache Druid allows you to provide a new schema for new data without the need to update the schema of any existing data.
-It is sufficient to update your supervisor spec, if using <a href="/docs/latest/ingestion/#streaming">streaming ingestion</a>, or to
-provide the new schema the next time you do a <a href="/docs/latest/ingestion/#batch">batch ingestion</a>. This is made possible by
-the fact that each <a href="/docs/latest/design/segments">segment</a>, at the time it is created, stores a
+<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const n=new URLSearchParams(window.location.search).entries();for(var[t,e]of n)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentEle [...]
+<p>Apache® Druid allows you to provide a new schema for new data without the need to update the schema of any existing data.
+It is sufficient to update your supervisor spec, if using <a href="/docs/38.0.0/ingestion/#streaming">streaming ingestion</a>, or to
+provide the new schema the next time you do a <a href="/docs/38.0.0/ingestion/#batch">batch ingestion</a>. This is made possible by
+the fact that each <a href="/docs/38.0.0/design/segments">segment</a>, at the time it is created, stores a
 copy of its own schema. Druid reconciles all of these individual segment schemas automatically at query time.</p>
 <h2 class="anchor anchorWithStickyNavbar_LWe7" id="for-existing-data">For existing data<a href="#for-existing-data" class="hash-link" aria-label="Direct link to For existing data" title="Direct link to For existing data">​</a></h2>
 <p>Schema changes are sometimes necessary for existing data. For example, you may want to change the type of a column in
-previously-ingested data, or drop a column entirely. Druid handles this using <a href="/docs/latest/data-management/update">reindexing</a>, the same method
+previously-ingested data, or drop a column entirely. Druid handles this using <a href="/docs/38.0.0/data-management/update">reindexing</a>, the same method
 it uses to handle updates of existing data. Reindexing involves rewriting all affected segments and can be a
-time-consuming operation.</p></div></article><nav class="pagination-nav docusaurus-mt-lg" aria-label="Docs pages"><a class="pagination-nav__link pagination-nav__link--prev" href="/docs/latest/data-management/delete"><div class="pagination-nav__sublabel">Previous</div><div class="pagination-nav__label">Data deletion</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/docs/latest/data-management/compaction"><div class="pagination-nav__sublabel">Next</div><div class=" [...]
+time-consuming operation.</p></div></article><nav class="pagination-nav docusaurus-mt-lg" aria-label="Docs pages"><a class="pagination-nav__link pagination-nav__link--prev" href="/docs/38.0.0/data-management/delete"><div class="pagination-nav__sublabel">Previous</div><div class="pagination-nav__label">Data deletion</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/docs/38.0.0/data-management/compaction"><div class="pagination-nav__sublabel">Next</div><div class=" [...]
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/38.0.0/data-management/update.html/index.html b/docs/38.0.0/data-management/update.html/index.html
new file mode 100644
index 000000000..7bfe39004
--- /dev/null
+++ b/docs/38.0.0/data-management/update.html/index.html
@@ -0,0 +1,11 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <meta charset="UTF-8">
+    <meta http-equiv="refresh" content="0; url=/docs/38.0.0/data-management/update">
+    <link rel="canonical" href="/docs/38.0.0/data-management/update" />
+  </head>
+  <script>
+    window.location.href = '/docs/38.0.0/data-management/update' + window.location.search + window.location.hash;
+  </script>
+</html>
\ No newline at end of file
diff --git a/docs/latest/data-management/update/index.html b/docs/38.0.0/data-management/update/index.html
similarity index 88%
copy from docs/latest/data-management/update/index.html
copy to docs/38.0.0/data-management/update/index.html
index 7b43f73c9..2dfee49f5 100644
--- a/docs/latest/data-management/update/index.html
+++ b/docs/38.0.0/data-management/update/index.html
@@ -3,21 +3,21 @@
 <head>
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.7.0">
-<title data-rh="true">Data updates | Apache® Druid</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://druid.apache.org/img/druid_nav.png"><meta data-rh="true" name="twitter:image" content="https://druid.apache.org/img/druid_nav.png"><meta data-rh="true" property="og:url" content="https://druid.apache.org/docs/latest/data-ma [...]
+<title data-rh="true">Data updates | Apache® Druid</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://druid.apache.org/img/druid_nav.png"><meta data-rh="true" name="twitter:image" content="https://druid.apache.org/img/druid_nav.png"><meta data-rh="true" property="og:url" content="https://druid.apache.org/docs/38.0.0/data-ma [...]
 <script src="/js/clipboard.min.js"></script><link rel="stylesheet" href="/assets/css/styles.f3140859.css">
-<script src="/assets/js/runtime~main.3e1f3e8c.js" defer="defer"></script>
-<script src="/assets/js/main.b85ce480.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.ea7da916.js" defer="defer"></script>
+<script src="/assets/js/main.b6e60483.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
-<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const n=new URLSearchParams(window.location.search).entries();for(var[t,e]of n)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentEle [...]
-<p>Apache Druid stores data <a href="/docs/latest/design/storage">partitioned by time chunk</a> and supports
+<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const n=new URLSearchParams(window.location.search).entries();for(var[t,e]of n)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentEle [...]
+<p>Apache® Druid stores data <a href="/docs/38.0.0/design/storage">partitioned by time chunk</a> and supports
 overwriting existing data using time ranges. Data outside the replacement time range is not touched. Overwriting of
-existing data is done using the same mechanisms as <a href="/docs/latest/ingestion/#batch">batch ingestion</a>.</p>
+existing data is done using the same mechanisms as <a href="/docs/38.0.0/ingestion/#batch">batch ingestion</a>.</p>
 <p>For example:</p>
 <ul>
-<li><a href="/docs/latest/ingestion/native-batch">Native batch</a> with <code>appendToExisting: false</code>, and <code>intervals</code> set to a specific
+<li><a href="/docs/38.0.0/ingestion/native-batch">Native batch</a> with <code>appendToExisting: false</code>, and <code>intervals</code> set to a specific
 time range, overwrites data for that time range.</li>
-<li><a href="/docs/latest/multi-stage-query/reference#replace">SQL <code>REPLACE &lt;table&gt; OVERWRITE [ALL | WHERE ...]</code></a> overwrites data for
+<li><a href="/docs/38.0.0/multi-stage-query/reference#replace">SQL <code>REPLACE &lt;table&gt; OVERWRITE [ALL | WHERE ...]</code></a> overwrites data for
 the entire table or for a specified time range.</li>
 </ul>
 <p>In both cases, Druid&#x27;s atomic update mechanism ensures that queries will flip seamlessly from the old data to the new
@@ -31,22 +31,22 @@ data.</p>
 <p>Reindexing is an <a href="#overwrite">overwrite of existing data</a> where the source of new data is the existing data itself. It
 is used to perform schema changes, repartition data, filter out unwanted data, enrich existing data, and so on. This
 behaves just like any other <a href="#overwrite">overwrite</a> with regard to atomic updates and locking.</p>
-<p>With <a href="/docs/latest/ingestion/native-batch">native batch</a>, use the <a href="/docs/latest/ingestion/input-sources#druid-input-source"><code>druid</code> input
+<p>With <a href="/docs/38.0.0/ingestion/native-batch">native batch</a>, use the <a href="/docs/38.0.0/ingestion/input-sources#druid-input-source"><code>druid</code> input
 source</a>. If needed,
-<a href="/docs/latest/ingestion/ingestion-spec#transformspec"><code>transformSpec</code></a> can be used to filter or modify data during the
+<a href="/docs/38.0.0/ingestion/ingestion-spec#transformspec"><code>transformSpec</code></a> can be used to filter or modify data during the
 reindexing job.</p>
-<p>With SQL, use <a href="/docs/latest/multi-stage-query/reference#replace"><code>REPLACE &lt;table&gt; OVERWRITE</code></a> with <code>SELECT ... FROM &lt;table&gt;</code>.
+<p>With SQL, use <a href="/docs/38.0.0/multi-stage-query/reference#replace"><code>REPLACE &lt;table&gt; OVERWRITE</code></a> with <code>SELECT ... FROM &lt;table&gt;</code>.
 (Druid does not have <code>UPDATE</code> or <code>ALTER TABLE</code> statements.) Any SQL SELECT query can be used to filter,
 modify, or enrich the data during the reindexing job.</p>
 <h2 class="anchor anchorWithStickyNavbar_LWe7" id="rolled-up-datasources">Rolled-up datasources<a href="#rolled-up-datasources" class="hash-link" aria-label="Direct link to Rolled-up datasources" title="Direct link to Rolled-up datasources">​</a></h2>
 <p>Rolled-up datasources can be effectively updated using appends, without rewrites. When you append a row that has an
 identical set of dimensions to an existing row, queries that use aggregation operators automatically combine those two
 rows together at query time.</p>
-<p><a href="/docs/latest/data-management/compaction">Compaction</a> or <a href="/docs/latest/data-management/automatic-compaction">automatic compaction</a> can be used to physically combine these
+<p><a href="/docs/38.0.0/data-management/compaction">Compaction</a> or <a href="/docs/38.0.0/data-management/automatic-compaction">automatic compaction</a> can be used to physically combine these
 matching rows together later on, by rewriting segments in the background.</p>
 <h2 class="anchor anchorWithStickyNavbar_LWe7" id="lookups">Lookups<a href="#lookups" class="hash-link" aria-label="Direct link to Lookups" title="Direct link to Lookups">​</a></h2>
-<p>If you have a dimension where values need to be updated frequently, try first using <a href="/docs/latest/querying/lookups">lookups</a>. A
+<p>If you have a dimension where values need to be updated frequently, try first using <a href="/docs/38.0.0/querying/lookups">lookups</a>. A
 classic use case of lookups is when you have an ID dimension stored in a Druid segment, and want to map the ID dimension to a
-human-readable string that may need to be updated periodically.</p></div></article><nav class="pagination-nav docusaurus-mt-lg" aria-label="Docs pages"><a class="pagination-nav__link pagination-nav__link--prev" href="/docs/latest/data-management/"><div class="pagination-nav__sublabel">Previous</div><div class="pagination-nav__label">Overview</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/docs/latest/data-management/delete"><div class="pagination-nav__sublabel" [...]
+human-readable string that may need to be updated periodically.</p></div></article><nav class="pagination-nav docusaurus-mt-lg" aria-label="Docs pages"><a class="pagination-nav__link pagination-nav__link--prev" href="/docs/38.0.0/data-management/"><div class="pagination-nav__sublabel">Previous</div><div class="pagination-nav__label">Overview</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/docs/38.0.0/data-management/delete"><div class="pagination-nav__sublabel" [...]
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/38.0.0/dependencies/cassandra-deep-storage.html/index.html b/docs/38.0.0/dependencies/cassandra-deep-storage.html/index.html
new file mode 100644
index 000000000..75f3813e0
--- /dev/null
+++ b/docs/38.0.0/dependencies/cassandra-deep-storage.html/index.html
@@ -0,0 +1,11 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <meta charset="UTF-8">
+    <meta http-equiv="refresh" content="0; url=/docs/38.0.0/development/extensions-contrib/cassandra">
+    <link rel="canonical" href="/docs/38.0.0/development/extensions-contrib/cassandra" />
+  </head>
+  <script>
+    window.location.href = '/docs/38.0.0/development/extensions-contrib/cassandra' + window.location.search + window.location.hash;
+  </script>
+</html>
\ No newline at end of file
diff --git a/docs/38.0.0/dependencies/zookeeper.html/index.html b/docs/38.0.0/dependencies/zookeeper.html/index.html
new file mode 100644
index 000000000..62833ac58
--- /dev/null
+++ b/docs/38.0.0/dependencies/zookeeper.html/index.html
@@ -0,0 +1,11 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <meta charset="UTF-8">
+    <meta http-equiv="refresh" content="0; url=/docs/38.0.0/design/zookeeper">
+    <link rel="canonical" href="/docs/38.0.0/design/zookeeper" />
+  </head>
+  <script>
+    window.location.href = '/docs/38.0.0/design/zookeeper' + window.location.search + window.location.hash;
+  </script>
+</html>
\ No newline at end of file
diff --git a/docs/38.0.0/design.html/index.html b/docs/38.0.0/design.html/index.html
new file mode 100644
index 000000000..62bcded26
--- /dev/null
+++ b/docs/38.0.0/design.html/index.html
@@ -0,0 +1,11 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <meta charset="UTF-8">
+    <meta http-equiv="refresh" content="0; url=/docs/38.0.0/design/">
+    <link rel="canonical" href="/docs/38.0.0/design/" />
+  </head>
+  <script>
+    window.location.href = '/docs/38.0.0/design/' + window.location.search + window.location.hash;
+  </script>
+</html>
\ No newline at end of file
diff --git a/docs/38.0.0/design/architecture.html/index.html b/docs/38.0.0/design/architecture.html/index.html
new file mode 100644
index 000000000..c73903593
--- /dev/null
+++ b/docs/38.0.0/design/architecture.html/index.html
@@ -0,0 +1,11 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <meta charset="UTF-8">
+    <meta http-equiv="refresh" content="0; url=/docs/38.0.0/design/architecture">
+    <link rel="canonical" href="/docs/38.0.0/design/architecture" />
+  </head>
+  <script>
+    window.location.href = '/docs/38.0.0/design/architecture' + window.location.search + window.location.hash;
+  </script>
+</html>
\ No newline at end of file
diff --git a/docs/latest/design/architecture/index.html b/docs/38.0.0/design/architecture/index.html
similarity index 88%
copy from docs/latest/design/architecture/index.html
copy to docs/38.0.0/design/architecture/index.html
index fed6fa86c..701798d11 100644
--- a/docs/latest/design/architecture/index.html
+++ b/docs/38.0.0/design/architecture/index.html
@@ -3,26 +3,26 @@
 <head>
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.7.0">
-<title data-rh="true">Architecture | Apache® Druid</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://druid.apache.org/img/druid_nav.png"><meta data-rh="true" name="twitter:image" content="https://druid.apache.org/img/druid_nav.png"><meta data-rh="true" property="og:url" content="https://druid.apache.org/docs/latest/design/ [...]
+<title data-rh="true">Architecture | Apache® Druid</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://druid.apache.org/img/druid_nav.png"><meta data-rh="true" name="twitter:image" content="https://druid.apache.org/img/druid_nav.png"><meta data-rh="true" property="og:url" content="https://druid.apache.org/docs/38.0.0/design/ [...]
 <script src="/js/clipboard.min.js"></script><link rel="stylesheet" href="/assets/css/styles.f3140859.css">
-<script src="/assets/js/runtime~main.3e1f3e8c.js" defer="defer"></script>
-<script src="/assets/js/main.b85ce480.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.ea7da916.js" defer="defer"></script>
+<script src="/assets/js/main.b6e60483.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
-<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const n=new URLSearchParams(window.location.search).entries();for(var[t,e]of n)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentEle [...]
+<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const n=new URLSearchParams(window.location.search).entries();for(var[t,e]of n)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentEle [...]
 <p>The following diagram shows the services that make up the Druid architecture, their typical arrangement across servers, and how queries and data flow through this architecture.</p>
 <p><img decoding="async" loading="lazy" alt="Druid architecture" src="/assets/images/druid-architecture-a2d14e8be60d586632471e97383e406c.svg" width="1967" height="873" class="img_ev3q"></p>
 <p>The following sections describe the components of this architecture.</p>
 <h2 class="anchor anchorWithStickyNavbar_LWe7" id="druid-services">Druid services<a href="#druid-services" class="hash-link" aria-label="Direct link to Druid services" title="Direct link to Druid services">​</a></h2>
 <p>Druid has several types of services:</p>
 <ul>
-<li><a href="/docs/latest/design/coordinator">Coordinator</a> manages data availability on the cluster.</li>
-<li><a href="/docs/latest/design/overlord">Overlord</a> controls the assignment of data ingestion workloads.</li>
-<li><a href="/docs/latest/design/broker">Broker</a> handles queries from external clients.</li>
-<li><a href="/docs/latest/design/router">Router</a> routes requests to Brokers, Coordinators, and Overlords.</li>
-<li><a href="/docs/latest/design/historical">Historical</a> stores queryable data.</li>
-<li><a href="/docs/latest/design/middlemanager">Middle Manager</a> and <a href="/docs/latest/design/peons">Peon</a> ingest data.</li>
-<li><a href="/docs/latest/design/indexer">Indexer</a> serves as an alternative to the Middle Manager + Peon task execution system.</li>
+<li><a href="/docs/38.0.0/design/coordinator">Coordinator</a> manages data availability on the cluster.</li>
+<li><a href="/docs/38.0.0/design/overlord">Overlord</a> controls the assignment of data ingestion workloads.</li>
+<li><a href="/docs/38.0.0/design/broker">Broker</a> handles queries from external clients.</li>
+<li><a href="/docs/38.0.0/design/router">Router</a> routes requests to Brokers, Coordinators, and Overlords.</li>
+<li><a href="/docs/38.0.0/design/historical">Historical</a> stores queryable data.</li>
+<li><a href="/docs/38.0.0/design/middlemanager">Middle Manager</a> and <a href="/docs/38.0.0/design/peons">Peon</a> ingest data.</li>
+<li><a href="/docs/38.0.0/design/indexer">Indexer</a> serves as an alternative to the Middle Manager + Peon task execution system.</li>
 </ul>
 <p>You can view services in the <strong>Services</strong> tab in the web console:</p>
 <p><img decoding="async" loading="lazy" alt="Druid services" src="/assets/images/services-overview-626a864a11edcf4945591a35d4a3814c.png" title="Services in the web console" width="1250" height="640" class="img_ev3q"></p>
@@ -32,32 +32,32 @@
 <p>A Master server manages data ingestion and availability. It is responsible for starting new ingestion jobs and coordinating availability of data on the <a href="#data-server">Data server</a>.</p>
 <p>Master servers divide operations between Coordinator and Overlord services.</p>
 <h4 class="anchor anchorWithStickyNavbar_LWe7" id="coordinator-service">Coordinator service<a href="#coordinator-service" class="hash-link" aria-label="Direct link to Coordinator service" title="Direct link to Coordinator service">​</a></h4>
-<p><a href="/docs/latest/design/coordinator">Coordinator</a> services watch over the Historical services on the Data servers. They are responsible for assigning segments to specific servers, and for ensuring segments are well-balanced across Historicals.</p>
+<p><a href="/docs/38.0.0/design/coordinator">Coordinator</a> services watch over the Historical services on the Data servers. They are responsible for assigning segments to specific servers, and for ensuring segments are well-balanced across Historicals.</p>
 <h4 class="anchor anchorWithStickyNavbar_LWe7" id="overlord-service">Overlord service<a href="#overlord-service" class="hash-link" aria-label="Direct link to Overlord service" title="Direct link to Overlord service">​</a></h4>
-<p><a href="/docs/latest/design/overlord">Overlord</a> services watch over the Middle Manager services on the Data servers and are the controllers of data ingestion into Druid. They are responsible for assigning ingestion tasks to Middle Managers and for coordinating segment publishing.</p>
+<p><a href="/docs/38.0.0/design/overlord">Overlord</a> services watch over the Middle Manager services on the Data servers and are the controllers of data ingestion into Druid. They are responsible for assigning ingestion tasks to Middle Managers and for coordinating segment publishing.</p>
 <h3 class="anchor anchorWithStickyNavbar_LWe7" id="query-server">Query server<a href="#query-server" class="hash-link" aria-label="Direct link to Query server" title="Direct link to Query server">​</a></h3>
 <p>A Query server provides the endpoints that users and client applications interact with, routing queries to Data servers or other Query servers (and optionally proxied Master server requests).</p>
 <p>Query servers divide operations between Broker and Router services.</p>
 <h4 class="anchor anchorWithStickyNavbar_LWe7" id="broker-service">Broker service<a href="#broker-service" class="hash-link" aria-label="Direct link to Broker service" title="Direct link to Broker service">​</a></h4>
-<p><a href="/docs/latest/design/broker">Broker</a> services receive queries from external clients and forward those queries to Data servers. When Brokers receive results from those subqueries, they merge those results and return them to the caller. Typically, you query Brokers rather than querying Historical or Middle Manager services on Data servers directly.</p>
+<p><a href="/docs/38.0.0/design/broker">Broker</a> services receive queries from external clients and forward those queries to Data servers. When Brokers receive results from those subqueries, they merge those results and return them to the caller. Typically, you query Brokers rather than querying Historical or Middle Manager services on Data servers directly.</p>
 <h4 class="anchor anchorWithStickyNavbar_LWe7" id="router-service">Router service<a href="#router-service" class="hash-link" aria-label="Direct link to Router service" title="Direct link to Router service">​</a></h4>
-<p><a href="/docs/latest/design/router"><strong>Router</strong></a> services provide a unified API gateway in front of Brokers, Overlords, and Coordinators.</p>
-<p>The Router service also runs the <a href="/docs/latest/operations/web-console">web console</a>, a UI for loading data, managing datasources and tasks, and viewing server status and segment information.</p>
+<p><a href="/docs/38.0.0/design/router"><strong>Router</strong></a> services provide a unified API gateway in front of Brokers, Overlords, and Coordinators.</p>
+<p>The Router service also runs the <a href="/docs/38.0.0/operations/web-console">web console</a>, a UI for loading data, managing datasources and tasks, and viewing server status and segment information.</p>
 <h3 class="anchor anchorWithStickyNavbar_LWe7" id="data-server">Data server<a href="#data-server" class="hash-link" aria-label="Direct link to Data server" title="Direct link to Data server">​</a></h3>
 <p>A Data server executes ingestion jobs and stores queryable data.</p>
 <p>Data servers divide operations between Historical and Middle Manager services.</p>
 <h4 class="anchor anchorWithStickyNavbar_LWe7" id="historical-service">Historical service<a href="#historical-service" class="hash-link" aria-label="Direct link to Historical service" title="Direct link to Historical service">​</a></h4>
-<p><a href="/docs/latest/design/historical"><strong>Historical</strong></a> services handle storage and querying on historical data, including any streaming data that has been in the system long enough to be committed. Historical services download segments from deep storage and respond to queries about these segments. They don&#x27;t accept writes.</p>
+<p><a href="/docs/38.0.0/design/historical"><strong>Historical</strong></a> services handle storage and querying on historical data, including any streaming data that has been in the system long enough to be committed. Historical services download segments from deep storage and respond to queries about these segments. They don&#x27;t accept writes.</p>
 <h4 class="anchor anchorWithStickyNavbar_LWe7" id="middle-manager-service">Middle Manager service<a href="#middle-manager-service" class="hash-link" aria-label="Direct link to Middle Manager service" title="Direct link to Middle Manager service">​</a></h4>
-<p><a href="/docs/latest/design/middlemanager"><strong>Middle Manager</strong></a> services handle ingestion of new data into the cluster. They are responsible
+<p><a href="/docs/38.0.0/design/middlemanager"><strong>Middle Manager</strong></a> services handle ingestion of new data into the cluster. They are responsible
 for reading from external data sources and publishing new Druid segments.</p>
 <h5 class="anchor anchorWithStickyNavbar_LWe7" id="peon-service">Peon service<a href="#peon-service" class="hash-link" aria-label="Direct link to Peon service" title="Direct link to Peon service">​</a></h5>
-<p><a href="/docs/latest/design/peons"><strong>Peon</strong></a> services are task execution engines spawned by Middle Managers. Each Peon runs a separate JVM and is responsible for executing a single task. Peons always run on the same host as the Middle Manager that spawned them.</p>
+<p><a href="/docs/38.0.0/design/peons"><strong>Peon</strong></a> services are task execution engines spawned by Middle Managers. Each Peon runs a separate JVM and is responsible for executing a single task. Peons always run on the same host as the Middle Manager that spawned them.</p>
 <h4 class="anchor anchorWithStickyNavbar_LWe7" id="indexer-service-optional">Indexer service (optional)<a href="#indexer-service-optional" class="hash-link" aria-label="Direct link to Indexer service (optional)" title="Direct link to Indexer service (optional)">​</a></h4>
-<p><a href="/docs/latest/design/indexer"><strong>Indexer</strong></a> services are an alternative to Middle Managers and Peons. Instead of
+<p><a href="/docs/38.0.0/design/indexer"><strong>Indexer</strong></a> services are an alternative to Middle Managers and Peons. Instead of
 forking separate JVM processes per-task, the Indexer runs tasks as individual threads within a single JVM process.</p>
-<p>The Indexer is designed to be easier to configure and deploy compared to the MiddleManager + Peon system and to better enable resource sharing across tasks, which can help streaming ingestion. The Indexer is currently designated <a href="/docs/latest/development/experimental">experimental</a>.</p>
-<p>Typically, you would deploy one of the following: MiddleManagers, <a href="/docs/latest/development/extensions-core/k8s-jobs">MiddleManager-less ingestion using Kubernetes</a>, or Indexers. You wouldn&#x27;t deploy more than one of these options.</p>
+<p>The Indexer is designed to be easier to configure and deploy compared to the MiddleManager + Peon system and to better enable resource sharing across tasks, which can help streaming ingestion. The Indexer is currently designated <a href="/docs/38.0.0/development/experimental">experimental</a>.</p>
+<p>Typically, you would deploy one of the following: MiddleManagers, <a href="/docs/38.0.0/development/extensions-core/k8s-jobs">MiddleManager-less ingestion using Kubernetes®</a>, or Indexers. You wouldn&#x27;t deploy more than one of these options.</p>
 <h2 class="anchor anchorWithStickyNavbar_LWe7" id="colocation-of-services">Colocation of services<a href="#colocation-of-services" class="hash-link" aria-label="Direct link to Colocation of services" title="Direct link to Colocation of services">​</a></h2>
 <p>Colocating Druid services by server type generally results in better utilization of hardware resources for most clusters.
 For very large scale clusters, it can be desirable to split the Druid services such that they run on individual servers to avoid resource contention.</p>
@@ -66,7 +66,7 @@ For very large scale clusters, it can be desirable to split the Druid services s
 <p>The workload on the Coordinator service tends to increase with the number of segments in the cluster. The Overlord&#x27;s workload also increases based on the number of segments in the cluster, but to a lesser degree than the Coordinator.</p>
 <p>In clusters with very high segment counts, it can make sense to separate the Coordinator and Overlord services to provide more resources for the Coordinator&#x27;s segment balancing workload.</p>
 <p>You can run the Coordinator and Overlord services as a single combined service by setting the <code>druid.coordinator.asOverlord.enabled</code> property.
-For more information, see <a href="/docs/latest/configuration/#coordinator-operation">Coordinator Operation</a>.</p>
+For more information, see <a href="/docs/38.0.0/configuration/#coordinator-operation">Coordinator Operation</a>.</p>
 <h3 class="anchor anchorWithStickyNavbar_LWe7" id="historicals-and-middle-managers">Historicals and Middle Managers<a href="#historicals-and-middle-managers" class="hash-link" aria-label="Direct link to Historicals and Middle Managers" title="Direct link to Historicals and Middle Managers">​</a></h3>
 <p>With higher levels of ingestion or query load, it can make sense to deploy the Historical and Middle Manager services on separate hosts to to avoid CPU and memory contention.</p>
 <p>The Historical service also benefits from having free memory for memory mapped segments, which can be another reason to deploy the Historical and Middle Manager services separately.</p>
@@ -79,7 +79,7 @@ storage accessible by every Druid server. In a clustered deployment, this is typ
 HDFS, or a network mounted filesystem. In a single-server deployment, this is typically local disk.</p>
 <p>Druid uses deep storage for the following purposes:</p>
 <ul>
-<li>To store all the data you ingest. Segments that get loaded onto Historical services for low latency queries are also kept in deep storage for backup purposes. Additionally, segments that are only in deep storage can be used for <a href="/docs/latest/querying/query-deep-storage">queries from deep storage</a>.</li>
+<li>To store all the data you ingest. Segments that get loaded onto Historical services for low latency queries are also kept in deep storage for backup purposes. Additionally, segments that are only in deep storage can be used for <a href="/docs/38.0.0/querying/query-deep-storage">queries from deep storage</a>.</li>
 <li>As a way to transfer data in the background between Druid services. Druid stores data in files called <em>segments</em>.</li>
 </ul>
 <p>Historical services cache data segments on local disk and serve queries from that cache as well as from an in-memory cache.
@@ -92,21 +92,21 @@ Segments on disk for Historical services provide the low latency querying perfor
 </ul>
 <p>Deep storage is an important part of Druid&#x27;s elastic, fault-tolerant design. Druid bootstraps from deep storage even
 if every single data server is lost and re-provisioned.</p>
-<p>For more details, please see the <a href="/docs/latest/design/deep-storage">Deep storage</a> page.</p>
+<p>For more details, please see the <a href="/docs/38.0.0/design/deep-storage">Deep storage</a> page.</p>
 <h3 class="anchor anchorWithStickyNavbar_LWe7" id="metadata-storage">Metadata storage<a href="#metadata-storage" class="hash-link" aria-label="Direct link to Metadata storage" title="Direct link to Metadata storage">​</a></h3>
 <p>The metadata storage holds various shared system metadata such as segment usage information and task information. In a
 clustered deployment, this is typically a traditional RDBMS like PostgreSQL or MySQL. In a single-server
 deployment, it is typically a locally-stored Apache Derby database.</p>
-<p>For more details, please see the <a href="/docs/latest/design/metadata-storage">Metadata storage</a> page.</p>
+<p>For more details, please see the <a href="/docs/38.0.0/design/metadata-storage">Metadata storage</a> page.</p>
 <h3 class="anchor anchorWithStickyNavbar_LWe7" id="zookeeper">ZooKeeper<a href="#zookeeper" class="hash-link" aria-label="Direct link to ZooKeeper" title="Direct link to ZooKeeper">​</a></h3>
 <p>Used for internal service discovery, coordination, and leader election.</p>
-<p>For more details, please see the <a href="/docs/latest/design/zookeeper">ZooKeeper</a> page.</p>
+<p>For more details, please see the <a href="/docs/38.0.0/design/zookeeper">ZooKeeper</a> page.</p>
 <h2 class="anchor anchorWithStickyNavbar_LWe7" id="learn-more">Learn more<a href="#learn-more" class="hash-link" aria-label="Direct link to Learn more" title="Direct link to Learn more">​</a></h2>
 <p>See the following topics for more information:</p>
 <ul>
-<li><a href="/docs/latest/design/storage">Storage components</a> to learn about data storage in Druid.</li>
-<li><a href="/docs/latest/design/segments">Segments</a> to learn about segment files.</li>
-<li><a href="/docs/latest/querying/query-processing">Query processing</a> for a high-level overview of how Druid processes queries.</li>
-</ul></div></article><nav class="pagination-nav docusaurus-mt-lg" aria-label="Docs pages"><a class="pagination-nav__link pagination-nav__link--prev" href="/docs/latest/tutorials/tutorial-kerberos-hadoop"><div class="pagination-nav__sublabel">Previous</div><div class="pagination-nav__label">Kerberized HDFS deep storage</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/docs/latest/design/coordinator"><div class="pagination-nav__sublabel">Next</div><div class="pagin [...]
+<li><a href="/docs/38.0.0/design/storage">Storage components</a> to learn about data storage in Druid.</li>
+<li><a href="/docs/38.0.0/design/segments">Segments</a> to learn about segment files.</li>
+<li><a href="/docs/38.0.0/querying/query-processing">Query processing</a> for a high-level overview of how Druid processes queries.</li>
+</ul></div></article><nav class="pagination-nav docusaurus-mt-lg" aria-label="Docs pages"><a class="pagination-nav__link pagination-nav__link--prev" href="/docs/38.0.0/tutorials/tutorial-kerberos-hadoop"><div class="pagination-nav__sublabel">Previous</div><div class="pagination-nav__label">Kerberized HDFS deep storage</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/docs/38.0.0/design/coordinator"><div class="pagination-nav__sublabel">Next</div><div class="pagin [...]
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/38.0.0/design/auth.html/index.html b/docs/38.0.0/design/auth.html/index.html
new file mode 100644
index 000000000..1440564f4
--- /dev/null
+++ b/docs/38.0.0/design/auth.html/index.html
@@ -0,0 +1,11 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <meta charset="UTF-8">
+    <meta http-equiv="refresh" content="0; url=/docs/38.0.0/operations/auth">
+    <link rel="canonical" href="/docs/38.0.0/operations/auth" />
+  </head>
+  <script>
+    window.location.href = '/docs/38.0.0/operations/auth' + window.location.search + window.location.hash;
+  </script>
+</html>
\ No newline at end of file
diff --git a/docs/38.0.0/design/broker.html/index.html b/docs/38.0.0/design/broker.html/index.html
new file mode 100644
index 000000000..7f5adfcea
--- /dev/null
+++ b/docs/38.0.0/design/broker.html/index.html
@@ -0,0 +1,11 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <meta charset="UTF-8">
+    <meta http-equiv="refresh" content="0; url=/docs/38.0.0/design/broker">
+    <link rel="canonical" href="/docs/38.0.0/design/broker" />
+  </head>
+  <script>
+    window.location.href = '/docs/38.0.0/design/broker' + window.location.search + window.location.hash;
+  </script>
+</html>
\ No newline at end of file
diff --git a/docs/latest/design/broker/index.html b/docs/38.0.0/design/broker/index.html
similarity index 84%
copy from docs/latest/design/broker/index.html
copy to docs/38.0.0/design/broker/index.html
index c3eccca4a..aab2de0b9 100644
--- a/docs/latest/design/broker/index.html
+++ b/docs/38.0.0/design/broker/index.html
@@ -3,25 +3,25 @@
 <head>
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.7.0">
-<title data-rh="true">Broker service | Apache® Druid</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://druid.apache.org/img/druid_nav.png"><meta data-rh="true" name="twitter:image" content="https://druid.apache.org/img/druid_nav.png"><meta data-rh="true" property="og:url" content="https://druid.apache.org/docs/latest/desig [...]
+<title data-rh="true">Broker service | Apache® Druid</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://druid.apache.org/img/druid_nav.png"><meta data-rh="true" name="twitter:image" content="https://druid.apache.org/img/druid_nav.png"><meta data-rh="true" property="og:url" content="https://druid.apache.org/docs/38.0.0/desig [...]
 <script src="/js/clipboard.min.js"></script><link rel="stylesheet" href="/assets/css/styles.f3140859.css">
-<script src="/assets/js/runtime~main.3e1f3e8c.js" defer="defer"></script>
-<script src="/assets/js/main.b85ce480.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.ea7da916.js" defer="defer"></script>
+<script src="/assets/js/main.b6e60483.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
-<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const n=new URLSearchParams(window.location.search).entries();for(var[t,e]of n)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentEle [...]
+<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const n=new URLSearchParams(window.location.search).entries();for(var[t,e]of n)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentEle [...]
 <h2 class="anchor anchorWithStickyNavbar_LWe7" id="configuration">Configuration<a href="#configuration" class="hash-link" aria-label="Direct link to Configuration" title="Direct link to Configuration">​</a></h2>
-<p>For Apache Druid Broker service configuration, see <a href="/docs/latest/configuration/#broker">Broker Configuration</a>.</p>
-<p>For basic tuning guidance for the Broker service, see <a href="/docs/latest/operations/basic-cluster-tuning#broker">Basic cluster tuning</a>.</p>
+<p>For Apache® Druid Broker service configuration, see <a href="/docs/38.0.0/configuration/#broker">Broker Configuration</a>.</p>
+<p>For basic tuning guidance for the Broker service, see <a href="/docs/38.0.0/operations/basic-cluster-tuning#broker">Basic cluster tuning</a>.</p>
 <h2 class="anchor anchorWithStickyNavbar_LWe7" id="http-endpoints">HTTP endpoints<a href="#http-endpoints" class="hash-link" aria-label="Direct link to HTTP endpoints" title="Direct link to HTTP endpoints">​</a></h2>
-<p>For a list of API endpoints supported by the Broker, see <a href="/docs/latest/api-reference/legacy-metadata-api#broker">Broker API</a>.</p>
+<p>For a list of API endpoints supported by the Broker, see <a href="/docs/38.0.0/api-reference/legacy-metadata-api#broker">Broker API</a>.</p>
 <h2 class="anchor anchorWithStickyNavbar_LWe7" id="running">Running<a href="#running" class="hash-link" aria-label="Direct link to Running" title="Direct link to Running">​</a></h2>
 <div class="codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#bfc7d5;--prism-background-color:#292d3e"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#bfc7d5;background-color:#292d3e"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#bfc7d5"><span class="token plain">org.apache.druid.cli.Main server broker</span><br></span></code></pre><div class="buttonGroup__atx"><butt [...]
 <h2 class="anchor anchorWithStickyNavbar_LWe7" id="forwarding-queries">Forwarding queries<a href="#forwarding-queries" class="hash-link" aria-label="Direct link to Forwarding queries" title="Direct link to Forwarding queries">​</a></h2>
-<p>Most Druid queries contain an interval object that indicates a span of time for which data is requested. Similarly, Druid partitions <a href="/docs/latest/design/segments">segments</a> to contain data for some interval of time and distributes the segments across a cluster. Consider a simple datasource with seven segments where each segment contains data for a given day of the week. Any query issued to the datasource for more than one day of data will hit more than one segment. These s [...]
-<p>To determine which services to forward queries to, the Broker service first builds a view of the world from information in ZooKeeper. ZooKeeper maintains information about <a href="/docs/latest/design/historical">Historical</a> and streaming ingestion <a href="/docs/latest/design/peons">Peon</a> services and the segments they are serving. For every datasource in ZooKeeper, the Broker service builds a timeline of segments and the services that serve them. When queries are received for  [...]
+<p>Most Druid queries contain an interval object that indicates a span of time for which data is requested. Similarly, Druid partitions <a href="/docs/38.0.0/design/segments">segments</a> to contain data for some interval of time and distributes the segments across a cluster. Consider a simple datasource with seven segments where each segment contains data for a given day of the week. Any query issued to the datasource for more than one day of data will hit more than one segment. These s [...]
+<p>To determine which services to forward queries to, the Broker service first builds a view of the world from the cluster. It uses ZooKeeper to discover <a href="/docs/38.0.0/design/historical">Historical</a> and streaming ingestion <a href="/docs/38.0.0/design/peons">Peon</a> services, then polls each one over HTTP to learn the segments it is serving. For every datasource, the Broker service builds a timeline of segments and the services that serve them. When queries are received for a [...]
 <h2 class="anchor anchorWithStickyNavbar_LWe7" id="caching">Caching<a href="#caching" class="hash-link" aria-label="Direct link to Caching" title="Direct link to Caching">​</a></h2>
 <p>Broker services employ a cache with an LRU cache invalidation strategy. The Broker cache stores per-segment results. The cache can be local to each Broker service or shared across multiple services using an external distributed cache such as <a href="http://memcached.org/" target="_blank" rel="noopener noreferrer">memcached</a>. Each time a Broker service receives a query, it first maps the query to a set of segments. A subset of these segment results may already exist in the cache an [...]
-Historical services. Once the Historical services return their results, the Broker will store those results in the cache. Real-time segments are never cached and hence requests for real-time data will always be forwarded to real-time services. Real-time data is perpetually changing and caching the results would be unreliable.</p></div></article><nav class="pagination-nav docusaurus-mt-lg" aria-label="Docs pages"><a class="pagination-nav__link pagination-nav__link--prev" href="/docs/lates [...]
+Historical services. Once the Historical services return their results, the Broker will store those results in the cache. Real-time segments are never cached and hence requests for real-time data will always be forwarded to real-time services. Real-time data is perpetually changing and caching the results would be unreliable.</p></div></article><nav class="pagination-nav docusaurus-mt-lg" aria-label="Docs pages"><a class="pagination-nav__link pagination-nav__link--prev" href="/docs/38.0. [...]
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/38.0.0/design/concepts-and-terminology.html/index.html b/docs/38.0.0/design/concepts-and-terminology.html/index.html
new file mode 100644
index 000000000..62bcded26
--- /dev/null
+++ b/docs/38.0.0/design/concepts-and-terminology.html/index.html
@@ -0,0 +1,11 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <meta charset="UTF-8">
+    <meta http-equiv="refresh" content="0; url=/docs/38.0.0/design/">
+    <link rel="canonical" href="/docs/38.0.0/design/" />
+  </head>
+  <script>
+    window.location.href = '/docs/38.0.0/design/' + window.location.search + window.location.hash;
+  </script>
+</html>
\ No newline at end of file
diff --git a/docs/38.0.0/design/coordinator.html/index.html b/docs/38.0.0/design/coordinator.html/index.html
new file mode 100644
index 000000000..b5841ae31
--- /dev/null
+++ b/docs/38.0.0/design/coordinator.html/index.html
@@ -0,0 +1,11 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <meta charset="UTF-8">
+    <meta http-equiv="refresh" content="0; url=/docs/38.0.0/design/coordinator">
+    <link rel="canonical" href="/docs/38.0.0/design/coordinator" />
+  </head>
+  <script>
+    window.location.href = '/docs/38.0.0/design/coordinator' + window.location.search + window.location.hash;
+  </script>
+</html>
\ No newline at end of file
diff --git a/docs/latest/design/coordinator/index.html b/docs/38.0.0/design/coordinator/index.html
similarity index 87%
copy from docs/latest/design/coordinator/index.html
copy to docs/38.0.0/design/coordinator/index.html
index 1cef58b40..4e7a040e8 100644
--- a/docs/latest/design/coordinator/index.html
+++ b/docs/38.0.0/design/coordinator/index.html
@@ -3,35 +3,35 @@
 <head>
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.7.0">
-<title data-rh="true">Coordinator service | Apache® Druid</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://druid.apache.org/img/druid_nav.png"><meta data-rh="true" name="twitter:image" content="https://druid.apache.org/img/druid_nav.png"><meta data-rh="true" property="og:url" content="https://druid.apache.org/docs/latest/ [...]
+<title data-rh="true">Coordinator service | Apache® Druid</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://druid.apache.org/img/druid_nav.png"><meta data-rh="true" name="twitter:image" content="https://druid.apache.org/img/druid_nav.png"><meta data-rh="true" property="og:url" content="https://druid.apache.org/docs/38.0.0/ [...]
 <script src="/js/clipboard.min.js"></script><link rel="stylesheet" href="/assets/css/styles.f3140859.css">
-<script src="/assets/js/runtime~main.3e1f3e8c.js" defer="defer"></script>
-<script src="/assets/js/main.b85ce480.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.ea7da916.js" defer="defer"></script>
+<script src="/assets/js/main.b6e60483.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
-<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const n=new URLSearchParams(window.location.search).entries();for(var[t,e]of n)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentEle [...]
+<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const n=new URLSearchParams(window.location.search).entries();for(var[t,e]of n)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentEle [...]
 Coordinator service communicates to Historical services to load or drop segments based on configurations. The Coordinator is responsible for loading new segments, dropping outdated segments, ensuring that segments are &quot;replicated&quot; (that is, loaded on multiple different Historical nodes) proper (configured) number of times, and moving
 (&quot;balancing&quot;) segments between Historical nodes to keep the latter evenly loaded.</p>
 <p>The Coordinator runs its duties periodically and the time between each run is a configurable parameter. On each
 run, the Coordinator assesses the current state of the cluster before deciding on the appropriate actions to take.
-Similar to the Broker and Historical services, the Coordinator maintains a connection to a ZooKeeper cluster for
-current cluster information. The Coordinator also maintains a connection to a database containing information about
-&quot;used&quot; segments (that is, the segments that <em>should</em> be loaded in the cluster) and the loading rules.</p>
+The Coordinator uses ZooKeeper for leader election and to discover other Druid services, and polls each Historical
+service over HTTP for the current set of segments it is serving. The Coordinator also maintains a connection to a
+database containing information about &quot;used&quot; segments (that is, the segments that <em>should</em> be loaded in the cluster)
+and the loading rules.</p>
 <p>Before any unassigned segments are serviced by Historical services, the Historical services for each tier are first
 sorted in terms of capacity, with least capacity servers having the highest priority. Unassigned segments are always
-assigned to the services with least capacity to maintain a level of balance between services. The Coordinator does not
-directly communicate with a Historical service when assigning it a new segment; instead the Coordinator creates some
-temporary information about the new segment under load queue path of the Historical service. Once this request is seen,
-the Historical service loads the segment and begins servicing it.</p>
+assigned to the services with least capacity to maintain a level of balance between services. The Coordinator sends
+segment load and drop requests to each Historical service over HTTP. Once this request is received, the Historical
+service loads the segment and begins servicing it.</p>
 <h2 class="anchor anchorWithStickyNavbar_LWe7" id="configuration">Configuration<a href="#configuration" class="hash-link" aria-label="Direct link to Configuration" title="Direct link to Configuration">​</a></h2>
-<p>For Apache Druid Coordinator service configuration, see <a href="/docs/latest/configuration/#coordinator">Coordinator configuration</a>.</p>
-<p>For basic tuning guidance for the Coordinator service, see <a href="/docs/latest/operations/basic-cluster-tuning#coordinator">Basic cluster tuning</a>.</p>
+<p>For Apache® Druid Coordinator service configuration, see <a href="/docs/38.0.0/configuration/#coordinator">Coordinator configuration</a>.</p>
+<p>For basic tuning guidance for the Coordinator service, see <a href="/docs/38.0.0/operations/basic-cluster-tuning#coordinator">Basic cluster tuning</a>.</p>
 <h2 class="anchor anchorWithStickyNavbar_LWe7" id="http-endpoints">HTTP endpoints<a href="#http-endpoints" class="hash-link" aria-label="Direct link to HTTP endpoints" title="Direct link to HTTP endpoints">​</a></h2>
-<p>For a list of API endpoints supported by the Coordinator, see <a href="/docs/latest/api-reference/service-status-api#coordinator">Service status API reference</a>.</p>
+<p>For a list of API endpoints supported by the Coordinator, see <a href="/docs/38.0.0/api-reference/service-status-api#coordinator">Service status API reference</a>.</p>
 <h2 class="anchor anchorWithStickyNavbar_LWe7" id="running">Running<a href="#running" class="hash-link" aria-label="Direct link to Running" title="Direct link to Running">​</a></h2>
 <div class="codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#bfc7d5;--prism-background-color:#292d3e"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#bfc7d5;background-color:#292d3e"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#bfc7d5"><span class="token plain">org.apache.druid.cli.Main server coordinator</span><br></span></code></pre><div class="buttonGroup__atx"> [...]
 <h2 class="anchor anchorWithStickyNavbar_LWe7" id="rules">Rules<a href="#rules" class="hash-link" aria-label="Direct link to Rules" title="Direct link to Rules">​</a></h2>
-<p>Segments can be automatically loaded and dropped from the cluster based on a set of rules. For more information on rules, see <a href="/docs/latest/operations/rule-configuration">Rule Configuration</a>.</p>
+<p>Segments can be automatically loaded and dropped from the cluster based on a set of rules. For more information on rules, see <a href="/docs/38.0.0/operations/rule-configuration">Rule Configuration</a>.</p>
 <h3 class="anchor anchorWithStickyNavbar_LWe7" id="clean-up-overshadowed-segments">Clean up overshadowed segments<a href="#clean-up-overshadowed-segments" class="hash-link" aria-label="Direct link to Clean up overshadowed segments" title="Direct link to Clean up overshadowed segments">​</a></h3>
 <p>On each run, the Coordinator compares the set of used segments in the database with the segments served by some
 Historical nodes in the cluster. The Coordinator sends requests to Historical nodes to unload unused segments or segments
@@ -53,27 +53,27 @@ But in a tier with several Historicals (or a low replication factor), segment re
 Thus, the Coordinator constantly monitors the set of segments present on each Historical in a tier and employs one of the following strategies to identify segments that may be moved from one Historical to another to retain balance.</p>
 <ul>
 <li><code>cost</code> (default): For a given segment in a tier, this strategy picks the server with the minimum &quot;cost&quot; of placing that segment. The cost is a function of the data interval of the segment and the data intervals of all the segments already present on the candidate server. In essence, this strategy tries to avoid placing segments with adjacent or overlapping data intervals on the same server. This is based on the premise that adjacent-interval segments are more lik [...]
-<li><code>diskNormalized</code>: A derivative of the <code>cost</code> strategy that weights the cost of placing a segment on a server with the disk usage ratio of the server. There are known issues with this strategy and is not recommended for a production cluster.</li>
+<li><code>diskNormalized</code>: A derivative of the <code>cost</code> strategy that applies normal cost when candidates are within a configured projected disk utilization threshold, and exponentially penalizes candidates outside that threshold. The projected usage ratio is <code>(diskUsed + segmentSizeIfNotAlreadyProjected) / maxSize</code>. A candidate whose projected usage ratio is within <code>druid.coordinator.balancer.diskNormalized.utilizationThreshold</code> (default <code>0.05</ [...]
 <li><code>random</code>: Distributes segments randomly across servers. This is an experimental strategy and is not recommended for a production cluster.</li>
 </ul>
 <p>All of the above strategies prioritize moving segments from the Historical with the least available disk space.</p>
 <h2 class="anchor anchorWithStickyNavbar_LWe7" id="automatic-compaction">Automatic compaction<a href="#automatic-compaction" class="hash-link" aria-label="Direct link to Automatic compaction" title="Direct link to Automatic compaction">​</a></h2>
-<p>The Coordinator manages the <a href="/docs/latest/data-management/automatic-compaction">automatic compaction system</a>.
+<p>The Coordinator manages the <a href="/docs/38.0.0/data-management/automatic-compaction">automatic compaction system</a>.
 Each run, the Coordinator compacts segments by merging small segments or splitting a large one. This is useful when the size of your segments is not optimized which may degrade query performance.
-See <a href="/docs/latest/operations/segment-optimization">Segment size optimization</a> for details.</p>
+See <a href="/docs/38.0.0/operations/segment-optimization">Segment size optimization</a> for details.</p>
 <p>The Coordinator first finds the segments to compact based on the <a href="#segment-search-policy-in-automatic-compaction">segment search policy</a>.
-Once some segments are found, it issues a <a href="/docs/latest/ingestion/tasks#compact">compaction task</a> to compact those segments.
+Once some segments are found, it issues a <a href="/docs/38.0.0/ingestion/tasks#compact">compaction task</a> to compact those segments.
 The maximum number of running compaction tasks is <code>min(sum of worker capacity * slotRatio, maxSlots)</code>.
 Note that even if <code>min(sum of worker capacity * slotRatio, maxSlots) = 0</code>, at least one compaction task is always submitted
 if the compaction is enabled for a dataSource.
-See <a href="/docs/latest/api-reference/automatic-compaction-api#manage-automatic-compaction">Automatic compaction configuration API</a> and <a href="/docs/latest/configuration/#automatic-compaction-dynamic-configuration">Automatic compaction configuration</a> to enable and configure automatic compaction.</p>
+See <a href="/docs/38.0.0/api-reference/automatic-compaction-api#manage-automatic-compaction">Automatic compaction configuration API</a> and <a href="/docs/38.0.0/configuration/#automatic-compaction-dynamic-configuration">Automatic compaction configuration</a> to enable and configure automatic compaction.</p>
 <p>Compaction tasks might fail due to the following reasons:</p>
 <ul>
 <li>If the input segments of a compaction task are removed or overshadowed before it starts, that compaction task fails immediately.</li>
-<li>If a task of a higher priority acquires a <a href="/docs/latest/ingestion/tasks#locking">time chunk lock</a> for an interval overlapping with the interval of a compaction task, the compaction task fails.</li>
+<li>If a task of a higher priority acquires a <a href="/docs/38.0.0/ingestion/tasks#locking">time chunk lock</a> for an interval overlapping with the interval of a compaction task, the compaction task fails.</li>
 </ul>
 <p>Once a compaction task fails, the Coordinator simply checks the segments in the interval of the failed task again, and issues another compaction task in the next run.</p>
-<p>Note that Compacting Segments Coordinator Duty is automatically enabled and run as part of the Indexing Service Duties group. However, Compacting Segments Coordinator Duty can be configured to run in isolation as a separate Coordinator duty group. This allows changing the period of Compacting Segments Coordinator Duty without impacting the period of other Indexing Service Duties. This can be done by setting the following properties. For more details, see <a href="/docs/latest/developm [...]
+<p>Note that Compacting Segments Coordinator Duty is automatically enabled and run as part of the Indexing Service Duties group. However, Compacting Segments Coordinator Duty can be configured to run in isolation as a separate Coordinator duty group. This allows changing the period of Compacting Segments Coordinator Duty without impacting the period of other Indexing Service Duties. This can be done by setting the following properties. For more details, see <a href="/docs/38.0.0/developm [...]
 <div class="codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#bfc7d5;--prism-background-color:#292d3e"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#bfc7d5;background-color:#292d3e"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#bfc7d5"><span class="token plain">druid.coordinator.dutyGroups=[&lt;SOME_GROUP_NAME&gt;]</span><br></span><span class="token-line" style="c [...]
 <h2 class="anchor anchorWithStickyNavbar_LWe7" id="segment-search-policy-in-automatic-compaction">Segment search policy in automatic compaction<a href="#segment-search-policy-in-automatic-compaction" class="hash-link" aria-label="Direct link to Segment search policy in automatic compaction" title="Direct link to Segment search policy in automatic compaction">​</a></h2>
 <p>At every Coordinator run, this policy looks up time chunks from newest to oldest and checks whether the segments in those time chunks
@@ -109,9 +109,9 @@ Finally, <code>foo_2017-09-01T00:00:00.000Z_2017-10-01T00:00:00.000Z_VERSION</co
 If this is set, this policy will ignore the segments falling into the time chunk of (the end time of the most recent segment - <code>skipOffsetFromLatest</code>).
 This is to avoid conflicts between compaction tasks and realtime tasks.
 Note that realtime tasks have a higher priority than compaction tasks by default. Realtime tasks will revoke the locks of compaction tasks if their intervals overlap, resulting in the termination of the compaction task.
-For more information, see <a href="/docs/latest/data-management/automatic-compaction#avoid-conflicts-with-ingestion">Avoid conflicts with ingestion</a>.</p>
+For more information, see <a href="/docs/38.0.0/data-management/automatic-compaction#avoid-conflicts-with-ingestion">Avoid conflicts with ingestion</a>.</p>
 <div class="theme-admonition theme-admonition-info admonition_xJq3 alert alert--info"><div class="admonitionHeading_Gvgb"><span class="admonitionIcon_Rf37"><svg viewBox="0 0 14 16"><path fill-rule="evenodd" d="M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"></path></svg></span>info</div><div class="admonitionContent_BuS1"><p>This policy currently cannot hand [...]
-and their total size exceeds <a href="/docs/latest/configuration/#automatic-compaction-dynamic-configuration"><code>inputSegmentSizeBytes</code></a>.
+and their total size exceeds <a href="/docs/38.0.0/configuration/#automatic-compaction-dynamic-configuration"><code>inputSegmentSizeBytes</code></a>.
 If it finds such segments, it simply skips them.</p></div></div>
 <h2 class="anchor anchorWithStickyNavbar_LWe7" id="faq">FAQ<a href="#faq" class="hash-link" aria-label="Direct link to FAQ" title="Direct link to FAQ">​</a></h2>
 <ol>
@@ -126,6 +126,6 @@ If it finds such segments, it simply skips them.</p></div></div>
 <p>No. If the Coordinator is not started up, no new segments will be loaded in the cluster and outdated segments will not be dropped. However, the Coordinator service can be started up at any time, and after a configurable delay, will start running Coordinator tasks.</p>
 <p>This also means that if you have a working cluster and all of your Coordinators die, the cluster will continue to function, it just won’t experience any changes to its data topology.</p>
 </li>
-</ol></div></article><nav class="pagination-nav docusaurus-mt-lg" aria-label="Docs pages"><a class="pagination-nav__link pagination-nav__link--prev" href="/docs/latest/design/architecture"><div class="pagination-nav__sublabel">Previous</div><div class="pagination-nav__label">Architecture</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/docs/latest/design/overlord"><div class="pagination-nav__sublabel">Next</div><div class="pagination-nav__label">Overlord</div></ [...]
+</ol></div></article><nav class="pagination-nav docusaurus-mt-lg" aria-label="Docs pages"><a class="pagination-nav__link pagination-nav__link--prev" href="/docs/38.0.0/design/architecture"><div class="pagination-nav__sublabel">Previous</div><div class="pagination-nav__label">Architecture</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/docs/38.0.0/design/overlord"><div class="pagination-nav__sublabel">Next</div><div class="pagination-nav__label">Overlord</div></ [...]
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/38.0.0/design/deep-storage.html/index.html b/docs/38.0.0/design/deep-storage.html/index.html
new file mode 100644
index 000000000..3ded10d09
--- /dev/null
+++ b/docs/38.0.0/design/deep-storage.html/index.html
@@ -0,0 +1,11 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <meta charset="UTF-8">
+    <meta http-equiv="refresh" content="0; url=/docs/38.0.0/design/deep-storage">
+    <link rel="canonical" href="/docs/38.0.0/design/deep-storage" />
+  </head>
+  <script>
+    window.location.href = '/docs/38.0.0/design/deep-storage' + window.location.search + window.location.hash;
+  </script>
+</html>
\ No newline at end of file
diff --git a/docs/latest/design/deep-storage/index.html b/docs/38.0.0/design/deep-storage/index.html
similarity index 88%
copy from docs/latest/design/deep-storage/index.html
copy to docs/38.0.0/design/deep-storage/index.html
index c45d6b686..4d960795b 100644
--- a/docs/latest/design/deep-storage/index.html
+++ b/docs/38.0.0/design/deep-storage/index.html
@@ -3,14 +3,14 @@
 <head>
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.7.0">
-<title data-rh="true">Deep storage | Apache® Druid</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://druid.apache.org/img/druid_nav.png"><meta data-rh="true" name="twitter:image" content="https://druid.apache.org/img/druid_nav.png"><meta data-rh="true" property="og:url" content="https://druid.apache.org/docs/latest/design/ [...]
+<title data-rh="true">Deep storage | Apache® Druid</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://druid.apache.org/img/druid_nav.png"><meta data-rh="true" name="twitter:image" content="https://druid.apache.org/img/druid_nav.png"><meta data-rh="true" property="og:url" content="https://druid.apache.org/docs/38.0.0/design/ [...]
 <script src="/js/clipboard.min.js"></script><link rel="stylesheet" href="/assets/css/styles.f3140859.css">
-<script src="/assets/js/runtime~main.3e1f3e8c.js" defer="defer"></script>
-<script src="/assets/js/main.b85ce480.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.ea7da916.js" defer="defer"></script>
+<script src="/assets/js/main.b6e60483.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
-<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const n=new URLSearchParams(window.location.search).entries();for(var[t,e]of n)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentEle [...]
-<p>In addition to being the backing store for segments, you can use <a href="#querying-from-deep-storage">query from deep storage</a> and run queries against segments stored primarily in deep storage. The <a href="/docs/latest/operations/rule-configuration#load-rules">load rules</a> you configure determine whether segments exist primarily in deep storage or in a combination of deep storage and Historical processes.</p>
+<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const n=new URLSearchParams(window.location.search).entries();for(var[t,e]of n)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentEle [...]
+<p>In addition to being the backing store for segments, you can use <a href="#querying-from-deep-storage">query from deep storage</a> and run queries against segments stored primarily in deep storage. The <a href="/docs/38.0.0/operations/rule-configuration#load-rules">load rules</a> you configure determine whether segments exist primarily in deep storage or in a combination of deep storage and Historical processes.</p>
 <h2 class="anchor anchorWithStickyNavbar_LWe7" id="deep-storage-options">Deep storage options<a href="#deep-storage-options" class="hash-link" aria-label="Direct link to Deep storage options" title="Direct link to Deep storage options">​</a></h2>
 <p>Druid supports multiple options for deep storage, including blob storage from major cloud providers. Select the one that fits your environment.</p>
 <h3 class="anchor anchorWithStickyNavbar_LWe7" id="local">Local<a href="#local" class="hash-link" aria-label="Direct link to Local" title="Direct link to Local">​</a></h3>
@@ -30,17 +30,17 @@ generally more convenient, more scalable, and more robust than setting up a shar
 <p>The <code>druid.storage.storageDirectory</code> must be set to a different path than <code>druid.segmentCache.locations</code> or
 <code>druid.segmentCache.infoDir</code>.</p>
 <h3 class="anchor anchorWithStickyNavbar_LWe7" id="amazon-s3-or-s3-compatible">Amazon S3 or S3-compatible<a href="#amazon-s3-or-s3-compatible" class="hash-link" aria-label="Direct link to Amazon S3 or S3-compatible" title="Direct link to Amazon S3 or S3-compatible">​</a></h3>
-<p>See <a href="/docs/latest/development/extensions-core/s3"><code>druid-s3-extensions</code></a>.</p>
+<p>See <a href="/docs/38.0.0/development/extensions-core/s3"><code>druid-s3-extensions</code></a>.</p>
 <h3 class="anchor anchorWithStickyNavbar_LWe7" id="google-cloud-storage">Google Cloud Storage<a href="#google-cloud-storage" class="hash-link" aria-label="Direct link to Google Cloud Storage" title="Direct link to Google Cloud Storage">​</a></h3>
-<p>See <a href="/docs/latest/development/extensions-core/google"><code>druid-google-extensions</code></a>.</p>
+<p>See <a href="/docs/38.0.0/development/extensions-core/google"><code>druid-google-extensions</code></a>.</p>
 <h3 class="anchor anchorWithStickyNavbar_LWe7" id="azure-blob-storage">Azure Blob Storage<a href="#azure-blob-storage" class="hash-link" aria-label="Direct link to Azure Blob Storage" title="Direct link to Azure Blob Storage">​</a></h3>
-<p>See <a href="/docs/latest/development/extensions-core/azure"><code>druid-azure-extensions</code></a>.</p>
+<p>See <a href="/docs/38.0.0/development/extensions-core/azure"><code>druid-azure-extensions</code></a>.</p>
 <h3 class="anchor anchorWithStickyNavbar_LWe7" id="hdfs">HDFS<a href="#hdfs" class="hash-link" aria-label="Direct link to HDFS" title="Direct link to HDFS">​</a></h3>
-<p>See <a href="/docs/latest/development/extensions-core/hdfs">druid-hdfs-storage extension documentation</a>.</p>
+<p>See <a href="/docs/38.0.0/development/extensions-core/hdfs">druid-hdfs-storage extension documentation</a>.</p>
 <h3 class="anchor anchorWithStickyNavbar_LWe7" id="additional-options">Additional options<a href="#additional-options" class="hash-link" aria-label="Direct link to Additional options" title="Direct link to Additional options">​</a></h3>
-<p>For additional deep storage options, please see our <a href="/docs/latest/configuration/extensions">extensions list</a>.</p>
+<p>For additional deep storage options, please see our <a href="/docs/38.0.0/configuration/extensions">extensions list</a>.</p>
 <h2 class="anchor anchorWithStickyNavbar_LWe7" id="querying-from-deep-storage">Querying from deep storage<a href="#querying-from-deep-storage" class="hash-link" aria-label="Direct link to Querying from deep storage" title="Direct link to Querying from deep storage">​</a></h2>
 <p>Although not as performant as querying segments stored on disk for Historical processes, you can query from deep storage to access segments that you may not need frequently or with the extreme low latency Druid queries traditionally provide. You trade some performance for a total lower storage cost because you can access more of your data without the need to increase the number or capacity of your Historical processes.</p>
-<p>For information about how to run queries, see <a href="/docs/latest/querying/query-deep-storage">Query from deep storage</a>.</p></div></article><nav class="pagination-nav docusaurus-mt-lg" aria-label="Docs pages"><a class="pagination-nav__link pagination-nav__link--prev" href="/docs/latest/design/segments"><div class="pagination-nav__sublabel">Previous</div><div class="pagination-nav__label">Segments</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/docs/late [...]
+<p>For information about how to run queries, see <a href="/docs/38.0.0/querying/query-deep-storage">Query from deep storage</a>.</p></div></article><nav class="pagination-nav docusaurus-mt-lg" aria-label="Docs pages"><a class="pagination-nav__link pagination-nav__link--prev" href="/docs/38.0.0/design/segments"><div class="pagination-nav__sublabel">Previous</div><div class="pagination-nav__label">Segments</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/docs/38.0 [...]
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/38.0.0/design/design.html/index.html b/docs/38.0.0/design/design.html/index.html
new file mode 100644
index 000000000..62bcded26
--- /dev/null
+++ b/docs/38.0.0/design/design.html/index.html
@@ -0,0 +1,11 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <meta charset="UTF-8">
+    <meta http-equiv="refresh" content="0; url=/docs/38.0.0/design/">
+    <link rel="canonical" href="/docs/38.0.0/design/" />
+  </head>
+  <script>
+    window.location.href = '/docs/38.0.0/design/' + window.location.search + window.location.hash;
+  </script>
+</html>
\ No newline at end of file
diff --git a/docs/38.0.0/design/extensions-contrib/dropwizard.html/index.html b/docs/38.0.0/design/extensions-contrib/dropwizard.html/index.html
new file mode 100644
index 000000000..0339a46a3
--- /dev/null
+++ b/docs/38.0.0/design/extensions-contrib/dropwizard.html/index.html
@@ -0,0 +1,11 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <meta charset="UTF-8">
+    <meta http-equiv="refresh" content="0; url=/docs/38.0.0/design/extensions-contrib/dropwizard">
+    <link rel="canonical" href="/docs/38.0.0/design/extensions-contrib/dropwizard" />
+  </head>
+  <script>
+    window.location.href = '/docs/38.0.0/design/extensions-contrib/dropwizard' + window.location.search + window.location.hash;
+  </script>
+</html>
\ No newline at end of file
diff --git a/docs/latest/design/extensions-contrib/dropwizard/index.html b/docs/38.0.0/design/extensions-contrib/dropwizard/index.html
similarity index 97%
copy from docs/latest/design/extensions-contrib/dropwizard/index.html
copy to docs/38.0.0/design/extensions-contrib/dropwizard/index.html
index a248c4588..837fe99a5 100644
--- a/docs/latest/design/extensions-contrib/dropwizard/index.html
+++ b/docs/38.0.0/design/extensions-contrib/dropwizard/index.html
@@ -3,14 +3,14 @@
 <head>
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.7.0">
-<title data-rh="true">Dropwizard metrics emitter | Apache® Druid</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://druid.apache.org/img/druid_nav.png"><meta data-rh="true" name="twitter:image" content="https://druid.apache.org/img/druid_nav.png"><meta data-rh="true" property="og:url" content="https://druid.apache.org/docs/ [...]
+<title data-rh="true">Dropwizard metrics emitter | Apache® Druid</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://druid.apache.org/img/druid_nav.png"><meta data-rh="true" name="twitter:image" content="https://druid.apache.org/img/druid_nav.png"><meta data-rh="true" property="og:url" content="https://druid.apache.org/docs/ [...]
 <script src="/js/clipboard.min.js"></script><link rel="stylesheet" href="/assets/css/styles.f3140859.css">
-<script src="/assets/js/runtime~main.3e1f3e8c.js" defer="defer"></script>
-<script src="/assets/js/main.b85ce480.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.ea7da916.js" defer="defer"></script>
+<script src="/assets/js/main.b6e60483.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
-<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const n=new URLSearchParams(window.location.search).entries();for(var[t,e]of n)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentEle [...]
-<p>To use this extension, make sure to <a href="/docs/latest/configuration/extensions#loading-extensions">include</a> <code>dropwizard-emitter</code> in the extensions load list.</p>
+<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const n=new URLSearchParams(window.location.search).entries();for(var[t,e]of n)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentEle [...]
+<p>To use this extension, make sure to <a href="/docs/38.0.0/configuration/extensions#loading-extensions">include</a> <code>dropwizard-emitter</code> in the extensions load list.</p>
 <h2 class="anchor anchorWithStickyNavbar_LWe7" id="introduction">Introduction<a href="#introduction" class="hash-link" aria-label="Direct link to Introduction" title="Direct link to Introduction">​</a></h2>
 <p>This extension integrates <a href="http://metrics.dropwizard.io/3.1.0/getting-started/#" target="_blank" rel="noopener noreferrer">Dropwizard</a> metrics library with druid so that dropwizard users can easily absorb druid into their monitoring ecosystem.
 It accumulates druid metrics as dropwizard metrics, and emits them to various sinks via dropwizard supported reporters.
diff --git a/docs/38.0.0/design/historical.html/index.html b/docs/38.0.0/design/historical.html/index.html
new file mode 100644
index 000000000..4c34a3921
--- /dev/null
+++ b/docs/38.0.0/design/historical.html/index.html
@@ -0,0 +1,11 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <meta charset="UTF-8">
+    <meta http-equiv="refresh" content="0; url=/docs/38.0.0/design/historical">
+    <link rel="canonical" href="/docs/38.0.0/design/historical" />
+  </head>
+  <script>
+    window.location.href = '/docs/38.0.0/design/historical' + window.location.search + window.location.hash;
+  </script>
+</html>
\ No newline at end of file
diff --git a/docs/latest/design/historical/index.html b/docs/38.0.0/design/historical/index.html
similarity index 84%
copy from docs/latest/design/historical/index.html
copy to docs/38.0.0/design/historical/index.html
index f4a650ff4..2f1c4de1f 100644
--- a/docs/latest/design/historical/index.html
+++ b/docs/38.0.0/design/historical/index.html
@@ -3,36 +3,36 @@
 <head>
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.7.0">
-<title data-rh="true">Historical service | Apache® Druid</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://druid.apache.org/img/druid_nav.png"><meta data-rh="true" name="twitter:image" content="https://druid.apache.org/img/druid_nav.png"><meta data-rh="true" property="og:url" content="https://druid.apache.org/docs/latest/d [...]
+<title data-rh="true">Historical service | Apache® Druid</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://druid.apache.org/img/druid_nav.png"><meta data-rh="true" name="twitter:image" content="https://druid.apache.org/img/druid_nav.png"><meta data-rh="true" property="og:url" content="https://druid.apache.org/docs/38.0.0/d [...]
 <script src="/js/clipboard.min.js"></script><link rel="stylesheet" href="/assets/css/styles.f3140859.css">
-<script src="/assets/js/runtime~main.3e1f3e8c.js" defer="defer"></script>
-<script src="/assets/js/main.b85ce480.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.ea7da916.js" defer="defer"></script>
+<script src="/assets/js/main.b6e60483.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
-<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const n=new URLSearchParams(window.location.search).entries();for(var[t,e]of n)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentEle [...]
+<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const n=new URLSearchParams(window.location.search).entries();for(var[t,e]of n)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentEle [...]
 Historical services cache data segments on local disk and serve queries from that cache as well as from an in-memory cache.</p>
 <h2 class="anchor anchorWithStickyNavbar_LWe7" id="configuration">Configuration<a href="#configuration" class="hash-link" aria-label="Direct link to Configuration" title="Direct link to Configuration">​</a></h2>
-<p>For Apache Druid Historical service configuration, see <a href="/docs/latest/configuration/#historical">Historical configuration</a>.</p>
-<p>For basic tuning guidance for the Historical service, see <a href="/docs/latest/operations/basic-cluster-tuning#historical">Basic cluster tuning</a>.</p>
+<p>For Apache® Druid Historical service configuration, see <a href="/docs/38.0.0/configuration/#historical">Historical configuration</a>.</p>
+<p>For basic tuning guidance for the Historical service, see <a href="/docs/38.0.0/operations/basic-cluster-tuning#historical">Basic cluster tuning</a>.</p>
 <h2 class="anchor anchorWithStickyNavbar_LWe7" id="http-endpoints">HTTP endpoints<a href="#http-endpoints" class="hash-link" aria-label="Direct link to HTTP endpoints" title="Direct link to HTTP endpoints">​</a></h2>
-<p>For a list of API endpoints supported by the Historical, please see the <a href="/docs/latest/api-reference/service-status-api#historical">Service status API reference</a>.</p>
+<p>For a list of API endpoints supported by the Historical, please see the <a href="/docs/38.0.0/api-reference/service-status-api#historical">Service status API reference</a>.</p>
 <h2 class="anchor anchorWithStickyNavbar_LWe7" id="running">Running<a href="#running" class="hash-link" aria-label="Direct link to Running" title="Direct link to Running">​</a></h2>
 <div class="codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#bfc7d5;--prism-background-color:#292d3e"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#bfc7d5;background-color:#292d3e"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#bfc7d5"><span class="token plain">org.apache.druid.cli.Main server historical</span><br></span></code></pre><div class="buttonGroup__atx">< [...]
 <h2 class="anchor anchorWithStickyNavbar_LWe7" id="loading-and-serving-segments">Loading and serving segments<a href="#loading-and-serving-segments" class="hash-link" aria-label="Direct link to Loading and serving segments" title="Direct link to Loading and serving segments">​</a></h2>
 <p>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 <code>druid.segmentCache.locations</code>.
-For more information, see <a href="/docs/latest/operations/basic-cluster-tuning#segment-cache-size">Segment cache size</a>.</p>
-<p>The <a href="/docs/latest/design/coordinator">Coordinator</a> 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 <a href="/docs/latest/configuration/#path-configuration">load queue path</a>. Each Historical service maintains a connection to ZooKeeper, [...]
-<p>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.</p>
-<p>For more information about segment metadata and Druid segments in general, see <a href="/docs/latest/design/segments">Segments</a>.</p>
-<p>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 <a href="/docs/latest/configuration/#path-configuration">served segments path</a>.</p>
-<p>For more information about how the Broker determines what data is available for queries, see <a href="/docs/latest/design/broker">Broker</a>.</p>
+For more information, see <a href="/docs/38.0.0/operations/basic-cluster-tuning#segment-cache-size">Segment cache size</a>.</p>
+<p>The <a href="/docs/38.0.0/design/coordinator">Coordinator</a> controls the assignment of segments to Historicals and the balance of segments between Historicals. Historical services do not communicate directly with each other. The Coordinator sends segment load and drop requests to each Historical over HTTP, and each Historical exposes an HTTP endpoint for the Coordinator to poll for the current state of its segment assignments.</p>
+<p>When a Historical service receives a load request, it checks its own segment cache. If no information about the segment exists there, the Historical uses the segment metadata included in the request — including where the segment is located in deep storage and how to decompress and process it — to pull the segment from deep storage.</p>
+<p>For more information about segment metadata and Druid segments in general, see <a href="/docs/38.0.0/design/segments">Segments</a>.</p>
+<p>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. The Historical exposes its current set of served segments via an HTTP endpoint (<code>/druid-internal/v1/segments</code>), which the Broker polls to learn what data each Historical is serving.</p>
+<p>For more information about how the Broker determines what data is available for queries, see <a href="/docs/38.0.0/design/broker">Broker</a>.</p>
 <p>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.</p>
 <h2 class="anchor anchorWithStickyNavbar_LWe7" id="loading-and-serving-segments-from-cache">Loading and serving segments from cache<a href="#loading-and-serving-segments-from-cache" class="hash-link" aria-label="Direct link to Loading and serving segments from cache" title="Direct link to Loading and serving segments from cache">​</a></h2>
 <p>The segment cache uses <a href="https://en.wikipedia.org/wiki/Mmap" target="_blank" rel="noopener noreferrer">memory mapping</a>. 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.</p>
 <p>At query time, if the required part of a segment file is available in the memory mapped cache or &quot;page cache&quot;, 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 <code>druid.server.maxSize</code>, the more likely that segmen [...]
-<p>Note that this memory-mapped segment cache is in addition to other <a href="/docs/latest/querying/caching">query-level caches</a>.</p>
+<p>Note that this memory-mapped segment cache is in addition to other <a href="/docs/38.0.0/querying/caching">query-level caches</a>.</p>
 <h2 class="anchor anchorWithStickyNavbar_LWe7" id="querying-segments">Querying segments<a href="#querying-segments" class="hash-link" aria-label="Direct link to Querying segments" title="Direct link to Querying segments">​</a></h2>
 <p>You can configure a Historical service to log and report metrics for every query it services.
-For information on querying Historical services, see <a href="/docs/latest/querying/">Querying</a>.</p></div></article><nav class="pagination-nav docusaurus-mt-lg" aria-label="Docs pages"><a class="pagination-nav__link pagination-nav__link--prev" href="/docs/latest/design/router"><div class="pagination-nav__sublabel">Previous</div><div class="pagination-nav__label">Router</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/docs/latest/design/middlemanager"><div cla [...]
+For information on querying Historical services, see <a href="/docs/38.0.0/querying/">Querying</a>.</p></div></article><nav class="pagination-nav docusaurus-mt-lg" aria-label="Docs pages"><a class="pagination-nav__link pagination-nav__link--prev" href="/docs/38.0.0/design/router"><div class="pagination-nav__sublabel">Previous</div><div class="pagination-nav__label">Router</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/docs/38.0.0/design/middlemanager"><div cla [...]
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/latest/design/index.html b/docs/38.0.0/design/index.html
similarity index 92%
copy from docs/latest/design/index.html
copy to docs/38.0.0/design/index.html
index c36027758..d18395169 100644
--- a/docs/latest/design/index.html
+++ b/docs/38.0.0/design/index.html
@@ -3,13 +3,13 @@
 <head>
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.7.0">
-<title data-rh="true">Introduction to Apache Druid | Apache® Druid</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://druid.apache.org/img/druid_nav.png"><meta data-rh="true" name="twitter:image" content="https://druid.apache.org/img/druid_nav.png"><meta data-rh="true" property="og:url" content="https://druid.apache.org/doc [...]
+<title data-rh="true">Introduction to Apache Druid | Apache® Druid</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://druid.apache.org/img/druid_nav.png"><meta data-rh="true" name="twitter:image" content="https://druid.apache.org/img/druid_nav.png"><meta data-rh="true" property="og:url" content="https://druid.apache.org/doc [...]
 <script src="/js/clipboard.min.js"></script><link rel="stylesheet" href="/assets/css/styles.f3140859.css">
-<script src="/assets/js/runtime~main.3e1f3e8c.js" defer="defer"></script>
-<script src="/assets/js/main.b85ce480.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.ea7da916.js" defer="defer"></script>
+<script src="/assets/js/main.b6e60483.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
-<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const n=new URLSearchParams(window.location.search).entries();for(var[t,e]of n)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentEle [...]
+<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const n=new URLSearchParams(window.location.search).entries();for(var[t,e]of n)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentEle [...]
 <p>Druid is commonly used as the database backend for GUIs of analytical applications, or for highly-concurrent APIs that need fast aggregations. Druid works best with event-oriented data.</p>
 <p>Common application areas for Druid include:</p>
 <table><thead><tr><th>Use Case</th><th>Description</th></tr></thead><tbody><tr><td>Clickstream analytics</td><td>Analyze user behavior on websites and mobile applications to understand navigation patterns, popular content, and user engagement</td></tr><tr><td>Network telemetry analytics</td><td>Monitor and analyze network traffic and performance metrics to optimize network efficiency, identify bottlenecks, and ensure quality of service</td></tr><tr><td>Server metrics storage</td><td>Coll [...]
@@ -29,7 +29,7 @@ remove servers to scale down. The Druid cluster re-balances itself automatically
 Druid server fails, the system automatically routes data around the damage until the server can be replaced. Druid
 is designed to run continuously without planned downtime for any reason. This is true for configuration changes and software
 updates.</li>
-<li><strong>Cloud-native, fault-tolerant architecture that won&#x27;t lose data.</strong> After ingestion, Druid safely stores a copy of your data in <a href="/docs/latest/design/architecture#deep-storage">deep storage</a>. Deep storage is typically cloud storage, HDFS, or a shared filesystem. You can recover your data from deep storage even in the unlikely case that all Druid servers fail. For a limited failure that affects only a few Druid servers, replication ensures that queries are  [...]
+<li><strong>Cloud-native, fault-tolerant architecture that won&#x27;t lose data.</strong> After ingestion, Druid safely stores a copy of your data in <a href="/docs/38.0.0/design/architecture#deep-storage">deep storage</a>. Deep storage is typically cloud storage, HDFS, or a shared filesystem. You can recover your data from deep storage even in the unlikely case that all Druid servers fail. For a limited failure that affects only a few Druid servers, replication ensures that queries are  [...]
 <li><strong>Indexes for quick filtering.</strong> Druid uses <a href="https://roaringbitmap.org/" target="_blank" rel="noopener noreferrer">Roaring</a> or
 <a href="https://arxiv.org/pdf/1004.0403" target="_blank" rel="noopener noreferrer">CONCISE</a> compressed bitmap indexes to create indexes to enable fast filtering and searching across multiple columns.</li>
 <li><strong>Time-based partitioning.</strong> Druid first partitions data by time. You can optionally implement additional partitioning based upon other fields.
@@ -66,9 +66,9 @@ taking a long time to complete.</li>
 </ul>
 <h2 class="anchor anchorWithStickyNavbar_LWe7" id="learn-more">Learn more<a href="#learn-more" class="hash-link" aria-label="Direct link to Learn more" title="Direct link to Learn more">​</a></h2>
 <ul>
-<li>Try the Druid <a href="/docs/latest/tutorials/">Quickstart</a>.</li>
-<li>Learn more about Druid components in <a href="/docs/latest/design/architecture">Design</a>.</li>
+<li>Try the Druid <a href="/docs/38.0.0/tutorials/">Quickstart</a>.</li>
+<li>Learn more about Druid components in <a href="/docs/38.0.0/design/architecture">Design</a>.</li>
 <li>Read about new features and improvements in <a href="https://github.com/apache/druid/releases" target="_blank" rel="noopener noreferrer">Druid Releases</a>.</li>
-</ul></div></article><nav class="pagination-nav docusaurus-mt-lg" aria-label="Docs pages"><a class="pagination-nav__link pagination-nav__link--next" href="/docs/latest/tutorials/"><div class="pagination-nav__sublabel">Next</div><div class="pagination-nav__label">Local quickstart</div></a></nav></div></div><div class="col col--3"><div class="tableOfContents_bqdL thin-scrollbar theme-doc-toc-desktop"><ul class="table-of-contents table-of-contents__left-border"><li><a href="#key-features-of [...]
+</ul></div></article><nav class="pagination-nav docusaurus-mt-lg" aria-label="Docs pages"><a class="pagination-nav__link pagination-nav__link--next" href="/docs/38.0.0/tutorials/"><div class="pagination-nav__sublabel">Next</div><div class="pagination-nav__label">Local quickstart</div></a></nav></div></div><div class="col col--3"><div class="tableOfContents_bqdL thin-scrollbar theme-doc-toc-desktop"><ul class="table-of-contents table-of-contents__left-border"><li><a href="#key-features-of [...]
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/38.0.0/design/indexer.html/index.html b/docs/38.0.0/design/indexer.html/index.html
new file mode 100644
index 000000000..64edf3feb
--- /dev/null
+++ b/docs/38.0.0/design/indexer.html/index.html
@@ -0,0 +1,11 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <meta charset="UTF-8">
+    <meta http-equiv="refresh" content="0; url=/docs/38.0.0/design/indexer">
+    <link rel="canonical" href="/docs/38.0.0/design/indexer" />
+  </head>
+  <script>
+    window.location.href = '/docs/38.0.0/design/indexer' + window.location.search + window.location.hash;
+  </script>
+</html>
\ No newline at end of file
diff --git a/docs/latest/design/indexer/index.html b/docs/38.0.0/design/indexer/index.html
similarity index 88%
copy from docs/latest/design/indexer/index.html
copy to docs/38.0.0/design/indexer/index.html
index 4c2fbeafd..00fb2b699 100644
--- a/docs/latest/design/indexer/index.html
+++ b/docs/38.0.0/design/indexer/index.html
@@ -3,26 +3,26 @@
 <head>
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.7.0">
-<title data-rh="true">Indexer service | Apache® Druid</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://druid.apache.org/img/druid_nav.png"><meta data-rh="true" name="twitter:image" content="https://druid.apache.org/img/druid_nav.png"><meta data-rh="true" property="og:url" content="https://druid.apache.org/docs/latest/desi [...]
+<title data-rh="true">Indexer service | Apache® Druid</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://druid.apache.org/img/druid_nav.png"><meta data-rh="true" name="twitter:image" content="https://druid.apache.org/img/druid_nav.png"><meta data-rh="true" property="og:url" content="https://druid.apache.org/docs/38.0.0/desi [...]
 <script src="/js/clipboard.min.js"></script><link rel="stylesheet" href="/assets/css/styles.f3140859.css">
-<script src="/assets/js/runtime~main.3e1f3e8c.js" defer="defer"></script>
-<script src="/assets/js/main.b85ce480.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.ea7da916.js" defer="defer"></script>
+<script src="/assets/js/main.b6e60483.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
-<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const n=new URLSearchParams(window.location.search).entries();for(var[t,e]of n)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentEle [...]
-<p>The Apache Druid Indexer service is an alternative to the Middle Manager + Peon task execution system. Instead of forking a separate JVM process per-task, the Indexer runs tasks as separate threads within a single JVM process.</p>
+<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const n=new URLSearchParams(window.location.search).entries();for(var[t,e]of n)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentEle [...]
+<p>The Apache® Druid Indexer service is an alternative to the Middle Manager + Peon task execution system. Instead of forking a separate JVM process per-task, the Indexer runs tasks as separate threads within a single JVM process.</p>
 <p>The Indexer is designed to be easier to configure and deploy compared to the Middle Manager + Peon system and to better enable resource sharing across tasks.</p>
 <h2 class="anchor anchorWithStickyNavbar_LWe7" id="configuration">Configuration<a href="#configuration" class="hash-link" aria-label="Direct link to Configuration" title="Direct link to Configuration">​</a></h2>
-<p>For Apache Druid Indexer service configuration, see <a href="/docs/latest/configuration/#indexer">Indexer Configuration</a>.</p>
+<p>For Apache Druid Indexer service configuration, see <a href="/docs/38.0.0/configuration/#indexer">Indexer Configuration</a>.</p>
 <h2 class="anchor anchorWithStickyNavbar_LWe7" id="http-endpoints">HTTP endpoints<a href="#http-endpoints" class="hash-link" aria-label="Direct link to HTTP endpoints" title="Direct link to HTTP endpoints">​</a></h2>
-<p>The Indexer service shares the same HTTP endpoints as the <a href="/docs/latest/api-reference/service-status-api#middle-manager">Middle Manager</a>.</p>
+<p>The Indexer service shares the same HTTP endpoints as the <a href="/docs/38.0.0/api-reference/service-status-api#middle-manager">Middle Manager</a>.</p>
 <h2 class="anchor anchorWithStickyNavbar_LWe7" id="running">Running<a href="#running" class="hash-link" aria-label="Direct link to Running" title="Direct link to Running">​</a></h2>
 <div class="codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#bfc7d5;--prism-background-color:#292d3e"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#bfc7d5;background-color:#292d3e"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#bfc7d5"><span class="token plain">org.apache.druid.cli.Main server indexer</span><br></span></code></pre><div class="buttonGroup__atx"><but [...]
 <h2 class="anchor anchorWithStickyNavbar_LWe7" id="task-resource-sharing">Task resource sharing<a href="#task-resource-sharing" class="hash-link" aria-label="Direct link to Task resource sharing" title="Direct link to Task resource sharing">​</a></h2>
 <p>The following resources are shared across all tasks running inside the Indexer service.</p>
 <h3 class="anchor anchorWithStickyNavbar_LWe7" id="query-resources">Query resources<a href="#query-resources" class="hash-link" aria-label="Direct link to Query resources" title="Direct link to Query resources">​</a></h3>
 <p>The query processing threads and buffers are shared across all tasks. The Indexer serves queries from a single endpoint shared by all tasks.</p>
-<p>If <a href="/docs/latest/configuration/#indexer-caching">query caching</a> is enabled, the query cache is also shared across all tasks.</p>
+<p>If <a href="/docs/38.0.0/configuration/#indexer-caching">query caching</a> is enabled, the query cache is also shared across all tasks.</p>
 <h3 class="anchor anchorWithStickyNavbar_LWe7" id="server-http-threads">Server HTTP threads<a href="#server-http-threads" class="hash-link" aria-label="Direct link to Server HTTP threads" title="Direct link to Server HTTP threads">​</a></h3>
 <p>The Indexer maintains two equally sized pools of HTTP threads.
 One pool is exclusively used for task control messages between the Overlord and the Indexer (&quot;chat handler threads&quot;). The other pool is used for handling all other HTTP requests.</p>
@@ -42,6 +42,6 @@ One pool is exclusively used for task control messages between the Overlord and
 <h2 class="anchor anchorWithStickyNavbar_LWe7" id="current-limitations">Current limitations<a href="#current-limitations" class="hash-link" aria-label="Direct link to Current limitations" title="Direct link to Current limitations">​</a></h2>
 <p>Separate task logs are not currently supported when using the Indexer; all task log messages will instead be logged in the Indexer service log.</p>
 <p>The Indexer currently imposes an identical memory limit on each task. In later releases, the per-task memory limit will be removed and only the global limit will apply. The limit on concurrent merges will also be removed.</p>
-<p>In later releases, per-task memory usage will be dynamically managed. Please see <a href="https://github.com/apache/druid/issues/7900" target="_blank" rel="noopener noreferrer">https://github.com/apache/druid/issues/7900</a> for details on future enhancements to the Indexer.</p></div></article><nav class="pagination-nav docusaurus-mt-lg" aria-label="Docs pages"><a class="pagination-nav__link pagination-nav__link--prev" href="/docs/latest/design/peons"><div class="pagination-nav__subla [...]
+<p>In later releases, per-task memory usage will be dynamically managed. Please see <a href="https://github.com/apache/druid/issues/7900" target="_blank" rel="noopener noreferrer">https://github.com/apache/druid/issues/7900</a> for details on future enhancements to the Indexer.</p></div></article><nav class="pagination-nav docusaurus-mt-lg" aria-label="Docs pages"><a class="pagination-nav__link pagination-nav__link--prev" href="/docs/38.0.0/design/peons"><div class="pagination-nav__subla [...]
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/38.0.0/design/indexing-service.html/index.html b/docs/38.0.0/design/indexing-service.html/index.html
new file mode 100644
index 000000000..59f7e7146
--- /dev/null
+++ b/docs/38.0.0/design/indexing-service.html/index.html
@@ -0,0 +1,11 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <meta charset="UTF-8">
+    <meta http-equiv="refresh" content="0; url=/docs/38.0.0/design/indexing-service">
+    <link rel="canonical" href="/docs/38.0.0/design/indexing-service" />
+  </head>
+  <script>
+    window.location.href = '/docs/38.0.0/design/indexing-service' + window.location.search + window.location.hash;
+  </script>
+</html>
\ No newline at end of file
diff --git a/docs/latest/design/indexing-service/index.html b/docs/38.0.0/design/indexing-service/index.html
similarity index 88%
copy from docs/latest/design/indexing-service/index.html
copy to docs/38.0.0/design/indexing-service/index.html
index be32b0a38..24db14ef0 100644
--- a/docs/latest/design/indexing-service/index.html
+++ b/docs/38.0.0/design/indexing-service/index.html
@@ -3,25 +3,25 @@
 <head>
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.7.0">
-<title data-rh="true">Indexing Service | Apache® Druid</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://druid.apache.org/img/druid_nav.png"><meta data-rh="true" name="twitter:image" content="https://druid.apache.org/img/druid_nav.png"><meta data-rh="true" property="og:url" content="https://druid.apache.org/docs/latest/des [...]
+<title data-rh="true">Indexing Service | Apache® Druid</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://druid.apache.org/img/druid_nav.png"><meta data-rh="true" name="twitter:image" content="https://druid.apache.org/img/druid_nav.png"><meta data-rh="true" property="og:url" content="https://druid.apache.org/docs/38.0.0/des [...]
 <script src="/js/clipboard.min.js"></script><link rel="stylesheet" href="/assets/css/styles.f3140859.css">
-<script src="/assets/js/runtime~main.3e1f3e8c.js" defer="defer"></script>
-<script src="/assets/js/main.b85ce480.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.ea7da916.js" defer="defer"></script>
+<script src="/assets/js/main.b6e60483.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
-<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const n=new URLSearchParams(window.location.search).entries();for(var[t,e]of n)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentEle [...]
-<p>Indexing <a href="/docs/latest/ingestion/tasks">tasks</a> are responsible for creating and <a href="/docs/latest/ingestion/tasks#kill">killing</a> Druid <a href="/docs/latest/design/segments">segments</a>.</p>
-<p>The indexing service is composed of three main components: <a href="/docs/latest/design/peons">Peons</a> that can run a single task, <a href="/docs/latest/design/middlemanager">Middle Managers</a> that manage Peons, and an <a href="/docs/latest/design/overlord">Overlord</a> that manages task distribution to Middle Managers.
+<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const n=new URLSearchParams(window.location.search).entries();for(var[t,e]of n)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentEle [...]
+<p>Indexing <a href="/docs/38.0.0/ingestion/tasks">tasks</a> are responsible for creating and <a href="/docs/38.0.0/ingestion/tasks#kill">killing</a> Druid <a href="/docs/38.0.0/design/segments">segments</a>.</p>
+<p>The indexing service is composed of three main components: <a href="/docs/38.0.0/design/peons">Peons</a> that can run a single task, <a href="/docs/38.0.0/design/middlemanager">Middle Managers</a> that manage Peons, and an <a href="/docs/38.0.0/design/overlord">Overlord</a> that manages task distribution to Middle Managers.
 Overlords and Middle Managers may run on the same process or across multiple processes, while Middle Managers and Peons always run on the same process.</p>
-<p>Tasks are managed using API endpoints on the Overlord service. Please see <a href="/docs/latest/api-reference/tasks-api">Tasks API</a> for more information.</p>
+<p>Tasks are managed using API endpoints on the Overlord service. Please see <a href="/docs/38.0.0/api-reference/tasks-api">Tasks API</a> for more information.</p>
 <p><img decoding="async" loading="lazy" alt="Indexing Service" src="/assets/images/indexing_service-e985270b9e0e342af71c0673407e5673.png" title="Indexing Service" width="532" height="621" class="img_ev3q"></p>
 <h2 class="anchor anchorWithStickyNavbar_LWe7" id="overlord">Overlord<a href="#overlord" class="hash-link" aria-label="Direct link to Overlord" title="Direct link to Overlord">​</a></h2>
-<p>See <a href="/docs/latest/design/overlord">Overlord</a>.</p>
+<p>See <a href="/docs/38.0.0/design/overlord">Overlord</a>.</p>
 <h2 class="anchor anchorWithStickyNavbar_LWe7" id="middle-managers">Middle Managers<a href="#middle-managers" class="hash-link" aria-label="Direct link to Middle Managers" title="Direct link to Middle Managers">​</a></h2>
-<p>See <a href="/docs/latest/design/middlemanager">Middle Manager</a>.</p>
+<p>See <a href="/docs/38.0.0/design/middlemanager">Middle Manager</a>.</p>
 <h2 class="anchor anchorWithStickyNavbar_LWe7" id="peons">Peons<a href="#peons" class="hash-link" aria-label="Direct link to Peons" title="Direct link to Peons">​</a></h2>
-<p>See <a href="/docs/latest/design/peons">Peon</a>.</p>
+<p>See <a href="/docs/38.0.0/design/peons">Peon</a>.</p>
 <h2 class="anchor anchorWithStickyNavbar_LWe7" id="tasks">Tasks<a href="#tasks" class="hash-link" aria-label="Direct link to Tasks" title="Direct link to Tasks">​</a></h2>
-<p>See <a href="/docs/latest/ingestion/tasks">Tasks</a>.</p></div></article><nav class="pagination-nav docusaurus-mt-lg" aria-label="Docs pages"></nav></div></div><div class="col col--3"><div class="tableOfContents_bqdL thin-scrollbar theme-doc-toc-desktop"><ul class="table-of-contents table-of-contents__left-border"><li><a href="#overlord" class="table-of-contents__link toc-highlight">Overlord</a></li><li><a href="#middle-managers" class="table-of-contents__link toc-highlight">Middle Ma [...]
+<p>See <a href="/docs/38.0.0/ingestion/tasks">Tasks</a>.</p></div></article><nav class="pagination-nav docusaurus-mt-lg" aria-label="Docs pages"></nav></div></div><div class="col col--3"><div class="tableOfContents_bqdL thin-scrollbar theme-doc-toc-desktop"><ul class="table-of-contents table-of-contents__left-border"><li><a href="#overlord" class="table-of-contents__link toc-highlight">Overlord</a></li><li><a href="#middle-managers" class="table-of-contents__link toc-highlight">Middle Ma [...]
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/38.0.0/design/metadata-storage.html/index.html b/docs/38.0.0/design/metadata-storage.html/index.html
new file mode 100644
index 000000000..bc1067e2f
--- /dev/null
+++ b/docs/38.0.0/design/metadata-storage.html/index.html
@@ -0,0 +1,11 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <meta charset="UTF-8">
+    <meta http-equiv="refresh" content="0; url=/docs/38.0.0/design/metadata-storage">
+    <link rel="canonical" href="/docs/38.0.0/design/metadata-storage" />
+  </head>
+  <script>
+    window.location.href = '/docs/38.0.0/design/metadata-storage' + window.location.search + window.location.hash;
+  </script>
+</html>
\ No newline at end of file
diff --git a/docs/latest/design/metadata-storage/index.html b/docs/38.0.0/design/metadata-storage/index.html
similarity index 92%
... 29644 lines suppressed ...


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@druid.apache.org
For additional commands, e-mail: commits-help@druid.apache.org