On Wed, Mar 10, 2021 at 5:09 PM 'Kireet Reddy' via jackson-user
<[email protected]> wrote:
>
> This explanation would make a lot of sense. I tested with some of our data 
> where the keys are fixed, so it would explain why our benchmarks showed the 
> expected speedup, but not all of our data did in production. Also you can 
> ignore my time of day comment, I think we happened to have a code deployment 
> around that time which would better explain the temporary slowdown.
>
> Thanks so much for your help and being such a great steward of this project!

You are welcome! This is an interesting problem to tackle (Smile and
CBOR backends are something I like working on more than many other
components), and I created 2 issues wrt ability (or lack thereof) to
turn off canonicalization:

* https://github.com/FasterXML/jackson-dataformats-binary/issues/252 (smile)
* https://github.com/FasterXML/jackson-dataformats-binary/issues/253 (cbor)

-+ Tatu +-


>
> On Wed, Mar 10, 2021 at 4:52 PM Tatu Saloranta <[email protected]> wrote:
>>
>> On Wed, Mar 10, 2021 at 12:59 PM Tatu Saloranta <[email protected]> wrote:
>> >
>> > On Wed, Mar 10, 2021 at 12:26 PM 'Kireet Reddy' via jackson-user
>> > <[email protected]> wrote:
>>
>> Ok, so looking at this specifically:
>>
>> ...
>> > >> > However when I actually enabled it for all our data, we noticed 
>> > >> > things actually running slower. It seems one of our objects in 
>> > >> > particular got about 10% slower. I captured a java flight recording 
>> > >> > and it appears the hotspot is in 
>> > >> > ByteQuadsCanonicalizer._verifySharing (the Arrays.copyOf operations). 
>> > >> > I also enabled the afterburner module -- not sure if that would have 
>> > >> > any adverse impacts.
>> ....
>>
>> It is a bit odd. Copy operation would occur only if the table is
>> shared and presumably would be a fairly big symbol table for it to
>> take time
>> (there is no synchronization in there). But if CANONICALIZATION was
>> disabled, it should not happen.
>>
>> But now that I am looking through bootstrapping, it looks like this
>> setting only affects JsonParsers but not Smile or CBOR parsers.
>> So I don't think disabling here has any effect. Given this it sounds
>> like your content does get a lot of unique keys and this is why
>> every time a copy is likely made.
>>
>> I think this may explain what you are seeing, assuming documents have
>> a big number of distinct unique keys: with JSON, canonicalization
>> being disabled, there is more constant steady overhead. With Smile
>> this is not the case at the moment, and for larger content negative
>> impact probably grows with the size of document (which has a larger
>> set of unique names?).
>>
>> Ideally Smile and CBOR parsers would allow disabling of
>> canonicalization. I think I will file 2 issues; while not trivial to
>> implement
>> (for JSON things are a bit easier as it can fall back to using
>> `Writer`-based parser), should be relatively straight-forward.
>> Downside is that this probably has to go in 2.13 and not in 2.12
>> patch, depending on how intrusive changes are.
>>
>> So it looks like I got some work on my plate. :)
>>
>> -+ Tatu +-
>>
>> --
>> You received this message because you are subscribed to a topic in the 
>> Google Groups "jackson-user" group.
>> To unsubscribe from this topic, visit 
>> https://groups.google.com/d/topic/jackson-user/azIcJNCUEkE/unsubscribe.
>> To unsubscribe from this group and all its topics, send an email to 
>> [email protected].
>> To view this discussion on the web visit 
>> https://groups.google.com/d/msgid/jackson-user/CAL4a10ha9J0oUXz7D5ekc%3D%3DtdzeP0W91b70xmheEDM4MOKx%3DQw%40mail.gmail.com.
>
> --
> You received this message because you are subscribed to the Google Groups 
> "jackson-user" group.
> To unsubscribe from this group and stop receiving emails from it, send an 
> email to [email protected].
> To view this discussion on the web visit 
> https://groups.google.com/d/msgid/jackson-user/CACkKG4g%2BY0qSLdaXySbjEneDQqCgNZ2MFYJx%3DJrGMubsvqC96g%40mail.gmail.com.

-- 
You received this message because you are subscribed to the Google Groups 
"jackson-user" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/jackson-user/CAL4a10iz%2B-HthB5G28oRaEuQWhk79%2B87E7Ui7gXo2WDW-h-aLg%40mail.gmail.com.

Reply via email to