But you still need the collect and the event to release it. On 25 avr. 2012, at 10:59, Sanne Grinovero wrote:
> Isn't Hibernate ORM already providing such a service via the > Session/Persistence context/"L1" container ? > > We might be able to take advantage of existing events to control the > batching on MongoDB. > > On 25 April 2012 08:35, Emmanuel Bernard <emman...@hibernate.org> wrote: >> I don't think we need an actual multi threaded cache. the flush operation in >> Hibernate is not multi threaded, neither is the session. >> A simple Map (or a better append only structure) will suffice, I think. >> >> On 25 avr. 2012, at 09:32, Guillaume SCHEIBEL wrote: >> >>> Hi all, >>> >>> What do you think about using the Ehcache module to store the data between >>> 2 flushes ? >>> I will open a JIRA about this point if it has not already been done. >>> >>> Guillaume >>> >>> 2012/4/25 Emmanuel Bernard <emman...@hibernate.org> >>> Hi Alan and all, >>> >>> I have been researching the spikes issue you encounter in the stress test >>> from a theoretical point of view. >>> You were trying a different associations storage approach (splitting >>> associations as one row per document rather than the whole association per >>> document). Does that return better results? >>> >>> I am skeptical for a few reasons. MongoDB has a global write lock per >>> mongod process (they are working on a more fine grained solution). So if >>> the spikes are due to lock contention, shuffling data won't help much. Also >>> make sure you use MongoDB 2.0 instead of 1.8 as they yield lock on page >>> fault which should solve a lot of these spikes problems. >>> >>> I have found this blog entry to be quite insightful >>> http://blog.pythonisito.com/2011/12/mongodbs-write-lock.html >>> >>> Generally speaking, if all data can stay in memory, MongoDB should behave >>> wonderfully. >>> >>> Which leads to my demo and the time difference between Infinispan 5s and >>> Mongodb 20s. I can see several reasons: >>> >>> - we don't really batch operations in the mongodb dialect and we should. >>> We should accumulate operations and apply them at the end of the flush >>> operation in one batch. That will require some new infrastructure from >>> OGM's engine though >>> to tell the dialect when to "flush". >>> - my VM might swap memory on disk which would explain the difference >>> - or it could be that Infinispan is simply 4 times faster which would not >>> be too surprising as Infinispan is in-process. >>> >>> Emmanuel >>> _______________________________________________ >>> hibernate-dev mailing list >>> hibernate-dev@lists.jboss.org >>> https://lists.jboss.org/mailman/listinfo/hibernate-dev >>> >> >> _______________________________________________ >> hibernate-dev mailing list >> hibernate-dev@lists.jboss.org >> https://lists.jboss.org/mailman/listinfo/hibernate-dev _______________________________________________ hibernate-dev mailing list hibernate-dev@lists.jboss.org https://lists.jboss.org/mailman/listinfo/hibernate-dev