Peter, Thank you very much for the info, it helped a lot. I entirely agree with HA being a much better approach to scale out Neo4j and I'll see to implement it ASAP to give you some feedback. Currently the project is entering staging mode and as I do some benchmarks I'll see when to use HA and how it perform out.
Thanks again for all, and just as a quick feedback, I'm pleased to read the support given by you from Neo Technology in this mailing list (and actually it's the only one that I keep in my inbox :P) Best regards! On Mon, Oct 18, 2010 at 6:44 PM, Peter Neubauer < peter.neuba...@neotechnology.com> wrote: > Victor, > for scaling out, there are two approaches that we see people using to > scale Neo4j: > > 1. Use HA to replicate several Neo4j instances > > High Availability as a Master-Slave scenario with Master failover is > currently in QA, but is planned to be released as part of Neo4j 1.2 > and merged into the main component stream as of yesterday. So, the > next milestone release 1.2.M02 (hopefully released on Thursday) has > this built in, see > http://wiki.neo4j.org/content/High_Availability_Cluster which will be > fleshed out. This should enable you to scale reads transparently for > your client code, since all slaves are writable. > > 2. Build an Event bus feeding multiple instances > > In order to have all data on all replicated Neo4j instances, you could > for instance use a messaging system like RabbitMQ to feed all updates > to all instances. This might have advantages for some scenarios, but > mostly I would suggest to test 1. first. > > Does that help? Let the community know what issues you are > experiencing in setting up Neo4j HA, would be great to get some > feedback from you! > > Cheers, > > /peter neubauer > > VP Product Development, Neo Technology > > 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://www.thoughtmade.com - Scandinavia's coolest Bring-a-Thing party. > > > > On Thu, Oct 7, 2010 at 9:54 PM, Victor Augusto de Campos > <piv...@gmail.com> wrote: > > Sorry Peter for the late reply (and the clumsy first email). > > > > I drew a very very simple diagram exemplifying the architecture, I don't > > know if the list will support the attachment so if it doesn't, warn me :P > > > > As you can see by the diagram, my neo4j DB is running inside the REST app > > that will read and write from the DB and also perform. > > > > The Reader is an application which reads out a queue, checks > relationships > > of an user making some action and send some messages based on those > > relationships. > > The website is indeed a back-end application which the real website is > based > > on. > > My question was: when I need to scale the REST app (because of the huge > load > > that the mentioned website will generate) what should I do with the neo4j > > embedded in it? > > > > Thanks for your attention again. > > > > On Mon, Oct 4, 2010 at 10:17 AM, Peter Neubauer < > > peter.neuba...@neotechnology.com> wrote: > > > >> Victor, > >> sorry, I am not entirely understanding your domain so I can't say > >> anything for sure. Do you have some architectural diagram and/or some > >> example flow in order to better understand? > >> > >> Sorry for the inconvenience > >> > >> Cheers, > >> > >> /peter neubauer > >> > >> VP Product Development, Neo Technology > >> > >> 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://www.thoughtmade.com - Scandinavia's coolest Bring-a-Thing party. > >> > >> > >> > >> On Tue, Sep 28, 2010 at 4:47 AM, Victor Augusto de Campos > >> <piv...@gmail.com> wrote: > >> > Hey folks, > >> > I'm actually developing an application that requires maintaining > >> "following" > >> > relationships between nodes, another application reads out those > >> > relationships and take the steps to perform notifications about > actions > >> to > >> > some entities. > >> > > >> > That said, I got a doubt about the best design to maintain all things > >> going > >> > well. As I've benchmarked neo4j alone can easily handle the > >> reading/writing > >> > load but as I'm running it as a embedded database into the application > >> who > >> > also provides a RESTful API to let other applications notify about > >> actions > >> > I'm afraid that when I need to scale out this application I'll have > >> troubles > >> > scaling neo4j embedded in it. > >> > > >> > So, what would be the best approach? Decouple neo4j from that > application > >> > and let it run as a separate app (or use neo4j-rest, although I > haven't > >> > looked into its API and don't know if it provides a official client, > but > >> > well) or if it would be simple to scale out neo4j DB with the > application > >> > providing that RESTful API. > >> > > >> > I don't know if I exposed my question clear, any doubts I'll be glad > to > >> > answer ^^ > >> > > >> > Best regards, > >> > Victor Augusto de Campos > >> > _______________________________________________ > >> > 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 > _______________________________________________ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user