{
  "schemaVersion": 1,
  "evidenceType": "measured-synthetic-workload",
  "generatedAt": "2026-10-16T02:38:13.606921+00:00",
  "scriptSha256": "15cf80903da7cef0557bdb298c196e2b87d9ee6fa2d606dc97cba530f0b166b6",
  "environment": {
    "sqlite": "3.45.1",
    "sqliteSourceId": "2024-01-30 16:01:20 e876e51a0ed5c5b3126f52e532044363a014bc594cfefa87ffb5b82257ccalt1",
    "sqliteCompileOptions": [
      "ATOMIC_INTRINSICS=1",
      "COMPILER=gcc-13.3.0",
      "DEFAULT_AUTOVACUUM",
      "DEFAULT_CACHE_SIZE=-2000",
      "DEFAULT_FILE_FORMAT=4",
      "DEFAULT_JOURNAL_SIZE_LIMIT=-1",
      "DEFAULT_MMAP_SIZE=0",
      "DEFAULT_PAGE_SIZE=4096",
      "DEFAULT_PCACHE_INITSZ=20",
      "DEFAULT_RECURSIVE_TRIGGERS",
      "DEFAULT_SECTOR_SIZE=4096",
      "DEFAULT_SYNCHRONOUS=2",
      "DEFAULT_WAL_AUTOCHECKPOINT=1000",
      "DEFAULT_WAL_SYNCHRONOUS=2",
      "DEFAULT_WORKER_THREADS=0",
      "DIRECT_OVERFLOW_READ",
      "ENABLE_COLUMN_METADATA",
      "ENABLE_DBSTAT_VTAB",
      "ENABLE_FTS3",
      "ENABLE_FTS3_PARENTHESIS",
      "ENABLE_FTS3_TOKENIZER",
      "ENABLE_FTS4",
      "ENABLE_FTS5",
      "ENABLE_LOAD_EXTENSION",
      "ENABLE_MATH_FUNCTIONS",
      "ENABLE_PREUPDATE_HOOK",
      "ENABLE_RTREE",
      "ENABLE_SESSION",
      "ENABLE_STMTVTAB",
      "ENABLE_UNLOCK_NOTIFY",
      "ENABLE_UPDATE_DELETE_LIMIT",
      "HAVE_ISNAN",
      "LIKE_DOESNT_MATCH_BLOBS",
      "MALLOC_SOFT_LIMIT=1024",
      "MAX_ATTACHED=10",
      "MAX_COLUMN=2000",
      "MAX_COMPOUND_SELECT=500",
      "MAX_DEFAULT_PAGE_SIZE=32768",
      "MAX_EXPR_DEPTH=1000",
      "MAX_FUNCTION_ARG=127",
      "MAX_LENGTH=1000000000",
      "MAX_LIKE_PATTERN_LENGTH=50000",
      "MAX_MMAP_SIZE=0x7fff0000",
      "MAX_PAGE_COUNT=0xfffffffe",
      "MAX_PAGE_SIZE=65536",
      "MAX_SCHEMA_RETRY=25",
      "MAX_SQL_LENGTH=1000000000",
      "MAX_TRIGGER_DEPTH=1000",
      "MAX_VARIABLE_NUMBER=250000",
      "MAX_VDBE_OP=250000000",
      "MAX_WORKER_THREADS=8",
      "MUTEX_PTHREADS",
      "SECURE_DELETE",
      "SOUNDEX",
      "SYSTEM_MALLOC",
      "TEMP_STORE=1",
      "THREADSAFE=1",
      "USE_URI"
    ],
    "python": "3.12.3",
    "os": "Linux",
    "kernel": "6.8.0-146-generic"
  },
  "workload": {
    "rows": 2,
    "connections": 2,
    "initialValue": 0,
    "writerIncrement": 1,
    "retryIncrement": 10,
    "randomness": "none",
    "schedule": "Sequential calls with overlapping transaction lifetimes"
  },
  "caseCount": 4,
  "cases": [
    {
      "strategy": "cached-binding",
      "settings": {
        "journal_mode": "wal",
        "synchronous": 2,
        "wal_autocheckpoint": 0,
        "busy_timeout": 0,
        "read_uncommitted": 0
      },
      "oldRead": [
        0,
        0
      ],
      "cachedBinding": 10,
      "writerRows": [
        [
          1,
          1,
          1
        ],
        [
          2,
          700,
          0
        ]
      ],
      "upgradeCode": 517,
      "writeChanges": 1,
      "finalRows": [
        [
          1,
          10,
          2
        ],
        [
          2,
          700,
          0
        ]
      ],
      "integrityCheck": "ok",
      "intendedValue": 11,
      "bothIncrementsPreserved": false,
      "transactionsClosed": true
    },
    {
      "strategy": "reread-recompute",
      "settings": {
        "journal_mode": "wal",
        "synchronous": 2,
        "wal_autocheckpoint": 0,
        "busy_timeout": 0,
        "read_uncommitted": 0
      },
      "oldRead": [
        0,
        0
      ],
      "cachedBinding": 10,
      "writerRows": [
        [
          1,
          1,
          1
        ],
        [
          2,
          700,
          0
        ]
      ],
      "upgradeCode": 517,
      "freshRead": [
        1,
        1
      ],
      "writeChanges": 1,
      "finalRows": [
        [
          1,
          11,
          2
        ],
        [
          2,
          700,
          0
        ]
      ],
      "integrityCheck": "ok",
      "intendedValue": 11,
      "bothIncrementsPreserved": true,
      "transactionsClosed": true
    },
    {
      "strategy": "sql-increment",
      "settings": {
        "journal_mode": "wal",
        "synchronous": 2,
        "wal_autocheckpoint": 0,
        "busy_timeout": 0,
        "read_uncommitted": 0
      },
      "oldRead": [
        0,
        0
      ],
      "cachedBinding": 10,
      "writerRows": [
        [
          1,
          1,
          1
        ],
        [
          2,
          700,
          0
        ]
      ],
      "upgradeCode": 517,
      "writeChanges": 1,
      "finalRows": [
        [
          1,
          11,
          2
        ],
        [
          2,
          700,
          0
        ]
      ],
      "integrityCheck": "ok",
      "intendedValue": 11,
      "bothIncrementsPreserved": true,
      "transactionsClosed": true
    },
    {
      "strategy": "revision-guard",
      "settings": {
        "journal_mode": "wal",
        "synchronous": 2,
        "wal_autocheckpoint": 0,
        "busy_timeout": 0,
        "read_uncommitted": 0
      },
      "oldRead": [
        0,
        0
      ],
      "cachedBinding": 10,
      "writerRows": [
        [
          1,
          1,
          1
        ],
        [
          2,
          700,
          0
        ]
      ],
      "upgradeCode": 517,
      "guardChanges": 0,
      "rowsAfterRejection": [
        [
          1,
          1,
          1
        ],
        [
          2,
          700,
          0
        ]
      ],
      "freshRead": [
        1,
        1
      ],
      "freshGuardChanges": 1,
      "writeChanges": 1,
      "finalRows": [
        [
          1,
          11,
          2
        ],
        [
          2,
          700,
          0
        ]
      ],
      "integrityCheck": "ok",
      "intendedValue": 11,
      "bothIncrementsPreserved": true,
      "transactionsClosed": true
    }
  ],
  "limits": [
    "A deliberately wrong application retry, not a SQLite isolation defect.",
    "Four constructed schedules, not a benchmark or a production error-rate sample.",
    "No simultaneous calls, crashes, I/O errors, uncertain commits or external side effects.",
    "The SQL increment handles this row-local addition, not arbitrary business decisions.",
    "The revision guard assumes all writers advance a non-reused revision; no ABA test.",
    "Structural integrity is not an oracle for application intent.",
    "Installed SQLite is recorded, not recommended as a production patch."
  ],
  "sources": [
    "https://www.sqlite.org/isolation.html",
    "https://www.sqlite.org/c3ref/changes.html",
    "https://www.postgresql.org/docs/18/mvcc-serialization-failure-handling.html"
  ]
}
