Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/heroku/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/apache-flex/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Caching 如果超过磁盘配额,GeoWebCache将截断所有磁贴_Caching_Geoserver - Fatal编程技术网

Caching 如果超过磁盘配额,GeoWebCache将截断所有磁贴

Caching 如果超过磁盘配额,GeoWebCache将截断所有磁贴,caching,geoserver,Caching,Geoserver,我已经使用GeoServer实现了一个web应用程序来提供平铺地图。为了应用缓存策略,我在PostgreSQL数据库中启用了嵌入式GeoWebCache并设置了平铺页面。磁盘配额设置为5 MB,LFU方法用于测试配额限制超过时的截断行为。当缓存卷超过5 MB且GeoWebCahe删除所有磁贴而不考虑每个磁贴的“使用频率”时,问题就会显示出来。这是预期的行为吗?因为我认为它应该首先移除最少使用的瓷砖 <!-- geowebcache-diskquota.xml --> <gwc

我已经使用GeoServer实现了一个web应用程序来提供平铺地图。为了应用缓存策略,我在PostgreSQL数据库中启用了嵌入式GeoWebCache并设置了平铺页面。磁盘配额设置为5 MB,LFU方法用于测试配额限制超过时的截断行为。当缓存卷超过5 MB且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>

真的
10
秒
2.
LFU
5.
MiB
JDBC
以及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>

PostgreSQL
java:comp/env/jdbc/gwc
org.postgresql.Driver
jdbc:postgresql://localhost:5432/gwc
博士后
1.
10
10000
50

磁盘配额机制不跟踪每个磁贴,而是跟踪“磁贴页面”,即作为一个单元跟踪其统计信息的磁贴组,以减少记帐数据库的大小


我不知道实现的细节,甚至不知道一个磁贴页面有多大,但是对于一个可能是数百GB的磁贴缓存,如果最小跟踪单元超过5MB,我也不会感到惊讶。如果是这样,那么很可能会删除5MB配额中的所有可用磁贴。

谢谢Andrea。如果我没有弄错的话,您的意思是删除磁贴的缓冲大小大于5MB,应该在1GB>中探讨该行为。是的,请使用更大的大小进行测试。我会从100MB开始,然后再增加。