-
Type:
Improvement
-
Status: Open
-
Priority:
Major
-
Resolution: Unresolved
-
Affects Version/s: None
-
Fix Version/s: None
-
Component/s: java
-
Labels:None
Currently GenericData, ReflectData and SpecificData are often treated as singletons, through an instance returned by a static get() method. Because of this, the caches they have must be thread-safe and are also memory leaks.
Increasingly of late, new instances of these are allocated for use by a given DatumReader or DatumWriter. This issue explores whether we can:
- Change the static get() methods to always return new instances, so that each DatumReader and DatumWriter has its own instance. Since DatumReader and DatumWriter are not thread-safe, the thread safety requirement could then be removed from caches, increasing their performance; and
- Change caches to be non-static, to remove potential memory leaks.