GeoWebCache усекает все плитки, если квота диска превышена - PullRequest
1 голос
/ 09 февраля 2020

Я реализовал веб-приложение, использующее GeoServer для предоставления карт листов. Чтобы применить стратегию кэширования, я включил встроенный GeoWebCache и установил страницу листов в базе данных PostgreSQL. Дисковая квота установлена ​​в 5 МБ, и LFU подходит для проверки поведения усечения при превышении квоты. Проблема проявляется, когда объемы кэширования превышают 5 МБ, и GeoWebCahe удаляет все плитки, не учитывая «частоту_использования» каждой плитки. Это ожидаемое поведение, потому что я думаю, что он должен удалить наименее используемые плитки в первую очередь.

<!-- geowebcache-diskquota.xml -->

<gwcQuotaConfiguration>
  <enabled>true</enabled>
  <cacheCleanUpFrequency>10</cacheCleanUpFrequency>
  <cacheCleanUpUnits>SECONDS</cacheCleanUpUnits>
  <maxConcurrentCleanUps>2</maxConcurrentCleanUps>
  <globalExpirationPolicyName>LFU</globalExpirationPolicyName>
  <globalQuota>
    <value>5</value>
    <units>MiB</units>
  </globalQuota>
  <quotaStore>JDBC</quotaStore>
</gwcQuotaConfiguration>

и файл geowebcache-diskquota-jdb c. xml:

<gwcJdbcConfiguration>
  <dialect>PostgreSQL</dialect>
  <JNDISource>java:comp/env/jdbc/gwc</JNDISource>
  <connectionPool>
    <driver>org.postgresql.Driver</driver>
    <url>jdbc:postgresql://localhost:5432/gwc</url>
    <username>postgres</username>
    <password></password>
    <minConnections>1</minConnections>
    <maxConnections>10</maxConnections>
    <connectionTimeout>10000</connectionTimeout>
    <maxOpenPreparedStatements>50</maxOpenPreparedStatements>
  </connectionPool>
</gwcJdbcConfiguration>

1 Ответ

1 голос
/ 09 февраля 2020

Механизм дисковой квоты отслеживает не каждую отдельную плитку, а «страницы листов», группы листов, статистика которых отслеживается как единое целое, чтобы уменьшить размер базы данных учета.

Я не знаю подробностей реализации, чтобы сказать вам, насколько велика страница плитки, но для кэша плиток, который потенциально составляет сотни гигабайт, я не удивлюсь, если минимальное отслеживание Устройство составляет более 5 МБ. В этом случае весьма вероятно удаление всех листов, доступных в квоте 5 МБ.

...