如果超出磁盘配额,GeoWebCache 会截断所有切片
GeoWebCache truncates all tiles if disk quota exceeded
我已经实现了一个使用 GeoServer 提供瓦片地图的网络应用程序。为了应用缓存策略,我启用了嵌入式 GeoWebCache 并在 PostgreSQL 数据库中设置了平铺页面。磁盘配额设置为 5 MB 和 LFU 方法来测试超过配额限制时的截断行为。当缓存卷超过 5 MB 并且 GeoWebCahe 删除所有切片而不考虑每个切片的 "frequency_of_use" 时,就会显示该问题。这是预期的行为吗,因为我认为它应该首先删除最少使用的图块。
<!-- 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-jdbc.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>
磁盘配额机制不跟踪每个单独的图块,而是"tile pages",统计信息作为一个单元跟踪的图块组,以减少记帐数据库的大小。
我不知道具体的实现细节,无法告诉您瓦片页面有多大,但是对于可能有数百 GB 的瓦片缓存,如果最小跟踪单元我不会感到惊讶大于 5MB。如果是这样,那么很可能会删除 5MB 配额中所有可用的图块。
我已经实现了一个使用 GeoServer 提供瓦片地图的网络应用程序。为了应用缓存策略,我启用了嵌入式 GeoWebCache 并在 PostgreSQL 数据库中设置了平铺页面。磁盘配额设置为 5 MB 和 LFU 方法来测试超过配额限制时的截断行为。当缓存卷超过 5 MB 并且 GeoWebCahe 删除所有切片而不考虑每个切片的 "frequency_of_use" 时,就会显示该问题。这是预期的行为吗,因为我认为它应该首先删除最少使用的图块。
<!-- 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-jdbc.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>
磁盘配额机制不跟踪每个单独的图块,而是"tile pages",统计信息作为一个单元跟踪的图块组,以减少记帐数据库的大小。
我不知道具体的实现细节,无法告诉您瓦片页面有多大,但是对于可能有数百 GB 的瓦片缓存,如果最小跟踪单元我不会感到惊讶大于 5MB。如果是这样,那么很可能会删除 5MB 配额中所有可用的图块。