[Geoserver-users] (no subject)

Hi,

We’ve just installed JDBCConfig on a large GeoServer deployment with about 40,000 layers. The install web smoothly but we’re seeing some very strange behaviour when we do any updates such as adding layers via the REST API.

All such requests hang the server for around 25 minutes. Turning on the debugging log, it looks like some process is looping over every single layer in the catalog. The output in the log looks like this:

*** LOG SNIPPET ***

2015-10-20 13:18:54 UTC DETAIL: parameters: $1 = ‘15’, $2 = ‘117’, $3 = ‘’, $4 = ‘219’, $5 = ‘219’
2015-10-20 13:18:55 UTC LOG: execute : SELECT now()
2015-10-20 13:18:55 UTC LOG: execute S_2: select blob from object where id = $1
2015-10-20 13:18:55 UTC DETAIL: parameters: $1 = ‘’
2015-10-20 13:18:55 UTC LOG: execute : SELECT now()
2015-10-20 13:18:55 UTC LOG: execute S_11: select id from object where type_id in ($1) AND (
(
oid IN (SELECT oid FROM object_property WHERE property_type IN ($2) AND value = $3) /* [ name = ] /
AND
oid IN (select oid from object_property where property_type in ($4) and value IS NULL) OR oid NOT in (select oid from object_property where property_type in ($5)) /
[workspace.id IS NULL ] /
))
ORDER BY oid limit 2
2015-10-20 13:18:55 UTC DETAIL: parameters: $1 = ‘15’, $2 = ‘117’, $3 = ‘’, $4 = ‘219’, $5 = ‘219’
2015-10-20 13:18:55 UTC LOG: execute : SELECT now()
2015-10-20 13:18:55 UTC LOG: execute S_2: select blob from object where id = $1
2015-10-20 13:18:55 UTC DETAIL: parameters: $1 = ‘’
2015-10-20 13:18:55 UTC LOG: execute : SELECT now()
2015-10-20 13:18:55 UTC LOG: execute S_11: select id from object where type_id in ($1) AND (
(
oid IN (SELECT oid FROM object_property WHERE property_type IN ($2) AND value = $3) /
[ name = ] /
AND
oid IN (select oid from object_property where property_type in ($4) and value IS NULL) OR oid NOT in (select oid from object_property where property_type in ($5)) /
[workspace.id IS NULL ] */
))
ORDER BY oid limit 2

*** LOG SNIPPET ***

If anyone has any ideas about what we may have done wrong or any ideas what might be causing this it would be hugely appreciated. The closest thing I could find to this issue was this: http://comments.gmane.org/gmane.comp.gis.geoserver.user/41076

– Chris

On Tue, Oct 20, 2015 at 6:10 PM, Chris Brown <chris@anonymised.com> wrote:

Hi,

We've just installed JDBCConfig on a large GeoServer deployment with about
40,000 layers. The install web smoothly but we're seeing some very strange
behaviour when we do any updates such as adding layers via the REST API.

All such requests hang the server for around 25 minutes. Turning on the
debugging log, it looks like some process is looping over every single
layer in the catalog. The output in the log looks like this:

If anyone has any ideas about what we may have done wrong or any ideas
what might be causing this it would be hugely appreciated. The closest
thing I could find to this issue was this:
http://comments.gmane.org/gmane.comp.gis.geoserver.user/41076

You're not doing anything wrong, it's just that the core of GeoServer still
has many bits of code that are written
with an in memory catalog in mind, JDBCConfig work included some _examples_
spread out in the code
base that serve as examples of how things should be done to work against a
in dbms catalog,
but the migration is not complete, there are still bits of code here and
there that load everything
there is to perform some in memory check, that could be replaced with a
well written query
loading only the bits that are actually needed.

One year ago we worked on fixing the biggest offenders in the UI and some
core modules,
leaving out the integrated GWC as the biggest outstanding offender.
Guess what, I'm working on a patch to address some of the issues right now,
which might or
might not address what you're seeing, it should be landing on the
development series
next week.

