Skip to content
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

Questions About the Design #65

Closed
rizo opened this issue Jun 5, 2014 · 4 comments
Closed

Questions About the Design #65

rizo opened this issue Jun 5, 2014 · 4 comments

Comments

@rizo
Copy link

rizo commented Jun 5, 2014

Is there any documentation about the current or planned design of Irminsule?

I understand that it follows the same principles as Git and can use it as actual storage backend, but that's a very general description.

How the data will be structured and related? Will there be a possibility to make queries?
Can the database store large binary blobs?

Thank you in advance for the answers!

@samoht
Copy link
Member

samoht commented Jun 24, 2014

Seems that I missed that issue, sorry. There are no proper documentation for Irmin yet, but I plan to write a one in the next weeks (before the mirage 2.0 release).

The data is organised as a prefix tree (ie, a filesystem-like), with the natural corresponding queries (ie. get all the subdirs of a given path). More complex queries will depend on the underlying data-structures. For instance, you can encode persistent queues and efficiently query the head of queue, see https://github.com/samoht/merge-queues

Which kind of queries are you interested in ?

@rizo
Copy link
Author

rizo commented Jun 25, 2014

Hi, no problem! Thanks for the reply! Its good to know the next mirage release is so close!

After exploring the code and the examples I am gradually starting to understand the core principles of the database. The way it uses Git on the storage level and the way views provide partial representation of the database paths.

I started experimenting with Irminsule to build a storage backend for a knowledge graph. My idea is to represent the user data as a graph with items and relations between them. In the same fashion it's done in graph-based and ontology-based databases.

As you said, the queries that are not hierarchical by nature need to be adapted to the underlying data structure.

How would you advise to model the graph data structure on top of Irminsule? Do you think a custom view could be the good way to go?

@rizo
Copy link
Author

rizo commented Jul 18, 2014

Closing. The latest post on the mirage blog provides a good description of the architecture. After reading it I understand that my last question is out of the scope of the project.

@rizo rizo closed this as completed Jul 18, 2014
@avsm
Copy link
Member

avsm commented Jul 18, 2014

It's not entirely out of scope -- you could build the knowledge graph representation on top of the basic DAG structure that Irmin exposes. One advantage (for example) might be that index branches could be updated in lock step with insertions, so that a client can pull a search index of the graph that's consistent with the graph itself.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants