Hi all,
I bring very good news.
Todays I was thinking about the issue reported by GeoUser, the WFS
slowness, and also about one Chris blog, both reporting to the information that we do serve GML at 4MB/s.
And I was think, that can't be right, we should be faster than that,
4MB/s is slow, but I could not pinpoint the issue. Well, today I did.
I tried the SPEED strategy, and boom, Geoserver was going 8+MB/s.
The default strategy was twice as slow... so I profiled, and located
the issue: our partially buffering stream wasn't implementing the
write(byte, int, int) method, which is key to good performance,
and only provided the single byte method.
Now, this difference is big, but we're late in the release cycle.
So, I implemented a new partial buffer strategy, partial-buffer2,
that can be configured in web.xml, but it's not the default. This will
allow users to try the new strategy out, but fall back on the safe and
tested partial-buffer one in case of trouble.
On, in case you needed more reasons to dump jdk 1.4 and try
out jdk 1.6, this is the serving rate with the new partial buffer
strategy with three different jdks:
* jdk 1.4.2_12: 4.1 MB/s
* jdk 1.5.0_09: 8.8 MB/s (that's the one I used in prelim tests).
* jkd 1.6.0 : 10.7 MB/s
Oh, btw, don't expect the same improvement with WMS serving, though
the improved buffer strategy will do some good to WMS too (sorry
I don't have raw numbers).
Bye bye
Andrea