Bryce,
yes, that would be good to set up the code standard. Anders, do you know if
that is still the latest version? I will check tomorrow.

Also, please send in your CLA according to
http://wiki.neo4j.org/content/About_Contributor_License_Agreement so we can
pull your contributions!

Cheers,

/peter neubauer

GTalk:      neubauer.peter
Skype       peter.neubauer
Phone       +46 704 106975
LinkedIn   http://www.linkedin.com/in/neubauer
Twitter      http://twitter.com/peterneubauer

http://www.neo4j.org               - Your high performance graph database.
http://startupbootcamp.org/    - Ă–resund - Innovation happens HERE.
http://www.thoughtmade.com - Scandinavia's coolest Bring-a-Thing party.


On Mon, Sep 5, 2011 at 11:46 PM, Bryce <[email protected]> wrote:

> Just noticed that after my changes were pulled into the main git repo that
> they don't quite fit in with the formatting of the original code (original
> is using tab characters and my IDE is setup to use 4 spaces).
>
> Which led me to finding this:
> http://wiki.neo4j.org/content/Coding_Standard
>
> I am assuming that this is still the standard?  I will setup my IDE for
> when
> working on this code as per this standard and next time I do some changes
> will first do a reformat code + commit.
>
> On Tue, Sep 6, 2011 at 9:31 AM, Bryce <[email protected]> wrote:
>
> > Hi Niels,
> >
> > Thanks for your feedback below.
> >
> > Specifically on the anonymous inner class issue in general they can be
> used
> > as a Comparator without a problem, and in this case it worked perfectly
> for
> > creating the IndexedRelationship.  The issue was when then trying to
> > instantiate the anonymous inner class in IndexedRelationshipExpander
> which
> > was throwing a ClassNotFoundException (I think, from memory).
> >
> > I also think non-static inner classes also wouldn't work as it is coded
> > right now, since they need a reference to the outer class, and personally
> > supporting them may be rather difficult.
> >
> > Even if anonymous inner classes could be supported, is it really a good
> > idea to store as a comparator XYZClass$5 when adding another anonymous
> inner
> > class to the XYZClass would increment the number and mean the index will
> no
> > longer work.
> >
> > Given what you have said about how the tree is represented it should be
> > relatively easy to have IndexedRelationshipExpander support following
> > relationships from the leaf nodes through to the root (as well as what it
> > presently does: root -> leaf & direct relationships).  I might have a
> look
> > at doing that later on today.
> >
> > Cheers
> > Bryce
> >
> >
> > On Tue, Sep 6, 2011 at 6:58 AM, Niels Hoogeveen <
> [email protected]
> > > wrote:
> >
> >>
> >> Hi Bryce,
> >> Sorry for my belated response. I have been away for a couple of days and
> >> wasn't able to check my emails.
> >> I am glad you took the time to look into the IndexRelationship module.
> It
> >> certainly could use some scrutiny.
> >> Remarks:
> >> 1)  Good catch... Something the unit test didn't catch because it runs
> in
> >> the same namespace as IndexedRelationship itself. Didn't catch it in
> user
> >> code either, because personally I prefer to directly call SortedTree.
> >> 2) Agreed. It should be possible to define more than one
> IndexRelationship
> >> per node.
> >> 3) I haven't tried out an anonymous inner class as Comparator. As far as
> I
> >> can tell any object implementing Comparator<Node> should be able to work
> as
> >> a comparator.
> >>
> >> Questions:
> >> 1) That is certainly an option. IndexRelationships however offer you the
> >> possibility to sort your Relationships based on some value associated
> with a
> >> node (for example creation/edit date of the document). This may be a
> reason
> >> to use IndexRelationships even in the situation where you have less than
> 500
> >> entries per tag (though it would be possible to do that sorting in
> memory
> >> too).
> >> 2) The end node of an IndexRelationship is always referred to by a
> >> Relationship with RelationshipType "KEY_VALUE", and has a property
> >> "tree_name" (both are defined in SortedTree). The "tree_name" property
> has
> >> the same value as the RelationshipType.name used in IndexRelationship.
> To
> >> traverse from a leaf node to the tree root, keep following the incoming
> >> relationships: KEY_VALUE (there is only one), KEY_ENTRY (there can be
> many),
> >> SUB_TREE (there can be many), TREE_ROOT (there is only one)
> >> Niels
> >>
> >>
> >> > Date: Fri, 2 Sep 2011 11:44:40 +1200
> >> > From: [email protected]
> >> > To: [email protected]
> >> > Subject: [Neo4j] IndexedRelationship some observations and questions
> >> >
> >> > Hi,
> >> >
> >> > I have been looking at performance options for Neo4j as presently I
> have
> >> > been observing a number of performance issues.  I am still
> investigating
> >> the
> >> > way to get the best performance out of what I am doing, and one thing
> it
> >> > might be are longer running transactions stopping other work going on
> >> (but
> >> > thats an aside to what this message is about).
> >> >
> >> > One of the things that I investigated using was the
> IndexedRelationship
> >> work
> >> > by Niels.  Thought I would give a bit of feedback, although I haven't
> >> quite
> >> > got this implemented at present.
> >> >
> >> > 1) I had to change the IndexedRelationshipExpander to be a public
> class
> >> in
> >> > order to use it outside the package its in.
> >> >
> >> > 2) IndexedRelationship assumes only one tree root per node, whereas
> the
> >> > expander allows for multiple (IndexedRelationship uses
> >> getSingleRelationship
> >> > vs expander using getRelationships then matching on tree name).
>  Having
> >> > multiple would obviously be good as it means you could have two types
> of
> >> > relationships covered by IndexedRelationship's.
> >> >
> >> > 3) Might pay to make it clear in the Javadocs for IndexedRelationship
> >> that
> >> > the comparator can't be an anonymous inner class.
> >> >
> >> > Then I have some questions about usage of this.  First a little
> >> background
> >> > of the model I have, from reading a few things it seems quite
> standard.
> >> >  There are a lot of "document" nodes each of which have a relationship
> >> with
> >> > multiple "tag" nodes.  Documents generally have in the order of 10-20
> >> tags,
> >> > and tags can have as few as 1 document and sometimes tens of
> thousands.
> >> >  When tags are viewed through the UI they are almost always displayed
> >> with a
> >> > descending date ordered list of documents.  Seemed to be to fit quite
> >> well
> >> > with IndexedRelationship.
> >> >
> >> > 1) I was thinking of having a switch over point at say around 500
> >> documents
> >> > for a given node where I will switch from using normal relationships
> to
> >> an
> >> > IndexedRelationship as I was thinking at small numbers of
> relationships
> >> > normal relationships would be quicker.  Would that be correct, or not
> >> worth
> >> > it?
> >> >
> >> > 2) On the tag end (which is the incoming end of the document-tag
> >> > relationship) I was going to use a IndexedRelationshipExpander which
> >> would
> >> > cover the case of whether the relationship was done through normal
> >> > relationships, or through an IndexedRelationship.  I also need to get
> a
> >> set
> >> > of tags from the document end where their may be both normal
> >> relationships,
> >> > and relationships coming from multiple IndexedRelationship's.  From
> >> looking
> >> > at it IndexedRelationshipExpander doesn't cover the reverse direction,
> >> but I
> >> > would imagine using a relationship expander here would be correct.
>  What
> >> > would the best way of doing this be?
> >> >
> >> > As an aside it may be a good idea to note in the configuration
> settings
> >> > page:
> >> >
> >>
> http://wiki.neo4j.org/content/Configuration_Settings#Optimizing_for_traversals_example
> >> > that -XX:+UseNUMA
> >> > only works when using the Parallel Scavenger garbage collector
> (default
> >> > or -XX:+UseParallelGC) not the concurrent mark and sweep one.  Based
> on
> >> >
> >> > Cheers
> >> > Bryce
> >> > _______________________________________________
> >> > Neo4j mailing list
> >> > [email protected]
> >> > https://lists.neo4j.org/mailman/listinfo/user
> >>
> >> _______________________________________________
> >> Neo4j mailing list
> >> [email protected]
> >> https://lists.neo4j.org/mailman/listinfo/user
> >>
> >
> >
> _______________________________________________
> Neo4j mailing list
> [email protected]
> https://lists.neo4j.org/mailman/listinfo/user
>
_______________________________________________
Neo4j mailing list
[email protected]
https://lists.neo4j.org/mailman/listinfo/user

Reply via email to