{
	"$schema": "https://qvyra.github.io/geode/data/benchmarks/schema/v1.json",
	"schemaVersion": 1,
	"kind": "latest",
	"runs": [
		{
			"id": "1d449b46",
			"date": "2026-10-19T18:25:18Z",
			"build": "0.5.0",
			"data": "runs/1d449b46.json"
		},
		{
			"id": "25532752",
			"date": "2026-10-19T18:56:42Z",
			"build": "0.5.0",
			"data": "runs/25532752.json"
		},
		{
			"id": "3561e8c8",
			"date": "2026-10-19T19:13:34Z",
			"build": "0.5.0",
			"data": "runs/3561e8c8.json"
		},
		{
			"id": "76954271",
			"date": "2026-10-19T19:27:09Z",
			"build": "0.5.0",
			"data": "runs/76954271.json"
		},
		{
			"id": "0f6881b6",
			"date": "2026-10-20T20:42:12Z",
			"build": "0.5.0+format",
			"data": "runs/0f6881b6.json"
		},
		{
			"id": "1faf45fa",
			"date": "2026-10-24T12:40:18Z",
			"build": "0.6.0",
			"data": "runs/1faf45fa.json"
		},
		{
			"id": "3abd0330",
			"date": "2026-10-31T15:12:12Z",
			"build": "0.6.1",
			"data": "runs/3abd0330.json"
		},
		{
			"id": "080eceb1",
			"date": "2026-10-31T15:31:09Z",
			"build": "0.6.1",
			"data": "runs/080eceb1.json"
		},
		{
			"id": "3e27444c",
			"date": "2026-10-31T15:50:29Z",
			"build": "0.6.1",
			"data": "runs/3e27444c.json"
		},
		{
			"id": "74d6b2a5",
			"date": "2026-10-31T16:47:03Z",
			"build": "0.6.1",
			"data": "runs/74d6b2a5.json"
		}
	],
	"aggregation": {
		"caveat": "Runs differ more than the libraries do: one library's median load moved by a third between two runs a quarter of an hour apart. Compare libraries within one run, and treat differences under one timing step as ties. Request counts don't depend on the run.",
		"currentRuns": 5,
		"rule": "Current subjects all take the same runs: the last ones in which the current Geode build line ran, up to currentRuns. A historical subject keeps the runs of its own build line, so results from before and after a behavior change never mix."
	},
	"builds": [
		{
			"id": "0.5.0",
			"line": "mailbox-every-load",
			"note": "The same src as the v0.5.0 release.",
			"release": "v0.5.0",
			"sourceTrees": ["27dbad2dbbc64f127f83e8cb97b6c0f5cf54c092"]
		},
		{
			"id": "0.5.0+format",
			"line": "mailbox-every-load",
			"note": "0.5.0 with the record format field on every write, never released. Same requests and steps.",
			"sourceTrees": ["798a6449783d8f1d251699cdf54cd3c5d0aed7c4"]
		},
		{
			"id": "0.6.0-pre",
			"line": "mailbox-opt-in",
			"note": "Differs from the v0.6.0 release only in comments, mock-only code and the version stamp.",
			"sourceTrees": ["de79ff4b26f0d707d273c76e3273fd55208d76f8"]
		},
		{
			"id": "0.6.0",
			"line": "mailbox-opt-in",
			"note": "The first id differs from the v0.6.0 release only in the version stamp.",
			"release": "v0.6.0",
			"sourceTrees": ["e99dc2faf9e2e317bc280cf5e3f4f32d7a58b87f", "66e7dce0ae8e0804b9131cd963ed69fe96d90ac5"]
		},
		{
			"id": "0.6.1",
			"line": "mailbox-opt-in",
			"note": "Same load, save, release and hop code as 0.6.0. 0.6.1 only adds checks on op names and descriptions.",
			"release": "v0.6.1",
			"sourceTrees": ["1c0a3221774d8f93266705d413deee65c2cb0384"]
		}
	],
	"lines": [
		{
			"id": "mailbox-every-load",
			"description": "Geode 0.5 and earlier read a mailbox after taking the lease on every load."
		},
		{
			"id": "mailbox-opt-in",
			"description": "From 0.6.0 a store reads a mailbox only when made with mailbox = true, and then at the same time as the UpdateAsync."
		}
	],
	"metrics": [
		{
			"kind": "timing",
			"id": "time",
			"description": "Seconds per sample. The median, lowest and highest, the samples and how many failed.",
			"name": "Time"
		},
		{
			"kind": "requests",
			"id": "requests",
			"description": "Requests the library sent for the key during the step, retries included, as the bench's stand-in for DataStoreService counted them.",
			"name": "DataStore requests"
		},
		{
			"kind": "count",
			"id": "final-save-seen",
			"description": "Hops in which the new server saw 888, the old server's last change.",
			"name": "Saw the final save"
		},
		{
			"kind": "values",
			"id": "value-seen",
			"description": "What the new server read, and how often.",
			"name": "Value seen"
		},
		{
			"kind": "amount",
			"id": "heap-per-profile",
			"description": "Growth of the Lua heap per loaded profile.",
			"name": "Heap per profile",
			"unit": "KB"
		},
		{
			"kind": "amount",
			"id": "time-per-edit",
			"description": "Microseconds per edit, from a batch's time divided by its edits.",
			"name": "Time per edit",
			"unit": "us"
		}
	],
	"notMeasured": [
		{
			"subject": "lapis",
			"reason": "Lapis sends every DataStore request from a RunService.PostSimulation handler, and in a Luau Execution task PostSimulation, PreSimulation and Stepped never fired while Heartbeat fired about 62 times a second. Measuring it needs a server that steps physics, such as a live game server."
		},
		{
			"scenario": "lock-takeover",
			"reason": "Taking over a crashed server's lock waits for the lock to time out (Geode 300 s, ProfileStore 630 s, ProfileService and Lapis 30 minutes), longer than a five minute task."
		},
		{
			"subject": "datastore2",
			"config": "OrderedBackups",
			"reason": "DataStore2's default OrderedBackups method needs DataStores named per player, which the bench's one allowed DataStore rules out. Only the Standard method ran."
		},
		{
			"suite": "memory",
			"reason": "Every run still records it, but the numbers are noise. A script can't make Luau finish a garbage collection cycle, and a cycle that ends between the two heap readings moves the heap by more than twenty profiles take, in either direction. Two runs on the same build gave Geode -0.5 and 4.0 KB per profile, ProfileStore 11.3 and 0.5, DataStore2 10.1 and 21.9, so the order of the libraries flips from one run to the next."
		},
		{
			"scenario": "edit-time-across-libraries",
			"reason": "Only Geode's edits are timed. A Geode edit runs through its transaction pipeline, while ProfileStore and ProfileService change a plain table and DataStore2 calls :Update, so per-edit times side by side would compare different work."
		},
		{
			"scenario": "servers-with-players",
			"reason": "Request budgets grow with the player count, and every task here had none."
		}
	],
	"requestMethods": [
		{
			"id": "UpdateAsync",
			"label": "UpdateAsync"
		},
		{
			"id": "GetAsync",
			"label": "GetAsync"
		},
		{
			"id": "GetAsync:noCache",
			"description": "A GetAsync with DataStoreGetOptions.UseCache set to false",
			"label": "GetAsync past the cache"
		},
		{
			"id": "SetAsync",
			"label": "SetAsync"
		},
		{
			"id": "RemoveAsync",
			"label": "RemoveAsync"
		},
		{
			"id": "IncrementAsync",
			"label": "IncrementAsync"
		},
		{
			"id": "GetVersionAsync",
			"label": "GetVersionAsync"
		},
		{
			"id": "GetVersionAtTimeAsync",
			"label": "GetVersionAtTimeAsync"
		},
		{
			"id": "ListVersionsAsync",
			"label": "ListVersionsAsync"
		},
		{
			"id": "RemoveVersionAsync",
			"label": "RemoveVersionAsync"
		},
		{
			"id": "ListKeysAsync",
			"label": "ListKeysAsync"
		}
	],
	"results": [
		{
			"suite": "load-save-release",
			"scenario": "load-new",
			"metric": "time",
			"subject": "geode-0.5",
			"runs": ["1d449b46", "25532752", "3561e8c8", "76954271", "0f6881b6"],
			"value": {
				"kind": "timing",
				"failed": 0,
				"max": 0.516,
				"median": 0.383,
				"min": 0.283,
				"n": 25,
				"samples": [0.466, 0.333, 0.383, 0.333, 0.366, 0.383, 0.299, 0.333, 0.283, 0.283, 0.516, 0.416, 0.416, 0.383, 0.333, 0.416, 0.399, 0.366, 0.383, 0.333, 0.45, 0.383, 0.349, 0.416, 0.366],
				"unit": "s"
			}
		},
		{
			"suite": "load-save-release",
			"scenario": "load-new",
			"metric": "time",
			"subject": "geode",
			"runs": ["1faf45fa", "3abd0330", "080eceb1", "3e27444c", "74d6b2a5"],
			"value": {
				"kind": "timing",
				"failed": 0,
				"max": 0.433,
				"median": 0.283,
				"min": 0.216,
				"n": 25,
				"samples": [0.433, 0.282, 0.349, 0.299, 0.266, 0.4, 0.333, 0.316, 0.283, 0.266, 0.366, 0.283, 0.299, 0.249, 0.332, 0.4, 0.25, 0.316, 0.283, 0.316, 0.266, 0.249, 0.249, 0.249, 0.216],
				"unit": "s"
			}
		},
		{
			"suite": "load-save-release",
			"scenario": "load-new",
			"metric": "time",
			"subject": "geode-mailbox",
			"runs": ["1faf45fa", "3abd0330", "080eceb1", "3e27444c", "74d6b2a5"],
			"value": {
				"kind": "timing",
				"failed": 0,
				"max": 0.383,
				"median": 0.299,
				"min": 0.182,
				"n": 25,
				"samples": [0.35, 0.283, 0.3, 0.3, 0.233, 0.316, 0.299, 0.299, 0.319, 0.299, 0.333, 0.333, 0.266, 0.249, 0.349, 0.383, 0.333, 0.316, 0.25, 0.316, 0.266, 0.232, 0.283, 0.182, 0.299],
				"unit": "s"
			}
		},
		{
			"suite": "load-save-release",
			"scenario": "load-new",
			"metric": "time",
			"subject": "profilestore",
			"runs": ["1faf45fa", "3abd0330", "080eceb1", "3e27444c", "74d6b2a5"],
			"value": {
				"kind": "timing",
				"failed": 0,
				"max": 0.366,
				"median": 0.3,
				"min": 0.216,
				"n": 25,
				"samples": [0.333, 0.299, 0.366, 0.366, 0.35, 0.317, 0.282, 0.333, 0.249, 0.333, 0.333, 0.283, 0.266, 0.316, 0.3, 0.35, 0.266, 0.283, 0.3, 0.333, 0.216, 0.283, 0.266, 0.266, 0.25],
				"unit": "s"
			}
		},
		{
			"suite": "load-save-release",
			"scenario": "load-new",
			"metric": "time",
			"subject": "profileservice",
			"runs": ["1faf45fa", "3abd0330", "080eceb1", "3e27444c", "74d6b2a5"],
			"value": {
				"kind": "timing",
				"failed": 0,
				"max": 0.4,
				"median": 0.316,
				"min": 0.183,
				"n": 25,
				"samples": [0.35, 0.316, 0.333, 0.349, 0.349, 0.266, 0.317, 0.282, 0.316, 0.266, 0.4, 0.365, 0.382, 0.332, 0.332, 0.316, 0.334, 0.282, 0.266, 0.25, 0.233, 0.283, 0.25, 0.249, 0.183],
				"unit": "s"
			}
		},
		{
			"suite": "load-save-release",
			"scenario": "load-new",
			"metric": "time",
			"subject": "datastore2",
			"runs": ["1faf45fa", "3abd0330", "080eceb1", "3e27444c", "74d6b2a5"],
			"value": {
				"kind": "timing",
				"failed": 0,
				"max": 0.117,
				"median": 0.083,
				"min": 0.065,
				"n": 25,
				"samples": [0.117, 0.115, 0.116, 0.116, 0.116, 0.1, 0.083, 0.083, 0.083, 0.083, 0.1, 0.083, 0.083, 0.083, 0.083, 0.083, 0.083, 0.083, 0.083, 0.083, 0.066, 0.082, 0.066, 0.065, 0.066],
				"unit": "s"
			}
		},
		{
			"suite": "load-save-release",
			"scenario": "load-new",
			"metric": "requests",
			"subject": "geode-0.5",
			"runs": ["1d449b46", "25532752", "3561e8c8", "76954271", "0f6881b6"],
			"value": {
				"kind": "requests",
				"byMethod": {
					"GetAsync": {
						"max": 1,
						"min": 1
					},
					"UpdateAsync": {
						"max": 1,
						"min": 1
					}
				},
				"exact": true,
				"n": 25
			}
		},
		{
			"suite": "load-save-release",
			"scenario": "load-new",
			"metric": "requests",
			"subject": "geode",
			"runs": ["1faf45fa", "3abd0330", "080eceb1", "3e27444c", "74d6b2a5"],
			"value": {
				"kind": "requests",
				"byMethod": {
					"UpdateAsync": {
						"max": 1,
						"min": 1
					}
				},
				"exact": true,
				"n": 25
			}
		},
		{
			"suite": "load-save-release",
			"scenario": "load-new",
			"metric": "requests",
			"subject": "geode-mailbox",
			"runs": ["1faf45fa", "3abd0330", "080eceb1", "3e27444c", "74d6b2a5"],
			"value": {
				"kind": "requests",
				"byMethod": {
					"GetAsync": {
						"max": 1,
						"min": 1
					},
					"UpdateAsync": {
						"max": 1,
						"min": 1
					}
				},
				"exact": true,
				"n": 25
			}
		},
		{
			"suite": "load-save-release",
			"scenario": "load-new",
			"metric": "requests",
			"subject": "profilestore",
			"runs": ["1faf45fa", "3abd0330", "080eceb1", "3e27444c", "74d6b2a5"],
			"value": {
				"kind": "requests",
				"byMethod": {
					"UpdateAsync": {
						"max": 1,
						"min": 1
					}
				},
				"exact": true,
				"n": 25
			}
		},
		{
			"suite": "load-save-release",
			"scenario": "load-new",
			"metric": "requests",
			"subject": "profileservice",
			"runs": ["1faf45fa", "3abd0330", "080eceb1", "3e27444c", "74d6b2a5"],
			"value": {
				"kind": "requests",
				"byMethod": {
					"UpdateAsync": {
						"max": 1,
						"min": 1
					}
				},
				"exact": true,
				"n": 25
			}
		},
		{
			"suite": "load-save-release",
			"scenario": "load-new",
			"metric": "requests",
			"subject": "datastore2",
			"runs": ["1faf45fa", "3abd0330", "080eceb1", "3e27444c", "74d6b2a5"],
			"value": {
				"kind": "requests",
				"byMethod": {
					"GetAsync": {
						"max": 1,
						"min": 1
					}
				},
				"exact": true,
				"n": 25
			}
		},
		{
			"suite": "load-save-release",
			"scenario": "load-stored",
			"metric": "time",
			"subject": "geode-0.5",
			"runs": ["1d449b46", "25532752", "3561e8c8", "76954271", "0f6881b6"],
			"value": {
				"kind": "timing",
				"failed": 0,
				"max": 0.4,
				"median": 0.333,
				"min": 0.266,
				"n": 25,
				"samples": [0.283, 0.366, 0.383, 0.333, 0.366, 0.283, 0.316, 0.283, 0.316, 0.266, 0.366, 0.3, 0.35, 0.4, 0.383, 0.366, 0.283, 0.3, 0.333, 0.316, 0.3, 0.333, 0.35, 0.4, 0.333],
				"unit": "s"
			}
		},
		{
			"suite": "load-save-release",
			"scenario": "load-stored",
			"metric": "time",
			"subject": "geode",
			"runs": ["1faf45fa", "3abd0330", "080eceb1", "3e27444c", "74d6b2a5"],
			"value": {
				"kind": "timing",
				"failed": 0,
				"max": 0.317,
				"median": 0.266,
				"min": 0.166,
				"n": 25,
				"samples": [0.266, 0.3, 0.266, 0.25, 0.282, 0.317, 0.25, 0.266, 0.283, 0.216, 0.233, 0.233, 0.233, 0.3, 0.266, 0.283, 0.283, 0.266, 0.283, 0.283, 0.2, 0.216, 0.183, 0.199, 0.166],
				"unit": "s"
			}
		},
		{
			"suite": "load-save-release",
			"scenario": "load-stored",
			"metric": "time",
			"subject": "geode-mailbox",
			"runs": ["1faf45fa", "3abd0330", "080eceb1", "3e27444c", "74d6b2a5"],
			"value": {
				"kind": "timing",
				"failed": 0,
				"max": 0.283,
				"median": 0.25,
				"min": 0.2,
				"n": 25,
				"samples": [0.2, 0.266, 0.266, 0.266, 0.25, 0.266, 0.279, 0.216, 0.249, 0.283, 0.233, 0.233, 0.266, 0.267, 0.233, 0.233, 0.216, 0.217, 0.283, 0.2, 0.267, 0.265, 0.282, 0.249, 0.216],
				"unit": "s"
			}
		},
		{
			"suite": "load-save-release",
			"scenario": "load-stored",
			"metric": "time",
			"subject": "profilestore",
			"runs": ["1faf45fa", "3abd0330", "080eceb1", "3e27444c", "74d6b2a5"],
			"value": {
				"kind": "timing",
				"failed": 0,
				"max": 0.35,
				"median": 0.266,
				"min": 0.2,
				"n": 25,
				"samples": [0.283, 0.333, 0.268, 0.35, 0.283, 0.216, 0.233, 0.2, 0.233, 0.316, 0.3, 0.299, 0.233, 0.233, 0.3, 0.25, 0.266, 0.333, 0.3, 0.283, 0.233, 0.266, 0.233, 0.266, 0.233],
				"unit": "s"
			}
		},
		{
			"suite": "load-save-release",
			"scenario": "load-stored",
			"metric": "time",
			"subject": "profileservice",
			"runs": ["1faf45fa", "3abd0330", "080eceb1", "3e27444c", "74d6b2a5"],
			"value": {
				"kind": "timing",
				"failed": 0,
				"max": 0.35,
				"median": 0.283,
				"min": 0.199,
				"n": 25,
				"samples": [0.315, 0.283, 0.35, 0.283, 0.333, 0.3, 0.283, 0.266, 0.25, 0.282, 0.285, 0.266, 0.332, 0.265, 0.316, 0.233, 0.266, 0.283, 0.216, 0.3, 0.266, 0.199, 0.251, 0.2, 0.283],
				"unit": "s"
			}
		},
		{
			"suite": "load-save-release",
			"scenario": "load-stored",
			"metric": "time",
			"subject": "datastore2",
			"runs": ["1faf45fa", "3abd0330", "080eceb1", "3e27444c", "74d6b2a5"],
			"value": {
				"kind": "timing",
				"failed": 0,
				"max": 0.083,
				"median": 0.033,
				"min": 0.016,
				"n": 25,
				"samples": [0.066, 0.066, 0.066, 0.066, 0.066, 0.033, 0.066, 0.083, 0.05, 0.05, 0.033, 0.033, 0.033, 0.033, 0.033, 0.033, 0.033, 0.033, 0.033, 0.033, 0.016, 0.016, 0.016, 0.016, 0.016],
				"unit": "s"
			}
		},
		{
			"suite": "load-save-release",
			"scenario": "load-stored",
			"metric": "requests",
			"subject": "geode-0.5",
			"runs": ["1d449b46", "25532752", "3561e8c8", "76954271", "0f6881b6"],
			"value": {
				"kind": "requests",
				"byMethod": {
					"GetAsync": {
						"max": 1,
						"min": 1
					},
					"UpdateAsync": {
						"max": 1,
						"min": 1
					}
				},
				"exact": true,
				"n": 25
			}
		},
		{
			"suite": "load-save-release",
			"scenario": "load-stored",
			"metric": "requests",
			"subject": "geode",
			"runs": ["1faf45fa", "3abd0330", "080eceb1", "3e27444c", "74d6b2a5"],
			"value": {
				"kind": "requests",
				"byMethod": {
					"UpdateAsync": {
						"max": 1,
						"min": 1
					}
				},
				"exact": true,
				"n": 25
			}
		},
		{
			"suite": "load-save-release",
			"scenario": "load-stored",
			"metric": "requests",
			"subject": "geode-mailbox",
			"runs": ["1faf45fa", "3abd0330", "080eceb1", "3e27444c", "74d6b2a5"],
			"value": {
				"kind": "requests",
				"byMethod": {
					"GetAsync": {
						"max": 1,
						"min": 1
					},
					"UpdateAsync": {
						"max": 1,
						"min": 1
					}
				},
				"exact": true,
				"n": 25
			}
		},
		{
			"suite": "load-save-release",
			"scenario": "load-stored",
			"metric": "requests",
			"subject": "profilestore",
			"runs": ["1faf45fa", "3abd0330", "080eceb1", "3e27444c", "74d6b2a5"],
			"value": {
				"kind": "requests",
				"byMethod": {
					"UpdateAsync": {
						"max": 1,
						"min": 1
					}
				},
				"exact": true,
				"n": 25
			}
		},
		{
			"suite": "load-save-release",
			"scenario": "load-stored",
			"metric": "requests",
			"subject": "profileservice",
			"runs": ["1faf45fa", "3abd0330", "080eceb1", "3e27444c", "74d6b2a5"],
			"value": {
				"kind": "requests",
				"byMethod": {
					"UpdateAsync": {
						"max": 1,
						"min": 1
					}
				},
				"exact": true,
				"n": 25
			}
		},
		{
			"suite": "load-save-release",
			"scenario": "load-stored",
			"metric": "requests",
			"subject": "datastore2",
			"runs": ["1faf45fa", "3abd0330", "080eceb1", "3e27444c", "74d6b2a5"],
			"value": {
				"kind": "requests",
				"byMethod": {
					"GetAsync": {
						"max": 1,
						"min": 1
					}
				},
				"exact": true,
				"n": 25
			}
		},
		{
			"suite": "load-save-release",
			"scenario": "save",
			"metric": "time",
			"subject": "geode-0.5",
			"runs": ["1d449b46", "25532752", "3561e8c8", "76954271", "0f6881b6"],
			"value": {
				"kind": "timing",
				"failed": 0,
				"max": 0.3,
				"median": 0.233,
				"min": 0.151,
				"n": 25,
				"samples": [0.216, 0.233, 0.233, 0.25, 0.233, 0.151, 0.183, 0.2, 0.183, 0.233, 0.233, 0.216, 0.25, 0.3, 0.25, 0.266, 0.25, 0.233, 0.266, 0.2, 0.233, 0.266, 0.234, 0.233, 0.267],
				"unit": "s"
			}
		},
		{
			"suite": "load-save-release",
			"scenario": "save",
			"metric": "time",
			"subject": "geode",
			"runs": ["1faf45fa", "3abd0330", "080eceb1", "3e27444c", "74d6b2a5"],
			"value": {
				"kind": "timing",
				"failed": 0,
				"max": 0.301,
				"median": 0.233,
				"min": 0.165,
				"n": 25,
				"samples": [0.249, 0.216, 0.301, 0.231, 0.3, 0.3, 0.2, 0.266, 0.183, 0.25, 0.2, 0.2, 0.233, 0.283, 0.251, 0.283, 0.3, 0.25, 0.184, 0.233, 0.165, 0.166, 0.199, 0.216, 0.182],
				"unit": "s"
			}
		},
		{
			"suite": "load-save-release",
			"scenario": "save",
			"metric": "time",
			"subject": "geode-mailbox",
			"runs": ["1faf45fa", "3abd0330", "080eceb1", "3e27444c", "74d6b2a5"],
			"value": {
				"kind": "timing",
				"failed": 0,
				"max": 0.317,
				"median": 0.233,
				"min": 0.166,
				"n": 25,
				"samples": [0.266, 0.3, 0.2, 0.183, 0.267, 0.271, 0.182, 0.216, 0.25, 0.216, 0.267, 0.266, 0.233, 0.234, 0.2, 0.283, 0.266, 0.216, 0.317, 0.249, 0.2, 0.166, 0.233, 0.166, 0.2],
				"unit": "s"
			}
		},
		{
			"suite": "load-save-release",
			"scenario": "save",
			"metric": "time",
			"subject": "profilestore",
			"runs": ["1faf45fa", "3abd0330", "080eceb1", "3e27444c", "74d6b2a5"],
			"value": {
				"kind": "timing",
				"failed": 0,
				"max": 0.3,
				"median": 0.25,
				"min": 0.133,
				"n": 25,
				"samples": [0.283, 0.3, 0.3, 0.266, 0.233, 0.283, 0.233, 0.3, 0.283, 0.25, 0.267, 0.282, 0.283, 0.183, 0.2, 0.2, 0.25, 0.233, 0.251, 0.2, 0.166, 0.166, 0.266, 0.133, 0.216],
				"unit": "s"
			}
		},
		{
			"suite": "load-save-release",
			"scenario": "save",
			"metric": "time",
			"subject": "profileservice",
			"runs": ["1faf45fa", "3abd0330", "080eceb1", "3e27444c", "74d6b2a5"],
			"value": {
				"kind": "timing",
				"failed": 0,
				"max": 0.316,
				"median": 0.266,
				"min": 0.15,
				"n": 25,
				"samples": [0.3, 0.3, 0.266, 0.316, 0.3, 0.2, 0.233, 0.233, 0.283, 0.233, 0.266, 0.266, 0.299, 0.249, 0.299, 0.233, 0.266, 0.283, 0.283, 0.233, 0.25, 0.2, 0.15, 0.216, 0.183],
				"unit": "s"
			}
		},
		{
			"suite": "load-save-release",
			"scenario": "save",
			"metric": "time",
			"subject": "datastore2",
			"runs": ["1faf45fa", "3abd0330", "080eceb1", "3e27444c", "74d6b2a5"],
			"value": {
				"kind": "timing",
				"failed": 0,
				"max": 0.416,
				"median": 0.3,
				"min": 0.199,
				"n": 25,
				"samples": [0.416, 0.401, 0.397, 0.382, 0.315, 0.3, 0.333, 0.3, 0.333, 0.283, 0.367, 0.316, 0.283, 0.333, 0.283, 0.267, 0.299, 0.25, 0.366, 0.249, 0.25, 0.316, 0.282, 0.199, 0.299],
				"unit": "s"
			}
		},
		{
			"suite": "load-save-release",
			"scenario": "save",
			"metric": "requests",
			"subject": "geode-0.5",
			"runs": ["1d449b46", "25532752", "3561e8c8", "76954271", "0f6881b6"],
			"value": {
				"kind": "requests",
				"byMethod": {
					"UpdateAsync": {
						"max": 1,
						"min": 1
					}
				},
				"exact": true,
				"n": 25
			}
		},
		{
			"suite": "load-save-release",
			"scenario": "save",
			"metric": "requests",
			"subject": "geode",
			"runs": ["1faf45fa", "3abd0330", "080eceb1", "3e27444c", "74d6b2a5"],
			"value": {
				"kind": "requests",
				"byMethod": {
					"UpdateAsync": {
						"max": 1,
						"min": 1
					}
				},
				"exact": true,
				"n": 25
			}
		},
		{
			"suite": "load-save-release",
			"scenario": "save",
			"metric": "requests",
			"subject": "geode-mailbox",
			"runs": ["1faf45fa", "3abd0330", "080eceb1", "3e27444c", "74d6b2a5"],
			"value": {
				"kind": "requests",
				"byMethod": {
					"UpdateAsync": {
						"max": 1,
						"min": 1
					}
				},
				"exact": true,
				"n": 25
			}
		},
		{
			"suite": "load-save-release",
			"scenario": "save",
			"metric": "requests",
			"subject": "profilestore",
			"runs": ["1faf45fa", "3abd0330", "080eceb1", "3e27444c", "74d6b2a5"],
			"value": {
				"kind": "requests",
				"byMethod": {
					"UpdateAsync": {
						"max": 1,
						"min": 1
					}
				},
				"exact": true,
				"n": 25
			}
		},
		{
			"suite": "load-save-release",
			"scenario": "save",
			"metric": "requests",
			"subject": "profileservice",
			"runs": ["1faf45fa", "3abd0330", "080eceb1", "3e27444c", "74d6b2a5"],
			"value": {
				"kind": "requests",
				"byMethod": {
					"UpdateAsync": {
						"max": 1,
						"min": 1
					}
				},
				"exact": true,
				"n": 25
			}
		},
		{
			"suite": "load-save-release",
			"scenario": "save",
			"metric": "requests",
			"subject": "datastore2",
			"runs": ["1faf45fa", "3abd0330", "080eceb1", "3e27444c", "74d6b2a5"],
			"value": {
				"kind": "requests",
				"byMethod": {
					"UpdateAsync": {
						"max": 1,
						"min": 1
					}
				},
				"exact": true,
				"n": 25
			}
		},
		{
			"suite": "load-save-release",
			"scenario": "release",
			"metric": "time",
			"subject": "geode-0.5",
			"runs": ["1d449b46", "25532752", "3561e8c8", "76954271", "0f6881b6"],
			"value": {
				"kind": "timing",
				"failed": 0,
				"max": 0.4,
				"median": 0.25,
				"min": 0.183,
				"n": 25,
				"samples": [0.25, 0.4, 0.25, 0.233, 0.25, 0.267, 0.233, 0.183, 0.25, 0.233, 0.317, 0.3, 0.2, 0.3, 0.233, 0.232, 0.267, 0.183, 0.2, 0.3, 0.217, 0.233, 0.3, 0.3, 0.3],
				"unit": "s"
			}
		},
		{
			"suite": "load-save-release",
			"scenario": "release",
			"metric": "time",
			"subject": "geode",
			"runs": ["1faf45fa", "3abd0330", "080eceb1", "3e27444c", "74d6b2a5"],
			"value": {
				"kind": "timing",
				"failed": 0,
				"max": 0.766,
				"median": 0.267,
				"min": 0.183,
				"n": 25,
				"samples": [0.283, 0.282, 0.317, 0.334, 0.246, 0.3, 0.349, 0.216, 0.299, 0.3, 0.267, 0.267, 0.267, 0.25, 0.3, 0.3, 0.766, 0.233, 0.233, 0.216, 0.233, 0.183, 0.2, 0.266, 0.199],
				"unit": "s"
			}
		},
		{
			"suite": "load-save-release",
			"scenario": "release",
			"metric": "time",
			"subject": "geode-mailbox",
			"runs": ["1faf45fa", "3abd0330", "080eceb1", "3e27444c", "74d6b2a5"],
			"value": {
				"kind": "timing",
				"failed": 0,
				"max": 0.45,
				"median": 0.266,
				"min": 0.216,
				"n": 25,
				"samples": [0.25, 0.3, 0.25, 0.283, 0.233, 0.233, 0.45, 0.216, 0.25, 0.267, 0.3, 0.266, 0.216, 0.316, 0.3, 0.282, 0.316, 0.283, 0.25, 0.266, 0.25, 0.249, 0.25, 0.266, 0.232],
				"unit": "s"
			}
		},
		{
			"suite": "load-save-release",
			"scenario": "release",
			"metric": "time",
			"subject": "profilestore",
			"runs": ["1faf45fa", "3abd0330", "080eceb1", "3e27444c", "74d6b2a5"],
			"value": {
				"kind": "timing",
				"failed": 0,
				"max": 0.35,
				"median": 0.266,
				"min": 0.183,
				"n": 25,
				"samples": [0.266, 0.3, 0.333, 0.35, 0.316, 0.266, 0.283, 0.25, 0.283, 0.233, 0.266, 0.216, 0.25, 0.216, 0.3, 0.266, 0.3, 0.266, 0.233, 0.3, 0.183, 0.198, 0.25, 0.199, 0.216],
				"unit": "s"
			}
		},
		{
			"suite": "load-save-release",
			"scenario": "release",
			"metric": "time",
			"subject": "profileservice",
			"runs": ["1faf45fa", "3abd0330", "080eceb1", "3e27444c", "74d6b2a5"],
			"value": {
				"kind": "timing",
				"failed": 0,
				"max": 0.35,
				"median": 0.283,
				"min": 0.198,
				"n": 25,
				"samples": [0.283, 0.283, 0.283, 0.35, 0.316, 0.266, 0.3, 0.266, 0.216, 0.25, 0.283, 0.316, 0.316, 0.282, 0.299, 0.283, 0.266, 0.25, 0.283, 0.299, 0.218, 0.198, 0.2, 0.233, 0.233],
				"unit": "s"
			}
		},
		{
			"suite": "load-save-release",
			"scenario": "release",
			"metric": "time",
			"subject": "datastore2",
			"runs": ["1faf45fa", "3abd0330", "080eceb1", "3e27444c", "74d6b2a5"],
			"value": {
				"kind": "timing",
				"failed": 0,
				"max": 0.35,
				"median": 0.267,
				"min": 0.2,
				"n": 25,
				"samples": [0.316, 0.283, 0.35, 0.283, 0.281, 0.267, 0.267, 0.283, 0.233, 0.233, 0.233, 0.282, 0.283, 0.2, 0.267, 0.283, 0.3, 0.266, 0.25, 0.25, 0.233, 0.233, 0.266, 0.233, 0.232],
				"unit": "s"
			}
		},
		{
			"suite": "load-save-release",
			"scenario": "release",
			"metric": "requests",
			"subject": "geode-0.5",
			"runs": ["1d449b46", "25532752", "3561e8c8", "76954271", "0f6881b6"],
			"value": {
				"kind": "requests",
				"byMethod": {
					"UpdateAsync": {
						"max": 1,
						"min": 1
					}
				},
				"exact": true,
				"n": 25
			}
		},
		{
			"suite": "load-save-release",
			"scenario": "release",
			"metric": "requests",
			"subject": "geode",
			"runs": ["1faf45fa", "3abd0330", "080eceb1", "3e27444c", "74d6b2a5"],
			"value": {
				"kind": "requests",
				"byMethod": {
					"UpdateAsync": {
						"max": 1,
						"min": 1
					}
				},
				"exact": true,
				"n": 25
			}
		},
		{
			"suite": "load-save-release",
			"scenario": "release",
			"metric": "requests",
			"subject": "geode-mailbox",
			"runs": ["1faf45fa", "3abd0330", "080eceb1", "3e27444c", "74d6b2a5"],
			"value": {
				"kind": "requests",
				"byMethod": {
					"UpdateAsync": {
						"max": 1,
						"min": 1
					}
				},
				"exact": true,
				"n": 25
			}
		},
		{
			"suite": "load-save-release",
			"scenario": "release",
			"metric": "requests",
			"subject": "profilestore",
			"runs": ["1faf45fa", "3abd0330", "080eceb1", "3e27444c", "74d6b2a5"],
			"value": {
				"kind": "requests",
				"byMethod": {
					"UpdateAsync": {
						"max": 1,
						"min": 1
					}
				},
				"exact": true,
				"n": 25
			}
		},
		{
			"suite": "load-save-release",
			"scenario": "release",
			"metric": "requests",
			"subject": "profileservice",
			"runs": ["1faf45fa", "3abd0330", "080eceb1", "3e27444c", "74d6b2a5"],
			"value": {
				"kind": "requests",
				"byMethod": {
					"UpdateAsync": {
						"max": 1,
						"min": 1
					}
				},
				"exact": true,
				"n": 25
			}
		},
		{
			"suite": "load-save-release",
			"scenario": "release",
			"metric": "requests",
			"subject": "datastore2",
			"runs": ["1faf45fa", "3abd0330", "080eceb1", "3e27444c", "74d6b2a5"],
			"value": {
				"kind": "requests",
				"byMethod": {
					"UpdateAsync": {
						"max": 1,
						"min": 1
					}
				},
				"exact": true,
				"n": 25
			}
		},
		{
			"suite": "server-hop",
			"scenario": "old-releases",
			"metric": "time",
			"subject": "geode-0.5",
			"runs": ["1d449b46", "25532752", "3561e8c8", "76954271", "0f6881b6"],
			"value": {
				"kind": "timing",
				"failed": 0,
				"max": 5.166,
				"median": 4.95,
				"min": 4.549,
				"n": 15,
				"samples": [4.966, 4.933, 4.983, 4.549, 4.683, 4.599, 4.933, 4.95, 4.95, 4.983, 4.833, 5.016, 5.016, 5.166, 5.116],
				"unit": "s"
			}
		},
		{
			"suite": "server-hop",
			"scenario": "old-releases",
			"metric": "time",
			"subject": "geode",
			"runs": ["1faf45fa", "3abd0330", "080eceb1", "3e27444c", "74d6b2a5"],
			"value": {
				"kind": "timing",
				"failed": 0,
				"max": 0.883,
				"median": 0.7,
				"min": 0.483,
				"n": 15,
				"samples": [0.883, 0.767, 0.7, 0.666, 0.683, 0.716, 0.8, 0.65, 0.633, 0.733, 0.733, 0.716, 0.617, 0.568, 0.483],
				"unit": "s"
			}
		},
		{
			"suite": "server-hop",
			"scenario": "old-releases",
			"metric": "time",
			"subject": "geode-mailbox",
			"runs": ["1faf45fa", "3abd0330", "080eceb1", "3e27444c", "74d6b2a5"],
			"value": {
				"kind": "timing",
				"failed": 0,
				"max": 0.983,
				"median": 0.683,
				"min": 0.5,
				"n": 15,
				"samples": [0.949, 0.799, 0.983, 0.767, 0.65, 0.55, 0.717, 0.616, 0.733, 0.667, 0.683, 0.717, 0.666, 0.5, 0.55],
				"unit": "s"
			}
		},
		{
			"suite": "server-hop",
			"scenario": "old-releases",
			"metric": "time",
			"subject": "profilestore",
			"runs": ["1faf45fa", "3abd0330", "080eceb1", "3e27444c", "74d6b2a5"],
			"value": {
				"kind": "timing",
				"failed": 0,
				"max": 5.633,
				"median": 5.5,
				"min": 0.633,
				"n": 15,
				"samples": [5.383, 5.433, 5.533, 0.633, 5.55, 5.466, 5.516, 5.6, 5.483, 5.566, 5.633, 5.516, 5.383, 0.633, 5.5],
				"unit": "s"
			}
		},
		{
			"suite": "server-hop",
			"scenario": "old-releases",
			"metric": "time",
			"subject": "profileservice",
			"runs": ["1faf45fa", "3abd0330", "080eceb1", "3e27444c", "74d6b2a5"],
			"value": {
				"kind": "timing",
				"failed": 0,
				"max": 7.416,
				"median": 7.299,
				"min": 0.683,
				"n": 15,
				"samples": [7.3, 7.349, 0.8, 7.383, 7.399, 7.416, 7.283, 7.233, 0.683, 7.333, 7.349, 7.299, 7.216, 7.233, 7.249],
				"unit": "s"
			}
		},
		{
			"suite": "server-hop",
			"scenario": "old-releases",
			"metric": "time",
			"subject": "datastore2",
			"runs": ["1faf45fa", "3abd0330", "080eceb1", "3e27444c", "74d6b2a5"],
			"value": {
				"kind": "timing",
				"failed": 0,
				"max": 0.05,
				"median": 0.033,
				"min": 0.016,
				"n": 15,
				"samples": [0.05, 0.033, 0.033, 0.05, 0.033, 0.033, 0.05, 0.033, 0.033, 0.05, 0.033, 0.033, 0.016, 0.016, 0.016],
				"unit": "s"
			}
		},
		{
			"suite": "server-hop",
			"scenario": "old-releases",
			"metric": "final-save-seen",
			"subject": "geode-0.5",
			"runs": ["1d449b46", "25532752", "3561e8c8", "76954271", "0f6881b6"],
			"value": {
				"kind": "count",
				"passed": 15,
				"total": 15
			}
		},
		{
			"suite": "server-hop",
			"scenario": "old-releases",
			"metric": "final-save-seen",
			"subject": "geode",
			"runs": ["1faf45fa", "3abd0330", "080eceb1", "3e27444c", "74d6b2a5"],
			"value": {
				"kind": "count",
				"passed": 15,
				"total": 15
			}
		},
		{
			"suite": "server-hop",
			"scenario": "old-releases",
			"metric": "final-save-seen",
			"subject": "geode-mailbox",
			"runs": ["1faf45fa", "3abd0330", "080eceb1", "3e27444c", "74d6b2a5"],
			"value": {
				"kind": "count",
				"passed": 15,
				"total": 15
			}
		},
		{
			"suite": "server-hop",
			"scenario": "old-releases",
			"metric": "final-save-seen",
			"subject": "profilestore",
			"runs": ["1faf45fa", "3abd0330", "080eceb1", "3e27444c", "74d6b2a5"],
			"value": {
				"kind": "count",
				"passed": 15,
				"total": 15
			}
		},
		{
			"suite": "server-hop",
			"scenario": "old-releases",
			"metric": "final-save-seen",
			"subject": "profileservice",
			"runs": ["1faf45fa", "3abd0330", "080eceb1", "3e27444c", "74d6b2a5"],
			"value": {
				"kind": "count",
				"passed": 15,
				"total": 15
			}
		},
		{
			"suite": "server-hop",
			"scenario": "old-releases",
			"metric": "final-save-seen",
			"subject": "datastore2",
			"runs": ["1faf45fa", "3abd0330", "080eceb1", "3e27444c", "74d6b2a5"],
			"value": {
				"kind": "count",
				"passed": 0,
				"total": 15
			}
		},
		{
			"suite": "server-hop",
			"scenario": "old-releases",
			"metric": "requests",
			"subject": "geode-0.5",
			"runs": ["1d449b46", "25532752", "3561e8c8", "76954271", "0f6881b6"],
			"value": {
				"kind": "requests",
				"byMethod": {
					"GetAsync": {
						"max": 1,
						"min": 1
					},
					"UpdateAsync": {
						"max": 4,
						"min": 4
					}
				},
				"exact": true,
				"n": 15
			}
		},
		{
			"suite": "server-hop",
			"scenario": "old-releases",
			"metric": "requests",
			"subject": "geode",
			"runs": ["1faf45fa", "3abd0330", "080eceb1", "3e27444c", "74d6b2a5"],
			"value": {
				"kind": "requests",
				"byMethod": {
					"GetAsync:noCache": {
						"max": 1,
						"min": 1
					},
					"UpdateAsync": {
						"max": 2,
						"min": 2
					}
				},
				"exact": true,
				"n": 15
			}
		},
		{
			"suite": "server-hop",
			"scenario": "old-releases",
			"metric": "requests",
			"subject": "geode-mailbox",
			"runs": ["1faf45fa", "3abd0330", "080eceb1", "3e27444c", "74d6b2a5"],
			"value": {
				"kind": "requests",
				"byMethod": {
					"GetAsync": {
						"max": 2,
						"min": 2
					},
					"GetAsync:noCache": {
						"max": 1,
						"min": 1
					},
					"UpdateAsync": {
						"max": 2,
						"min": 2
					}
				},
				"exact": true,
				"n": 15
			}
		},
		{
			"suite": "server-hop",
			"scenario": "old-releases",
			"metric": "requests",
			"subject": "profilestore",
			"runs": ["1faf45fa", "3abd0330", "080eceb1", "3e27444c", "74d6b2a5"],
			"value": {
				"kind": "requests",
				"byMethod": {
					"UpdateAsync": {
						"max": 2,
						"min": 1
					}
				},
				"exact": false,
				"n": 15
			}
		},
		{
			"suite": "server-hop",
			"scenario": "old-releases",
			"metric": "requests",
			"subject": "profileservice",
			"runs": ["1faf45fa", "3abd0330", "080eceb1", "3e27444c", "74d6b2a5"],
			"value": {
				"kind": "requests",
				"byMethod": {
					"UpdateAsync": {
						"max": 2,
						"min": 1
					}
				},
				"exact": false,
				"n": 15
			}
		},
		{
			"suite": "server-hop",
			"scenario": "old-releases",
			"metric": "requests",
			"subject": "datastore2",
			"runs": ["1faf45fa", "3abd0330", "080eceb1", "3e27444c", "74d6b2a5"],
			"value": {
				"kind": "requests",
				"byMethod": {
					"GetAsync": {
						"max": 1,
						"min": 1
					}
				},
				"exact": true,
				"n": 15
			}
		},
		{
			"suite": "server-hop",
			"scenario": "old-keeps",
			"metric": "time",
			"subject": "geode-0.5",
			"runs": ["1d449b46", "25532752", "3561e8c8", "76954271", "0f6881b6"],
			"value": {
				"kind": "timing",
				"failed": 0,
				"max": 5.199,
				"median": 4.983,
				"min": 4.616,
				"n": 5,
				"samples": [5.033, 4.616, 4.983, 4.983, 5.199],
				"unit": "s"
			}
		},
		{
			"suite": "server-hop",
			"scenario": "old-keeps",
			"metric": "time",
			"subject": "geode",
			"runs": ["1faf45fa", "3abd0330", "080eceb1", "3e27444c", "74d6b2a5"],
			"value": {
				"kind": "timing",
				"failed": 0,
				"max": 0.833,
				"median": 0.733,
				"min": 0.65,
				"n": 5,
				"samples": [0.833, 0.733, 0.7, 0.766, 0.65],
				"unit": "s"
			}
		},
		{
			"suite": "server-hop",
			"scenario": "old-keeps",
			"metric": "time",
			"subject": "geode-mailbox",
			"runs": ["1faf45fa", "3abd0330", "080eceb1", "3e27444c", "74d6b2a5"],
			"value": {
				"kind": "timing",
				"failed": 0,
				"max": 1.05,
				"median": 0.716,
				"min": 0.633,
				"n": 5,
				"samples": [1.05, 0.65, 0.767, 0.716, 0.633],
				"unit": "s"
			}
		},
		{
			"suite": "server-hop",
			"scenario": "old-keeps",
			"metric": "time",
			"subject": "profilestore",
			"runs": ["1faf45fa", "3abd0330", "080eceb1", "3e27444c", "74d6b2a5"],
			"value": {
				"kind": "timing",
				"failed": 0,
				"max": 5.633,
				"median": 5.5,
				"min": 5.433,
				"n": 5,
				"samples": [5.433, 5.5, 5.633, 5.6, 5.467],
				"unit": "s"
			}
		},
		{
			"suite": "server-hop",
			"scenario": "old-keeps",
			"metric": "time",
			"subject": "profileservice",
			"runs": ["1faf45fa", "3abd0330", "080eceb1", "3e27444c", "74d6b2a5"],
			"value": {
				"kind": "timing",
				"failed": 0,
				"max": 21.365,
				"median": 21.349,
				"min": 21.282,
				"n": 5,
				"samples": [21.365, 21.349, 21.282, 21.365, 21.298],
				"unit": "s"
			}
		},
		{
			"suite": "server-hop",
			"scenario": "old-keeps",
			"metric": "time",
			"subject": "datastore2",
			"runs": ["1faf45fa", "3abd0330", "080eceb1", "3e27444c", "74d6b2a5"],
			"value": {
				"kind": "timing",
				"failed": 0,
				"max": 0.033,
				"median": 0.033,
				"min": 0.016,
				"n": 5,
				"samples": [0.033, 0.033, 0.033, 0.033, 0.016],
				"unit": "s"
			}
		},
		{
			"suite": "server-hop",
			"scenario": "old-keeps",
			"metric": "value-seen",
			"subject": "geode-0.5",
			"runs": ["1d449b46", "25532752", "3561e8c8", "76954271", "0f6881b6"],
			"value": {
				"kind": "values",
				"counts": {
					"999": 5
				},
				"total": 5
			}
		},
		{
			"suite": "server-hop",
			"scenario": "old-keeps",
			"metric": "value-seen",
			"subject": "geode",
			"runs": ["1faf45fa", "3abd0330", "080eceb1", "3e27444c", "74d6b2a5"],
			"value": {
				"kind": "values",
				"counts": {
					"999": 5
				},
				"total": 5
			}
		},
		{
			"suite": "server-hop",
			"scenario": "old-keeps",
			"metric": "value-seen",
			"subject": "geode-mailbox",
			"runs": ["1faf45fa", "3abd0330", "080eceb1", "3e27444c", "74d6b2a5"],
			"value": {
				"kind": "values",
				"counts": {
					"999": 5
				},
				"total": 5
			}
		},
		{
			"suite": "server-hop",
			"scenario": "old-keeps",
			"metric": "value-seen",
			"subject": "profilestore",
			"runs": ["1faf45fa", "3abd0330", "080eceb1", "3e27444c", "74d6b2a5"],
			"value": {
				"kind": "values",
				"counts": {
					"999": 5
				},
				"total": 5
			}
		},
		{
			"suite": "server-hop",
			"scenario": "old-keeps",
			"metric": "value-seen",
			"subject": "profileservice",
			"runs": ["1faf45fa", "3abd0330", "080eceb1", "3e27444c", "74d6b2a5"],
			"value": {
				"kind": "values",
				"counts": {
					"999": 5
				},
				"total": 5
			}
		},
		{
			"suite": "server-hop",
			"scenario": "old-keeps",
			"metric": "value-seen",
			"subject": "datastore2",
			"runs": ["1faf45fa", "3abd0330", "080eceb1", "3e27444c", "74d6b2a5"],
			"value": {
				"kind": "values",
				"counts": {
					"777": 5
				},
				"total": 5
			}
		},
		{
			"suite": "server-hop",
			"scenario": "old-keeps",
			"metric": "requests",
			"subject": "geode-0.5",
			"runs": ["1d449b46", "25532752", "3561e8c8", "76954271", "0f6881b6"],
			"value": {
				"kind": "requests",
				"byMethod": {
					"GetAsync": {
						"max": 1,
						"min": 1
					},
					"UpdateAsync": {
						"max": 4,
						"min": 4
					}
				},
				"exact": true,
				"n": 5
			}
		},
		{
			"suite": "server-hop",
			"scenario": "old-keeps",
			"metric": "requests",
			"subject": "geode",
			"runs": ["1faf45fa", "3abd0330", "080eceb1", "3e27444c", "74d6b2a5"],
			"value": {
				"kind": "requests",
				"byMethod": {
					"GetAsync:noCache": {
						"max": 1,
						"min": 1
					},
					"UpdateAsync": {
						"max": 2,
						"min": 2
					}
				},
				"exact": true,
				"n": 5
			}
		},
		{
			"suite": "server-hop",
			"scenario": "old-keeps",
			"metric": "requests",
			"subject": "geode-mailbox",
			"runs": ["1faf45fa", "3abd0330", "080eceb1", "3e27444c", "74d6b2a5"],
			"value": {
				"kind": "requests",
				"byMethod": {
					"GetAsync": {
						"max": 2,
						"min": 2
					},
					"GetAsync:noCache": {
						"max": 1,
						"min": 1
					},
					"UpdateAsync": {
						"max": 2,
						"min": 2
					}
				},
				"exact": true,
				"n": 5
			}
		},
		{
			"suite": "server-hop",
			"scenario": "old-keeps",
			"metric": "requests",
			"subject": "profilestore",
			"runs": ["1faf45fa", "3abd0330", "080eceb1", "3e27444c", "74d6b2a5"],
			"value": {
				"kind": "requests",
				"byMethod": {
					"UpdateAsync": {
						"max": 2,
						"min": 2
					}
				},
				"exact": true,
				"n": 5
			}
		},
		{
			"suite": "server-hop",
			"scenario": "old-keeps",
			"metric": "requests",
			"subject": "profileservice",
			"runs": ["1faf45fa", "3abd0330", "080eceb1", "3e27444c", "74d6b2a5"],
			"value": {
				"kind": "requests",
				"byMethod": {
					"UpdateAsync": {
						"max": 4,
						"min": 4
					}
				},
				"exact": true,
				"n": 5
			}
		},
		{
			"suite": "server-hop",
			"scenario": "old-keeps",
			"metric": "requests",
			"subject": "datastore2",
			"runs": ["1faf45fa", "3abd0330", "080eceb1", "3e27444c", "74d6b2a5"],
			"value": {
				"kind": "requests",
				"byMethod": {
					"GetAsync": {
						"max": 1,
						"min": 1
					}
				},
				"exact": true,
				"n": 5
			}
		},
		{
			"suite": "throttling",
			"scenario": "load",
			"metric": "time",
			"subject": "geode-0.5",
			"runs": ["1d449b46", "25532752", "3561e8c8", "76954271", "0f6881b6"],
			"value": {
				"kind": "range",
				"failed": 0,
				"max": 34.108,
				"min": 33.787,
				"n": 5,
				"samples": [34.02, 33.787, 34.108, 33.944, 33.894],
				"unit": "s"
			}
		},
		{
			"suite": "throttling",
			"scenario": "load",
			"metric": "time",
			"subject": "geode",
			"runs": ["1faf45fa", "3abd0330", "080eceb1", "3e27444c", "74d6b2a5"],
			"value": {
				"kind": "range",
				"failed": 0,
				"max": 32.876,
				"min": 32.705,
				"n": 5,
				"samples": [32.86, 32.876, 32.705, 32.86, 32.821],
				"unit": "s"
			}
		},
		{
			"suite": "throttling",
			"scenario": "load",
			"metric": "time",
			"subject": "geode-mailbox",
			"runs": ["1faf45fa", "3abd0330", "080eceb1", "3e27444c", "74d6b2a5"],
			"value": {
				"kind": "range",
				"failed": 0,
				"max": 34.102,
				"min": 33.702,
				"n": 5,
				"samples": [34.102, 33.827, 33.826, 33.825, 33.702],
				"unit": "s"
			}
		},
		{
			"suite": "throttling",
			"scenario": "load",
			"metric": "time",
			"subject": "profilestore",
			"runs": ["1faf45fa", "3abd0330", "080eceb1", "3e27444c", "74d6b2a5"],
			"value": {
				"kind": "range",
				"failed": 0,
				"max": 31.353,
				"min": 31.204,
				"n": 5,
				"samples": [31.353, 31.224, 31.291, 31.29, 31.204],
				"unit": "s"
			}
		},
		{
			"suite": "throttling",
			"scenario": "load",
			"metric": "time",
			"subject": "profileservice",
			"runs": ["1faf45fa", "3abd0330", "080eceb1", "3e27444c", "74d6b2a5"],
			"value": {
				"kind": "range",
				"failed": 0,
				"max": 31.59,
				"min": 31.174,
				"n": 5,
				"samples": [31.174, 31.59, 31.324, 31.258, 31.223],
				"unit": "s"
			}
		},
		{
			"suite": "throttling",
			"scenario": "load",
			"metric": "time",
			"subject": "datastore2",
			"runs": ["1faf45fa", "3abd0330", "080eceb1", "3e27444c", "74d6b2a5"],
			"value": {
				"kind": "range",
				"failed": 0,
				"max": 31.104,
				"min": 31.039,
				"n": 5,
				"samples": [31.104, 31.057, 31.039, 31.057, 31.073],
				"unit": "s"
			}
		},
		{
			"suite": "throttling",
			"scenario": "load",
			"metric": "requests",
			"subject": "geode-0.5",
			"runs": ["1d449b46", "25532752", "3561e8c8", "76954271", "0f6881b6"],
			"value": {
				"kind": "requests",
				"byMethod": {
					"GetAsync": {
						"max": 1,
						"min": 1
					},
					"UpdateAsync": {
						"max": 1,
						"min": 1
					}
				},
				"exact": true,
				"n": 5
			}
		},
		{
			"suite": "throttling",
			"scenario": "load",
			"metric": "requests",
			"subject": "geode",
			"runs": ["1faf45fa", "3abd0330", "080eceb1", "3e27444c", "74d6b2a5"],
			"value": {
				"kind": "requests",
				"byMethod": {
					"UpdateAsync": {
						"max": 1,
						"min": 1
					}
				},
				"exact": true,
				"n": 5
			}
		},
		{
			"suite": "throttling",
			"scenario": "load",
			"metric": "requests",
			"subject": "geode-mailbox",
			"runs": ["1faf45fa", "3abd0330", "080eceb1", "3e27444c", "74d6b2a5"],
			"value": {
				"kind": "requests",
				"byMethod": {
					"GetAsync": {
						"max": 1,
						"min": 1
					},
					"UpdateAsync": {
						"max": 1,
						"min": 1
					}
				},
				"exact": true,
				"n": 5
			}
		},
		{
			"suite": "throttling",
			"scenario": "load",
			"metric": "requests",
			"subject": "profilestore",
			"runs": ["1faf45fa", "3abd0330", "080eceb1", "3e27444c", "74d6b2a5"],
			"value": {
				"kind": "requests",
				"byMethod": {
					"UpdateAsync": {
						"max": 2,
						"min": 2
					}
				},
				"exact": true,
				"n": 5
			}
		},
		{
			"suite": "throttling",
			"scenario": "load",
			"metric": "requests",
			"subject": "profileservice",
			"runs": ["1faf45fa", "3abd0330", "080eceb1", "3e27444c", "74d6b2a5"],
			"value": {
				"kind": "requests",
				"byMethod": {
					"UpdateAsync": {
						"max": 1,
						"min": 1
					}
				},
				"exact": true,
				"n": 5
			}
		},
		{
			"suite": "throttling",
			"scenario": "load",
			"metric": "requests",
			"subject": "datastore2",
			"runs": ["1faf45fa", "3abd0330", "080eceb1", "3e27444c", "74d6b2a5"],
			"value": {
				"kind": "requests",
				"byMethod": {
					"GetAsync": {
						"max": 61,
						"min": 61
					}
				},
				"exact": true,
				"n": 5
			}
		},
		{
			"suite": "throttling",
			"scenario": "save",
			"metric": "time",
			"subject": "geode-0.5",
			"runs": ["1d449b46", "25532752", "3561e8c8", "76954271", "0f6881b6"],
			"value": {
				"kind": "range",
				"failed": 0,
				"max": 1.233,
				"min": 0.199,
				"n": 5,
				"samples": [0.266, 1.199, 0.199, 1.233, 1.2],
				"unit": "s"
			}
		},
		{
			"suite": "throttling",
			"scenario": "save",
			"metric": "time",
			"subject": "geode",
			"runs": ["1faf45fa", "3abd0330", "080eceb1", "3e27444c", "74d6b2a5"],
			"value": {
				"kind": "range",
				"failed": 0,
				"max": 1.315,
				"min": 1.132,
				"n": 5,
				"samples": [1.183, 1.216, 1.315, 1.25, 1.132],
				"unit": "s"
			}
		},
		{
			"suite": "throttling",
			"scenario": "save",
			"metric": "time",
			"subject": "geode-mailbox",
			"runs": ["1faf45fa", "3abd0330", "080eceb1", "3e27444c", "74d6b2a5"],
			"value": {
				"kind": "range",
				"failed": 0,
				"max": 1.231,
				"min": 0.216,
				"n": 5,
				"samples": [0.216, 1.183, 1.199, 1.183, 1.231],
				"unit": "s"
			}
		},
		{
			"suite": "throttling",
			"scenario": "save",
			"metric": "time",
			"subject": "profilestore",
			"runs": ["1faf45fa", "3abd0330", "080eceb1", "3e27444c", "74d6b2a5"],
			"value": {
				"kind": "range",
				"failed": 0,
				"max": 0.283,
				"min": 0.183,
				"n": 5,
				"samples": [0.283, 0.216, 0.249, 0.249, 0.183],
				"unit": "s"
			}
		},
		{
			"suite": "throttling",
			"scenario": "save",
			"metric": "time",
			"subject": "profileservice",
			"runs": ["1faf45fa", "3abd0330", "080eceb1", "3e27444c", "74d6b2a5"],
			"value": {
				"kind": "range",
				"failed": 0,
				"max": 0.349,
				"min": 0.133,
				"n": 5,
				"samples": [0.199, 0.349, 0.216, 0.216, 0.133],
				"unit": "s"
			}
		},
		{
			"suite": "throttling",
			"scenario": "save",
			"metric": "time",
			"subject": "datastore2",
			"runs": ["1faf45fa", "3abd0330", "080eceb1", "3e27444c", "74d6b2a5"],
			"value": {
				"kind": "range",
				"failed": 0,
				"max": 1.282,
				"min": 1.083,
				"n": 5,
				"samples": [1.282, 1.166, 1.199, 1.183, 1.083],
				"unit": "s"
			}
		},
		{
			"suite": "throttling",
			"scenario": "save",
			"metric": "requests",
			"subject": "geode-0.5",
			"runs": ["1d449b46", "25532752", "3561e8c8", "76954271", "0f6881b6"],
			"value": {
				"kind": "requests",
				"byMethod": {
					"UpdateAsync": {
						"max": 1,
						"min": 1
					}
				},
				"exact": true,
				"n": 5
			}
		},
		{
			"suite": "throttling",
			"scenario": "save",
			"metric": "requests",
			"subject": "geode",
			"runs": ["1faf45fa", "3abd0330", "080eceb1", "3e27444c", "74d6b2a5"],
			"value": {
				"kind": "requests",
				"byMethod": {
					"UpdateAsync": {
						"max": 1,
						"min": 1
					}
				},
				"exact": true,
				"n": 5
			}
		},
		{
			"suite": "throttling",
			"scenario": "save",
			"metric": "requests",
			"subject": "geode-mailbox",
			"runs": ["1faf45fa", "3abd0330", "080eceb1", "3e27444c", "74d6b2a5"],
			"value": {
				"kind": "requests",
				"byMethod": {
					"UpdateAsync": {
						"max": 1,
						"min": 1
					}
				},
				"exact": true,
				"n": 5
			}
		},
		{
			"suite": "throttling",
			"scenario": "save",
			"metric": "requests",
			"subject": "profilestore",
			"runs": ["1faf45fa", "3abd0330", "080eceb1", "3e27444c", "74d6b2a5"],
			"value": {
				"kind": "requests",
				"byMethod": {
					"UpdateAsync": {
						"max": 1,
						"min": 1
					}
				},
				"exact": true,
				"n": 5
			}
		},
		{
			"suite": "throttling",
			"scenario": "save",
			"metric": "requests",
			"subject": "profileservice",
			"runs": ["1faf45fa", "3abd0330", "080eceb1", "3e27444c", "74d6b2a5"],
			"value": {
				"kind": "requests",
				"byMethod": {
					"UpdateAsync": {
						"max": 1,
						"min": 1
					}
				},
				"exact": true,
				"n": 5
			}
		},
		{
			"suite": "throttling",
			"scenario": "save",
			"metric": "requests",
			"subject": "datastore2",
			"runs": ["1faf45fa", "3abd0330", "080eceb1", "3e27444c", "74d6b2a5"],
			"value": {
				"kind": "requests",
				"byMethod": {
					"UpdateAsync": {
						"max": 1,
						"min": 1
					}
				},
				"exact": true,
				"n": 5
			}
		},
		{
			"suite": "throttling",
			"scenario": "release",
			"metric": "time",
			"subject": "geode-0.5",
			"runs": ["1d449b46", "25532752", "3561e8c8", "76954271", "0f6881b6"],
			"value": {
				"kind": "range",
				"failed": 0,
				"max": 0.283,
				"min": 0.166,
				"n": 5,
				"samples": [0.25, 0.199, 0.283, 0.183, 0.166],
				"unit": "s"
			}
		},
		{
			"suite": "throttling",
			"scenario": "release",
			"metric": "time",
			"subject": "geode",
			"runs": ["1faf45fa", "3abd0330", "080eceb1", "3e27444c", "74d6b2a5"],
			"value": {
				"kind": "range",
				"failed": 0,
				"max": 0.399,
				"min": 0.166,
				"n": 5,
				"samples": [0.233, 0.166, 0.399, 0.266, 0.249],
				"unit": "s"
			}
		},
		{
			"suite": "throttling",
			"scenario": "release",
			"metric": "time",
			"subject": "geode-mailbox",
			"runs": ["1faf45fa", "3abd0330", "080eceb1", "3e27444c", "74d6b2a5"],
			"value": {
				"kind": "range",
				"failed": 0,
				"max": 0.266,
				"min": 0.216,
				"n": 5,
				"samples": [0.216, 0.216, 0.266, 0.266, 0.25],
				"unit": "s"
			}
		},
		{
			"suite": "throttling",
			"scenario": "release",
			"metric": "time",
			"subject": "profilestore",
			"runs": ["1faf45fa", "3abd0330", "080eceb1", "3e27444c", "74d6b2a5"],
			"value": {
				"kind": "range",
				"failed": 0,
				"max": 0.283,
				"min": 0.166,
				"n": 5,
				"samples": [0.249, 0.283, 0.233, 0.25, 0.166],
				"unit": "s"
			}
		},
		{
			"suite": "throttling",
			"scenario": "release",
			"metric": "time",
			"subject": "profileservice",
			"runs": ["1faf45fa", "3abd0330", "080eceb1", "3e27444c", "74d6b2a5"],
			"value": {
				"kind": "range",
				"failed": 0,
				"max": 7.283,
				"min": 6.983,
				"n": 5,
				"samples": [6.983, 7.283, 7.049, 7.049, 7.049],
				"unit": "s"
			}
		},
		{
			"suite": "throttling",
			"scenario": "release",
			"metric": "time",
			"subject": "datastore2",
			"runs": ["1faf45fa", "3abd0330", "080eceb1", "3e27444c", "74d6b2a5"],
			"value": {
				"kind": "range",
				"failed": 0,
				"max": 0.2,
				"min": 0.116,
				"n": 5,
				"samples": [0.199, 0.2, 0.116, 0.183, 0.116],
				"unit": "s"
			}
		},
		{
			"suite": "throttling",
			"scenario": "release",
			"metric": "requests",
			"subject": "geode-0.5",
			"runs": ["1d449b46", "25532752", "3561e8c8", "76954271", "0f6881b6"],
			"value": {
				"kind": "requests",
				"byMethod": {
					"UpdateAsync": {
						"max": 1,
						"min": 1
					}
				},
				"exact": true,
				"n": 5
			}
		},
		{
			"suite": "throttling",
			"scenario": "release",
			"metric": "requests",
			"subject": "geode",
			"runs": ["1faf45fa", "3abd0330", "080eceb1", "3e27444c", "74d6b2a5"],
			"value": {
				"kind": "requests",
				"byMethod": {
					"UpdateAsync": {
						"max": 1,
						"min": 1
					}
				},
				"exact": true,
				"n": 5
			}
		},
		{
			"suite": "throttling",
			"scenario": "release",
			"metric": "requests",
			"subject": "geode-mailbox",
			"runs": ["1faf45fa", "3abd0330", "080eceb1", "3e27444c", "74d6b2a5"],
			"value": {
				"kind": "requests",
				"byMethod": {
					"UpdateAsync": {
						"max": 1,
						"min": 1
					}
				},
				"exact": true,
				"n": 5
			}
		},
		{
			"suite": "throttling",
			"scenario": "release",
			"metric": "requests",
			"subject": "profilestore",
			"runs": ["1faf45fa", "3abd0330", "080eceb1", "3e27444c", "74d6b2a5"],
			"value": {
				"kind": "requests",
				"byMethod": {
					"UpdateAsync": {
						"max": 1,
						"min": 1
					}
				},
				"exact": true,
				"n": 5
			}
		},
		{
			"suite": "throttling",
			"scenario": "release",
			"metric": "requests",
			"subject": "profileservice",
			"runs": ["1faf45fa", "3abd0330", "080eceb1", "3e27444c", "74d6b2a5"],
			"value": {
				"kind": "requests",
				"byMethod": {
					"UpdateAsync": {
						"max": 1,
						"min": 1
					}
				},
				"exact": true,
				"n": 5
			}
		},
		{
			"suite": "throttling",
			"scenario": "release",
			"metric": "requests",
			"subject": "datastore2",
			"runs": ["1faf45fa", "3abd0330", "080eceb1", "3e27444c", "74d6b2a5"],
			"value": {
				"kind": "requests",
				"byMethod": {
					"UpdateAsync": {
						"max": 1,
						"min": 1
					}
				},
				"exact": true,
				"n": 5
			}
		},
		{
			"suite": "geode-edits",
			"scenario": "increment",
			"metric": "time-per-edit",
			"subject": "geode",
			"runs": ["080eceb1", "3e27444c", "74d6b2a5"],
			"value": {
				"kind": "amount",
				"max": 11.454,
				"median": 10.968,
				"min": 7.894,
				"n": 15,
				"samples": [11.218, 11.347, 11.454, 11.021, 11.016, 7.899, 8.196, 8.267, 7.894, 8.017, 10.882, 10.976, 11.29, 10.968, 10.792],
				"unit": "us"
			}
		}
	],
	"subjects": [
		{
			"id": "geode-0.5",
			"config": {
				"label": "Geode 0.5, mailbox read after every load",
				"options": {}
			},
			"historical": true,
			"library": "Geode",
			"lines": ["mailbox-every-load"],
			"repository": "https://github.com/qvyra/geode"
		},
		{
			"id": "geode",
			"config": {
				"label": "Geode",
				"options": {}
			},
			"library": "Geode",
			"lines": ["mailbox-opt-in"],
			"repository": "https://github.com/qvyra/geode"
		},
		{
			"id": "geode-mailbox",
			"config": {
				"label": "Geode, mailbox = true",
				"options": {
					"mailbox": true
				}
			},
			"library": "Geode",
			"lines": ["mailbox-opt-in"],
			"repository": "https://github.com/qvyra/geode"
		},
		{
			"id": "profilestore",
			"config": {
				"label": "ProfileStore",
				"options": {}
			},
			"library": "ProfileStore"
		},
		{
			"id": "profileservice",
			"config": {
				"label": "ProfileService",
				"options": {}
			},
			"library": "ProfileService"
		},
		{
			"id": "datastore2",
			"config": {
				"label": "DataStore2, Standard saving",
				"options": {
					"savingMethod": "Standard"
				}
			},
			"library": "DataStore2"
		},
		{
			"id": "lapis",
			"config": {
				"label": "Lapis",
				"options": {}
			},
			"library": "Lapis"
		}
	],
	"suites": [
		{
			"id": "load-save-release",
			"description": "Each run loads five fresh profiles, saves each, releases each after a change, loads them again and releases them again, with the steps on one key at least 8 seconds apart. Times are seconds from calling the library until its DataStore request finished.",
			"environment": "roblox-live",
			"name": "Load, save and release",
			"scenarios": [
				{
					"id": "load-new",
					"metrics": ["time", "requests"],
					"name": "Load, new profile"
				},
				{
					"id": "load-stored",
					"metrics": ["time", "requests"],
					"name": "Load, stored profile"
				},
				{
					"id": "save",
					"metrics": ["time", "requests"],
					"name": "Save"
				},
				{
					"id": "release",
					"metrics": ["time", "requests"],
					"name": "Release"
				}
			],
			"timingResolution": 0.016666666666666666
		},
		{
			"id": "server-hop",
			"description": "Two Luau Execution tasks at once play the old and the new server. The old server loads a profile, saves 777, waits 8 seconds, then changes it to 888 (999 when it keeps the profile) without saving. Times are seconds from the new server's load call until it has the data.",
			"environment": "roblox-live",
			"name": "Server hops",
			"scenarios": [
				{
					"id": "old-releases",
					"description": "The old server releases when the new one starts loading, the way a server releases when a player leaves for another one.",
					"metrics": ["time", "final-save-seen", "requests"],
					"name": "Old server releases"
				},
				{
					"id": "old-keeps",
					"description": "The old server never releases on its own. 999 means the library got it to hand the profile over with its last change, 777 means the new server went ahead without it.",
					"metrics": ["time", "value-seen", "requests"],
					"name": "Old server keeps it"
				}
			],
			"timingResolution": 0.016666666666666666
		},
		{
			"id": "throttling",
			"caveat": "Shows how each library behaves behind a queue Roblox drains at its own pace, not how fast it is.",
			"description": "A burst of 160 or 161 UpdateAsync calls on throwaway keys uses up the server's request budget, then the library loads, saves and releases one profile back to back. One sample per run.",
			"environment": "roblox-live",
			"name": "Throttling",
			"scenarios": [
				{
					"id": "load",
					"metrics": ["time", "requests"],
					"name": "Load"
				},
				{
					"id": "save",
					"metrics": ["time", "requests"],
					"name": "Save"
				},
				{
					"id": "release",
					"metrics": ["time", "requests"],
					"name": "Release"
				}
			],
			"timingResolution": 0.016666666666666666
		},
		{
			"id": "memory",
			"caveat": "Noisy in both directions. A script can't make Luau finish a garbage collection cycle, so garbage left from before the load can make the result high, and a cycle that ends between the two readings can make it low, even below zero. It covers what the library keeps in Lua per profile, not memory the engine holds.",
			"description": "After loading and releasing one profile so the library has set itself up, the task reads the Lua heap with collectgarbage(\"count\") every 0.1 s for 5 s, loads twenty fresh profiles with the same data as the other suites and holds them, then reads the heap again. The result is the difference between the lowest readings, divided by the profiles held. The bench's request log is paused meanwhile so it doesn't count. One sample per run.",
			"environment": "roblox-live",
			"name": "Memory per loaded profile",
			"recordedOnly": true,
			"scenarios": [
				{
					"id": "loaded-profiles",
					"metrics": ["heap-per-profile"],
					"name": "Twenty loaded profiles"
				}
			]
		},
		{
			"id": "geode-edits",
			"caveat": "Depends on the machine and Lune version, which the run file records. Compare runs on the same machine only.",
			"description": "Geode only, in Lune against Geode's test universe on the machine that runs the bench, not on a Roblox server. One loaded profile with the same data as the other suites takes batches of 1000 profile:increment(\"coins\") calls, after one batch that isn't counted. Each edit runs through the profile's transaction pipeline and is recorded for the next save, without a DataStore request. One sample per batch.",
			"environment": "lune",
			"name": "Geode edit time",
			"scenarios": [
				{
					"id": "increment",
					"metrics": ["time-per-edit"],
					"name": "Increment"
				}
			],
			"timingResolution": 1e-06
		}
	],
	"updatedAt": "2026-10-31T16:47:03Z"
}
