了解紧凑型缓存存储格式

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

紧凑型缓存的工作原理

紧凑型缓存将多个切片同时分组到一个大文件(称为包)中。一个包最多包含 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 及更早版本中的唯一格式。

6/13/2014