[ https://issues.apache.org/jira/browse/AVRO-2051?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16090654#comment-16090654 ]
Doug Cutting commented on AVRO-2051: ------------------------------------ This can make building schemas quadratic in the number of properties, no? While for most schemas this is probably not an issue, for some it might significantly impact performance. I think instead we should just bite the bullet and make Schema immutable, eliminating the addProp method altogether. At the same time, we should stop exposing JsonNode in the public API, instead using only Object, as intended in AVRO-1585. > Thread contention accessing JsonProperties props > ------------------------------------------------ > > Key: AVRO-2051 > URL: https://issues.apache.org/jira/browse/AVRO-2051 > Project: Avro > Issue Type: Bug > Components: java > Affects Versions: 1.8.2 > Reporter: Daniel Kulp > > See > https://lists.apache.org/thread.html/dd34ab8439137a81a9de29ad4161f37b17638394cea0806765689976@%3Cuser.avro.apache.org%3E > Basically, the getJsonProp method, being synchronized, is causing thread > contention issues when trying to share schemas between threads. My > proposal (pull request forthcoming) is to treat "props" as an immutable map > and do a copy+add+swap for the addProp method. This will make the addProp > call slower (particularly for large maps of props), but would make the reads > significantly faster as no locking will be needed. -- This message was sent by Atlassian JIRA (v6.4.14#64029)