Skip To Content

了解紧凑型缓存存储格式

紧凑缓存存储格式用于将切片分组到大文件中,而不是以单独的文件形式存储切片。分组存储切片具有以下优势:

  • 由于减少了文件数,因此更易于复制缓存。
  • 减少了缓存所占的总磁盘空间。
  • 由于在切片创建过程中减少了磁盘 I/O,因此切片的创建速度通常会更快。
  • 由于降低了网络流量,因此采用多机部署方式创建切片时可提高可伸缩性。

紧凑型缓存的工作原理

紧凑型缓存将多个切片同时分组到一个大文件(称为包)中。一个包最多包含 16,384 个切片。因此,一个缓存包含数十或数百个文件,而不是数千或数百万个文件。如果查看磁盘上的紧凑型缓存,可以看到扩展名为 .bundle 的包文件。还会看到一些扩展名为 .bundlx 的相应索引文件。

创建缓存时,可能会在缓存文件夹中看到 .lock 文件和 .done 文件。.lock 文件是服务器用来追踪当前所创建的包的方法;存在 .lock 文件并不代表客户端无法访问包。相似地,.done 文件是服务器用来了解已完成的包的方法。缓存工作完成后,所有的 .lock 和 .done 文件都会被删除。

小的缓存在每个级别可以只有一个包。更常见的情况是,包边界与某个地理部分相交,这样,一个级别就会有多个包(虽然在地理部分很小时,包可能不会包含所有的 16,000 个切片)。大的缓存通常会包含多个包。

包的边界由切片方案的原点确定,并且不可调整。以下内容仅供参考:在邻近地区/街道级别比例为 1:4096 时,一个完整的包大约覆盖美国东部一个中等规模县的面积。

旧版本:

在 10.0 及更早版本中,如果您使用小于包的要素对缓存作业的边界进行定义,您将发现 CPU 资源未得到充分利用。在 10.1 以及更高版本中,软件在有关如何将 CPU 资源分配给缓存作业方面更加智能,并且定义缓存作业的要素的地理大小应该不会影响 CPU 利用率。

紧凑型缓存的更新原理

在更新紧凑型缓存中的切片时,并不会重新创建整个包。而是更新 4096 x 4096 像素(无抗锯齿功能)或 2048 x 2048 像素(带抗锯齿功能)的细粒度面积。在 ArcGIS 文档中,有时将此面积单位称为超级切片。

从包中获取切片

ArcGIS 客户端(包括 Web API)知道如何读取紧凑缓存格式所生成的包文件。在 Web 环境下,客户端会请求服务器提供切片的具体级别、行和列。服务器收到请求后会返回包中的相应切片。

Esri 并未公开发表包的内部架构。如果您自己编写了逻辑代码,用于从虚拟目录提取切片,则应继续使用松散格式,此格式以单个文件形式存储每个切片,并且也是 ArcGIS Server 9.3.1 及更早版本中的唯一格式。

更新紧凑型缓存以充分利用性能改善

从 10.3 版本开始,对紧凑缓存存储格式进行了改进,以提高使用缓存地图和影像服务时的性能。改进也减少了在缓存目录中创建的文件数。此目标通过包含 .bundle 文件中的切片索引信息(.bundle 文件)实现。

使用 ArcGIS 10.3 for Server(或更高版本)创建的新紧凑型缓存将自动地充分利用性能改善。升级到 10.3 或更高版本后,包含在较早版本中生成的紧凑缓存的服务将继续正常运行。您可继续使用服务器缓存工具来维护这些缓存。

如果希望现有缓存应用性能改善,则需使用“升级地图服务器缓存存储格式”工具升级缓存。升级缓存不会创建新切片;而是对文件进行重组,使其与改进格式相符。要了解该工具的使用方法,请访问 ArcGIS for Desktop 服务器工具箱中的工具帮助。

注:

“升级地图服务器缓存存储格式”工具在 ArcGIS Pro 中不可用。请改为使用 ArcGIS for Desktop。

改进后的紧凑缓存存储格式无法向后兼容较早版本的 ArcGIS。例如,使用版本 10.3 或更高版本创建或升级的紧凑缓存无法在此软件的较早版本中传输和使用。改进后的紧凑缓存存储格式应始终与某项服务相关联。

注:

使用“导出地图服务器缓存”工具导出缓存将继续使用先前的紧凑缓存存储格式,它不包括上述提及的性能改善。