)]}'
{
  "commit": "8b8fd14187d8b798606f579c49fbd8a0b7d4355c",
  "tree": "dfe01c6d2355c4250dfe3041e588b27b7c54e9a0",
  "parents": [
    "09972a1710a68f245ed2c8cd6f229748edfc1994"
  ],
  "author": {
    "name": "Christopher Haster",
    "email": "geky@geky.net",
    "time": "Wed Dec 20 22:56:26 2023 -0600"
  },
  "committer": {
    "name": "Christopher Haster",
    "email": "geky@geky.net",
    "time": "Fri Jan 19 13:00:27 2024 -0600"
  },
  "message": "Added inline_max, to optionally limit the size of inlined files\n\nInlined files live in metadata and decrease storage requirements, but\nmay be limited to improve metadata-related performance. This is\nespecially important given the current plague of metadata performance.\n\nThough decreasing inline_max may make metadata more dense and increase\nblock usage, so it\u0027s important to benchmark if optimizing for speed.\n\nThe underlying limits of inlined files haven\u0027t changed:\n1. Inlined files need to fit in RAM, so \u003c\u003d cache_size\n2. Inlined files need to fit in a single attr, so \u003c\u003d attr_max\n3. Inlined files need to fit in 1/8 of a block to avoid metadata\n   overflow issues, this is after limiting by metadata_max,\n   so \u003c\u003d min(metadata_max, block_size)/8\n\nBy default, the largest possible inline_max is used. This preserves\nbackwards compatibility and is probably a good default for most use\ncases.\n\nThis does have the awkward effect of requiring inline_max\u003d-1 to\nindicate disabled inlined files, but I don\u0027t think there\u0027s a good\nway around this.\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "44a8261b3a204bbb620e4efb57992a2734856294",
      "old_mode": 33188,
      "old_path": "lfs.c",
      "new_id": "93b9b8f87068f1c7458a44e72ef7b20fbc25248f",
      "new_mode": 33188,
      "new_path": "lfs.c"
    },
    {
      "type": "modify",
      "old_id": "e144b8477ed74367982452c6f634cba775d382df",
      "old_mode": 33188,
      "old_path": "lfs.h",
      "new_id": "79fd685bf43bd541deeab76b8795b89fc3e01f14",
      "new_mode": 33188,
      "new_path": "lfs.h"
    },
    {
      "type": "modify",
      "old_id": "58cae683f53271f02c770128a3eba717f3bef0ed",
      "old_mode": 33188,
      "old_path": "runners/bench_runner.c",
      "new_id": "387889d128effe6f2188becf2929abadeb5dd5c8",
      "new_mode": 33188,
      "new_path": "runners/bench_runner.c"
    },
    {
      "type": "modify",
      "old_id": "986ac9041146b392450fc42a768a2f4bc31cd855",
      "old_mode": 33188,
      "old_path": "runners/bench_runner.h",
      "new_id": "174733c1dc97008caf10b8f77a3fa485510fded5",
      "new_mode": 33188,
      "new_path": "runners/bench_runner.h"
    },
    {
      "type": "modify",
      "old_id": "c6e933e035bc34ed2560e8e14f638f85297830a0",
      "old_mode": 33188,
      "old_path": "runners/test_runner.c",
      "new_id": "ff5267308111a1e55e272ff9f4cf5789ca1ecb2e",
      "new_mode": 33188,
      "new_path": "runners/test_runner.c"
    },
    {
      "type": "modify",
      "old_id": "960999977068ecb768b5d2d3bfe7ba56d379ac15",
      "old_mode": 33188,
      "old_path": "runners/test_runner.h",
      "new_id": "0f0e594ed8179e052c19d222480c1961d3a7ee87",
      "new_mode": 33188,
      "new_path": "runners/test_runner.h"
    },
    {
      "type": "modify",
      "old_id": "afb0811fbbf53ccb3464fbe526347aca8de16b64",
      "old_mode": 33188,
      "old_path": "tests/test_files.toml",
      "new_id": "1c86cd8d505de48d56ce675422e58ae06c306b38",
      "new_mode": 33188,
      "new_path": "tests/test_files.toml"
    }
  ]
}
