)]}'
{
  "log": [
    {
      "commit": "2f65bcf4181630bd55ddc8123579df3ea0c0afd5",
      "tree": "51a901b5519cd2bb84d621b9fcf119dd56e8935b",
      "parents": [
        "1d76ed9ffa72aaffb0608b31651d793ea56dd51c"
      ],
      "author": {
        "name": "Marc Kupietz",
        "email": "kupietz@ids-mannheim.de",
        "time": "Sun Aug 02 14:04:37 2026 +0200"
      },
      "committer": {
        "name": "Marc Kupietz",
        "email": "kupietz@ids-mannheim.de",
        "time": "Sun Aug 02 14:04:37 2026 +0200"
      },
      "message": "Do not lose increments\n\nIndexing threw counts away in two ways, both without a word.\n\nrocksdb was asked to write with low_pri and no_slowdown, which means \"cancel\nthis write when compaction is behind\" and \"do not wait, report it instead\", and\nthe reported status was discarded in both inc() overloads. Measured with 3\nmillion increments against small write buffers: 2,253,066 arrived, 746,934 were\ngone, a quarter of them. The writer no longer deprioritises itself and waits\nwhen it has to, and merge_one() repeats a cancelled write in any case. A\ncancelled write was not applied, so repeating it cannot count twice.\n\nThe second one is the end of a run. The database has no write ahead log, and\nnothing ever closed it, so everything still in a write buffer was lost when the\nindexer ended: of 2 million increments in a process that just exited, none were\nreadable afterwards. close_collocatordb() writes them and closes the database,\nand the destructor does the same.\n\nWhile testing this, two more:\n\n- get_collocators() and get_collocation_scores() finish a collocate when the\n  next one starts, so the last one was never returned. Every word was missing\n  a collocate, in the API and in the JSON.\n- the array both of them return was allocated with c.size() + sizeof c[0]\n  instead of c.size() * sizeof c[0], far too small for more than one entry.\n  Callers reading beyond the first entry read whatever was behind it. It is\n  terminated with an empty entry now, so that they can tell where it ends.\n\nThe settings are aimed at what indexing does, a long stream of merge operands\nfor the same keys: bigger write buffers, several of them combined before they\nare written, which collapses the operands early, and compaction that is allowed\nto keep up. All of it can be set from the environment, to be able to tune a run\nof several days without recompiling. It also explains why more indexing threads\nstop helping: rocksdb inserts merge operands one writer at a time.\n\nThe test that found all of this is part of the suite now. The expectations of\nthe writing test were corrected, they described the missing collocate.\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\nChange-Id: I283b073b7f3fd36aa3ce960978e82105b1e44355\n"
    },
    {
      "commit": "21b964cba850116ee4bfe99950dff28f5c51cf6d",
      "tree": "eb99ec170ac714c0e5c5ec4231f44834536c9f79",
      "parents": [
        "d26b105331ccab37288bfafe80cbb67bc7c99a3d"
      ],
      "author": {
        "name": "Marc Kupietz",
        "email": "kupietz@ids-mannheim.de",
        "time": "Tue Dec 10 17:10:50 2024 +0100"
      },
      "committer": {
        "name": "Marc Kupietz",
        "email": "kupietz@ids-mannheim.de",
        "time": "Tue Dec 10 17:10:50 2024 +0100"
      },
      "message": "Add get_word_frequency function\n\nChange-Id: Idef55f5a8f84c4bcba0a1bfdbe563eb74f26857a\n"
    },
    {
      "commit": "d26b105331ccab37288bfafe80cbb67bc7c99a3d",
      "tree": "c29b01622de564840770e65297502ace9e28d417",
      "parents": [
        "fa73154586cd642ee019afd58e8a8eb67f9a444a"
      ],
      "author": {
        "name": "Marc Kupietz",
        "email": "kupietz@ids-mannheim.de",
        "time": "Tue Dec 10 16:56:39 2024 +0100"
      },
      "committer": {
        "name": "Marc Kupietz",
        "email": "kupietz@ids-mannheim.de",
        "time": "Tue Dec 10 16:56:39 2024 +0100"
      },
      "message": "Add get_corpus_size function\n\nChange-Id: Ie95b0f14bb8784006e9dc788d02042b6b5b9485a\n"
    },
    {
      "commit": "e889cec5dd3a1b39ede361ac1e7cdd73ccb258f3",
      "tree": "0a81f43e18838f99d9e9cf9c7ecea7b4b1739b76",
      "parents": [
        "b4ade0f87d230ed6eaeff56afc9c2c0dd9fed033"
      ],
      "author": {
        "name": "Marc Kupietz",
        "email": "kupietz@ids-mannheim.de",
        "time": "Sat Nov 23 12:08:42 2024 +0100"
      },
      "committer": {
        "name": "Marc Kupietz",
        "email": "kupietz@ids-mannheim.de",
        "time": "Sat Nov 23 12:08:42 2024 +0100"
      },
      "message": "Add `md_nws` MI² score based on nominal window size (\u003d10)\n\nChange-Id: I5e431a8ba0f863191f378d447621f3a10039d122\n"
    },
    {
      "commit": "979580e1c2eb917e8e8010941c50c2a4ff97b36e",
      "tree": "a712b0e6fa903137f79ca1d072651f74ec266050",
      "parents": [
        "f08631e680931eeafd340369cfee7fb7a5e360dc"
      ],
      "author": {
        "name": "Marc Kupietz",
        "email": "kupietz@ids-mannheim.de",
        "time": "Thu Nov 21 18:05:07 2024 +0100"
      },
      "committer": {
        "name": "Marc Kupietz",
        "email": "kupietz@ids-mannheim.de",
        "time": "Thu Nov 21 18:05:07 2024 +0100"
      },
      "message": "Add get_word_id(char* word) method to library\n\nChange-Id: Idf0701248ccdf0ecc1c2265d215fbe582510ea96\n"
    },
    {
      "commit": "75d35d27d07fc065d72cc8e85aef84f49f0852fd",
      "tree": "b85007cc2348f5f852dcc7638b30efb17ace0123",
      "parents": [
        "9ac200953ac6e60651fdac0022822e3a27cbb343"
      ],
      "author": {
        "name": "Marc Kupietz",
        "email": "kupietz@ids-mannheim.de",
        "time": "Thu Nov 21 14:31:44 2024 +0100"
      },
      "committer": {
        "name": "Marc Kupietz",
        "email": "kupietz@ids-mannheim.de",
        "time": "Thu Nov 21 14:39:43 2024 +0100"
      },
      "message": "Fix include file for c++\n\nChange-Id: Ib8c2960f276107f7fe5dbf1699ff5b20f1315166\n"
    },
    {
      "commit": "6208fd77e556fdc9219868002589b79b616e476e",
      "tree": "5bb582ff22617cd4babee90dc374e7a274bd46a9",
      "parents": [
        "5ffc474b237885bf81026c63a9a89683691fd5d9"
      ],
      "author": {
        "name": "Marc Kupietz",
        "email": "kupietz@ids-mannheim.de",
        "time": "Fri Nov 15 15:46:19 2024 +0100"
      },
      "committer": {
        "name": "Marc Kupietz",
        "email": "kupietz@ids-mannheim.de",
        "time": "Fri Nov 15 15:53:31 2024 +0100"
      },
      "message": "add get_version function\n\nChange-Id: I7f294d3a0ce1acb961c49a8a9bee0f3e8e2824eb\n"
    },
    {
      "commit": "6663f11ebcbc2b676eba5cf6060af959cdebc0bb",
      "tree": "e63c7ec18e42d5a12b26718c3b446331c9054acc",
      "parents": [
        "b4a683c0e64ca17c1a20cff91427b35a1d1ca533"
      ],
      "author": {
        "name": "Marc Kupietz",
        "email": "kupietz@ids-mannheim.de",
        "time": "Sun Mar 14 09:20:59 2021 +0100"
      },
      "committer": {
        "name": "Marc Kupietz",
        "email": "kupietz@ids-mannheim.de",
        "time": "Sun Mar 14 14:44:28 2021 +0100"
      },
      "message": "Add first tests\n\nChange-Id: I7ef95cef912feb2b997e1c7da5eb5a369cbe56b1\n"
    },
    {
      "commit": "b4a683c0e64ca17c1a20cff91427b35a1d1ca533",
      "tree": "9326620af9d79ba5e5653425fc9aab39e255ff38",
      "parents": [
        "97f433b24b9051a436c614b8dc6d7c421828f41d"
      ],
      "author": {
        "name": "Marc Kupietz",
        "email": "kupietz@ids-mannheim.de",
        "time": "Sun Mar 14 09:19:44 2021 +0100"
      },
      "committer": {
        "name": "Marc Kupietz",
        "email": "kupietz@ids-mannheim.de",
        "time": "Sun Mar 14 09:19:44 2021 +0100"
      },
      "message": "Extend API\n\nChange-Id: I326b2074645f43f81b68cd39eacfe7e247138b41\n"
    },
    {
      "commit": "c2e43215a6916610288aa0b9c7fd800683ef37e5",
      "tree": "6567a65ac486b43d20d5116de9d47ecced7d5ac6",
      "parents": [
        "0bffe807bf3e6bc8ce570967e222bb3e45db33db"
      ],
      "author": {
        "name": "Marc Kupietz",
        "email": "kupietz@ids-mannheim.de",
        "time": "Sat Mar 13 18:05:14 2021 +0100"
      },
      "committer": {
        "name": "Marc Kupietz",
        "email": "kupietz@ids-mannheim.de",
        "time": "Sat Mar 13 18:05:14 2021 +0100"
      },
      "message": "Add some directory structure\n\nChange-Id: I052849c6aff9fd0f311984de67c35a306735c9a9\n"
    },
    {
      "commit": "0421d09437db5aba5c2e7a89fe9481fa641d3c46",
      "tree": "7ddd9d75de8c9732c6b4cdd184e02cecfa47a610",
      "parents": [
        "88d116b843de5817ff42f6920980fdea884ef771"
      ],
      "author": {
        "name": "Marc Kupietz",
        "email": "kupietz@ids-mannheim.de",
        "time": "Sat Mar 13 18:05:14 2021 +0100"
      },
      "committer": {
        "name": "Marc Kupietz",
        "email": "kupietz@ids-mannheim.de",
        "time": "Sat Mar 13 18:05:14 2021 +0100"
      },
      "message": "Fix json output for right and left neighbours\n\nChange-Id: I001aaffc4f0bcd9c8a2e95ffeaa7985b8e9d88c6\n"
    },
    {
      "commit": "88d116b843de5817ff42f6920980fdea884ef771",
      "tree": "14ec986a8369b6827a72beda777ee9cc8e6e2dec",
      "parents": [
        "60d10512d1016770c96b3ffe8438c2cf5a1cfbf1"
      ],
      "author": {
        "name": "Marc Kupietz",
        "email": "kupietz@ids-mannheim.de",
        "time": "Sat Mar 13 18:05:14 2021 +0100"
      },
      "committer": {
        "name": "Marc Kupietz",
        "email": "kupietz@ids-mannheim.de",
        "time": "Sat Mar 13 18:05:14 2021 +0100"
      },
      "message": "Add method to compute measures for a specific node collocate pair\n\nChange-Id: Idbc59ad850dff5e33ba3c56215855667d9b7cf6e\n"
    },
    {
      "commit": "3203e4c1c6442ab210b985033d1a30b75baae85c",
      "tree": "f935ff412016282d77ebcd39450c70dbcbe8984d",
      "parents": [
        "e962715a72e28b8dc21bdd9350a3e9249556b1b4"
      ],
      "author": {
        "name": "Marc Kupietz",
        "email": "kupietz@ids-mannheim.de",
        "time": "Mon Feb 04 12:42:45 2019 +0100"
      },
      "committer": {
        "name": "Marc Kupietz",
        "email": "kupietz@ids-mannheim.de",
        "time": "Mon Feb 04 12:42:45 2019 +0100"
      },
      "message": "collocatordb: rename af -\u003e ldaf\n"
    },
    {
      "commit": "e9f5893d4f9fa1ce4311917fda5be32133e4b338",
      "tree": "984797805458268ddb37666f8310540de89588d3",
      "parents": [
        "39a4fd0d884b3a15c23ceba79cdb8022eed2147d"
      ],
      "author": {
        "name": "Marc Kupietz",
        "email": "kupietz@ids-mannheim.de",
        "time": "Thu Jan 24 15:12:59 2019 +0100"
      },
      "committer": {
        "name": "Marc Kupietz",
        "email": "kupietz@ids-mannheim.de",
        "time": "Thu Jan 24 15:12:59 2019 +0100"
      },
      "message": "collocatordb/derekovecs: provide information about where collocates appear\n"
    },
    {
      "commit": "cc6c4594d0c41314d74d1eebb085152cc21f5b71",
      "tree": "ebec62c78f7fccd55e1a84ff8d2455da709f6034",
      "parents": [
        "ade3322285e799c052b3590c4fb16219faa02423"
      ],
      "author": {
        "name": "Marc Kupietz",
        "email": "kupietz@ids-mannheim.de",
        "time": "Wed Jan 23 10:11:23 2019 +0100"
      },
      "committer": {
        "name": "Marc Kupietz",
        "email": "kupietz@ids-mannheim.de",
        "time": "Wed Jan 23 10:11:23 2019 +0100"
      },
      "message": "collocatordb: return f(w2) as f2 in json output for classic ca\n"
    },
    {
      "commit": "418804552c978835881cf00293e94387f08b6768",
      "tree": "d96f7fd7c7006ed8af353b5b167523647bf69e18",
      "parents": [
        "98cbcdc289264a171c9233d5072560ef25dac7f5"
      ],
      "author": {
        "name": "Marc Kupietz",
        "email": "kupietz@ids-mannheim.de",
        "time": "Tue Jan 22 15:29:06 2019 +0100"
      },
      "committer": {
        "name": "Marc Kupietz",
        "email": "kupietz@ids-mannheim.de",
        "time": "Tue Jan 22 15:31:22 2019 +0100"
      },
      "message": "derekovecs/collocatordb: add MI, MI², dice, and log-dice scores\n"
    },
    {
      "commit": "bd9661927c5e0df456d2649d3446eee7dc48132a",
      "tree": "a02215fd918650cd08d062057074dd28b1731132",
      "parents": [
        "b5bb194428341c6b7d855fe001ad1a973b2dd802"
      ],
      "author": {
        "name": "Marc Kupietz",
        "email": "kupietz@ids-mannheim.de",
        "time": "Sat Oct 13 14:14:37 2018 +0200"
      },
      "committer": {
        "name": "Marc Kupietz",
        "email": "kupietz@ids-mannheim.de",
        "time": "Sat Oct 13 14:14:37 2018 +0200"
      },
      "message": "CollocatorDB::get_collocators: add optional argument to limit partner freq rank\n"
    },
    {
      "commit": "ca3a52ea05d6c4b5cea6ee03a95488397e1c517a",
      "tree": "119161dfe8e038a7c9f37889ebfef793704339a1",
      "parents": [
        "678185d14541669bb2fea3b00a4f4d7addaea411"
      ],
      "author": {
        "name": "Marc Kupietz",
        "email": "kupietz@ids-mannheim.de",
        "time": "Tue Jun 05 14:16:23 2018 +0200"
      },
      "committer": {
        "name": "Marc Kupietz",
        "email": "kupietz@ids-mannheim.de",
        "time": "Tue Jun 05 14:16:23 2018 +0200"
      },
      "message": "collocatordb: export get_word to C\n"
    },
    {
      "commit": "3400aa5ea896f3016bb63d0dcba632007d528a01",
      "tree": "cda45499760b30d996f881c703d2fea49b87f12f",
      "parents": [
        "51f93790b7a0d478ae89d49f02f92c429815c88d"
      ],
      "author": {
        "name": "Marc Kupietz",
        "email": "kupietz@ids-mannheim.de",
        "time": "Tue Jun 05 10:28:55 2018 +0200"
      },
      "committer": {
        "name": "Marc Kupietz",
        "email": "kupietz@ids-mannheim.de",
        "time": "Tue Jun 05 10:47:20 2018 +0200"
      },
      "message": "collocatordb: add support for offline similar profiles calculation\n\n./dumpllr ../Analysemethoden/word2vec/models/dereko-2017-ii \u003e dereko.llr\npython3 ccdbknn.py dereko.llr \u003e dereko.sprofiles\n"
    },
    {
      "commit": "6aec76877664ac860901e41b3de966dedbd6d957",
      "tree": "1c7c00dbebc4e0eb52da20a891838ec758815f8f",
      "parents": [
        "37359b1ecf798189c96fcd83509e52fdb9880d4d"
      ],
      "author": {
        "name": "Marc Kupietz",
        "email": "kupietz@ids-mannheim.de",
        "time": "Wed Jan 10 09:47:48 2018 +0100"
      },
      "committer": {
        "name": "Marc Kupietz",
        "email": "kupietz@ids-mannheim.de",
        "time": "Wed Jan 10 09:47:48 2018 +0100"
      },
      "message": "collocatordb: class and function renames\n"
    },
    {
      "commit": "37359b1ecf798189c96fcd83509e52fdb9880d4d",
      "tree": "b21f03f402581faf3182223987d8e9f66b70b63c",
      "parents": [
        "6bb27761c8704ed1de9d576a7a5d9f44dc97d8df"
      ],
      "author": {
        "name": "Marc Kupietz",
        "email": "kupietz@ids-mannheim.de",
        "time": "Tue Jan 09 21:11:37 2018 +0100"
      },
      "committer": {
        "name": "Marc Kupietz",
        "email": "kupietz@ids-mannheim.de",
        "time": "Tue Jan 09 21:11:37 2018 +0100"
      },
      "message": "collocatordb: read vocab and calc total in lib\n"
    },
    {
      "commit": "6bb27761c8704ed1de9d576a7a5d9f44dc97d8df",
      "tree": "a75675d08a8224ab1216a1ab5dc4e538442aac3a",
      "parents": [
        "c8ddf45f2068cb844eb9daf1971322123e291869"
      ],
      "author": {
        "name": "Marc Kupietz",
        "email": "kupietz@ids-mannheim.de",
        "time": "Tue Jan 09 17:53:01 2018 +0100"
      },
      "committer": {
        "name": "Marc Kupietz",
        "email": "kupietz@ids-mannheim.de",
        "time": "Tue Jan 09 17:53:01 2018 +0100"
      },
      "message": "collocatordb: distinguished read_only_access\n"
    },
    {
      "commit": "c8ddf45f2068cb844eb9daf1971322123e291869",
      "tree": "bb64ba7dc527ecb5501294e23bc0060a614f6cb9",
      "parents": [
        "06c9a9f64586d2ab7b88a32e407b8f5ca3c0912e"
      ],
      "author": {
        "name": "Marc Kupietz",
        "email": "kupietz@ids-mannheim.de",
        "time": "Sun Jan 07 21:33:12 2018 +0100"
      },
      "committer": {
        "name": "Marc Kupietz",
        "email": "kupietz@ids-mannheim.de",
        "time": "Tue Jan 09 16:35:00 2018 +0100"
      },
      "message": "collocatordb: add collocation analysis\n"
    },
    {
      "commit": "06c9a9f64586d2ab7b88a32e407b8f5ca3c0912e",
      "tree": "4735c8be977e459fc212c8bd463ada84fb7d0674",
      "parents": [
        "4b799e94c31b98bfb391fe8a28194712455f0e91"
      ],
      "author": {
        "name": "Marc Kupietz",
        "email": "kupietz@ids-mannheim.de",
        "time": "Tue Jan 02 16:56:43 2018 +0100"
      },
      "committer": {
        "name": "Marc Kupietz",
        "email": "kupietz@ids-mannheim.de",
        "time": "Tue Jan 02 16:56:43 2018 +0100"
      },
      "message": "collocatordb: add c api\n"
    },
    {
      "commit": "4b799e94c31b98bfb391fe8a28194712455f0e91",
      "tree": "ec21e5a975c0e319531ed04679e65061986b066a",
      "parents": [
        "18375e17ea8434ec038ce556a9f3cd80cdc0c867"
      ],
      "author": {
        "name": "Marc Kupietz",
        "email": "kupietz@ids-mannheim.de",
        "time": "Tue Jan 02 11:04:56 2018 +0100"
      },
      "committer": {
        "name": "Marc Kupietz",
        "email": "kupietz@ids-mannheim.de",
        "time": "Tue Jan 02 11:04:56 2018 +0100"
      },
      "message": "collocatordb: make it a library\n"
    }
  ]
}
