-
Notifications
You must be signed in to change notification settings - Fork 2
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Basic performance improvements #28
Comments
Tried removing strange Indexeddb loop in Level.js https://github.com/Level/level-js/blob/cdacd61dba749f638123420a2ea2073e948f34be/index.js#L159 No effect. |
Every quad is entered 6 times into the store as different indexes.
Level.js encodes keys and values as Uint8Arrays. There is a potential issue with IndexedDB storing the backing buffer: dexie/Dexie.js#665 For the demo, keys and values are approx. 200B. |
Testing with https://github.com/nolanlawson/database-comparison with 50-100B key and 100-300B buffer values, it really does take ~150ms to |
https://stackoverflow.com/a/22315353 "I saw 60-70 entries/second" |
Attempted compaction of IRIs in storage. |
Reducing quad count for the journal, by packaging most state and entry properties into a single 'body', has improved transaction apply time by about 20%. However it also made a big difference to transaction prepare time. |
When using Memdown (and maybe others) in the browser, Update: gone away with quadstore 7 |
Experiment using work from defunctzombie/node-process#88 removes 4ms delays and shows ~14ms transactions. Significant time is in |
Basic performance optimisations – in chaos testing, transactions seem to sometimes take 10ms or more.
In the browser, observing up to 100ms!
Need an example dataset - m-ld/m-ld-spec#17
Current checklist:
Remove 4ms streaming delays in browsergone away with quadstore 7@delete
&@insert
)Remove string-to-binary translation for memdown (and IndexedDB)not obviously an issue any moreThe text was updated successfully, but these errors were encountered: