I don't know what you mean by this:
"I don't know how nicely BDB plays with Neo4J transactions. "
I have some small experience with bdb java edition that is, but I'm not sure
what would their transaction have to do with neo4j transactions... if you
meant if you could make a wrapper such that you could use the same
format/interface neo4j uses for their transactions, then you can, I did some
attempt to that it works for me, also BDB Java Edition doesn't support
nested transactions either (the C++ version does), but emulating them to use
the same root/parent transaction is easy, my attempt is here:
https://github.com/13th-floor/neo4john/blob/6c0371e82b7fc5b5f45d7c0ea9fb03ee4d241df9/src.obsolete/org/bdb/BETransaction.java
probably not much relevant though. But this file here:
https://github.com/13th-floor/neo4john/blob/master/src/org/benchtests/neo4j/TestLinkage.java
I made to use both neo4j and bdb to do the same thing, that is:
create nodes(uppercase named ones) with these rels:
ROOT_LIST --> START
ROOT_LIST --> <half a million unique nodes>
ROOT_LIST --> MIDDLE
ROOT_LIST --> <another half a million unique nodes>
ROOT_LIST --> END

then make both bdb and neo4j check if the following rels exist:
ROOT_LIST --> START
ROOT_LIST --> MIDDLE
ROOT_LIST --> END
(you probably saw this already in another post)
But both bdb and neo4j now use transactions... that is, in my test file.

About licensing, I'm not much into that but here's the license for Berkeley
DB Java Edition:
http://www.oracle.com/technetwork/database/berkeleydb/downloads/jeoslicense-086837.html
Looks like New(or normal?) BSD license or something ...
also
"
Licensing

Berkeley DB is available under dual license:

   - Public license that requires that software that uses the Berkeley DB
   code be free/open source software; and
   - Closed source license for non-open source software.

If your code is not redistributed, no license is required (free for in-house
use).

"

from http://www.orafaq.com/wiki/Berkeley_DB#Licensing


I would totally use neo4j, if it would be as fast at searches :/ ie. BTree
storage of nodes/rels? (guessing)

But having 10mil rels, and seeing BDB checking if A-->B in 0ms, and neo4j in
like 0 to 66 to 310 seconds (depending on its position)

is a show stopper for me, especially because I want to base everything on
just nodes (without properties) and their relationships. ie. make a set or
list of things, without having A ---[ENTRY]--> e ---[NEXT] ---> e2  but
instead A->b->e->c->e2  where b and c are just nodes, and also
AllEntries->b  and AllNexts->c   (silly example with such less info tho)

Point is, I would do lots of searches a lot (imagine a real time program
running on top of nodes/rels, that is it's defined in and can access only
nodes), this would likely cause those ms to add up to seconds...


I installed maven (m2e) again, I guess I could use it, but it seems it
creates .jar , not sure if that's useful to me while I am coding... seems
better to use project/sources no? and maven only when ready to publish/get
the jar ; anyway I need to learn how to use it otherwise I'm getting errors
like this , when trying to build:

[ERROR]   The project org.neo4j:neo4j-graph-collections:1.5-SNAPSHOT
(E:\wrkspc\graph-collections\pom.xml) has 1 error
[ERROR]     Non-resolvable parent POM: The repository system is offline but
the artifact org.neo4j:parent-central:pom:21 is not available in the local
repositor
y. and 'parent.relativePath' points at wrong local POM @ line 4, column 11
-> [Help 2]



Anyway, with normal eclipse, I'm still showing 2 different errors:

1) in org.neo4j.collections.graphdb.ComparablePropertyType<T>

line 29: super(name, graphDb);

The constructor PropertyType<T>(String, GraphDatabaseService) is not visible

2) org.neo4j.collections.graphdb.impl.NodeLikeImpl.getRelationships()
The return type is incompatible with
RelationshipContainer.getRelationships()

3)
org.neo4j.collections.graphdb.impl.NodeLikeImpl.getRelationships(RelationshipType...)
The return type is incompatible with
RelationshipContainer.getRelationships(RelationshipType[])


John.

On Thu, Jul 28, 2011 at 12:52 PM, Niels Hoogeveen <pd_aficion...@hotmail.com
> wrote:

>
> Hi John,
> Thanks for showing an interest.
> The compile error you got was due to the fact that a removed class was
> still hanging around in the Git repo. I renamed BinaryRelationshipRoles into
> BinaryRelationshipRole, but the original file was still active in the Git
> repo. I fixed that.
> I have been thinking about BDB too for this situation, because the graph
> database now stores some information about the associated nodes and their
> reverse lookup. This of course polutes the name/node space. It would be neat
> to offload this book keeping information to some persistent hashmap, so the
> implementation is completely transparent to the user.
> I don't know how nicely BDB plays with Neo4J transactions. Does anyone have
> experience with this?
> Another aspect is licencing. I am no legal buff, so maybe someone else can
> jump in and answer this.
> Personally, I don't mind adding BDB as a dependency, but it has to work
> well at the transaction level and licence wise, otherwise it's a no go for
> me.
> I would recommend you to start using maven. There is an Eclipse plugin
> m2eclipse, which allows you to use/maintain Maven projects from within
> Eclipse.
> Niels
>
> > Date: Thu, 28 Jul 2011 05:09:54 +0200
> > From: cyuczie...@gmail.com
> > To: user@lists.neo4j.org
> > Subject: Re: [Neo4j] HyperRelationship example
> >
> > Hey Niels,
> >
> > I like xD
> > this seems like a lot of work and professionally done; ie. something I
> could
> > not have done (I don't have that kind of experience and focus). Gratz on
> > that, I really appreciate seeing this.
> >
> > I cloned the repo from git, manually, with eclipse (not using maven -
> don't
> > know how with eclipse)
> > I am getting only about 3 compile errors, like:
> > 1) The type BinaryRelationshipRoles<T> must implement the inherited
> abstract
> > method PropertyContainer.getId()
> > 2) The constructor PropertyType<T>(String, GraphDatabaseService) is not
> > visible
> > 3) The return type is incompatible with
> > RelationshipContainer.getRelationships()
> > for
> >
> org.neo4j.collections.graphdb.impl.RelationshipIterable.RelationshipIterable(Iterable<Relationship>
> > rels)
> >
> >
> >   Also, I am thinking to try and implement this on top of berkeleydb just
> > for fun/benchmarking (so to speak) to compare between that and neo4j -
> since
> > I am currently unsure which one to use for my hobby project (I like that
> > berkeleydb's searches are 0-1ms instead of few seconds)
> >
> > Btw, would it be any interest to you if I were to fork your repo and add
> ie.
> > AllTests.java for junit and the .project and related files for eclipse
> > project in a pull or two ? as long as it doesn't seem useless or
> > cluttering... (note however I never actually, yet, used fork&pull but
> only
> > read about it on github xD)
> >
> > Thanks to all, for wasting some time reading this,
> > Greeting and salutations,
> > John
> >
> > On Wed, Jul 27, 2011 at 8:48 PM, Niels Hoogeveen
> > <pd_aficion...@hotmail.com>wrote:
> >
> > >
> > > I just posted an example on how to use HyperRelationships:
> > >
> > >
> > >
> https://github.com/peterneubauer/graph-collections/wiki/HyperRelationship-example
> > >
> > > There is now a proper test for HyperRelationships, so I hereby push the
> > > software to Beta status.
> > >
> > > Please try out the Enhanced API and HyperRelationships and let me know
> what
> > > needs improvement.
> > >
> > > Niels
> > > _______________________________________________
> > > 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
>
_______________________________________________
Neo4j mailing list
User@lists.neo4j.org
https://lists.neo4j.org/mailman/listinfo/user

Reply via email to