I'm not saying this will remove all "linear scans" that are in the
codebase, but it should help in some cases.
Let me know if you're interested in testing that out, if so I'll ping you
when I commit it.

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 Poggio alle Viti 1187
55054 Massarosa (LU)
Italy
phone: +39 0584 962313
fax: +39 0584 1660272
mob: +39 339 8844549

http://www.geo-solutions.it
http://twitter.com/geosolutions_it

*AVVERTENZE AI SENSI DEL D.Lgs. 196/2003*

Le informazioni contenute in questo messaggio di posta elettronica e/o
nel/i file/s allegato/i sono da considerarsi strettamente riservate. Il
loro utilizzo è consentito esclusivamente al destinatario del messaggio,
per le finalità indicate nel messaggio stesso. Qualora riceviate questo
messaggio senza esserne il destinatario, Vi preghiamo cortesemente di
darcene notizia via e-mail e di procedere alla distruzione del messaggio
stesso, cancellandolo dal Vostro sistema. Conservare il messaggio stesso,
divulgarlo anche in parte, distribuirlo ad altri soggetti, copiarlo, od
utilizzarlo per finalità diverse, costituisce comportamento contrario ai
principi dettati dal D.Lgs. 196/2003.

The information in this message and/or attachments, is intended solely for
the attention and use of the named addressee(s) and may be confidential or
proprietary in nature or covered by the provisions of privacy act
(Legislative Decree June, 30 2003, no.196 - Italy's New Data Protection
Code).Any use not in accord with its purpose, any disclosure, reproduction,
copying, distribution, or either dissemination, either whole or partial, is
strictly forbidden except previous formal approval of the named
addressee(s). If you are not the intended recipient, please contact
immediately the sender by telephone, fax or e-mail and delete the
information in this message that has been received in error. The sender
does not give any warranty or accept liability as the content, accuracy or
completeness of sent messages and accepts no responsibility for changes
made after they were sent or for other risks which arise as a result of
e-mail transmission, viruses, etc.

-------------------------------------------------------

Hi Anrdea,

Sure, I would be happy to give that a try, please let me know once it hits the nightlies. It might take me a few days to test, because to test that volume we need to clone our production server with all the data onto staging which is a big of an exercise.

Cheers,

Chris

···

On 21 October 2015 at 02:22, Andrea Aime <andrea.aime@anonymised.com> wrote:

On Tue, Oct 20, 2015 at 6:10 PM, Chris Brown <chris@anonymised.com> wrote:

Hi,

We’ve just installed JDBCConfig on a large GeoServer deployment with about 40,000 layers. The install web smoothly but we’re seeing some very strange behaviour when we do any updates such as adding layers via the REST API.

All such requests hang the server for around 25 minutes. Turning on the debugging log, it looks like some process is looping over every single layer in the catalog. The output in the log looks like this:

If anyone has any ideas about what we may have done wrong or any ideas what might be causing this it would be hugely appreciated. The closest thing I could find to this issue was this: http://comments.gmane.org/gmane.comp.gis.geoserver.user/41076

You’re not doing anything wrong, it’s just that the core of GeoServer still has many bits of code that are written
with an in memory catalog in mind, JDBCConfig work included some examples spread out in the code
base that serve as examples of how things should be done to work against a in dbms catalog,
but the migration is not complete, there are still bits of code here and there that load everything
there is to perform some in memory check, that could be replaced with a well written query
loading only the bits that are actually needed.

One year ago we worked on fixing the biggest offenders in the UI and some core modules,
leaving out the integrated GWC as the biggest outstanding offender.
Guess what, I’m working on a patch to address some of the issues right now, which might or
might not address what you’re seeing, it should be landing on the development series
next week.

