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

Reply via email to