tgnm commented on pull request #1358:
URL: https://github.com/apache/avro/pull/1358#issuecomment-1027198862


   @zcsizmadia I guess the main advantage is that the function call uses a 
factory approach which allows for flexibility when it comes to the lifetime 
management of the `Codec` instance. I like the idea that I can either return a 
new instance or reused it across calls (depending on whether or not the Codec 
implementation supports reusing the instance). This is totally transparent to 
the Avro library.
   
   These approaches are also different when it comes to registrations in that 
the function approach iterates over all resolvers until the first match is 
found. The approach you suggested replaces a previous registration.
   
   From a performance point of view, there's not a lot of meaningful 
differences simply because I don't expect there to be more than one 
registration in practice... the dictionary approach is a bit less space 
efficient but this is negligible.
   
   Btw, I don't think using a concurrent data structure is really justified 
here. I'd expect consumers to first register any resolvers before they actually 
start using it to encode/decode data. Certainly don't expect this to be 
something that occurs dynamically at runtime. 


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


Reply via email to