Repository navigation
release: SuperLocalMemory 4.2.13 — lighter ingestion on large stores, fresh graph scores - #307
Merged
Merged
Conversation
…306) Facts store canonical entity IDs, and the key expander looked each one up as a name: every lookup missed, so no alias reached the keyword index. The name query also wrapped the column in LOWER(), which idx_entities_name_lower (canonical_name COLLATE NOCASE) cannot serve, so each lookup scanned the profile's entities (reported ~3 s per 45 lookups on 38k entities). The name lookup now uses COLLATE NOCASE (the same ASCII case fold) and the index; get_entity_by_id_or_name tries the primary key first, then the name, and the key expander uses it. The 13 other name lookups are unchanged. Reported with measurements by @DannyGi82 in #306. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The projection drain called add_edge per incident edge, one Cozo transaction (edge and edge_rev) each: 40 per fact on average and 203 at most on a reporter's 45k-fact store, which kept the disk busy during ingestion. CozoDBGraphBackend.add_edges writes them through the existing atomic _put_edges once per fact, keeping the last weight for a repeated key as the sequential calls did. The drain uses it when the backend has it and keeps the one-at-a-time path otherwise. Tests pin one write for 30 edges, the copy equal to the store, edge_rev mirroring edge, and the fallback. Reported with measurements by @DannyGi82 in #306. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…e stores get fresh metrics (#304) On a store of 3.6 M edges the memory watchdog killed the graph-metrics helper at 2.9 GB against the 2.5 GB every worker gets, so PageRank and the communities that the entity and spreading-activation channels rank with were never recomputed after an upgrade. The helper is a spawn child whose command line matches any other worker, so run_in_child now records a limit against the child's PID while it runs, and the watchdog applies that limit first. The metrics pass asks for 800 MB plus about 1.2 KB per edge of the profile's graph, never below the per-worker default and never above the daemon's budget (40% of RAM). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Under load the daemon's close lands while the client is still sending, and macOS reports that as ENOTCONN (errno 57) rather than a reset. It is the hang-up the test asserts; any other error still fails it. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Fixes from #306 and the follow-up on #304. No migration.
Verification: full suite at -n 10, 23,384 passed, 83 skipped, 1 failed (that socket test; passes alone 3/3, fixed in 1ced9f3, hook suite 362 passed at -n 10). 4.2.13 daemon on a copy of the 38k-fact store: 3 saves complete in 32 s, outbox drained, recall 1.7 s full mode,
slm db regraph --checkin step (472,535 = 472,535). #297 second purge after settle verified: purged, source gone, removed notes not recalled, unrelated memory kept.🤖 Generated with Claude Code