)]}'
{
  "log": [
    {
      "commit": "6d87b66a6f30a3eb8fa690de4142fac9f1974d82",
      "tree": "3300612a7d98adf51be9ae9a290380d0d39adfd1",
      "parents": [
        "ec47ada7f29a58aea7911b884a2cb805902a2600"
      ],
      "author": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Fri Oct 03 09:39:17 2025 -0700"
      },
      "committer": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Fri Oct 03 09:41:03 2025 -0700"
      },
      "message": "Add deprecation notice\n\nChange-Id: I5e541b5e5d0b5d1929d98425d07d91678473fcbb\n"
    },
    {
      "commit": "ec47ada7f29a58aea7911b884a2cb805902a2600",
      "tree": "87b58c8bd0d95a518522bff22e62c8dbf2d09ce5",
      "parents": [
        "3a9edfc43afa8c856c9bb0b3e1ca3bfa2b9ed018",
        "ca64f82b9854156424c65a17c10bd025aa9493ec"
      ],
      "author": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Tue Jul 01 22:08:27 2025 +0100"
      },
      "committer": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Tue Jul 01 22:08:27 2025 +0100"
      },
      "message": "Merge branch \u0027stable-3.12\u0027\n\n* stable-3.12:\n  Set the DiskStats.invalidatedCount to zero\n\nChange-Id: Ied817f59d51cd0b5543944de3cb738b4a6113c0d\n"
    },
    {
      "commit": "ca64f82b9854156424c65a17c10bd025aa9493ec",
      "tree": "87b58c8bd0d95a518522bff22e62c8dbf2d09ce5",
      "parents": [
        "3a9edfc43afa8c856c9bb0b3e1ca3bfa2b9ed018"
      ],
      "author": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Tue Jul 01 21:35:37 2025 +0100"
      },
      "committer": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Tue Jul 01 14:07:53 2025 -0700"
      },
      "message": "Set the DiskStats.invalidatedCount to zero\n\nThe tracking of the invalidation count was introduced in Ie82d95df8aa\nfor enabling the automatic rebuild of the BloomFilter is used in the H2\npersistent cache.\n\nCache-Chroniclemap does not expand or shrink its cache and simply keeps\nan index of the items that are valid or invalid without having to\nrebuild it.\n\nThe additional invalidation count is therefore not useful in this\nimplementation, it can be safely set to zero.\n\nChange-Id: Ic1b35d1307a8a470240c6f4d75114831015c4e1e\n"
    },
    {
      "commit": "3a9edfc43afa8c856c9bb0b3e1ca3bfa2b9ed018",
      "tree": "b2b2ab51c80331d4f921b05f1d46375b3f2b4c6f",
      "parents": [
        "de167250965e3a05193e2b8f15bd00044dda76a8"
      ],
      "author": {
        "name": "Jacek Centkowski",
        "email": "geminica.programs@gmail.com",
        "time": "Mon Feb 17 09:00:49 2025 +0100"
      },
      "committer": {
        "name": "Jacek Centkowski",
        "email": "geminica.programs@gmail.com",
        "time": "Sat Feb 22 14:32:00 2025 -0800"
      },
      "message": "Clean the `Redundant specification of type argument(s)` warning\n\nChange-Id: I9b9534028c10dd4c8cd6dbbc3b4487e0388db065\n"
    },
    {
      "commit": "de167250965e3a05193e2b8f15bd00044dda76a8",
      "tree": "4050c0f3fe5243ddcca1a9883c6191e210f999c5",
      "parents": [
        "8c9a8066740e393fc56ac3cb1e0316d72e212bed"
      ],
      "author": {
        "name": "Jacek Centkowski",
        "email": "geminica.programs@gmail.com",
        "time": "Mon Feb 17 08:57:27 2025 +0100"
      },
      "committer": {
        "name": "Jacek Centkowski",
        "email": "geminica.programs@gmail.com",
        "time": "Sat Feb 22 14:31:39 2025 -0800"
      },
      "message": "Remove definition of `SitePaths sitePaths` from ITs\n\nThere is no longer need to define `SitePaths sitePaths` as it is a\nprotected member of `AbstractDaemonTest` now.\n\nChange-Id: I5e69d31368d22fb14f1058919cfe599a45960cef\n"
    },
    {
      "commit": "8c9a8066740e393fc56ac3cb1e0316d72e212bed",
      "tree": "a3dc6c07b755e6dced9257e5b70fb48a5dac053f",
      "parents": [
        "fb708f053ffd20807f351662c7839ebc1ecd7c05"
      ],
      "author": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Tue Feb 11 22:43:47 2025 +0000"
      },
      "committer": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Sat Feb 22 22:25:44 2025 +0000"
      },
      "message": "Adapt to the new PersistentCacheBaseFactory on master\n\nAlso manage the new v2 format for H2-DB v2 upgrade in Gerrit master and\nadapt the way cache tables to files are computed.\n\nChange-Id: I0bdc792f470406cdc4ed4c1f90495a7907fb34b5\n"
    },
    {
      "commit": "fb708f053ffd20807f351662c7839ebc1ecd7c05",
      "tree": "18b3148b8a3e319c9eb2fcf7e1bf79905aca6647",
      "parents": [
        "da8a98b33e7ef7a972248757f53480b8ac909ffa"
      ],
      "author": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Tue Feb 11 22:52:49 2025 +0000"
      },
      "committer": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Tue Feb 11 22:52:49 2025 +0000"
      },
      "message": "Reformat with GJF 1.24.0\n\nChange-Id: Ie82afc5488d259f17bf4d62438bc5d1278aa177c\n"
    },
    {
      "commit": "da8a98b33e7ef7a972248757f53480b8ac909ffa",
      "tree": "1286550615d66f1cac9bc3ec053e34a2e84ab396",
      "parents": [
        "8ef69d657911626eb4cecf9600f57b1bb3955fae",
        "3ac95b7118e3044fca9862be960c70944ffe2e9a"
      ],
      "author": {
        "name": "Antonio Barone",
        "email": "syntonyze@gmail.com",
        "time": "Fri Nov 08 17:01:49 2024 +0100"
      },
      "committer": {
        "name": "Antonio Barone",
        "email": "syntonyze@gmail.com",
        "time": "Fri Nov 08 17:01:49 2024 +0100"
      },
      "message": "Merge branch \u0027stable-3.11\u0027\n\n* stable-3.11:\n  Enable cache-chroniclemap to run on Java 21\n\nChange-Id: I4c57ef5bd020cfb2fd436b73660725fdb87fd377\n"
    },
    {
      "commit": "3ac95b7118e3044fca9862be960c70944ffe2e9a",
      "tree": "1286550615d66f1cac9bc3ec053e34a2e84ab396",
      "parents": [
        "8ef69d657911626eb4cecf9600f57b1bb3955fae"
      ],
      "author": {
        "name": "Antonio Barone",
        "email": "syntonyze@gmail.com",
        "time": "Fri Nov 08 13:11:32 2024 +0100"
      },
      "committer": {
        "name": "Antonio Barone",
        "email": "syntonyze@gmail.com",
        "time": "Fri Nov 08 13:15:01 2024 +0100"
      },
      "message": "Enable cache-chroniclemap to run on Java 21\n\nWith Chronicle 25, OpenHFT has introduced official support for Java 21,\nwhich we’re adopting here to allow cache-chroniclemap to run an a Gerrit\n3.11 on Java 21[1].\n\nSince Chronicle 24, OpenHFT has limited Maven Central to early access\n(ea) releases, with stable releases now exclusive to customers with a\nsupport agreement [2]. As a result, 3.23.5 is the latest stable release\npublicly available on Maven Central [3].\n\nPer OpenHFT guidance [2]:\n\n``` Many organizations use the ‘ea’ release in production, as this\ncontains the latest functionality and fixes.  ```\n\nFollowing this recommendation, we’re updating to the latest ea release\nin the Chronicle 25 series, which is the earliest version to introduce\nJava 21 support.\n\n[1] https://chronicle.software/chronicle-25-whats-new-and-improved/\n[2] https://github.com/OpenHFT/OpenHFT/blob/aa79b18031dbecfd6722aa285a495e87e2d016d5/docs/Version-Support.adoc#ea-early-access\n[3] https://mvnrepository.com/artifact/net.openhft/chronicle-map\n\nBug: Issue 377724725\nChange-Id: I40bcf7994798297ef371a1562ea4cd4df055901d\n"
    },
    {
      "commit": "8ef69d657911626eb4cecf9600f57b1bb3955fae",
      "tree": "0090f8a0c9bec6aeec82904c6a3b12cfc194c847",
      "parents": [
        "7d65ca54a5876d34fc0d5fef205c74b38aacc238"
      ],
      "author": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Thu Jun 20 11:48:03 2024 +0100"
      },
      "committer": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Fri Jun 21 13:11:28 2024 +0100"
      },
      "message": "Fix test breakages on Gerrit master\n\nAvoid using the JUnit method name which is now ending\nwith the \u0027[default]\u0027 suffix added to all tests after the merging\nof I92c2f633 into Gerrit master branch. Using System.nanoTime()\nprovides the same results of having different cache names\nand is more resilient against future changes on the Gerrit\ntest infrastructure.\n\nAlso remove the assumption on the actual cache initial\nstats that could vary between Gerrit releases, as they did\nas a indirect consequence of I70c3b0a708d.\n\nChange-Id: I071cdcec5b1224974ce638fad58cba244fc31e2c\n"
    },
    {
      "commit": "7d65ca54a5876d34fc0d5fef205c74b38aacc238",
      "tree": "96dfa9895169c90e70f6d288743ad7e1246396db",
      "parents": [
        "2d4fb91acf436ec30ff10f358cbf7ec423acaa4a"
      ],
      "author": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Thu Jun 20 11:50:59 2024 +0100"
      },
      "committer": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Thu Jun 20 11:50:59 2024 +0100"
      },
      "message": "Reformat BUILD with buildifier\n\nChange-Id: I90ad806d847deda0d8e59caaede84cebcaf92432\n"
    },
    {
      "commit": "2d4fb91acf436ec30ff10f358cbf7ec423acaa4a",
      "tree": "ecc3642016d0934ef88cd9727157d5911f08ccbf",
      "parents": [
        "d1cb6852a4048ef9975e8ef23a9b81db10d8d084",
        "9f9e3f7d374a57977bf74fca4edd10b3dd565251"
      ],
      "author": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Sat Mar 30 09:59:55 2024 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Sat Mar 30 09:59:55 2024 +0000"
      },
      "message": "Merge \"Fix compilation errors\""
    },
    {
      "commit": "9f9e3f7d374a57977bf74fca4edd10b3dd565251",
      "tree": "48cc52baecc926bdbbcc340b472f7b81aae6a716",
      "parents": [
        "8688e1ceb4746c0a52a173cd3679707a4c3053af"
      ],
      "author": {
        "name": "Dariusz Luksza",
        "email": "dariusz.luksza@gmail.com",
        "time": "Sat Mar 30 07:04:32 2024 +0000"
      },
      "committer": {
        "name": "Dariusz Luksza",
        "email": "dariusz.luksza@gmail.com",
        "time": "Sat Mar 30 09:18:34 2024 +0000"
      },
      "message": "Fix compilation errors\n\nAfter change I35f1a785, the base class of SSHComandModule, the\nPluginComandModule API has changed and now takes a plugin name as a\nconstructor argument. To conform to that change we inject the plugin\nname and pass it to the parent constructor.\n\nSecondly, after change I21bef286, the RestSession API is changed and\ndeclares a generic Exception instead of IOException to be thrown from\ntheir methods.\n\nAlso removes duplicated static import of `assertThat` in\nChronicleMapCacheIT.\n\nBug: Issue 331383932\nChange-Id: I4c12efa489665246932c6c65ab9e830c9dc18478\n"
    },
    {
      "commit": "d1cb6852a4048ef9975e8ef23a9b81db10d8d084",
      "tree": "4a6c123c5da50cae8126f33b188d5c754685979a",
      "parents": [
        "8688e1ceb4746c0a52a173cd3679707a4c3053af",
        "73c8a46033db1b4c675ad82e7e1ae0ce13ce83aa"
      ],
      "author": {
        "name": "Daniele Sassoli",
        "email": "danielesassoli@gmail.com",
        "time": "Mon Jan 08 17:37:08 2024 +0000"
      },
      "committer": {
        "name": "Daniele Sassoli",
        "email": "danielesassoli@gmail.com",
        "time": "Mon Jan 08 17:37:08 2024 +0000"
      },
      "message": "Merge branch \u0027stable-3.8\u0027\n\n* stable-3.8:\n  Allow specify either avgKeySize or avgValueSize as command parameters\n  Fix avg value and key size calculation when auto-adjusting caches\n  Apply Flogger fixes from  Ia4e5a3c513\n\nChange-Id: I52e6e7d9f435740653077f03fbef667b3dd17e8a\n"
    },
    {
      "commit": "73c8a46033db1b4c675ad82e7e1ae0ce13ce83aa",
      "tree": "ea2ca8526752234d8db1a566663aaeda1d1d79d8",
      "parents": [
        "6341d1f294cc69016911d5bb350321d54d449ed8",
        "206f7ce9beb62886dbfbfe17dce6272b1f53b816"
      ],
      "author": {
        "name": "Daniele Sassoli",
        "email": "danielesassoli@gmail.com",
        "time": "Mon Jan 08 17:36:16 2024 +0000"
      },
      "committer": {
        "name": "Daniele Sassoli",
        "email": "danielesassoli@gmail.com",
        "time": "Mon Jan 08 17:36:16 2024 +0000"
      },
      "message": "Merge branch \u0027stable-3.7\u0027 into stable-3.8\n\n* stable-3.7:\n  Allow specify either avgKeySize or avgValueSize as command parameters\n  Fix avg value and key size calculation when auto-adjusting caches\n  Apply Flogger fixes from  Ia4e5a3c513\n\nChange-Id: I8be781677dca2b4391ef8cd83c52e3321cd4947a\n"
    },
    {
      "commit": "206f7ce9beb62886dbfbfe17dce6272b1f53b816",
      "tree": "ea2ca8526752234d8db1a566663aaeda1d1d79d8",
      "parents": [
        "6341d1f294cc69016911d5bb350321d54d449ed8",
        "2c9fd4ca952ad32466a6f1699559794b505b8e6e"
      ],
      "author": {
        "name": "Daniele Sassoli",
        "email": "danielesassoli@gmail.com",
        "time": "Mon Jan 08 17:36:02 2024 +0000"
      },
      "committer": {
        "name": "Daniele Sassoli",
        "email": "danielesassoli@gmail.com",
        "time": "Mon Jan 08 17:36:02 2024 +0000"
      },
      "message": "Merge branch \u0027stable-3.6\u0027 into stable-3.7\n\n* stable-3.6:\n  Allow specify either avgKeySize or avgValueSize as command parameters\n  Fix avg value and key size calculation when auto-adjusting caches\n  Apply Flogger fixes from  Ia4e5a3c513\n\nChange-Id: I85e5e493967418fd1ed621501efced98eaa2f750\n"
    },
    {
      "commit": "2c9fd4ca952ad32466a6f1699559794b505b8e6e",
      "tree": "0ec065e58af9b968bb06d8674362c9e5467b9610",
      "parents": [
        "3000ab44a7b0e21f7ee85e41d634a3f5d9d70899",
        "7625de91a381a8ede1c4662f451b1928fb123895"
      ],
      "author": {
        "name": "Daniele Sassoli",
        "email": "danielesassoli@gmail.com",
        "time": "Mon Jan 08 17:35:35 2024 +0000"
      },
      "committer": {
        "name": "Daniele Sassoli",
        "email": "danielesassoli@gmail.com",
        "time": "Mon Jan 08 17:35:35 2024 +0000"
      },
      "message": "Merge branch \u0027stable-3.5\u0027 into stable-3.6\n\n* stable-3.5:\n  Allow specify either avgKeySize or avgValueSize as command parameters\n  Fix avg value and key size calculation when auto-adjusting caches\n  Apply Flogger fixes from  Ia4e5a3c513\n\nChange-Id: Ic4238ee6137910f946ae8f0b669aa68d11482bdb\n"
    },
    {
      "commit": "7625de91a381a8ede1c4662f451b1928fb123895",
      "tree": "6276eaf993a521e3eed8e462ab46095b1f1312ab",
      "parents": [
        "7152de8b643645c3b1c90220be4cf7609a2e868c"
      ],
      "author": {
        "name": "Daniele Sassoli",
        "email": "danielesassoli@gmail.com",
        "time": "Fri Jan 05 18:29:08 2024 +0000"
      },
      "committer": {
        "name": "Daniele Sassoli",
        "email": "danielesassoli@gmail.com",
        "time": "Fri Jan 05 22:30:33 2024 +0000"
      },
      "message": "Allow specify either avgKeySize or avgValueSize as command parameters\n\nChange-Id: Ib538318a3e8c8766df50f8190f8b5c6bccdbd624\n"
    },
    {
      "commit": "7152de8b643645c3b1c90220be4cf7609a2e868c",
      "tree": "71b0e0e691fd74d5bd7054f089413f35c8e4e956",
      "parents": [
        "16d6f34d5bbafa02ccbad4a538129607f7c68324"
      ],
      "author": {
        "name": "Daniele Sassoli",
        "email": "daniele_sassoli@apple.com",
        "time": "Sun Dec 17 18:54:03 2023 -0800"
      },
      "committer": {
        "name": "Daniele Sassoli",
        "email": "danielesassoli@gmail.com",
        "time": "Fri Jan 05 21:11:09 2024 +0000"
      },
      "message": "Fix avg value and key size calculation when auto-adjusting caches\n\nCurrent logic is broken and doesn\u0027t calculate an average\n\nChange-Id: Ib6ab3aba74a6989c4add84150674b967fe383c65\n"
    },
    {
      "commit": "8688e1ceb4746c0a52a173cd3679707a4c3053af",
      "tree": "21cad605b6d534bd8dd947982eb300040276fc5e",
      "parents": [
        "527a48e2bab850bc7f9d810794dfa5f5a0871a8d"
      ],
      "author": {
        "name": "Jacek Centkowski",
        "email": "geminica.programs@gmail.com",
        "time": "Mon Oct 23 12:55:55 2023 +0200"
      },
      "committer": {
        "name": "Jacek Centkowski",
        "email": "geminica.programs@gmail.com",
        "time": "Fri Oct 27 08:37:38 2023 +0200"
      },
      "message": "Ensure JDK 17 support.\n\nThe cache-chroniclemap internals are JDK 17 compatible however JDK,\nsince that version is more restrictive on which modules are by default\naccessible to the third party libraries. Enhance plugin\u0027s README.md\nand build.md with steps that are necessary to run module in Gerrit\nunder JDK 17 JVM and call test from IDE (as described in [1]).\n\nIn addition JDK 17 modifies the way how annotations have their\n`toString` method implemented. In JDK 11 (and older) it used to be:\n\n  @com.google.inject.name.Named(value\u003d\"accounts\")\n\nWhereas in JDK 17 it is:\n\n  @com.google.inject.name.Named(\"accounts\")\n\nModify MigrateH2CachesLocalDiskIT.isClassBoundWithName(Entry) to be\ncompatible with both implementations.\n\n[1] https://chronicle.software/chronicle-support-java-17/\n\nBug: Issue 306464780\nChange-Id: I3e201d9638de7007aca2af10796a8ee1deb9d04c\n"
    },
    {
      "commit": "527a48e2bab850bc7f9d810794dfa5f5a0871a8d",
      "tree": "97c75d9c7e78b16a3bba2cf08b23004d625c7a3c",
      "parents": [
        "69bceaa2006913e6b371f77a440c14b0c6c2bd57",
        "6341d1f294cc69016911d5bb350321d54d449ed8"
      ],
      "author": {
        "name": "Jacek Centkowski",
        "email": "geminica.programs@gmail.com",
        "time": "Fri Oct 27 08:37:16 2023 +0200"
      },
      "committer": {
        "name": "Jacek Centkowski",
        "email": "geminica.programs@gmail.com",
        "time": "Fri Oct 27 08:37:16 2023 +0200"
      },
      "message": "Merge branch \u0027stable-3.7\u0027\n\n* stable-3.7:\n  Rename ChronicleMapCacheTest to ChronicleMapCacheExtendedIT\n  Split cache-chroniclemap ITs into a separate build targets\n  Adjust cache-chroniclemap to new metric sanitization scheme\n\nChange-Id: If6c600e49ce9d8e08365bc0aa143623a8fd1a033\n"
    },
    {
      "commit": "69bceaa2006913e6b371f77a440c14b0c6c2bd57",
      "tree": "120932de3e645307915b63d9c4a8bd05ae4b6f25",
      "parents": [
        "732e47dc900a9b937ed655382d6235b0a5e087ab"
      ],
      "author": {
        "name": "Jacek Centkowski",
        "email": "geminica.programs@gmail.com",
        "time": "Fri Oct 27 07:32:51 2023 +0200"
      },
      "committer": {
        "name": "Jacek Centkowski",
        "email": "geminica.programs@gmail.com",
        "time": "Fri Oct 27 08:37:06 2023 +0200"
      },
      "message": "Revert \"Disable tests not compliant with Java 17 out of the box\"\n\nThis reverts commit 732e47dc900a9b937ed655382d6235b0a5e087ab.\n\nChange-Id: I881ddbf0579aa3e5a11fdcbf0c46ff0ad418578e\n"
    },
    {
      "commit": "6341d1f294cc69016911d5bb350321d54d449ed8",
      "tree": "97c75d9c7e78b16a3bba2cf08b23004d625c7a3c",
      "parents": [
        "b953e7eb096fc9fb95876cfa5ac496acec121d0b",
        "3000ab44a7b0e21f7ee85e41d634a3f5d9d70899"
      ],
      "author": {
        "name": "Jacek Centkowski",
        "email": "geminica.programs@gmail.com",
        "time": "Fri Oct 27 07:01:01 2023 +0200"
      },
      "committer": {
        "name": "Jacek Centkowski",
        "email": "geminica.programs@gmail.com",
        "time": "Fri Oct 27 07:01:01 2023 +0200"
      },
      "message": "Merge branch \u0027stable-3.6\u0027 into stable-3.7\n\n* stable-3.6:\n  Rename ChronicleMapCacheTest to ChronicleMapCacheExtendedIT\n  Split cache-chroniclemap ITs into a separate build targets\n  Adjust cache-chroniclemap to new metric sanitization scheme\n\nChange-Id: Ibe52ae606b2d4567a70664fb6a8a574e71dde751\n"
    },
    {
      "commit": "3000ab44a7b0e21f7ee85e41d634a3f5d9d70899",
      "tree": "7390b4128191414e43c5adbaf9e355f6821c301f",
      "parents": [
        "7de3bd33f402adfca9579594c70f3be2b2eb7e85"
      ],
      "author": {
        "name": "Jacek Centkowski",
        "email": "geminica.programs@gmail.com",
        "time": "Thu Oct 26 09:24:37 2023 +0200"
      },
      "committer": {
        "name": "Jacek Centkowski",
        "email": "geminica.programs@gmail.com",
        "time": "Thu Oct 26 19:03:53 2023 +0200"
      },
      "message": "Rename ChronicleMapCacheTest to ChronicleMapCacheExtendedIT\n\nAs it is extending AbstractDaemonTest hence it is more integration test\nthan the unit test.\n\nChange-Id: Ifcec00d291d5828330d925f0ddb76c6eb94582ff\n"
    },
    {
      "commit": "7de3bd33f402adfca9579594c70f3be2b2eb7e85",
      "tree": "6e02969112eb74f9c71f8f1123b8871878205aad",
      "parents": [
        "e986026a8f577d8ca320bbeb68aa401fcce71e4e"
      ],
      "author": {
        "name": "Jacek Centkowski",
        "email": "geminica.programs@gmail.com",
        "time": "Thu Oct 26 09:17:04 2023 +0200"
      },
      "committer": {
        "name": "Jacek Centkowski",
        "email": "geminica.programs@gmail.com",
        "time": "Thu Oct 26 19:03:53 2023 +0200"
      },
      "message": "Split cache-chroniclemap ITs into a separate build targets\n\nSo that they can be executed in parallel boosting the overal testing\nperformance (especially on RBE) and one doesn\u0027t have to check log in\norder to find which IT failed.\n\nChange-Id: Id04afb5561aa50be5f3fed19a935e8bdc4ed9dd3\n"
    },
    {
      "commit": "e986026a8f577d8ca320bbeb68aa401fcce71e4e",
      "tree": "5458179a3198672b57ac4b5cd98d9823ab40606c",
      "parents": [
        "42d7e9f423ac5d54a1c324cd05c987ebb4ea1949"
      ],
      "author": {
        "name": "Jacek Centkowski",
        "email": "geminica.programs@gmail.com",
        "time": "Thu Oct 26 07:35:07 2023 +0200"
      },
      "committer": {
        "name": "Jacek Centkowski",
        "email": "geminica.programs@gmail.com",
        "time": "Thu Oct 26 18:58:16 2023 +0200"
      },
      "message": "Adjust cache-chroniclemap to new metric sanitization scheme\n\nGerrit\u0027s I6a5366fa0f1f change improved metrics name sanitization to\navoid collisions.\n\nIntroduce CacheNameSanitizer to:\n* keep the backward compatibitlity with the oridinary cache names e.g.\n  `diff_summary` stays `diff_summary`\n* all the other cases are sanitized according to metrics sanitization\n  rules e.g. `very+confusing.cache#name` becomes\n  `very_0x2B_confusing_0x2E_cache_0x23_name`\n\nTests were adjusted to new sanitization rules.\n\nBug: Issue 307357257\nChange-Id: I59732013baa1abcbfba1536c7b45d158eb746bc8\n"
    },
    {
      "commit": "732e47dc900a9b937ed655382d6235b0a5e087ab",
      "tree": "15e75efe5c44c2b859175a299edf008b1e964237",
      "parents": [
        "b953e7eb096fc9fb95876cfa5ac496acec121d0b"
      ],
      "author": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Mon Oct 23 23:43:17 2023 +0200"
      },
      "committer": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Wed Oct 25 21:47:59 2023 +0200"
      },
      "message": "Disable tests not compliant with Java 17 out of the box\n\nMany of the tests are not yet compliant with Java 17 because of\nthe lack of a proper set of system properties.\n\nChange-Id: Iaf6b9a2678c3153e78a072bc76cbf3c6f6dc29b7\n"
    },
    {
      "commit": "b953e7eb096fc9fb95876cfa5ac496acec121d0b",
      "tree": "120932de3e645307915b63d9c4a8bd05ae4b6f25",
      "parents": [
        "6dc920086dfa6a670024a5e161a7f9a7adf69b40",
        "0d8f07e4ece70eca7e877b8e49628675ee348c61"
      ],
      "author": {
        "name": "Antonio Barone",
        "email": "syntonyze@gmail.com",
        "time": "Thu Jun 15 11:40:11 2023 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Jun 15 11:40:11 2023 +0000"
      },
      "message": "Merge \"Merge branch \u0027stable-3.6\u0027\""
    },
    {
      "commit": "16d6f34d5bbafa02ccbad4a538129607f7c68324",
      "tree": "e24bdb0dbc3492f58e3a3ca6a3bd23bef80a0a1b",
      "parents": [
        "5295ac9f3fc91a8828696ab6ab93fa6b35ee4e21"
      ],
      "author": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Fri Jun 02 08:53:53 2023 +0100"
      },
      "committer": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Fri Jun 02 08:53:53 2023 +0100"
      },
      "message": "Apply Flogger fixes from  Ia4e5a3c513\n\nChange Ia4e5a3c513 introduced Flogger fixes as part of the\nmerge. Apply them onto stable-3.5 as well for fixing the Bazel\nbuild failing on errorprone warnings.\n\nChange-Id: I90356c62daf7dea3920fb52f6def3a033bf108dc\n"
    },
    {
      "commit": "6dc920086dfa6a670024a5e161a7f9a7adf69b40",
      "tree": "148277d9e6d75f8cc15c0b92a633022322ed9ba3",
      "parents": [
        "955c8560bf2e111781f2dbc93f1ab56debd9e012"
      ],
      "author": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Sat May 20 11:34:09 2023 +0100"
      },
      "committer": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Sat May 20 11:34:09 2023 +0100"
      },
      "message": "Lower the index persistent logging to fine\n\nChange-Id: I8b32d20569adcbe0b65a10e14bb7dcef3d89ee25\n"
    },
    {
      "commit": "0d8f07e4ece70eca7e877b8e49628675ee348c61",
      "tree": "4bb53583f03ccbf2a07d518a11e6cec6d21b3de5",
      "parents": [
        "955c8560bf2e111781f2dbc93f1ab56debd9e012",
        "42d7e9f423ac5d54a1c324cd05c987ebb4ea1949"
      ],
      "author": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Sun Apr 16 12:29:29 2023 +0100"
      },
      "committer": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Sun Apr 16 12:29:29 2023 +0100"
      },
      "message": "Merge branch \u0027stable-3.6\u0027\n\n* stable-3.6:\n  Fix issues with Flogger formatting string not being constant\n\nChange-Id: Ic9fa194cb595b1126a35baf6b7ac0a2d1e6c3cc2\n"
    },
    {
      "commit": "42d7e9f423ac5d54a1c324cd05c987ebb4ea1949",
      "tree": "e204d43f8f592bdeedaa9671f1decfda189db8be",
      "parents": [
        "0195dff50051583f2342d70c08e930dc1af505f7"
      ],
      "author": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Sun Apr 16 11:51:14 2023 +0100"
      },
      "committer": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Sun Apr 16 11:51:14 2023 +0100"
      },
      "message": "Fix issues with Flogger formatting string not being constant\n\nResume successful builds on the CI by fixing an Flogger formatting\nissue reported by errorprone.\n\nBug: Issue 16856\nChange-Id: Ia0afd707add801aa67a7c2bf390f7f76559c3917\n"
    },
    {
      "commit": "955c8560bf2e111781f2dbc93f1ab56debd9e012",
      "tree": "d73939a0df9242e5b1f3f5b3e66a186f43b1406e",
      "parents": [
        "e1630e0625c2f1cfbc574dc6b9c4249b47582ec5",
        "0195dff50051583f2342d70c08e930dc1af505f7"
      ],
      "author": {
        "name": "Jacek Centkowski",
        "email": "geminica.programs@gmail.com",
        "time": "Sat Dec 03 08:46:14 2022 +0100"
      },
      "committer": {
        "name": "Jacek Centkowski",
        "email": "geminica.programs@gmail.com",
        "time": "Sat Dec 03 08:46:14 2022 +0100"
      },
      "message": "Merge branch \u0027stable-3.6\u0027\n\n* stable-3.6:\n  Fix eviction logic tests during prune phase\n  getIfPresent: fallback to fetching from store if isn\u0027t in memory\n  Fix failing test expectations on H2 analysis\n\nChange-Id: I3f338d00a136526cec54a4114dc8d6bc1b122880\n"
    },
    {
      "commit": "0195dff50051583f2342d70c08e930dc1af505f7",
      "tree": "cc6b1127ba01d66ace7e45d9dfa320de72dd10eb",
      "parents": [
        "c8a0fb6669b47470a98a2ec4d25540d048d2b700",
        "5295ac9f3fc91a8828696ab6ab93fa6b35ee4e21"
      ],
      "author": {
        "name": "Jacek Centkowski",
        "email": "geminica.programs@gmail.com",
        "time": "Sat Dec 03 08:43:26 2022 +0100"
      },
      "committer": {
        "name": "Jacek Centkowski",
        "email": "geminica.programs@gmail.com",
        "time": "Sat Dec 03 08:43:26 2022 +0100"
      },
      "message": "Merge branch \u0027stable-3.5\u0027 into stable-3.6\n\n* stable-3.5:\n  Fix eviction logic tests during prune phase\n  getIfPresent: fallback to fetching from store if isn\u0027t in memory\n  Fix failing test expectations on H2 analysis\n\nChange-Id: Ib978a6ce91e4a8b1dd4bcc9aea5b3d7848cdb22b\n"
    },
    {
      "commit": "5295ac9f3fc91a8828696ab6ab93fa6b35ee4e21",
      "tree": "2f4f7f5ef011bff650629e35ffd9fa6b3457ebbc",
      "parents": [
        "53871091f9c563247b085f1203ac4335d544bee8",
        "082233011acec636dfe82f3cca9c1f9c32df1a58"
      ],
      "author": {
        "name": "Jacek Centkowski",
        "email": "geminica.programs@gmail.com",
        "time": "Sat Dec 03 08:40:34 2022 +0100"
      },
      "committer": {
        "name": "Jacek Centkowski",
        "email": "geminica.programs@gmail.com",
        "time": "Sat Dec 03 08:40:34 2022 +0100"
      },
      "message": "Merge branch \u0027stable-3.4\u0027 into stable-3.5\n\n* stable-3.4:\n  Fix eviction logic tests during prune phase\n  getIfPresent: fallback to fetching from store if isn\u0027t in memory\n  Fix failing test expectations on H2 analysis\n\nChange-Id: I8407c1c2085b6f145655b4dc3c6dabe9436af252\n"
    },
    {
      "commit": "082233011acec636dfe82f3cca9c1f9c32df1a58",
      "tree": "938182f20874a977e590b7df814b503fd1e6cdfc",
      "parents": [
        "06181745a047940adf34b9b1fe419bbee6137d22"
      ],
      "author": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Wed Nov 30 00:59:22 2022 +0000"
      },
      "committer": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Fri Dec 02 20:17:46 2022 +0000"
      },
      "message": "Fix eviction logic tests during prune phase\n\nWhen the prune is triggered, the eviction logic was not tested properly\nbecause of missing or incomplete assertions.\n\nAdd more test coverage for making sure that the eviction is triggered\nwhen it should and also is evicting the correct oldest entries.\n\nChange-Id: Ib3546c46e8cced40a9f8b08aeac23961f108c353\n"
    },
    {
      "commit": "06181745a047940adf34b9b1fe419bbee6137d22",
      "tree": "798f7f44846fdb25a3fd1dfdbae65a587431471a",
      "parents": [
        "715b154d42bf56300923f327bf4bb6bc277a0b3f"
      ],
      "author": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Fri Dec 02 18:48:59 2022 +0000"
      },
      "committer": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Fri Dec 02 20:17:28 2022 +0000"
      },
      "message": "getIfPresent: fallback to fetching from store if isn\u0027t in memory\n\nAlign the implementation with what the H2 version of the cache was\ndoing, by always looking at the store as 2nd chance when the in-memory\ncache not have the requested key when calling getIfPresent.\n\nBug: Issue 16496\nChange-Id: I8ab5bdbaba3e3338257446623f696ce5c9748415\n"
    },
    {
      "commit": "715b154d42bf56300923f327bf4bb6bc277a0b3f",
      "tree": "b43dc33aaa6b18cfa4faa301910109f54e32063e",
      "parents": [
        "07b1effd074c109e6ec4d494bf51c81ba436af6e"
      ],
      "author": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Wed Nov 30 11:50:05 2022 +0000"
      },
      "committer": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Wed Nov 30 19:51:38 2022 +0000"
      },
      "message": "Fix failing test expectations on H2 analysis\n\nThe IT tests for H2 analysis are asserting an exact list\nof caches which could vary between releases.\n\nFix the list for Gerrit v3.4, which was already failing\non stable-3.4.\n\nChange-Id: Ide5d00f27453f65e444c149965c6eaf339a6ca0e\n"
    },
    {
      "commit": "e1630e0625c2f1cfbc574dc6b9c4249b47582ec5",
      "tree": "ab98912b1f1ad9df7955ac4ecc7fdb4b58e714d9",
      "parents": [
        "945a74375cccc3b2a6416792464110d1bcf56051",
        "c8a0fb6669b47470a98a2ec4d25540d048d2b700"
      ],
      "author": {
        "name": "Jacek Centkowski",
        "email": "geminica.programs@gmail.com",
        "time": "Mon Nov 07 12:55:00 2022 +0000"
      },
      "committer": {
        "name": "Jacek Centkowski",
        "email": "geminica.programs@gmail.com",
        "time": "Mon Nov 07 14:09:17 2022 +0000"
      },
      "message": "Merge branch \u0027stable-3.6\u0027\n\n* stable-3.6:\n  Provide default configuration for Gerrit persistent caches\n  Introduce metric for caches that fall back to default config\n  Add test that detects persistent caches without defaults\n  Remove metrics when cache gets closed\n  Use static, per-thread buffers for (de)serialization\n  Add read/write metrics to TimedValueMarshaller\n  ChronicleMapCacheIT: remove Truth8 qualifier from assertThat\n  *Marshaller: get CacheSerilizer only once\n  Persist caches keys index at configurable pace\n  Add restore/persist operations related metrics\n  Persist cache keys index to a file\n  Add cache keys index metrics\n  Avoid full cache scanning for pruning\n\nChange-Id: Ia4e5a3c513f2c3a17a92bbded6b77811cd04415c\n"
    },
    {
      "commit": "c8a0fb6669b47470a98a2ec4d25540d048d2b700",
      "tree": "a0ce1df24b0a15d5c1aca05a3ef1b8a65756b169",
      "parents": [
        "9c2e0df06ce752941742ca404ba16bfb5805bb2e",
        "53871091f9c563247b085f1203ac4335d544bee8"
      ],
      "author": {
        "name": "Jacek Centkowski",
        "email": "geminica.programs@gmail.com",
        "time": "Mon Nov 07 12:45:56 2022 +0000"
      },
      "committer": {
        "name": "Jacek Centkowski",
        "email": "geminica.programs@gmail.com",
        "time": "Mon Nov 07 12:46:44 2022 +0000"
      },
      "message": "Merge branch \u0027stable-3.5\u0027 into stable-3.6\n\n* stable-3.5:\n  Provide default configuration for Gerrit persistent caches\n  Introduce metric for caches that fall back to default config\n  Add test that detects persistent caches without defaults\n  Remove metrics when cache gets closed\n  Use static, per-thread buffers for (de)serialization\n  Add read/write metrics to TimedValueMarshaller\n  ChronicleMapCacheIT: remove Truth8 qualifier from assertThat\n  *Marshaller: get CacheSerilizer only once\n  Persist caches keys index at configurable pace\n  Add restore/persist operations related metrics\n  Persist cache keys index to a file\n  Add cache keys index metrics\n  Avoid full cache scanning for pruning\n\nChange-Id: I514885b07f721ed67c8643e80289e004b21233f0\n"
    },
    {
      "commit": "53871091f9c563247b085f1203ac4335d544bee8",
      "tree": "3a9c96f0b2cb299758262c2740c1d596cf06c636",
      "parents": [
        "7ad640fd7a816357644dddbce8438449c99b4b1b",
        "07b1effd074c109e6ec4d494bf51c81ba436af6e"
      ],
      "author": {
        "name": "Jacek Centkowski",
        "email": "geminica.programs@gmail.com",
        "time": "Mon Nov 07 09:33:39 2022 +0000"
      },
      "committer": {
        "name": "Jacek Centkowski",
        "email": "geminica.programs@gmail.com",
        "time": "Mon Nov 07 12:37:50 2022 +0000"
      },
      "message": "Merge branch \u0027stable-3.4\u0027 into stable-3.5\n\n* stable-3.4:\n  Provide default configuration for Gerrit persistent caches\n  Introduce metric for caches that fall back to default config\n  Add test that detects persistent caches without defaults\n  Remove metrics when cache gets closed\n  Use static, per-thread buffers for (de)serialization\n  Add read/write metrics to TimedValueMarshaller\n  ChronicleMapCacheIT: remove Truth8 qualifier from assertThat\n  *Marshaller: get CacheSerilizer only once\n  Persist caches keys index at configurable pace\n  Add restore/persist operations related metrics\n  Persist cache keys index to a file\n  Add cache keys index metrics\n  Avoid full cache scanning for pruning\n\nChange-Id: Iab85e600cfdcb9709484d6f694a0e3639ac9f6b0\n"
    },
    {
      "commit": "07b1effd074c109e6ec4d494bf51c81ba436af6e",
      "tree": "e1285088e740ec87d38b9203de884c4a2266da34",
      "parents": [
        "257a57f9f6243c99469db562415fc4a9e58f31d9"
      ],
      "author": {
        "name": "Jacek Centkowski",
        "email": "geminica.programs@gmail.com",
        "time": "Fri Oct 14 19:07:51 2022 +0100"
      },
      "committer": {
        "name": "Jacek Centkowski",
        "email": "geminica.programs@gmail.com",
        "time": "Thu Nov 03 11:15:23 2022 +0100"
      },
      "message": "Provide default configuration for Gerrit persistent caches\n\nAll average[Key|Value] sizes taken from [1]\n* \u0027common_context\u0027 number of entries 2000 (as there are\n  typically 1+ comments per change)\n* \u0027gerrit_file_diff\u0027 number of entries 1000\n* \u0027git_file_diff\u0027 number of entries 1000\n* \u0027git_modified_files\u0027 number of entries 1000\n* \u0027git_tags\u0027 number of entries 1000\n* \u0027git_file_diff\u0027 number of entries 1000\n* \u0027groups_byuuid_persisted\u0027 calculated by calling\n  `auto-adjust-caches -a -d`\n  with several groups created with names like in [1] or [2]\n\n[1] review.gerrithub.io\n[2] gerrit-review.googlesource.com\n\nBug: Issue 15865\nChange-Id: Idec99fa41aa50d4aff00f82ee8d53b4954e0e7a7\n"
    },
    {
      "commit": "257a57f9f6243c99469db562415fc4a9e58f31d9",
      "tree": "fcfd87c220e07253fac0f1b3e6aad10b64f6536b",
      "parents": [
        "c8b39c2fe54129a1a624c083a64ce4b3c193d48e"
      ],
      "author": {
        "name": "Jacek Centkowski",
        "email": "geminica.programs@gmail.com",
        "time": "Wed Sep 14 08:35:20 2022 +0200"
      },
      "committer": {
        "name": "Jacek Centkowski",
        "email": "geminica.programs@gmail.com",
        "time": "Thu Nov 03 11:13:24 2022 +0100"
      },
      "message": "Introduce metric for caches that fall back to default config\n\nCache chroniclemap relies heavily on configuration (especially on\naverage key and values sizes) so that its performance can be optimal.\nWhat is more starting with `stable-3.4` there are 7 core caches that\nare missing their configuration in Defaults and use fall-back\nconfiguration. It is strongly adviced to auto-tune them (see\n\u0027tuning.md\u0027) and store dedicated configuration in \u0027gerrit.config\u0027.\n\nIssuing a warning in such case is not a perfect solution as Gerrit core\ncaches are initiated very early during the server start hence messages\nare not always visible in the log. For this reason the following metric\nwas introduced:\n\n* \u0027cache/chroniclemap/caches_without_configuration\u0027 that could be used\n  as an alarm source as it contains the total number of caches that\n  miss the dedicated configuration in \u0027gerrit.config\u0027 and use defaults\n\nNotes:\n* adding cache configuration to `gerrit.config` is not considered as\n  default configuration\n* additionally, the \u0027auto-adjust-caches\u0027 command was extended with\n  \u0027adjust-caches-on-defaults\u0027 option (see the tuning.md for details)\n  that it can be used to tune all caches that fall back to defaults\n\nBug: Issue 15865\nChange-Id: I8b0835c6d8a8ae96832371b79afd2a11f69f09b9\n"
    },
    {
      "commit": "c8b39c2fe54129a1a624c083a64ce4b3c193d48e",
      "tree": "6cf6f64fd8ed2afeba182c93b3f22b49ebd69ec5",
      "parents": [
        "310060ed9230d24261752728a9b3bd04f2bf8d62"
      ],
      "author": {
        "name": "Jacek Centkowski",
        "email": "geminica.programs@gmail.com",
        "time": "Tue Sep 13 07:24:58 2022 +0200"
      },
      "committer": {
        "name": "Jacek Centkowski",
        "email": "geminica.programs@gmail.com",
        "time": "Tue Oct 04 20:34:41 2022 +0200"
      },
      "message": "Add test that detects persistent caches without defaults\n\nThe test detects that the following caches miss their defaults:\n* comment_context\n* gerrit_file_diff\n* git_file_diff\n* git_modified_files\n* git_tags\n* groups_byuuid_persisted\n* modified_files\n\nThey were muted for the time being and defaults will be provided in the\nfollow up.\n\nBug: Issue 15865\nChange-Id: I3c67bdcd6b2a570e97f3ba0328535d602b7e116c\n"
    },
    {
      "commit": "310060ed9230d24261752728a9b3bd04f2bf8d62",
      "tree": "e16ff020564eae788f69dfc1cf4c630e8445bc34",
      "parents": [
        "b66414979781efc00889800ae83b2c478de7abf2"
      ],
      "author": {
        "name": "Jacek Centkowski",
        "email": "geminica.programs@gmail.com",
        "time": "Wed Aug 31 17:13:36 2022 +0200"
      },
      "committer": {
        "name": "Jacek Centkowski",
        "email": "geminica.programs@gmail.com",
        "time": "Wed Sep 14 07:43:41 2022 +0200"
      },
      "message": "Remove metrics when cache gets closed\n\nWhen plugin with persistent caches gets reloaded it fails to load with\nthe following exception:\n\n  java.lang.IllegalArgumentException: A metric named cache/chroniclemap/percentage_free_space_test-cache-plugin_test_cache already exists\n  ...\n\nThe problem is caused by cache related metrics that are created when\ncache-chroniclemap instantiates the persistent cache implementation for\nplugin that is being reloaded.\n\nThis change ensures that all cache related metrics are removed when cache is\nclosed.\n\nNotes:\n* This is the necessary but not sufficient step to solve #15587.\n  It is enough to solve the happy path when \u0027Gerrit-ReloadMode: restart\u0027.\n  IOW when the old version of plugin with persistent caches gets unloaded\n  before the new version is loaded.\n* Description on how to reload plugin with persistent caches when\n  cache-chroniclemap lib-module is installed was added to migration.md\n\nBug: Issue 15587\nDepends-On: I06d48535702a8acd0bcb4e1315a35b3c1d1768cb\nChange-Id: I03e34dd3463fad00ba8fbc174597c896a93db547\n"
    },
    {
      "commit": "b66414979781efc00889800ae83b2c478de7abf2",
      "tree": "891e7fbcadb113cd2fe9fd27c3fcc07ba6cb713d",
      "parents": [
        "f2d0c6c95aec0decf1aa0abedc9549e40ea30114"
      ],
      "author": {
        "name": "Jacek Centkowski",
        "email": "geminica.programs@gmail.com",
        "time": "Mon Jul 25 08:02:12 2022 +0200"
      },
      "committer": {
        "name": "Jacek Centkowski",
        "email": "geminica.programs@gmail.com",
        "time": "Fri Aug 12 18:53:38 2022 +0200"
      },
      "message": "Use static, per-thread buffers for (de)serialization\n\nNotes:\n* TimedValue was turned to mutable object to leverage on re-suing\n  objects and furthere reduce the memory footprint (see [1])\n* serialization of \u0027created\u0027 and \u0027length\u0027 happens through bytes array\n  (\u0027out.write(buffer.array());\u0027) therefore deserialization has to be\n  performed in the same way and per-thread read/write buffer (which is\n  bytes array) was added\n\n[1] Read interface documentation excerpt:\n(...) should attempt to reuse the given using object, i. e. to read\nthe deserialized data into the given object. If it is possible, this\nobject then returned from this method back. If it is impossible for\nany reason, a new object should be created and returned (...)\n\nChange-Id: I89871476f8186d4f5d2bceef34276b4f5756b181\n"
    },
    {
      "commit": "f2d0c6c95aec0decf1aa0abedc9549e40ea30114",
      "tree": "0082f305a8677556f9930da98759e0dde856cc38",
      "parents": [
        "ac975d073a5a3c61f4dea2d8e0d3745d6a53b09c"
      ],
      "author": {
        "name": "Jacek Centkowski",
        "email": "geminica.programs@gmail.com",
        "time": "Wed Jul 13 08:18:51 2022 +0200"
      },
      "committer": {
        "name": "Jacek Centkowski",
        "email": "geminica.programs@gmail.com",
        "time": "Fri Aug 12 18:24:49 2022 +0200"
      },
      "message": "Add read/write metrics to TimedValueMarshaller\n\nThe following metrics were added:\n* cache/chroniclemap/store_serialize_latency_\u003ccache-name\u003e the latency of\n  serializing entries in chronicle-map store\n* cache/chroniclemap/store_deserialize_latency_\u003ccache-name\u003e the latency\n  of deserializing entries in chronicle-map store\n\nNotes:\n* metrics are not serializable hence as such they have to be transient\n* in case \u0027readResolve\u0027 method is used instead of constructor fallback\n  to metrics cache to get metrics; it is safe operation as store is\n  created only after the TimeValueMarshaller is created for a cache in\n  question hence metricsCache is going to have the corresponding entry\n\nChange-Id: I195d83d4ebf351ad82925130d4e0c77231c3ec07\n"
    },
    {
      "commit": "ac975d073a5a3c61f4dea2d8e0d3745d6a53b09c",
      "tree": "226152617e7dea97870b808e12fba8116223a86a",
      "parents": [
        "0e84505e28e127c4ebef4192c5a2a57d2cd9d8a9",
        "f64f1897d69cf89ee1449b308f533998fb87e49e"
      ],
      "author": {
        "name": "Jacek Centkowski",
        "email": "geminica.programs@gmail.com",
        "time": "Fri Aug 12 16:20:01 2022 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Aug 12 16:20:01 2022 +0000"
      },
      "message": "Merge \"*Marshaller: get CacheSerilizer only once\" into stable-3.4"
    },
    {
      "commit": "0e84505e28e127c4ebef4192c5a2a57d2cd9d8a9",
      "tree": "aeae341b2a42a225b88dfc8d0f0ebe2c93835757",
      "parents": [
        "2d0a81de8ed66423a2a79fa168e8ec7f31112bbc"
      ],
      "author": {
        "name": "Jacek Centkowski",
        "email": "geminica.programs@gmail.com",
        "time": "Tue Aug 09 08:22:24 2022 +0200"
      },
      "committer": {
        "name": "Jacek Centkowski",
        "email": "geminica.programs@gmail.com",
        "time": "Tue Aug 09 08:22:24 2022 +0200"
      },
      "message": "ChronicleMapCacheIT: remove Truth8 qualifier from assertThat\n\nThe \u0027Truth8.assertThat\u0027 is statically imported therefore it doesn\u0027t have\nto be prefixed with \u0027Truth8\u0027.\n\nChange-Id: If2cab4d511e439d1144fd3993d9b050506f9fbb2\n"
    },
    {
      "commit": "945a74375cccc3b2a6416792464110d1bcf56051",
      "tree": "56c811991d2643c33118cfad8262def0b51c25e3",
      "parents": [
        "9c2e0df06ce752941742ca404ba16bfb5805bb2e"
      ],
      "author": {
        "name": "Jacek Centkowski",
        "email": "geminica.programs@gmail.com",
        "time": "Fri Jul 08 14:00:36 2022 +0200"
      },
      "committer": {
        "name": "Jacek Centkowski",
        "email": "geminica.programs@gmail.com",
        "time": "Fri Aug 05 09:41:29 2022 +0200"
      },
      "message": "Upgrade chronicle-map to the latest stable version \u00273.22.8\u0027\n\nNotes:\n* ChronicleMapCacheTest.shouldEvictEntriesUntilFreeSpaceIsRecovered was\n  fixed so that configuration applies to the cache being tested.\n  Otherwise cache was created with values that were not matching entries\n  being put and ChronicleMapStore.percentageFreeSpace showed 93% of free\n  space - resulting in endless loop and test timeout\n* \u0027jna-platform\u0027 and \u0027dev-jna\u0027 libraries were upgraded to version\n  \u00275.12.1\u0027\n\nChange-Id: I4d27dcfb79bbbfb996a9c33d875c56a96b46a993\n"
    },
    {
      "commit": "f64f1897d69cf89ee1449b308f533998fb87e49e",
      "tree": "42d36b292272cd702408c1e20c52c5f993319f58",
      "parents": [
        "2d0a81de8ed66423a2a79fa168e8ec7f31112bbc"
      ],
      "author": {
        "name": "Jacek Centkowski",
        "email": "geminica.programs@gmail.com",
        "time": "Wed Jul 13 08:30:05 2022 +0200"
      },
      "committer": {
        "name": "Jacek Centkowski",
        "email": "geminica.programs@gmail.com",
        "time": "Mon Aug 01 07:37:02 2022 +0200"
      },
      "message": "*Marshaller: get CacheSerilizer only once\n\nCacheSerializer implementations are stateless (often implemented through\nthe enum-singleton pattern). There is no need to reach out for them for\neach (de)serilize operation. As a bonus \u0027unchecked\u0027 doesn\u0027t have to\nsuppressed in \u0027read\u0027 operations.\n\nChange-Id: I25d4ef94c52de9199029117abb73613bd841b1f5\n"
    },
    {
      "commit": "2d0a81de8ed66423a2a79fa168e8ec7f31112bbc",
      "tree": "183ab27701277f71e90e4e49571c3686ac6f35eb",
      "parents": [
        "7831ac2c0e29090b88827930c86d05365c5de513"
      ],
      "author": {
        "name": "Jacek Centkowski",
        "email": "geminica.programs@gmail.com",
        "time": "Thu Jul 21 07:13:20 2022 +0200"
      },
      "committer": {
        "name": "Jacek Centkowski",
        "email": "geminica.programs@gmail.com",
        "time": "Wed Jul 27 11:12:27 2022 +0200"
      },
      "message": "Persist caches keys index at configurable pace\n\nIntroduce \u0027cache.persistIndexEvery\u0027 parameter (by default \u002715m\u0027) that\nspecifies how often indexes should be persisted to a disk.\nNotes:\n* in order to avoid race condition between evict and persist operations\n  the latter is performed after the former is finished\n* considering the above the smallest duration between persist operations\n  is 30s amd smaller values of \u0027persistIndexEvery\u0027 will be rounded up to\n  30s\n* higher values are rounded down (if needed) to the closest multiple of\n  30s\n* persist operation is additionally called on Gerrit exit - regardless\n  of the configured duration but it will be skipped on a particular\n  index level if there is one already running (as a result of schedule)\n* persist operation is scheduled in a dedicated thread\n  \u0027ChronicleMap-Index-0\u0027\n\nExample when \u0027cache.persistIndexEvery \u003d 2m\u0027 it means that persist\noperation will be performed after every 4th eviction is finished.\nAnd additionally on Gerrit exit provided that there is no one in\nprogress.\n\nBug: Issue 15121\nChange-Id: Ib6ea9c0e2819bf6d93ab4654db9e8a2abc8b5b20\n"
    },
    {
      "commit": "7831ac2c0e29090b88827930c86d05365c5de513",
      "tree": "d5122def63c02904ca6d28b11d5e8bfd23fe6903",
      "parents": [
        "7d6297b2feffe7061efe72dd594613186be2d7f4"
      ],
      "author": {
        "name": "Jacek Centkowski",
        "email": "geminica.programs@gmail.com",
        "time": "Mon Jul 11 08:38:52 2022 +0200"
      },
      "committer": {
        "name": "Jacek Centkowski",
        "email": "geminica.programs@gmail.com",
        "time": "Wed Jul 27 11:12:24 2022 +0200"
      },
      "message": "Add restore/persist operations related metrics\n\nThe following metrics were added:\n* cache/chroniclemap/keys_index_restore_latency_\u003ccache-name\u003e - The\n  latency of restoring an index from a file (performed once during\n  the plugin start).\n* cache/chroniclemap/keys_index_persist_latency_\u003ccache-name\u003e - The\n  latency of persisting an index to a file.\n* cache/chroniclemap/keys_index_restore_failures_\u003ccache-name\u003e - The\n  number of errors caught when restore cache index from file operation\n  was performed\n* cache/chroniclemap/keys_index_persist_failures_\u003ccache-name\u003e - The\n  number of errors caught when persist cache index to file operation was\n  performed\n\nBug: Issue 15121\nChange-Id: I7a953562e2b3fae15282a9130bfb4218c44ff8b3\n"
    },
    {
      "commit": "7d6297b2feffe7061efe72dd594613186be2d7f4",
      "tree": "8cf6a95139b10739cd9fc426f0bed10869d72fab",
      "parents": [
        "a95c20b915b89cf3ba83f26d5717c2eb95fad487"
      ],
      "author": {
        "name": "Jacek Centkowski",
        "email": "geminica.programs@gmail.com",
        "time": "Fri Jul 08 08:47:22 2022 +0200"
      },
      "committer": {
        "name": "Jacek Centkowski",
        "email": "geminica.programs@gmail.com",
        "time": "Wed Jul 27 11:10:15 2022 +0200"
      },
      "message": "Persist cache keys index to a file\n\nPersist cache keys index after every prune operation (temporarily) and\nadditionally on cache close operation.\n\nNotes:\n* it is persisted to \u0027[cache_file_name].index.tmp\u0027 file and once\n  operation is finished renamed to \u0027[cache_file_name].index\u0027 so that\n  in case when Gerrit is abruptly closed the index file is not\n  corrupted\n\nBug: Issue 15121\nChange-Id: Ib2013cede2be758148a7031ff6942f5c2b035caf\n"
    },
    {
      "commit": "a95c20b915b89cf3ba83f26d5717c2eb95fad487",
      "tree": "7a98e21ffcc94a1f50fd010b148852c388bcbc0f",
      "parents": [
        "e0ca3d1a804c8cf8463eff1671032745ba66fb5e"
      ],
      "author": {
        "name": "Jacek Centkowski",
        "email": "geminica.programs@gmail.com",
        "time": "Thu Jun 30 11:01:22 2022 +0200"
      },
      "committer": {
        "name": "Jacek Centkowski",
        "email": "geminica.programs@gmail.com",
        "time": "Fri Jul 08 19:52:48 2022 +0200"
      },
      "message": "Add cache keys index metrics\n\nThe following metrics were added foe each cache:\n* cache/chroniclemap/keys_index_size_\u003ccache-name\u003e for showing the\n  current size of the index (that one is one to one with disk entries)\n* cache/chroniclemap/keys_index_add_latency_\u003ccache-name\u003e to indicate how\n  much time it takes to add key to the index over time\n* cache/chroniclemap/keys_index_remove_and_consume_older_than_latency_\u003ccache-name\u003e\n  to indicate how much time it takes to remove and consume all keys\n  older than expiration time\n* cache/chroniclemap/keys_index_remove_lru_key_latency_\u003ccache-name\u003e to\n  indicate how much time it takes to remove and consumer LRU key\n\nBug: Issue 15121\nChange-Id: I8141c0f00dfe6e7dc3b06517c3383d19fe883492\n"
    },
    {
      "commit": "e0ca3d1a804c8cf8463eff1671032745ba66fb5e",
      "tree": "07fb705722c2a631659a10f2d3a04f94de65654e",
      "parents": [
        "bd3ecf87b2c65ac39392eebd70b96e6d9ff9a0d2"
      ],
      "author": {
        "name": "Jacek Centkowski",
        "email": "geminica.programs@gmail.com",
        "time": "Sun May 01 14:21:31 2022 +0100"
      },
      "committer": {
        "name": "Jacek Centkowski",
        "email": "geminica.programs@gmail.com",
        "time": "Tue May 24 08:31:39 2022 +0200"
      },
      "message": "Avoid full cache scanning for pruning\n\nThe full cache scanning should be avoided at all costs\nbecause of the massive CPU and JVM heap utilisation due\nto the deserialisation of the cached values.\n\nThe prune() of the cache cannot rely on any ordering\nof entries and therefore needs another data structure\nto remember the historical insertion ordering of the\nkeys.\n\nUse an in-memory linked hash set so that MRU keys are propagated by\nremove-add on each key access to the tail of it whereas LRU key is\nalways available as a head key (therefore it is cheap to remove LRU\nkeys). In addition to key store also the value insertion time so that\nexpiring entries for maxAge is also possible.\n\nTODO: The queue is currently in memory which isn\u0027t going\nto work across restarts. The queue needs to be persisted\nto disk as a circular file with automatic reorganiation.\n\nBug: Issue 15121\nChange-Id: Ifa3068e2d27713b452c4bcab6a611e3c9b511868\n"
    },
    {
      "commit": "9c2e0df06ce752941742ca404ba16bfb5805bb2e",
      "tree": "ee93743e3e5bb9f270e47d02019d5810503dee7f",
      "parents": [
        "c086a2eac1aca72f13480209fef98fe18d7ef03c",
        "7ad640fd7a816357644dddbce8438449c99b4b1b"
      ],
      "author": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Sat Mar 05 11:20:57 2022 +0000"
      },
      "committer": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Sat Mar 05 11:27:01 2022 +0000"
      },
      "message": "Merge branch \u0027stable-3.5\u0027\n\n* stable-3.5:\n  Fix Flogger formatting of exception in AutoAdjustCachesCommand\n  Remove LoadingCache casts\n  Postpone call to get() when loading from the in-memory cache\n  Extract ChronicleMapStoreMetrics to its own class file\n  Ignore the BytesStore raw type\n  Emit metric to track number of put failures\n  Move tryPut to ChronicleMapStore\n  Move store related metrics to ChronicleMapStore\n  Introduce ChronicleMapStore\n  Remove redundant store parameter from ChronicleMapCacheImpl\n  Do not throw when failing to store into chronicle-map\n  Expose max auto resizes metric\n  Allow to specify number of entries in auto-adjust-caches\n  Fix link to auto-adjust caches in tuning docs\n  Add acceptance test for REST auto-tuning for single cache\n  Allow to restrict the caches to auto-tune\n  Increase the memory used in acceptance tests\n  build.md: Use correct path for external_plugin_deps.bzl\n\nChange-Id: Ia7e9afa521ea430a3647af5243cd4b3c319ec595\n"
    },
    {
      "commit": "7ad640fd7a816357644dddbce8438449c99b4b1b",
      "tree": "d5c3d2e8b915688b0e22b986c527121538852463",
      "parents": [
        "d02181c8d22770d219db1990a5492ffd5614f24e",
        "bd3ecf87b2c65ac39392eebd70b96e6d9ff9a0d2"
      ],
      "author": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Sat Mar 05 10:59:01 2022 +0000"
      },
      "committer": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Sat Mar 05 11:19:52 2022 +0000"
      },
      "message": "Merge branch \u0027stable-3.4\u0027 into stable-3.5\n\n* stable-3.4:\n  Fix Flogger formatting of exception in AutoAdjustCachesCommand\n  Extract ChronicleMapStoreMetrics to its own class file\n  Ignore the BytesStore raw type\n  Emit metric to track number of put failures\n  Move tryPut to ChronicleMapStore\n  Move store related metrics to ChronicleMapStore\n  Introduce ChronicleMapStore\n  Remove redundant store parameter from ChronicleMapCacheImpl\n  Do not throw when failing to store into chronicle-map\n  Expose max auto resizes metric\n  Allow to specify number of entries in auto-adjust-caches\n  Fix link to auto-adjust caches in tuning docs\n  Add acceptance test for REST auto-tuning for single cache\n  Allow to restrict the caches to auto-tune\n  Increase the memory used in acceptance tests\n  build.md: Use correct path for external_plugin_deps.bzl\n\nReplace diff cache IT testing with gerrit_file_diff and\ngit_file_diff caches.\n\nChange-Id: I955a75c72dd61c4b36a2a96b32aaa73eacec3762\n"
    },
    {
      "commit": "bd3ecf87b2c65ac39392eebd70b96e6d9ff9a0d2",
      "tree": "82acd6ed8a87e1d66340f061a8e018b72ddb7de7",
      "parents": [
        "8c7f2f0b8f171aff9d0d0a59866d0544debe3731",
        "c957384647373b59875cc0bf438b013c2751661c"
      ],
      "author": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Sat Mar 05 10:51:41 2022 +0000"
      },
      "committer": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Sat Mar 05 10:51:41 2022 +0000"
      },
      "message": "Merge branch \u0027stable-3.3\u0027 into stable-3.4\n\n* stable-3.3:\n  Fix Flogger formatting of exception in AutoAdjustCachesCommand\n\nChange-Id: I95c6294a354c0317f07fc44f45ae9a854a18fd82\n"
    },
    {
      "commit": "c957384647373b59875cc0bf438b013c2751661c",
      "tree": "dcdc784f9453812ad471e857fb637f6f8316aeb3",
      "parents": [
        "905c08b97ae8264a8f2e7ddb210be3d6e8316932"
      ],
      "author": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Sat Mar 05 10:29:25 2022 +0000"
      },
      "committer": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Sat Mar 05 10:35:00 2022 +0000"
      },
      "message": "Fix Flogger formatting of exception in AutoAdjustCachesCommand\n\nChange-Id: I1b971e57ae5c1a77d61a0f609ca2e4c7b7d7a91f\n"
    },
    {
      "commit": "8c7f2f0b8f171aff9d0d0a59866d0544debe3731",
      "tree": "199da68d2d6aa27140b1c464b249a6340697d3ad",
      "parents": [
        "05c97be65af2ff87a3fa9dea5c82b39eafd74e2f",
        "905c08b97ae8264a8f2e7ddb210be3d6e8316932"
      ],
      "author": {
        "name": "Marcin Czech",
        "email": "maczech@gmail.com",
        "time": "Tue Feb 08 19:55:17 2022 +0100"
      },
      "committer": {
        "name": "Marcin Czech",
        "email": "maczech@gmail.com",
        "time": "Tue Feb 08 19:55:17 2022 +0100"
      },
      "message": "Merge branch \u0027stable-3.3\u0027 into stable-3.4\n\n* stable-3.3:\n  Extract ChronicleMapStoreMetrics to its own class file\n  Ignore the BytesStore raw type\n  Emit metric to track number of put failures\n  Move tryPut to ChronicleMapStore\n  Move store related metrics to ChronicleMapStore\n  Introduce ChronicleMapStore\n  Remove redundant store parameter from ChronicleMapCacheImpl\n  Do not throw when failing to store into chronicle-map\n  Expose max auto resizes metric\n  Allow to specify number of entries in auto-adjust-caches\n  Fix link to auto-adjust caches in tuning docs\n  Add acceptance test for REST auto-tuning for single cache\n  Allow to restrict the caches to auto-tune\n  Increase the memory used in acceptance tests\n  build.md: Use correct path for external_plugin_deps.bzl\n\nChange-Id: I02c8e1628f77844dac4add65454244113be67045\n"
    },
    {
      "commit": "d02181c8d22770d219db1990a5492ffd5614f24e",
      "tree": "899dad6290d4bc39ece2a0b4a175f1b4f9db4085",
      "parents": [
        "0cb659f69618c3fba5905bda6d19b3700be56c19"
      ],
      "author": {
        "name": "Jacek Centkowski",
        "email": "geminica.programs@gmail.com",
        "time": "Tue Feb 01 17:39:35 2022 +0000"
      },
      "committer": {
        "name": "Antonio Barone",
        "email": "syntonyze@gmail.com",
        "time": "Tue Feb 01 20:35:03 2022 +0000"
      },
      "message": "Remove LoadingCache casts\n\nChange-Id: Id39c82f015d7b0d934485c70026fa362e21c83aa\n"
    },
    {
      "commit": "0cb659f69618c3fba5905bda6d19b3700be56c19",
      "tree": "12167625a01aa15062b991c503eff4a15502591a",
      "parents": [
        "fe7af1d43efa2509656c4d3af63d501ddcac6ea1"
      ],
      "author": {
        "name": "Antonio Barone",
        "email": "syntonyze@gmail.com",
        "time": "Mon Jan 31 21:01:11 2022 +0100"
      },
      "committer": {
        "name": "Antonio Barone",
        "email": "syntonyze@gmail.com",
        "time": "Tue Feb 01 20:31:44 2022 +0000"
      },
      "message": "Postpone call to get() when loading from the in-memory cache\n\nCaffeine\u0027s get() method relies on the `ConcurrentHashMap.compute()`\njava11 implementation, which locks concurrent access in [1].\n\nThe effect of this on cache-chroniclemap is that when multiple threads\ntry to access the in-memory cache concurrently, they result in being\nBLOCKED, as documented by the `ConcurrentHashMap.compute()` method:\n\n```\nSome attempted update operations on this map by other threads\nmay be blocked while computation is in progress, so the\ncomputation should be short and simple, and must not attempt to\nupdate any other mappings of this Map.\n```\n\nThis, in turn, causes high consumption of Gerrit threads, which might\neventually, make it unresponsive.\n\nWorkaround this problem by first trying to get the key _if present_ and\nonly calling get() in case no value could be loaded.\n\nThis works because getIfPresent(), as opposed to, get(), does not try to\n`compute` entries in the cache and thus decreases the chances of threads\nblocking in case of cache hits.\n\n[1] https://github.com/AdoptOpenJDK/openjdk-jdk11/blob/master/src/java.base/share/classes/java/util/concurrent/ConcurrentHashMap.java#L1923\n\nBug: Issue 15645\nChange-Id: I7021d93d4011e252c5c022ffcd3eecee22820ff5\n"
    },
    {
      "commit": "c086a2eac1aca72f13480209fef98fe18d7ef03c",
      "tree": "8da5c304ca7b8f4be7a6f32d316f30efff9c7169",
      "parents": [
        "fe7af1d43efa2509656c4d3af63d501ddcac6ea1"
      ],
      "author": {
        "name": "Antonio Barone",
        "email": "syntonyze@gmail.com",
        "time": "Mon Jan 31 22:12:24 2022 +0100"
      },
      "committer": {
        "name": "Antonio Barone",
        "email": "syntonyze@gmail.com",
        "time": "Mon Jan 31 22:14:04 2022 +0100"
      },
      "message": "Remove CacheBackend from ChronicleMapCacheFactory\n\nAdapt to the removal of CacheBackend carried on by change I27e182f964c.\n\nBug: Issue 15647\nChange-Id: Ibf2fc2c9d6933da66c2f0c920e003062448e7506\n"
    },
    {
      "commit": "905c08b97ae8264a8f2e7ddb210be3d6e8316932",
      "tree": "076ece5517078640c476730308f8071ac6bb9a83",
      "parents": [
        "37b2e1bf533b7e0dd5644e693c9748a718719e34"
      ],
      "author": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Mon Jan 31 19:01:01 2022 +0000"
      },
      "committer": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Mon Jan 31 19:01:28 2022 +0000"
      },
      "message": "Extract ChronicleMapStoreMetrics to its own class file\n\nChange-Id: Ie687d29c46a1000914a193aa2e6d55cf5438cce3\n"
    },
    {
      "commit": "37b2e1bf533b7e0dd5644e693c9748a718719e34",
      "tree": "87c504a0d44505ade0ee8ca4441a0203bd1fdca8",
      "parents": [
        "d530eda90e3995465ac7147d6ea881bb520e71de"
      ],
      "author": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Mon Jan 31 18:55:31 2022 +0000"
      },
      "committer": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Mon Jan 31 18:55:31 2022 +0000"
      },
      "message": "Ignore the BytesStore raw type\n\nThe ByteStore raw type is inherited from the\ninterface exported by the chroniclemap library and therefore\nshould be respected. Add the ignore of the warning so that\nit would now show-up in the warnings to fix in the project.\n\nChange-Id: I2b7ac3090a379b22bd41c6e04c2053e6b6fcda49\n"
    },
    {
      "commit": "d530eda90e3995465ac7147d6ea881bb520e71de",
      "tree": "1c8df57a21846fc6439d563fab418539a3be6e45",
      "parents": [
        "b70866c51b1e0c7ddc6535e3cff7a8022e581b0d"
      ],
      "author": {
        "name": "Antonio Barone",
        "email": "syntonyze@gmail.com",
        "time": "Fri Jan 21 19:17:49 2022 +0100"
      },
      "committer": {
        "name": "Antonio Barone",
        "email": "syntonyze@gmail.com",
        "time": "Mon Jan 31 12:06:56 2022 +0100"
      },
      "message": "Emit metric to track number of put failures\n\nEmit cache/chroniclemap/store_put_failures_\u003ccache\u003e metric when failing\nto put an entry into chronicle-map.\n\nBug: Issue 15594\nChange-Id: I1af1e72e32024234f38a5ec51e47e3fd07438312\n"
    },
    {
      "commit": "b70866c51b1e0c7ddc6535e3cff7a8022e581b0d",
      "tree": "bf513582b97ce7a0da09acde7adf668cb091f67c",
      "parents": [
        "445a3c6eb1a28dc02977e96101a286b979164582"
      ],
      "author": {
        "name": "Antonio Barone",
        "email": "syntonyze@gmail.com",
        "time": "Fri Jan 21 18:43:49 2022 +0100"
      },
      "committer": {
        "name": "Antonio Barone",
        "email": "syntonyze@gmail.com",
        "time": "Mon Jan 31 10:10:36 2022 +0100"
      },
      "message": "Move tryPut to ChronicleMapStore\n\nInserting a new entry into chronicle-map is a store level operation\nand as such belongs to the ChronicleMapStore rather than the\nChronicleMapCacheImpl.\n\nAlso, this allows to emit metrics related to failed put operation, which\nwill be addressed in a follow up change.\n\nChange-Id: I812d8d930e096c1757925dbe304d1c2b180ddabc\n"
    },
    {
      "commit": "445a3c6eb1a28dc02977e96101a286b979164582",
      "tree": "4cd75dfc7f9cd9bfac2cdb696d09f235a63414b4",
      "parents": [
        "14b000b24ae60acd18648d9984a255fdca356b87"
      ],
      "author": {
        "name": "Antonio Barone",
        "email": "syntonyze@gmail.com",
        "time": "Fri Jan 21 18:24:34 2022 +0100"
      },
      "committer": {
        "name": "Antonio Barone",
        "email": "syntonyze@gmail.com",
        "time": "Mon Jan 31 09:16:20 2022 +0100"
      },
      "message": "Move store related metrics to ChronicleMapStore\n\nDo not emit all metrics from the chronicle-map cache implementation, but\nrather split them so that the cache only emits cache-related metrics,\nwhilst the store emits storage-related ones.\n\nThis unlocks the possibility to centralize the emission of\nstore-related metrics regardless whether the store is accessed from\nthe ChronicleMapCacheImpl or the ChronicleMapCacheLoader.\n\nChange-Id: Ie5e50a79f48f6e1e1ae4845b899bd9ad52e4c638\n"
    },
    {
      "commit": "14b000b24ae60acd18648d9984a255fdca356b87",
      "tree": "5151a22df4526680593df559cad8bad00a4a6ff6",
      "parents": [
        "25e9e7146dfa4df5e828d2cbec4509e09330ed9f"
      ],
      "author": {
        "name": "Antonio Barone",
        "email": "syntonyze@gmail.com",
        "time": "Fri Jan 21 18:00:18 2022 +0100"
      },
      "committer": {
        "name": "Antonio Barone",
        "email": "syntonyze@gmail.com",
        "time": "Mon Jan 31 08:54:31 2022 +0100"
      },
      "message": "Introduce ChronicleMapStore\n\nWrap the bare ChronicleMap store object in a ChronicleMapStore.\n\nThis works as a preparation to centralize the emission of metrics that\nare related to the store only.\n\nThis will be addressed as a follow up change.\n\nChange-Id: Ia4987b709a124fba3e786d3cc559c12ad23dfe41\n"
    },
    {
      "commit": "25e9e7146dfa4df5e828d2cbec4509e09330ed9f",
      "tree": "31e2b3576b26f4fbc8cef3c1a8bfc3fa3b91f0a8",
      "parents": [
        "496c1257ad63c2c5dfaeb2f71bcfef226660b4d3"
      ],
      "author": {
        "name": "Antonio Barone",
        "email": "syntonyze@gmail.com",
        "time": "Fri Jan 21 16:41:39 2022 +0100"
      },
      "committer": {
        "name": "Antonio Barone",
        "email": "syntonyze@gmail.com",
        "time": "Fri Jan 21 16:41:39 2022 +0100"
      },
      "message": "Remove redundant store parameter from ChronicleMapCacheImpl\n\nThe ChronicleMap store is currently passed as an argument to both the\nChronicleMapCacheImpl and the ChronicleMapCacheLoader.\n\nThis is unnecessary, since the ChronicleMapCacheImpl can always derive\nthe store from its loader.\n\nThis simplifies the signature of the constructor.\n\nChange-Id: If0042afd5b31d8f67adace5c42a9137af3ef83f3\n"
    },
    {
      "commit": "496c1257ad63c2c5dfaeb2f71bcfef226660b4d3",
      "tree": "98db9291f02b095c31d44d510783aed4ed70148d",
      "parents": [
        "eb41be284c11edfaef50868b72a885987d8f8853"
      ],
      "author": {
        "name": "Antonio Barone",
        "email": "syntonyze@gmail.com",
        "time": "Thu Jan 06 22:46:20 2022 +0100"
      },
      "committer": {
        "name": "Antonio Barone",
        "email": "syntonyze@gmail.com",
        "time": "Wed Jan 12 14:56:48 2022 +0100"
      },
      "message": "Do not throw when failing to store into chronicle-map\n\nWhen storing a new entry in chronicle-map it is possible that the\noperation might fail.\n\nFor instance, if the new entry diverges greatly from the configured\naverage key and value size, the available memory chunks might not be\nenough to accommodate the new entry.\n\nChronicle-map fails with:\n\n```\nEntry is too large: requires X chunks, Y is the maximum.\n```\n\nAnother typical case would be that the cache already reached the maximum\nnumber of auto-resizes and thus it is not able to expand anymore.\n\nChronicle-map fails with:\n\n```\nAttempt to allocate #X extra segment tier, Y is maximum.\n```\n\nIn these cases, as well as other possible failures, we don\u0027t want the\nexception to bubble up to the stack and cause the caller to fail.\n\nThe caller might be a REST API initiated by the UI via ajax, which in\nturn, would cause the UI to stop rendering and a bad user experience.\n\nCatch chronicle-map\u0027s `put()` exception locally and simply avoid caching\nthe offending entry.\n\nBug: Issue 15483\nChange-Id: Ia1811d66b676388f15cb6f42ef3ee4fd5d1aa94b\n"
    },
    {
      "commit": "eb41be284c11edfaef50868b72a885987d8f8853",
      "tree": "8d9f3a5169959584086f3e1257f71ee549946456",
      "parents": [
        "07f2c2b84236a351698b5eeda03b773d903162ae"
      ],
      "author": {
        "name": "Antonio Barone",
        "email": "syntonyze@gmail.com",
        "time": "Mon Dec 20 13:35:31 2021 +0100"
      },
      "committer": {
        "name": "Antonio Barone",
        "email": "syntonyze@gmail.com",
        "time": "Tue Dec 21 13:09:13 2021 +0000"
      },
      "message": "Expose max auto resizes metric\n\nCurrently, only the number of auto resizes is exposed as a metric.\nWhen this value reaches 0 it is no longer possible to\nexpand the cache.\n\nHowever, it is not possible to know the maximum number of auto-resizes\nthat the cache could go through.\n\nExpose the maximum number of auto-resizes as a metric, so that can be\nused together with the remaining auto-resizes to evaluate the overall\nutilization of the cache.\n\nBug: Issue 15458\nChange-Id: Ie81684950a28f3e2420bddfcaa10b7db218d00fb\n"
    },
    {
      "commit": "07f2c2b84236a351698b5eeda03b773d903162ae",
      "tree": "81f1871df960ddefe73a3f45d2bd54c2b0ef0664",
      "parents": [
        "1ed756e45c90b41dde96ba4fad262f54357d91dd"
      ],
      "author": {
        "name": "Antonio Barone",
        "email": "syntonyze@gmail.com",
        "time": "Fri Dec 10 15:12:30 2021 +0100"
      },
      "committer": {
        "name": "Antonio Barone",
        "email": "syntonyze@gmail.com",
        "time": "Mon Dec 20 13:18:11 2021 +0000"
      },
      "message": "Allow to specify number of entries in auto-adjust-caches\n\nWhen running the auto-adjust-caches command, either via SSH or via HTTP,\nit is not possible to specify the maximum number of entries for the\nresulting cache.\n\nThis means, that the maximum number of entries allowed in the cache\ncannot be accommodated to make room for caches that are increasing in\nsize.\n\nIntroduce the `max-entries` parameter to tell the auto-adjust-caches\nthe maximum number of entries desired in the resulting auto-tuned cache.\n\nWhen the parameter is not specified, auto-adjust-caches takes care of\nincreasing the number of `maxEntries`, in case the current utilization\ngoes over 50% threshold.\n\nBug: Issue 15412\nChange-Id: I0ff43060a8fd2e22c3a60d11dcec1f875ba45e6e\n"
    },
    {
      "commit": "1ed756e45c90b41dde96ba4fad262f54357d91dd",
      "tree": "09f87dffa0c5560c9447cc07ebcfc04f20adb373",
      "parents": [
        "8282ce126e74855b7a6b1ab22cddb1d1f83f0ed3"
      ],
      "author": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Fri Dec 10 20:45:55 2021 +0000"
      },
      "committer": {
        "name": "Antonio Barone",
        "email": "syntonyze@gmail.com",
        "time": "Mon Dec 13 14:45:21 2021 +0000"
      },
      "message": "Fix link to auto-adjust caches in tuning docs\n\nChange-Id: Id368f97e2617a2530b25c56da79bc89a98c0a549\n"
    },
    {
      "commit": "fe7af1d43efa2509656c4d3af63d501ddcac6ea1",
      "tree": "bfb69a904325bef628ed0b54e43c4db3998b6303",
      "parents": [
        "6d73c640964cac6abfcf0e5ffd5c68e70470c394",
        "05c97be65af2ff87a3fa9dea5c82b39eafd74e2f"
      ],
      "author": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Fri Dec 10 23:31:56 2021 +0000"
      },
      "committer": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Fri Dec 10 23:31:56 2021 +0000"
      },
      "message": "Merge branch \u0027stable-3.4\u0027\n\n* stable-3.4:\n  Front CacheChronicleMap with a Guava cache\n\nChange-Id: I0c7b73dd04e0155ab4170914c1931bce6f7828da\n"
    },
    {
      "commit": "8282ce126e74855b7a6b1ab22cddb1d1f83f0ed3",
      "tree": "b08f37d9f195e0101d01d37b72317e03f9b5bede",
      "parents": [
        "4fecc1419395a25af63af15aa29d8da36e0a3b35"
      ],
      "author": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Wed Dec 08 23:55:32 2021 +0000"
      },
      "committer": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Wed Dec 08 23:56:11 2021 +0000"
      },
      "message": "Add acceptance test for REST auto-tuning for single cache\n\nChange-Id: I90842baa17d3f98a474798673e44b9d48475433c\n"
    },
    {
      "commit": "4fecc1419395a25af63af15aa29d8da36e0a3b35",
      "tree": "3092f1bcd28e769cfb1d74b788e64ec0d4c5f313",
      "parents": [
        "06abf6cffaf8a8ec42866bde0ea260a88c5ef195"
      ],
      "author": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Wed Dec 08 20:19:22 2021 +0000"
      },
      "committer": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Wed Dec 08 22:36:48 2021 +0000"
      },
      "message": "Allow to restrict the caches to auto-tune\n\nIntroduce the cache-name parameter to the auto-adjust-caches\ncommand for reducing the scope of adjusting and converting caches\nreducing the footprint on Gerrit and focusing the changes to\nindividual cache files.\n\nChange-Id: I504e82808cefa73db09581c814eb4f9656d0d05e\n"
    },
    {
      "commit": "06abf6cffaf8a8ec42866bde0ea260a88c5ef195",
      "tree": "651bd1b4ba54bfdae6a25c6d4f09f4a1a4409899",
      "parents": [
        "aae343f4cd214f619d29570e3fbecb3c58fdce20"
      ],
      "author": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Wed Dec 08 22:36:00 2021 +0000"
      },
      "committer": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Wed Dec 08 22:36:48 2021 +0000"
      },
      "message": "Increase the memory used in acceptance tests\n\nThe acceptance tests are getting longer and therefore\nmore memory is needed because of the accumulation of Gerrit\nservers heap in the JVM across tests.\n\nChange-Id: I128b01b30348b1d93c0cd3bf081882c886702b2c\n"
    },
    {
      "commit": "aae343f4cd214f619d29570e3fbecb3c58fdce20",
      "tree": "e943142cef91fedf984e25f5356c28b80a603b36",
      "parents": [
        "6a90f9fd5f2f620affcd9116cd148fcfd5fffcf6"
      ],
      "author": {
        "name": "Sven Selberg",
        "email": "sven.selberg@axis.com",
        "time": "Fri Dec 03 12:51:19 2021 +0000"
      },
      "committer": {
        "name": "Sven Selberg",
        "email": "sven.selberg@axis.com",
        "time": "Fri Dec 03 12:54:36 2021 +0000"
      },
      "message": "build.md: Use correct path for external_plugin_deps.bzl\n\nRemove unnecessary duplication of cache-chroniclemap.\n\nChange-Id: I028751c969a7e27995a8c657f79376c45d615644\n"
    },
    {
      "commit": "6d73c640964cac6abfcf0e5ffd5c68e70470c394",
      "tree": "62fede5dcea501d314408d21da036dcdf281cfa3",
      "parents": [
        "7734b882fad81ef496db149f423fa424135c6b64"
      ],
      "author": {
        "name": "Antonio Barone",
        "email": "syntonyze@gmail.com",
        "time": "Wed Nov 17 17:46:18 2021 +0100"
      },
      "committer": {
        "name": "Antonio Barone",
        "email": "syntonyze@gmail.com",
        "time": "Wed Nov 17 17:50:20 2021 +0100"
      },
      "message": "Adapt to the removal of cache diff\n\nThe \"diff\" cache has been removed in stable-3.5 (I52738c85), in favour\nof two new caches, the git_file_diff cache (introduced in  Ia278881c0f)\nand the gerrit_file_diff cache (introduced in I23f616d1).\n\nAdapt the migration servlet accordingly and adjust the tests\nexpectations.\n\nBug: Issue 15287\nChange-Id: I7610f2e580fac9fe25024aeee4e02f66da33c430\n"
    },
    {
      "commit": "05c97be65af2ff87a3fa9dea5c82b39eafd74e2f",
      "tree": "f7a33731b1bddeba89382bc26b4d0e3e35c5b8e3",
      "parents": [
        "04ee7e7b414d483428fc300f772149849601a0cc",
        "6a90f9fd5f2f620affcd9116cd148fcfd5fffcf6"
      ],
      "author": {
        "name": "Antonio Barone",
        "email": "syntonyze@gmail.com",
        "time": "Wed Nov 17 16:15:05 2021 +0100"
      },
      "committer": {
        "name": "Antonio Barone",
        "email": "syntonyze@gmail.com",
        "time": "Wed Nov 17 16:15:05 2021 +0100"
      },
      "message": "Merge branch \u0027stable-3.3\u0027 into stable-3.4\n\n* stable-3.3:\n  Front CacheChronicleMap with a Guava cache\n\nChange-Id: I571a7c16560c8b34a6075aaad94e8c19662e6f22\n"
    },
    {
      "commit": "6a90f9fd5f2f620affcd9116cd148fcfd5fffcf6",
      "tree": "9eb0cf6d8aed7cfcde391aeed394f2d24f187c4b",
      "parents": [
        "c0ccaf143d12d1000443217f5d9a2efdaa3e849f"
      ],
      "author": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Thu Sep 16 21:04:17 2021 +0100"
      },
      "committer": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Fri Oct 01 00:13:10 2021 +0100"
      },
      "message": "Front CacheChronicleMap with a Guava cache\n\nThe initial implementation of persistent caches using\nChronicleMap did not use any Guava cache front-end, relying\non the speed of accessing data on disk and memory.\n\nUnfortunately, the deserialisation of some entities\n(e.g. change_notes) is very expensive in terms of CPU\nand ChronicleMap does not store the binary objects as-is\nbut relies on in-memory serialisation of keys and values.\nThere are two problems caused by this:\n- delay in reading the cache from memory\n- high system load when accessing the cache\n\nUse the same structure of the H2 persistent cache where\nthe loader is delegated to the retrieval and deserialisation\nof the entities from ChronicleMap.\n\nAmend the cache statistics and return the in-memory elements\nand the ones stored on disk as separate values.\n\nBug: Issue 15036\nChange-Id: I8dd602c20fcd621972b562fc2163fefc7240484a\n"
    },
    {
      "commit": "7734b882fad81ef496db149f423fa424135c6b64",
      "tree": "5c7010d45161b3a5c27eb9c77da5a385dc09d9f5",
      "parents": [
        "0084e35c4d5091ebc942738cacea1cf8838d8a48",
        "04ee7e7b414d483428fc300f772149849601a0cc"
      ],
      "author": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Tue Aug 17 01:34:39 2021 +0100"
      },
      "committer": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Tue Aug 17 01:34:39 2021 +0100"
      },
      "message": "Merge branch \u0027stable-3.4\u0027\n\n* stable-3.4:\n  DRY out common functions between servlets\n  DRY out listing of tuned files in AutoAdjustCachesIT\n  Expose auto-adjust-cache command as Servlet\n  Skip unnecessary auto-adjustments of caches\n  Give more patience for cache to load in tests\n  Remove empty char at EOL in docs\n  Fix auto-adjust-caches example CLI in docs\n  Use all-caps for static final strings in test\n\nChange-Id: I6011d7e3c3d0e16f47be036d08e48c8d9e253585\n"
    },
    {
      "commit": "04ee7e7b414d483428fc300f772149849601a0cc",
      "tree": "b13351141ec22059f024403c2b288214e21e6625",
      "parents": [
        "a372e8d301ff3f028403def327228e8f48ec5709",
        "c0ccaf143d12d1000443217f5d9a2efdaa3e849f"
      ],
      "author": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Tue Aug 10 23:35:59 2021 +0300"
      },
      "committer": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Tue Aug 17 01:33:15 2021 +0100"
      },
      "message": "Merge branch \u0027stable-3.3\u0027 into stable-3.4\n\n* stable-3.3:\n  DRY out common functions between servlets\n  DRY out listing of tuned files in AutoAdjustCachesIT\n  Expose auto-adjust-cache command as Servlet\n  Skip unnecessary auto-adjustments of caches\n  Give more patience for cache to load in tests\n  Remove empty char at EOL in docs\n  Fix auto-adjust-caches example CLI in docs\n  Use all-caps for static final strings in test\n\nAlso increase the acceptance tests\u0027 heap size to 2G\nto allow enouch memory to run the Gerrit-based\nacceptance tests for cache conversion and tuning.\n\nChange-Id: Iea5144726908ef051f66ae06ec59c08cfe5a2efa\n"
    },
    {
      "commit": "c0ccaf143d12d1000443217f5d9a2efdaa3e849f",
      "tree": "8f5e657618bc862b54316a5bd08de9bf179e8677",
      "parents": [
        "69d6f585f1a167c2afef409caa70a37fd4c4ed8d"
      ],
      "author": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Tue Aug 10 02:12:04 2021 +0300"
      },
      "committer": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Tue Aug 10 18:47:42 2021 +0000"
      },
      "message": "DRY out common functions between servlets\n\nH2MigrationServlet and AutoAdjustCachesServlet\nhad two static methods in common candidate to be\nDRY-ed out.\n\nIntroduce a new utility class HttpServletOps\nthat allows to centralise some common utility\nmethods to be reused across classes.\n\nChange-Id: I1a74cf972ca31f9e1b2b2cccdf1c806e17f458bb\n"
    },
    {
      "commit": "69d6f585f1a167c2afef409caa70a37fd4c4ed8d",
      "tree": "b91ee51957827843f67e059a59db9ce15e15ac4b",
      "parents": [
        "96c9a7178a52f747c910d31bd23c9e0554856ed6"
      ],
      "author": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Tue Aug 10 02:00:59 2021 +0300"
      },
      "committer": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Tue Aug 10 21:46:31 2021 +0300"
      },
      "message": "DRY out listing of tuned files in AutoAdjustCachesIT\n\nRemove duplication of the logic of selecting the list\nof tuned cache files in the AutoAdjustCachesIT tests.\n\nChange-Id: I4161a10d808fa8de3579edff1cd951be3dab27f0\n"
    },
    {
      "commit": "96c9a7178a52f747c910d31bd23c9e0554856ed6",
      "tree": "348d9003a69369334c791aca038a90e3b72ec089",
      "parents": [
        "39a4da536c76bcf7d5fa65cc5dc19980aafb97a4"
      ],
      "author": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Sat Aug 07 01:19:55 2021 +0300"
      },
      "committer": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Tue Aug 10 18:44:55 2021 +0000"
      },
      "message": "Expose auto-adjust-cache command as Servlet\n\nAllow Gerrit admins to easily automate the auto-adjust-cache\ncommand by using a REST-API, easily supported in configuration\ntools such as Ansible.\n\nThe REST-API returns 201 when one or more caches have been\ntuned and created on the filesystem, otherwise returns 204\nas indication that no changes are needed.\n\nChange-Id: I9756c82baac2ad367e9259ffb169fe15eba12e19\n"
    },
    {
      "commit": "39a4da536c76bcf7d5fa65cc5dc19980aafb97a4",
      "tree": "416c326e80d42c4ba8360163f7f24c76ee3d9c4f",
      "parents": [
        "edfe12520d2d3241272ed33b5113ecf8ade9b08e"
      ],
      "author": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Fri Aug 06 02:47:03 2021 +0300"
      },
      "committer": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Tue Aug 10 21:44:28 2021 +0300"
      },
      "message": "Skip unnecessary auto-adjustments of caches\n\nAuto-adjusting the caches is an expensive operation\nthat could also occupy a considerable amount of extra\ndisk-space.\n\nRe-building a cache that is already tuned would waste\nprecious resources and would not communicate effectively\nwhether a config change is needed or not.\n\nShow only the config changes needed and rebuild only\nthe caches that need adjusting, leaving everything else\nunchanged.\n\nBug: Issue 14876\nChange-Id: Ic4d703d04410924c855ad2b96f8f635994d968a8\n"
    },
    {
      "commit": "edfe12520d2d3241272ed33b5113ecf8ade9b08e",
      "tree": "7d7b4ad22f3d9c3c0dccc694a55e7d431e53f7f3",
      "parents": [
        "be4dd6d2aa948813bb8822696264868c7f6e983a"
      ],
      "author": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Tue Aug 10 01:02:47 2021 +0300"
      },
      "committer": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Tue Aug 10 01:03:46 2021 +0300"
      },
      "message": "Give more patience for cache to load in tests\n\nWaiting for just 4 seconds is going to be flaky on\na busy CI system. Allow up to 60 seconds of time\nfor the cache under test to load.\n\nChange-Id: I4de30fbca29f51884ca18c5ce4dd5c17cb679ee9\n"
    },
    {
      "commit": "be4dd6d2aa948813bb8822696264868c7f6e983a",
      "tree": "57b59fd3d9388389e253914af754f0e2146a1271",
      "parents": [
        "616f1136571f20bc573de8de7c5c70ac41644bfa"
      ],
      "author": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Sat Aug 07 00:25:29 2021 +0300"
      },
      "committer": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Sat Aug 07 00:25:40 2021 +0300"
      },
      "message": "Remove empty char at EOL in docs\n\nChange-Id: I36cb3b1f5a413559bd4820648903f55ef576c72a\n"
    },
    {
      "commit": "616f1136571f20bc573de8de7c5c70ac41644bfa",
      "tree": "09df67cc4e2285b4aa201fd57fdff3ef314e2362",
      "parents": [
        "a24c1e002fb5104d6c48d4ae1ca2acd078cb5353"
      ],
      "author": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Sat Aug 07 00:24:39 2021 +0300"
      },
      "committer": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Sat Aug 07 00:24:48 2021 +0300"
      },
      "message": "Fix auto-adjust-caches example CLI in docs\n\nChange-Id: I3f6f128ae25670117cd1ce9a525ef3a18b9ebc22\n"
    },
    {
      "commit": "a24c1e002fb5104d6c48d4ae1ca2acd078cb5353",
      "tree": "695c3055f846b6786887f949ff960669702627a6",
      "parents": [
        "23941d398dbc2d5411990b3205c821dfc9950196"
      ],
      "author": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Fri Aug 06 03:05:17 2021 +0300"
      },
      "committer": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Fri Aug 06 03:06:08 2021 +0300"
      },
      "message": "Use all-caps for static final strings in test\n\nThe java specifications recommend the use of all-caps\nnames for static final strings.\n\nChange-Id: I7f6845dfd9be3cd1e5b2eb333f34a6c72a8eb114\n"
    },
    {
      "commit": "0084e35c4d5091ebc942738cacea1cf8838d8a48",
      "tree": "17f4ef6a1bdd362728063a42096a8bed4ba2cb6b",
      "parents": [
        "d756a7f8d06d6485f3ea560229d3e7dd65ceda86",
        "a372e8d301ff3f028403def327228e8f48ec5709"
      ],
      "author": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Thu Jul 22 01:40:36 2021 +0100"
      },
      "committer": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Thu Jul 22 01:40:36 2021 +0100"
      },
      "message": "Merge branch \u0027stable-3.4\u0027\n\n* stable-3.4:\n  Use existing pre-configured cache config for H2 migration\n  Allow migrating H2 to ChronicleMap from non-admin\n  Remove unused fields and imports\n  Add serialVersionUID in inner anonymous class\n  Fix references to put method in JavaDoc\n  Suppress unchecked, cast and rawtypes warnings\n  Remove unused variable and method in test\n  Assert return value when creating project in test\n  Remove unneeded else condition\n  Remove duplicate fields exposed by AbstractDaemonTest\n\nChange-Id: Iea0815f4e7fed75d78a4cd2b684a96065a3d6dc5\n"
    },
    {
      "commit": "d756a7f8d06d6485f3ea560229d3e7dd65ceda86",
      "tree": "72141d00f26cae0c02e2ca6845394efc512e20e5",
      "parents": [
        "3fb524e46a6359dea02680a622c67e7310fd8fad"
      ],
      "author": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Thu Jul 22 01:38:33 2021 +0100"
      },
      "committer": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Thu Jul 22 01:40:02 2021 +0100"
      },
      "message": "Rename RestSession.putWithHeader() to allow varargs\n\nGerrit master has renamed the RestSession.putWithHeader to\nRestSession.putWithHeaders to allow the use of varargs for\nadding multiple headers at once.\n\nChange-Id: I7b6f400469470f356b372e8660a10609604ca991\n"
    },
    {
      "commit": "a372e8d301ff3f028403def327228e8f48ec5709",
      "tree": "6b5bd034f282ddefa93a3aa18d9f15c143ede453",
      "parents": [
        "3fb524e46a6359dea02680a622c67e7310fd8fad",
        "23941d398dbc2d5411990b3205c821dfc9950196"
      ],
      "author": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Thu Jul 22 01:30:38 2021 +0100"
      },
      "committer": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Thu Jul 22 01:30:38 2021 +0100"
      },
      "message": "Merge branch \u0027stable-3.3\u0027 into stable-3.4\n\n* stable-3.3:\n  Use existing pre-configured cache config for H2 migration\n  Allow migrating H2 to ChronicleMap from non-admin\n  Remove unused fields and imports\n  Add serialVersionUID in inner anonymous class\n  Fix references to put method in JavaDoc\n  Suppress unchecked, cast and rawtypes warnings\n  Remove unused variable and method in test\n  Assert return value when creating project in test\n  Remove unneeded else condition\n  Remove duplicate fields exposed by AbstractDaemonTest\n\nChange-Id: Ibe25be7ffe2976fdadd08f4cd38a9b52e442aa0b\n"
    },
    {
      "commit": "23941d398dbc2d5411990b3205c821dfc9950196",
      "tree": "1f73b1225f70c4dba394b832dc9b03368d2e835d",
      "parents": [
        "ae297aa92c0436b746bc4fd38f835161eb49c93d"
      ],
      "author": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Mon Jul 19 23:10:13 2021 +0100"
      },
      "committer": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Wed Jul 21 20:11:11 2021 +0100"
      },
      "message": "Use existing pre-configured cache config for H2 migration\n\nWhen migrating from H2 to ChronicleMap, it may be useful\nto pre-define the target cache configuration beforehand.\nThat allows the Gerrit admin to correctly tune a desired\nset of parameters and use them during the cutover from H2\nto ChronicleMap.\n\nKeep the default behaviour (auto-tune from H2) when the\naverage key and values sizes are not set, so to allow a\nsmooth migration for those Gerrit admins that do not\nneed to get the cutover fully automated.\n\nChange-Id: I900cc0ed4a83fde6f77c13eb69c4212251834525\n"
    },
    {
      "commit": "ae297aa92c0436b746bc4fd38f835161eb49c93d",
      "tree": "e61f7fb766e506e272791baa4b50ea5d2b6aec34",
      "parents": [
        "bae27918ab285946c539e140ba5332bd295f97b7"
      ],
      "author": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Thu Jul 15 22:20:31 2021 +0100"
      },
      "committer": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Fri Jul 16 22:26:06 2021 +0100"
      },
      "message": "Allow migrating H2 to ChronicleMap from non-admin\n\nNon-admins should be delegated to be able to migrate\nthe H2 caches to ChronicleMap, so that service users\ncan be safely used without having to compromise the\nadmin credentials.\n\nAlso fix a security hole where all registered users\nwere allowed to run any SSH commands provided by\nthe plugin and apply instead the same authorization\npolicy enforced for the H2 migration REST-API.\n\nBug: Issue 14793\nChange-Id: I2935403ca23f833af8b1e8065f6eee5f9e4dd7fe\n"
    },
    {
      "commit": "bae27918ab285946c539e140ba5332bd295f97b7",
      "tree": "3fad5716e48926b8877ebcbe6b4c6f6ca9356f59",
      "parents": [
        "c99d99b22c49ca00f6ac769376cc9496ef511b3c"
      ],
      "author": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Fri Jul 16 21:47:20 2021 +0100"
      },
      "committer": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Fri Jul 16 21:47:34 2021 +0100"
      },
      "message": "Remove unused fields and imports\n\nChange-Id: Icb0e53ed202c8f6fe3213e846313a63a693ec030\n"
    },
    {
      "commit": "c99d99b22c49ca00f6ac769376cc9496ef511b3c",
      "tree": "48e6d15c0b8e1f7edcaca042dd54f22a6f203b70",
      "parents": [
        "b5ef5184f2c411a9c4888352d98fc1748bec86ee"
      ],
      "author": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Fri Jul 16 00:57:25 2021 +0100"
      },
      "committer": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Fri Jul 16 00:58:02 2021 +0100"
      },
      "message": "Add serialVersionUID in inner anonymous class\n\nChange-Id: I9924e67ce7739d360b775f97110813ed7901998c\n"
    }
  ],
  "next": "b5ef5184f2c411a9c4888352d98fc1748bec86ee"
}
