Skip To Content

了解紧凑型缓存存储格式

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

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

紧凑型缓存的工作原理

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

创建缓存时,可能会在缓存文件夹中看到临时 .lock 文件和 .done 文件。.lock 文件使得 ArcGIS Server 能够追踪当前所创建的包;存在 .lock 文件并不代表客户端无法访问包。同样,.done 文件使得 ArcGIS Server 能够追踪已经创建的包。缓存工作完成后,所有的 .lock.done 文件都会被删除。

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

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

紧凑型缓存的更新原理

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

从包中获取切片

ArcGIS 客户端(包括 Web API)可读取紧凑缓存格式所生成的包文件。Web 客户端会请求 ArcGIS Server 站点提供切片的具体级别、行和列。ArcGIS Server 收到请求后会返回包中的相应切片。

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

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

ArcGIS 10.3 中改进了紧凑缓存存储格式,从而提高了使用缓存地图和影像服务时的性能。所做改进也减少了缓存目录中所创建的文件数。这是通过将切片索引信息(.bundlx 文件)包含到 .bundle 文件中而实现。

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

如果您希望改善通过 10.3 之前版本创建的缓存性能,则需使用升级地图服务器缓存存储格式工具升级缓存。升级缓存不会创建新切片;而是对文件进行重组,使其与改进后的格式相符。要了解该工具的使用方法,请访问 ArcMap 服务器工具箱中的工具帮助。

注:

升级地图服务器缓存存储格式工具在 ArcGIS Pro 中不可用。 但可使用 ArcMap 或随 ArcGIS Server 一同安装的 Python。

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

另请注意,导出地图服务器缓存工具仍使用先前的紧凑缓存存储格式,并不会包括上面提及的性能改善。