help-gnunet
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Help-gnunet] A Graph Database on top GNUnet


From: Sree Harsha Totakura
Subject: Re: [Help-gnunet] A Graph Database on top GNUnet
Date: Fri, 03 Jan 2014 11:04:54 +0100
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:17.0) Gecko/20131103 Icedove/17.0.10

Hi!

On 01/03/2014 08:21 AM, amz3 wrote:
> Héllo,
> 
> 
> I am investigating how to create a graph database on top GNUnet. It
> seems like nothing like that exists and what approach most to this might
> be titan which works on top of hadoop stack
> (http://thinkaurelius.github.io/titan/).
> 
> What I'm looking at is directed property graph which means that:
> 
> - Vertex have properties
> - Edge have properties and are directed
> 
> In one of the possible representation of that data structure there is an
> object that I call Element which gathers the features of Vertex and
> Edge. In the regard of this representation a graph database is an object
> database with link information. That link information is very
> significant, that's what makes every vertex aware of their edges
> incomings or outgoings. Without that information, to know whether a node
> is linked to another node is difficult.
> 
> My understanding is that GNUnet is a "append only database". What I
> don't know is what are the primitives. I know that there is:
> 
> - put FILE: store the given FILE with its HASH as key
> - get HASH: retrieve the file with the given HASH if any

What we use here is a DHT; its not an "append only" db - the data gets
expired after sometime unless you do a "put" on it again.

Yes, you can use this approach for publishing your vertex and edge
properties.  We have a similar graph-based usecase for our REGEX
(https://gnunet.org/szengel2012ms) subsystem.  Have a look at its
implementation.  Although there are no properties for vertices and edges
here, it can still give you a good idea of how to implement.

> 
> And some sort of search primitive that lookup the file names. I don't
> how efficient it is.
> 
> Based on that, I came up with a way to design a file based graph
> database for a P2P network where links/edges are only directed, they
> have no property:
> 
> - a Vertex has its hash as name
> - an Edge is named after the start vertex and end vertex, say an edge
> between A and B will be named A:B
> 
> The thing is that a vertex to know about it's outgoings edges and
> incomings edges, it must issue a search request so it's might not be
> very efficient. Is it possible to issue a regex-like search for instance
> "A:.*" or ".*:B" ?

You can use the REGEX subsystem for doing such queries but REGEX is to
be used to find peers and not data in general.  So, I guess it is
efficient to implement your database on DHT.

> 
> 
> I'm thinking about another design for a file based graphdb but it relies
> on the existence of directories and the ability to list the files of a
> directory. Is it possible with GNUnet? Would it perform better?
> 

You do need to do this as a file based graphdb?  Or are you looking for
anonymity as part of using it?  To me, the one based on DHT seems to be
efficient.  Nevertheless, it should be possible to implement with
GNUnet.  However, the reliability of the data cannot be ensured as peers
go on and off; you can may it high by increasing replication degree.

Regards,
Sree



reply via email to

[Prev in Thread] Current Thread [Next in Thread]