On Sat, Feb 9, 2019 at 7:53 PM João Loureiro Junior <[email protected]> wrote:
> The thread dump from jstack at that moment shows something like this for a > "pool-24-thread" that is in RUNNABLE state: > > >>> > "pool-24-thread-24" #358 prio=5 os_prio=0 tid=0x000000000f20c000 > nid=0x2a4c runnable [0x00007f88230d7000] > java.lang.Thread.State: RUNNABLE > at java.lang.Thread.yield(Native Method) > at > com.conversantmedia.util.concurrent.Condition.progressiveYield(Condition.java:68) > at > com.conversantmedia.util.concurrent.AbstractWaitingCondition.await(AbstractWaitingCondition.java:144) > at > com.conversantmedia.util.concurrent.PushPullBlockingQueue.take(PushPullBlockingQueue.java:193) > at > org.geotools.renderer.lite.StreamingRenderer$RenderingBlockingQueue.take(StreamingRenderer.java:3823) > ... > <<< > This is intersting, but a jstack may show a transitory condition, a profiler output would be better. In the previous mail you said ". It seems like that extra CPU is spent by the Oracle JDBC driver calls (as evidenced by Yourkit)", while the disruptor usage is in the renderer and it's independent of the data source. The disruptor dependency was added to avoid a scalability network, but I was playing with very large datasets (millions of records), painting a good bunch of them (heavy multilayer map, OSM like), and with fast data sources (shapefiles/postgis). I could imagine seeing a busy wait in case the data source is very slow, and at the same time, returning very few records to paint. However, a mere 5ms delay does not quite match a "very slow" delay. If you want to experiment, you might look at reverting this commit in gt-render: https://github.com/geotools/geotools/commit/7d508f1016a2a8ce51c42f6785a14625e2edbe26 https://osgeo-org.atlassian.net/browse/GEOT-6100 Or check if there are other configurable waiting modes in the disruptor. If it helps in you case, while knowing that the switch to disruptor helped in another, maybe you could make a PR adding a switch to decide which blocking queue to use depending on a configuration flag (could be a system variable), or maybe there is a configuration of the disruptor that provides the best of both worlds. I don't have working hours to check this futher, but I'm pretty curious, so let me know what you find out! Cheers Andrea == GeoServer Professional Services from the experts! Visit http://goo.gl/it488V for more information. == Ing. Andrea Aime @geowolf Technical Lead GeoSolutions S.A.S. Via di Montramito 3/A 55054 Massarosa (LU) phone: +39 0584 962313 fax: +39 0584 1660272 mob: +39 339 8844549 http://www.geo-solutions.it http://twitter.com/geosolutions_it ------------------------------------------------------- *Con riferimento alla normativa sul trattamento dei dati personali (Reg. UE 2016/679 - Regolamento generale sulla protezione dei dati “GDPR”), si precisa che ogni circostanza inerente alla presente email (il suo contenuto, gli eventuali allegati, etc.) è un dato la cui conoscenza è riservata al/i solo/i destinatario/i indicati dallo scrivente. Se il messaggio Le è giunto per errore, è tenuta/o a cancellarlo, ogni altra operazione è illecita. Le sarei comunque grato se potesse darmene notizia. This email is intended only for the person or entity to which it is addressed and may contain information that is privileged, confidential or otherwise protected from disclosure. We remind that - as provided by European Regulation 2016/679 “GDPR” - copying, dissemination or use of this e-mail or the information herein by anyone other than the intended recipient is prohibited. If you have received this email by mistake, please notify us immediately by telephone or e-mail.*
_______________________________________________ Geoserver-users mailing list Please make sure you read the following two resources before posting to this list: - Earning your support instead of buying it, but Ian Turton: http://www.ianturton.com/talks/foss4g.html#/ - The GeoServer user list posting guidelines: http://geoserver.org/comm/userlist-guidelines.html If you want to request a feature or an improvement, also see this: https://github.com/geoserver/geoserver/wiki/Successfully-requesting-and-integrating-new-features-and-improvements-in-GeoServer [email protected] https://lists.sourceforge.net/lists/listinfo/geoserver-users