I’m not saying this will remove all “linear scans” that are in the codebase, but it should help in some cases.
Let me know if you’re interested in testing that out, if so I’ll ping you when I commit it.

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 Poggio alle Viti 1187
55054 Massarosa (LU)
Italy
phone: +39 0584 962313
fax: +39 0584 1660272
mob: +39 339 8844549

http://www.geo-solutions.it
http://twitter.com/geosolutions_it

AVVERTENZE AI SENSI DEL D.Lgs. 196/2003

Le informazioni contenute in questo messaggio di posta elettronica e/o nel/i file/s allegato/i sono da considerarsi strettamente riservate. Il loro utilizzo è consentito esclusivamente al destinatario del messaggio, per le finalità indicate nel messaggio stesso. Qualora riceviate questo messaggio senza esserne il destinatario, Vi preghiamo cortesemente di darcene notizia via e-mail e di procedere alla distruzione del messaggio stesso, cancellandolo dal Vostro sistema. Conservare il messaggio stesso, divulgarlo anche in parte, distribuirlo ad altri soggetti, copiarlo, od utilizzarlo per finalità diverse, costituisce comportamento contrario ai principi dettati dal D.Lgs. 196/2003.

The information in this message and/or attachments, is intended solely for the attention and use of the named addressee(s) and may be confidential or proprietary in nature or covered by the provisions of privacy act (Legislative Decree June, 30 2003, no.196 - Italy’s New Data Protection Code).Any use not in accord with its purpose, any disclosure, reproduction, copying, distribution, or either dissemination, either whole or partial, is strictly forbidden except previous formal approval of the named addressee(s). If you are not the intended recipient, please contact immediately the sender by telephone, fax or e-mail and delete the information in this message that has been received in error. The sender does not give any warranty or accept liability as the content, accuracy or completeness of sent messages and accepts no responsibility for changes made after they were sent or for other risks which arise as a result of e-mail transmission, viruses, etc.



Chris Brown

MangoMap

Hi Chris,
the GWC/JDBCConfig improvements just landed in nightly builds, if you want to try them out look here:

http://ares.boundlessgeo.com/geoserver/master/

http://ares.boundlessgeo.com/geoserver/2.8.x/

http://ares.boundlessgeo.com/geoserver/2.7.x/

Let us know how that goes

Cheers
Andrea

···

On Thu, Oct 22, 2015 at 8:55 AM, Chris Brown <chris@anonymised.com0…> wrote:

Hi Anrdea,

Sure, I would be happy to give that a try, please let me know once it hits the nightlies. It might take me a few days to test, because to test that volume we need to clone our production server with all the data onto staging which is a big of an exercise.

Cheers,

Chris

On 21 October 2015 at 02:22, Andrea Aime <andrea.aime@anonymised.com> wrote:


Chris Brown

MangoMap

On Tue, Oct 20, 2015 at 6:10 PM, Chris Brown <chris@anonymised.com> wrote:

Hi,

We’ve just installed JDBCConfig on a large GeoServer deployment with about 40,000 layers. The install web smoothly but we’re seeing some very strange behaviour when we do any updates such as adding layers via the REST API.

All such requests hang the server for around 25 minutes. Turning on the debugging log, it looks like some process is looping over every single layer in the catalog. The output in the log looks like this:

If anyone has any ideas about what we may have done wrong or any ideas what might be causing this it would be hugely appreciated. The closest thing I could find to this issue was this: http://comments.gmane.org/gmane.comp.gis.geoserver.user/41076

You’re not doing anything wrong, it’s just that the core of GeoServer still has many bits of code that are written
with an in memory catalog in mind, JDBCConfig work included some examples spread out in the code
base that serve as examples of how things should be done to work against a in dbms catalog,
but the migration is not complete, there are still bits of code here and there that load everything
there is to perform some in memory check, that could be replaced with a well written query
loading only the bits that are actually needed.

