Я реализовал веб-приложение, использующее 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>