Hi Dennis, As Neil mentioned a well configured batch inserter typically gives you 5x or higher write speed compared to normal writes running in a transaction. Batch inserter is there to speed up initial import of data but judging from the use-cases you presented you will be running in normal transactional mode.
In a large transaction (thousands of node, relationship and/or property creates/updates/deletes) you do about 10-100 writes per ms. Running small write transactions with just a few updates in each transaction the bottleneck will be the flush operations and then you typically get around 200 transactions/s (numbers are very hardware dependent). Regarding contention, by default a write will not block a read but writes have to wait for each other. Modifying a node's or relationship's properties will acquire a write lock on that node or relationship holding it until the transaction commits or gets rolled back. Deleting or creating a relationship will acquire a write lock on the relationship, the start node and the end node. I think you are on the right track considering using Neo4j for this problem :) If you could give us some more information about how exactly the rating system is going to work we could advice you on how to design your graph. For example: Does getting the highest rated comments mean: a) of all the latest comments since time X, give me the ones that had the highest rating or b) for this topic / thread, only show comments with rating higher then X Regards, Johan On Tue, Jun 16, 2009 at 4:59 PM, Neil Ellis<[email protected]> wrote: > We've been doing an easy Gig per minute using the batch updater. > > All the best > Neil Ellis > > (Sent from my iPhone) > > > On 16 Jun 2009, at 15:50, Dennis Peterson <[email protected]> > wrote: > >> Hi everybody, I just came across Neo4J, and while the read performance >> sounds great, I haven't seen anything about write performance. I >> suspect it's good, but wanted to ask. >> >> I'm considering using Neo for a threaded discussion forum. It >> definitely sounds like it would retrieve a discussion tree very >> quickly. Would it also be fast in posting new messages? >> >> Root comments would be attached to a topic, so by starting at the >> topic's node you can get a list of the latest posts. It seems the way >> to do this would essentially be to make a linked list of posts, and >> with each new one, splice the new node in between the topic node and >> the previous head of the list. Would there likely be undue contention >> at that point? >> >> I'll also be rating comments, and would like to get a list of >> highest-rated comments. For that, I would likely keep a list of them. >> Keep the current low score somewhere, refresh it periodically with a >> scan of the list, anything above the low score just add it to the >> list, and periodically purge the excess. >> >> In a relational database of course it's easy, just sort by the >> scores...but that score index is going to be constantly re-sorting >> itself, so there's plenty going on, you just don't see it. I suspect >> Neo would actually be more performant since you don't have to keep >> *all* the comments sorted by score. >> >> Am I on the right track? _______________________________________________ Neo mailing list [email protected] https://lists.neo4j.org/mailman/listinfo/user

