Skip to content

Commit cea37c3

Browse files
committed
Elaborate on interactions with Mithril in integration notes
1 parent 90fe4be commit cea37c3

File tree

1 file changed

+14
-0
lines changed

1 file changed

+14
-0
lines changed

doc/final-report/integration-notes.md

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -187,3 +187,17 @@ Note that a per-run or per-table hash salt would incur non-trivial costs,
187187
because it would reduce the sharing available in bulk Bloom filter lookups
188188
(looking up N keys in M filters). The Bloom filter lookup is a performance
189189
sensitive part of the overall database implementation.
190+
191+
In the Cardano context, a downside of a per-session (and thus per-node) Bloom
192+
filter salt is that it may interact poorly with sharing of pre-created
193+
databases. While it will work to copy a whole database session (since this
194+
includes the salt), it means the salt is then shared between the nodes. If SPOs
195+
share databases widely with each other (to avoid syning the entire chain), then
196+
the salt diversity is lost. This would be especially acute with Mithril which
197+
shares a single copy of the database. It may be necesary for proper Mithril
198+
support to add a re-salting operation, and to perform this re-salting operation
199+
after cloning a Mithril snapshot. Re-salting would involve re-creating the
200+
Bloom filter for each table run, which involves reading each run and inserting
201+
into a new Bloom filter, and writing out the new Bloom filter. This would of
202+
course be additional development work, but the infrastructure needed is
203+
present already.

0 commit comments

Comments
 (0)