Repository navigation
feat: integrate craqle 0.3 and irokle 0.3 - #486
Merged
Merged
Conversation
Codecov Report❌ Patch coverage is Additional details and impacted files@@ Coverage Diff @@
## main #486 +/- ##
==========================================
+ Coverage 88.20% 88.23% +0.02%
==========================================
Files 883 883
Lines 382184 381887 -297
==========================================
- Hits 337119 336969 -150
+ Misses 45065 44918 -147 ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
This was referenced Sep 24, 2026
This branch was successfully deployed
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.
Description
Integrates the Craqle 0.3.0 and Irokle 0.3.0 releases into Aruna. Irokle 0.3 changed the sync wire protocol: requests are answered in bounded pages, pushes to peers that do not hold a topic get a receipt, and one data message holds at most 256 operations. Aruna's hand-written sync client could no longer talk to peers, so document sync now uses Irokle's own paged client. Craqle 0.3 changed its search tie order, added new error kinds and a process-wide store memory budget; Aruna now follows all three.
Aruna's local SPARQL queries now run through Craqle's own query engine instead of copying every visible graph into an in-memory dataset.
Existing node databases migrate on first start. Irokle upgrades its Fjall schema 1 to schema 2 in place. Craqle rebuilds its search and query indexes in the background, and topics with version 1 replication cursors replay from their start (arunaengine/craqle#14); without that fix every node that had applied a replicated record failed to open. A store written with the current
mainversions (200 crates, one deleted) opens with this branch, keeps all data and the deletion, reconciles, finds every crate by search after the reindex and accepts new writes. The search reindex is bounded by disk syncs, about 60 s for 200 crates on the test disk, so search results are partial for a while after the upgrade. Upgrade all nodes together: Irokle 0.3 speaksirokle/sync/2, so older nodes cannot sync documents with upgraded ones.This PR targets
maindirectly; the ARC interface branch (feat/arc-interface) follows on top of it.Changes
f3770c5(0.3.0) and craqle1d82db8, the craqle main merge of fix: replay topics with version 1 cursors instead of failing open craqle#14: the write latency and retention consistency fixes of fix: keep single writes fast as the store grows craqle#13 and the version 1 cursor replay. Released 0.3.0 made metadata writes about 10x slower than 0.2 as a node accumulated receipts; with the fixes, seeding 10,000 documents takes 5.4 s instead of 52 s on 0.2 and 639 s on 0.3.0.sparevalwith matchingmd-5,sha1andsha2digest versions;cargo update -p craqlealone picks a mix that does not compile.IrohNet::sync_topics_now, which pages requests, stages topics this node does not hold yet and applies acknowledgements. The bootstrap still checks the peer's summary for the document event type before pulling data.WouldBlockfrom Irokle as progress: Irokle has scheduled the pages left after its budget.conforms_to) no longer truncates by document id, and reference preflight collects every visible reference, keeps the firstlimitin watermark order and reads titles only for those. Otherwise a deeper fetch could reveal a hit sorting before the previous watermark and drop it for good.craqle-shacl-core/0.3as the SHACL evaluator.CraqleNode::query_in_graphs_with_optionsand realm-wide queries withCraqleNode::query_with_options, reusing Aruna's graph authorizers.sparevaldependency.s3-backendjob failed before any test ran.3.0.0-alpha.93.