I have a dumb q: would asami support storing its on disk data in a single file?
no
It relies on blocks being a consistent size, and those sizes vary between use
It’s possible to pack a committed database into a one file, but it would need to change the architecture to update a bit to use file offsets rather than block numbers.
It might be possible to build all the required structures in memory, and then pack/flush to disk when it’s done. That’s an interesting idea. It would be quite a bit of work over where things are right now, but now that I think about it, it’s actually a bit like what I was considering for cloud storage
interesting
I suppose that would limit the size of the db to whatever can fit in memory
(which is certainly more than enough for my use cases)
I'm reading your white paper about storage rn
No… it would limit the size of the transaction to whatever can fit in memory
ah
Though, it would be loading up existing blocks into memory, and doing the transaction into those. Then when the transaction is over, it would take any modified blocks and write them to the end of the file
another, somewhat separate question I've been thinking about is storing data on disk with some sort of structural sharing
e.g. if I could store the history of modifying a nested clojure structure without storing copies of each one
I don't have a complete mental model of asami's storage architecture yet but I'm staring at the image of tree blocks -> data blocks thinking about it...
There are 2 options…
• Breaking the data up into a graph, and letting Asami handle it. That basically means duplicating how Vectors and TreeMaps work, which may be a lot of work. • Repurposing Asami’s data structures to what you want, and forgetting about Asami
would asami's data structures be suitable for such a thing?
trees and blocks. You can build anything with that
And I did 😜
😄
You also have raw access to the memory mapped files
which is easy enough to do for yourself… unless you want files larger than 2GB
In which case, you could just use the Asami block files code
if/when I have time, you have given me inspiration to try and use asami's block files code
stepping into a new role at work as a temporary manager... we'll see if I have any energy for coding again 😛
but I still have so many ideas!
Same here… unrelated job, but trying to keep up the energy for coding.
This is actually why I’ve been quiet with Asami recently… I’ve been trying to recharge by doing “fun” stuff on the side
I'm very much of the idea that we ought to follow the fun
"Play Driven Development"
asami is already so cool 😎 lots of other things to explore until it's fun again
Oh, it’s fun! I just have SO MUCH TO DO on it
Right now, I’m implementing 2 features: with operations, and background transaction writing (so that transactions return quickly)
Hi! I’m enjoying Paula’s talk at reClojure. Is there any documentation on Asami’s assertion metadata capabilities (https://youtu.be/Ug__63h_qm4?t=339)? That’s something I’d like to learn more about. I took a look through the Asami repo’s wiki and didn’t find much. (I posted a similar question way back in December, but figured I’d try again since the message may have gotten lost in the shuffle)
Oh! I haven’t put an API up for that yet 😳
I need to extend the query language and the update API