One year ago we worked on fixing the biggest offenders in the UI and some core modules,
leaving out the integrated GWC as the biggest outstanding offender.
Guess what, I’m working on a patch to address some of the issues right now, which might or
might not address what you’re seeing, it should be landing on the development series
next week.

I’m not saying this will remove all “linear scans” that are in the codebase, but it should help in some cases.
Let me know if you’re interested in testing that out, if so I’ll ping you when I commit it.

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 Poggio alle Viti 1187
55054 Massarosa (LU)
Italy
phone: +39 0584 962313
fax: +39 0584 1660272
mob: +39 339 8844549

http://www.geo-solutions.it
http://twitter.com/geosolutions_it

AVVERTENZE AI SENSI DEL D.Lgs. 196/2003

Le informazioni contenute in questo messaggio di posta elettronica e/o nel/i file/s allegato/i sono da considerarsi strettamente riservate. Il loro utilizzo è consentito esclusivamente al destinatario del messaggio, per le finalità indicate nel messaggio stesso. Qualora riceviate questo messaggio senza esserne il destinatario, Vi preghiamo cortesemente di darcene notizia via e-mail e di procedere alla distruzione del messaggio stesso, cancellandolo dal Vostro sistema. Conservare il messaggio stesso, divulgarlo anche in parte, distribuirlo ad altri soggetti, copiarlo, od utilizzarlo per finalità diverse, costituisce comportamento contrario ai principi dettati dal D.Lgs. 196/2003.

The information in this message and/or attachments, is intended solely for the attention and use of the named addressee(s) and may be confidential or proprietary in nature or covered by the provisions of privacy act (Legislative Decree June, 30 2003, no.196 - Italy’s New Data Protection Code).Any use not in accord with its purpose, any disclosure, reproduction, copying, distribution, or either dissemination, either whole or partial, is strictly forbidden except previous formal approval of the named addressee(s). If you are not the intended recipient, please contact immediately the sender by telephone, fax or e-mail and delete the information in this message that has been received in error. The sender does not give any warranty or accept liability as the content, accuracy or completeness of sent messages and accepts no responsibility for changes made after they were sent or for other risks which arise as a result of e-mail transmission, viruses, etc.


==
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 Poggio alle Viti 1187
55054 Massarosa (LU)
Italy
phone: +39 0584 962313
fax: +39 0584 1660272
mob: +39 339 8844549

http://www.geo-solutions.it
http://twitter.com/geosolutions_it

AVVERTENZE AI SENSI DEL D.Lgs. 196/2003

Le informazioni contenute in questo messaggio di posta elettronica e/o nel/i file/s allegato/i sono da considerarsi strettamente riservate. Il loro utilizzo è consentito esclusivamente al destinatario del messaggio, per le finalità indicate nel messaggio stesso. Qualora riceviate questo messaggio senza esserne il destinatario, Vi preghiamo cortesemente di darcene notizia via e-mail e di procedere alla distruzione del messaggio stesso, cancellandolo dal Vostro sistema. Conservare il messaggio stesso, divulgarlo anche in parte, distribuirlo ad altri soggetti, copiarlo, od utilizzarlo per finalità diverse, costituisce comportamento contrario ai principi dettati dal D.Lgs. 196/2003.

The information in this message and/or attachments, is intended solely for the attention and use of the named addressee(s) and may be confidential or proprietary in nature or covered by the provisions of privacy act (Legislative Decree June, 30 2003, no.196 - Italy’s New Data Protection Code).Any use not in accord with its purpose, any disclosure, reproduction, copying, distribution, or either dissemination, either whole or partial, is strictly forbidden except previous formal approval of the named addressee(s). If you are not the intended recipient, please contact immediately the sender by telephone, fax or e-mail and delete the information in this message that has been received in error. The sender does not give any warranty or accept liability as the content, accuracy or completeness of sent messages and accepts no responsibility for changes made after they were sent or for other risks which arise as a result of e-mail transmission, viruses, etc.