Closed christophsturm closed 6 months ago
Thanks for opening your first issue 🦁 Your feedback, is the most valuable thing besides PRs 💚
Can you check if it runs, when in ResourceConfiguration
the storage type is set to file channel for instance? It's a bug and I think at least with this iouring implementation it's even slightly slower due to the event queue maybe. I'm currently on my phone
I think I've changed it stupidly for testing lately. So, I've made a commit / push to fix the issue directly on the main branch.
@christophsturm can you check if it works? As the documentation is rather messy, I'm working on a tutorial for a local shell setup (of course can be used as a library, too):
https://sirix.io/docs/jsoniq-tutorial.html
And I hope that
https://sirix.io/docs/cocepts.html
explains the architecture in some detail.
HTH Johannes
The test suite now works on my mac. I can't do more investigation currently because I have no time, but my usecase for sirix would be to use it as a cache and history for api requests that my service does to other hosts. so I want to add documents via a kotlin(java) api and also query versions of documents via an api. is that something that should be easy?
I think that should be fine. However, I'm not sure if it'll create some overhead if your JSON data is super small for instance. On the other hand SirixDB is not production ready, but I'd love to make it more stable (and I think it's quite different and in some cases better suited maybe than other solutions, where simply indexes are stored in some kind of storage system, but there's no notion of of a coherent system). Though, help would be great, as I switched jobs recently from Java/Kotlin backend stuff to embedded systems with mostly C/C++...
As SirixDB keeps all secondary indexes up-to-date at all times and as well as a path summary (an unordered set of all paths in a resource stored in a tiny tree-structure), I think in some cases it's more flexible due to fine granular secondary indexes (for instance specific fields, but then based on the path summary also path indexes and path + value (content-and-structure / CAS indexes), based on ideas from the XML world (despite that almost everyone hates XML, I think the ideas developed in the context of XML databases are also applicable to JSON).
So, SirixDB is not really a document store, but it shreds the JSON file / string into nodes of the inherent tree-structure and thus the primary index indexes every node instead of documents / JSON objects. A consequence for instance is, that objects can be arbitrarily large as long as it's auto-committed during the import (or via a low-level Java API).
Well, to put it bluntly I'd love to see the first real usage of SirixDB (and I'm happy to help -- but maybe you'd have to help a bit with some stuff, as I'm mostly the only one working on the project more or less consistently (with some gaps) since 10 years now (and before at the University of Konstanz on the predecessor, Treetank since 2006)) with contributions from a lot of people, however.
very long answer now, but I HTH a bit Johannes
it seem the test suite does not run on macos because
one.jasyncfio
is linux only. It would be great if this could be mentioned in the readme file. are there plans to support macos for running tests?