Rick,

thanks for your feedback. Having something like this available as a driver on 
top of neo4j (embedded or server) would be very nice.
Did you also look into the API required by Java Content Repository - JCR (JSR 
170 and 283), how far you would be able to provide
and implementation for that?

Using neo4j as a blob store is an interesting approach. Especially if you 
partition your blob data to a defined and configured (in neo4j) block-size and 
so allow partial access to parts of the blob
(e.g. for parallel streaming or continued downloads or git-like hashing of blob 
parts/partial changes). 

Just read this git parable over the weekend 
(http://tom.preston-werner.com/2009/05/19/the-git-parable.html) and putting git 
on top of neo4j would actually a very exciting experiment.

Cheers

Michael

Am 06.02.2011 um 22:04 schrieb Rick Bullotta:

> Hi, Michael.
> 
> I wrote a post on this a couple days ago.  It would definitely be useful to
> have as a core interface in Neo.  We ended up implementing it
> (approximately) as follows:
> 
> - The "pseudo-folders" are implemented as Neo nodes and relationships
>       - Each folder can have a name, description, and of course,
> relationships to other folders
>       - A "document" can be linked to one or more folder(s)
>       - In our implementation, we also manage permission(s) via
> relationships between folder(s) and role(s) and document(s) and role(s)
> 
> - The document store is implemented as a pluggable interface that provides:
>       - byte[] Load (String key)
>       - InputStream LoadAsStream (String key)
>       - Reader LoadAsReader (String key)
>       - String Save (byte[])
>       - String SaveFromStream(InputStream)
>       - String SaveFromReader(Reader)
>       - Delete(String key)
> 
> - We have currently implemented providers for FileSystem, Neo (store as
> byte[] in a separate Neo DB), and Amazon S3 (rough, but functional)
> 
> - The document store implementations are responsible for returning a unique
> string key that is used to retrieve and/or delete a document
> 
> - A Neo node represents each document.  This node has a few mandatory
> properties, and a few optional ones:
>       - name (name of the document, user defined)
>       - docStore (the name of the document store)
>       - key (the key generated by the document store as a result of a
> Save)
>       - mimeType (optional, used in our REST API to set the content type
> when streaming/sending the document)
> 
> 
> Hope this helps.
> 
> Rick
> 
> -----Original Message-----
> From: user-boun...@lists.neo4j.org [mailto:user-boun...@lists.neo4j.org] On
> Behalf Of Michael Hunger
> Sent: Sunday, February 06, 2011 3:51 PM
> To: Neo4j user discussions
> Subject: [Neo4j] Some brainstorming ideas - 1. Use Neo4j as Document Store
> 
> Hi there,
> 
> this weekend I was away from a computer so I spent some time brainstorming
> things. I would be interested in any feedback on those thoughts and would
> like to broaden the audience beyond the devteam.
> 
> My question: Has anyone ever tried to use Neo4j as a document store ala
> MongoDB.
> 
> The idea. From the root node have relationships to a number of buckets or
> "collections".
> 
> From each collection root have a b-tree to all key-nodes of the system.
> 
> Each key-node is just connected by some specfic relationships (like
> "contains" or "link" or "subdocument") to its data. (i.e. nodes,
> relationships and their properties) not necessarily to other parts of the
> graph.
> 
> So for each key node one uses just a default traverser (depth-first, end of
> graph, limited to outgoing relationships of the mentioned types) to collect
> the whole document (or custom traversers to retrieve only parts of the
> documents).
> 
> That could be an interesting experiment to run.
> 
> WDYT?
> 
> Michael
> _______________________________________________
> Neo4j mailing list
> User@lists.neo4j.org
> https://lists.neo4j.org/mailman/listinfo/user
> 
> _______________________________________________
> Neo4j mailing list
> User@lists.neo4j.org
> https://lists.neo4j.org/mailman/listinfo/user

_______________________________________________
Neo4j mailing list
User@lists.neo4j.org
https://lists.neo4j.org/mailman/listinfo/user

Reply via email to