[wildfly-dev] Support for DMR Streams

Richard Opalka ropalka at redhat.com
Tue Jun 14 08:27:24 EDT 2016



On 06/14/2016 01:26 PM, David M. Lloyd wrote:
> On 06/14/2016 06:01 AM, Rostislav Svoboda wrote:
>>> Hi All,
>>>
>>> The upcoming DMR 1.4.0 version will introduce DMR Streaming API [1] -
>>> see attachment.
>> Will be DMR 1.4.z included in WF 11 or also in next EAP 7 release?
> Most likely both.
>
>>> The idea of this new feature grew up while I was working on DMR-9 issue [2].
>>>
>>> In short the news in upcoming JBoss DMR 1.4.0 are:
>>>     * it will be compilable on JDK8 and above
>>>     * it will be 100% backward compatible on binary level with previous
>>> version
>>>     * it replaces old cookcc based parser with new one based on DMR
>>> Streaming API
>>>     * DMR parsing will be times faster with old model based API
>>>     * new DMR streaming API is highly memory efficient and really very fast
>> Nice results in attached spreadsheets.
>>
>>> One example on how to use new DMR streaming API can be seen here [3].
>>>
>>> I believe this new DMR Streaming API will become very handy for many of us
>>> because it opens new opportunities to decrease memory and CPU usage in
>>> our core.
>>>
>>> At the moment in current prototype [4] I didn't touch DMR object model
>>> writing yet
>>> because new DMR Streaming API does not (and most probably will not)
>>> support pretty print feature
>>> (because of its focus on speed and efficiency).
>>> But I'm considering I might fix the object model writing flow when
>>> pretty print is off.
>>> Fixing it would speed it up significantly. Any objections?
>> I think pretty print feature is need, at least in CLI for stuff like ':read-resource(recursive=true)'
> This is still done by the DOM-style API, correct Richard?
Right.
>
> (eom)
>
>> Rostislav
>>
>>> As a final note today I run few benchmarks (see attachments).
>>> Here are some outcomes from benchmark results in short:
>>>     * Writing small DMR structures in DMR format is 2,4 times faster with
>>> new DMR streaming API
>>>     * Writing small DMR structures in JSON format is 2,6 times faster with
>>> new DMR streaming API
>>>     * Reading small DMR structures in DMR format is 3,9 times faster with
>>> old DMR object model API
>>>     * Reading small DMR structures in JSON format is 3,7 times faster with
>>> old DMR object model API
>>>     * Reading small DMR structures in DMR format is 5 times faster with
>>> new DMR streaming API
>>>     * Reading small DMR structures in JSON format is 4,4 times faster with
>>> new DMR streaming API
>>>     * Reading big DMR structures in DMR format is 5,2 times faster with
>>> old DMR object model API
>>>     * Reading big DMR structures in JSON format is 6 times faster with old
>>> DMR object model API
>>>     * Reading big DMR structures in DMR format is 7,6 times faster with
>>> new DMR streaming API
>>>     * Reading big DMR structures in JSON format is 8,8 times faster with
>>> new DMR streaming API
>>>
>>> PS: Hopefully new DMR streaming API will seamlessly integrate with GWT
>>> (used in our console).
>>>
>>> [1]
>>> https://github.com/ropalka/jboss-dmr/tree/DMR-9/src/main/java/org/jboss/dmr/stream
>>> [2] https://issues.jboss.org/browse/DMR-9
>>> [3]
>>> https://github.com/ropalka/jboss-dmr/blob/DMR-9/src/main/java/org/jboss/dmr/ModelNodeFactory.java
>>> [4] https://github.com/ropalka/jboss-dmr/commits/DMR-9
>>>
>>> Regards,
>>>
>>> --
>>> Richard Opalka
>>> Principal Software Engineer
>>> JBoss by Red Hat
>>> Mobile: +420 731 186 942
>>>
>>>
>>> _______________________________________________
>>> wildfly-dev mailing list
>>> wildfly-dev at lists.jboss.org
>>> https://lists.jboss.org/mailman/listinfo/wildfly-dev
>> _______________________________________________
>> wildfly-dev mailing list
>> wildfly-dev at lists.jboss.org
>> https://lists.jboss.org/mailman/listinfo/wildfly-dev
>>
Rio


More information about the wildfly-dev mailing list