Re: [infinispan-dev] reusing infinispan's marshalling
One way to do it is use a distributed cache with two different marshallers: JBMAR and protostream. Admittedly this won't measure only the serialisation performance, but include other stuff as well, such as network time (I guess you can remove this from the result though). This way we would get a better understanding on how the two marshaller affects performance of the system as a whole. Also if using radargun, you could get more info around how much CPU time is used by each scenario. On Jan 30, 2014, at 12:13 PM, Adrian Nistor anis...@redhat.com wrote: I've been pondering about re-using the marshalling machinery of Infinispan in another project, specifically in ProtoStream, where I'm planning to add it as a test scoped dependency so I can create a benchmark to compare marshalling performace. I'm basically interested in comparing ProtoStream and Infinispan's JBoss Marshalling based mechanism. Comparing against plain JBMAR, without using the ExternalizerTable and Externalizers introduced by Infinispan is not going to get me accurate results. Cheers, -- Mircea Markus Infinispan lead (www.infinispan.org) ___ infinispan-dev mailing list infinispan-dev@lists.jboss.org https://lists.jboss.org/mailman/listinfo/infinispan-dev
Re: [infinispan-dev] reusing infinispan's marshalling
On Feb 3, 2014, at 6:24 PM, Galder Zamarreño gal...@redhat.com wrote: Not sure I understand the need to compare this. JBMAR and ProtoStream are solving different problems. The former is focused on getting the best out of Java persistence. The latter is focused on serializing stuff in a plattform independent way. IMO, it’s not an apples to apples comparison. AFAIK the only thing JBMAR does and proto doesn't is tracking circular references: e.g. person has a reference to address which has a reference to the same person instance. That comes at a performance cost (I guess an IdentityMapLookup per serialized object), though and for many users tracking circular dependencies is not needed, because of their data model. My expectation is that ISPN+protostram will be faster than ISPN+JBMAR because: - protostream doesn't track circular references (AFAIK this is something that can be disabled in JBMAR as well) - protostream allows for partial deserialization, that is only deserialize a specific attribute of a class On top of that, it is platform independent, so if you start using it as the default serialization format, it will be easier for you to use ISPN from multiple platforms. The drawback protostream has over JBMAR is that it requires one to define, besides the serialized, a protofile. Las time we discussed, Adrian had some ideas on how that can be circumvented, though. IMO, in certain deployments makes sense to use protostream over JBMAR even when serializing only java objects and this benchmark would be a good tool to validate that. Cheers, -- Mircea Markus Infinispan lead (www.infinispan.org) ___ infinispan-dev mailing list infinispan-dev@lists.jboss.org https://lists.jboss.org/mailman/listinfo/infinispan-dev
Re: [infinispan-dev] reusing infinispan's marshalling
Not sure I understand the need to compare this. JBMAR and ProtoStream are solving different problems. The former is focused on getting the best out of Java persistence. The latter is focused on serializing stuff in a plattform independent way. IMO, it’s not an apples to apples comparison. Cheers, On 30 Jan 2014, at 13:13, Adrian Nistor anis...@redhat.com wrote: Hi list! I've been pondering about re-using the marshalling machinery of Infinispan in another project, specifically in ProtoStream, where I'm planning to add it as a test scoped dependency so I can create a benchmark to compare marshalling performace. I'm basically interested in comparing ProtoStream and Infinispan's JBoss Marshalling based mechanism. Comparing against plain JBMAR, without using the ExternalizerTable and Externalizers introduced by Infinispan is not going to get me accurate results. But how? I see the marshaling is spread across infinispan-commons and infinispan-core modules. Thanks! Adrian ___ infinispan-dev mailing list infinispan-dev@lists.jboss.org https://lists.jboss.org/mailman/listinfo/infinispan-dev -- Galder Zamarreño gal...@redhat.com twitter.com/galderz Project Lead, Escalante http://escalante.io Engineer, Infinispan http://infinispan.org ___ infinispan-dev mailing list infinispan-dev@lists.jboss.org https://lists.jboss.org/mailman/listinfo/infinispan-dev
Re: [infinispan-dev] reusing infinispan's marshalling
Not 100% related to what you are asking about but have a look at this post and the discussion that erupted: http://gridgain.blogspot.ca/2012/12/java-serialization-good-fast-and-faster.html Vladimir On 1/30/2014, 7:13 AM, Adrian Nistor wrote: Hi list! I've been pondering about re-using the marshalling machinery of Infinispan in another project, specifically in ProtoStream, where I'm planning to add it as a test scoped dependency so I can create a benchmark to compare marshalling performace. I'm basically interested in comparing ProtoStream and Infinispan's JBoss Marshalling based mechanism. Comparing against plain JBMAR, without using the ExternalizerTable and Externalizers introduced by Infinispan is not going to get me accurate results. But how? I see the marshaling is spread across infinispan-commons and infinispan-core modules. Thanks! Adrian ___ infinispan-dev mailing list infinispan-dev@lists.jboss.org https://lists.jboss.org/mailman/listinfo/infinispan-dev ___ infinispan-dev mailing list infinispan-dev@lists.jboss.org https://lists.jboss.org/mailman/listinfo/infinispan-dev
Re: [infinispan-dev] reusing infinispan's marshalling
Thanks Vladimir! It's a really fun and interesting discussion going on there :) On 01/31/2014 06:29 PM, Vladimir Blagojevic wrote: Not 100% related to what you are asking about but have a look at this post and the discussion that erupted: http://gridgain.blogspot.ca/2012/12/java-serialization-good-fast-and-faster.html Vladimir On 1/30/2014, 7:13 AM, Adrian Nistor wrote: Hi list! I've been pondering about re-using the marshalling machinery of Infinispan in another project, specifically in ProtoStream, where I'm planning to add it as a test scoped dependency so I can create a benchmark to compare marshalling performace. I'm basically interested in comparing ProtoStream and Infinispan's JBoss Marshalling based mechanism. Comparing against plain JBMAR, without using the ExternalizerTable and Externalizers introduced by Infinispan is not going to get me accurate results. But how? I see the marshaling is spread across infinispan-commons and infinispan-core modules. Thanks! Adrian ___ infinispan-dev mailing list infinispan-dev@lists.jboss.org https://lists.jboss.org/mailman/listinfo/infinispan-dev ___ infinispan-dev mailing list infinispan-dev@lists.jboss.org https://lists.jboss.org/mailman/listinfo/infinispan-dev ___ infinispan-dev mailing list infinispan-dev@lists.jboss.org https://lists.jboss.org/mailman/listinfo/infinispan-dev
[infinispan-dev] reusing infinispan's marshalling
Hi list! I've been pondering about re-using the marshalling machinery of Infinispan in another project, specifically in ProtoStream, where I'm planning to add it as a test scoped dependency so I can create a benchmark to compare marshalling performace. I'm basically interested in comparing ProtoStream and Infinispan's JBoss Marshalling based mechanism. Comparing against plain JBMAR, without using the ExternalizerTable and Externalizers introduced by Infinispan is not going to get me accurate results. But how? I see the marshaling is spread across infinispan-commons and infinispan-core modules. Thanks! Adrian ___ infinispan-dev mailing list infinispan-dev@lists.jboss.org https://lists.jboss.org/mailman/listinfo/infinispan-dev