Hi Rini,
first off, sorry for the late feedback on XSDIdRegistry, I just happen to get to testing with large datasets now.
Trying to serve a 10M roads network in GML3 it happens that at about 1M encoded features XSDIdRegistry produces OOM with 512M Heap. And also I don't really see why idExists() and add() performs inside a synchronized block? as far as I can see those methods are not going to be called concurrently (there's a single instance of XSDIdRegistry per encoding process and it's sequential).
Wonder if at least when encoding a SimpleFeature we could avoid the id repeating check (is that a fair enough assumption? unfortunately there's no SimpleFeatureCollection that would make an instanceof check easier, and going back to check if the original source is DataStore instead of the more general DataAccess seems like going too far back in the encoding chain as to easily patch).
And removing the synchronization looks also like a safe move and less a performance penalty?
What others think?
Cheers,
Gabriel
--
Gabriel Roldan
OpenGeo - http://opengeo.org
Expert service straight from the developers.