[GRASS5] Raster directory structure, comments

Glynn Clements glynn at gclements.plus.com
Fri Apr 14 05:36:48 EDT 2006


Raymond Burns wrote:

> I beleive there is an argument against the directory structure
> pondered in the "features needed for 6.2" thread.
> 
> <mapset>/raster/<mapname>/filetypes
> 
> VS
> 
> <mapset>/raster/<filetypes>/<mapname>
> 
> There does appear to be a limitation on the number of subdirectories
> a directory supports, whereas, there appears to be no realistic limit
> on the number of files a directory can contain.
> 
> No I haven't dug into the code to see where it is but, currently grass
> is limited (by the operating system) to 32000 raster maps per mapset
> due to some hard limit on my systems

Unix OSes impose a limit on the number of hard links to an inode. Each
subdirectory has a ".." entry which adds an extra hard link to the
parent.

You can determine the limit for a given filesystem using:

	pathconf(path, _PC_LINK_MAX)

where "path" is any directory within that filesystem.

> which precludes making a
> subdirectory in cell_misc for map 32001. At the same time I can add
> (touch) additional files in fcell, cellhd, cell, cats ...
> 
> I realize 32000 is not a significant limit for most uses of grass
> today. As we work with more 3D, volume, animation and modeling it will
> probably become more of an issue.

I don't consider that we need to support tens of thousands of maps in
a single mapset.

Apart from the hard limit on the directory's link count, having that
many entries in a directory will adversely affect performance on
filesystems where directories are stored as unsorted lists (requiring
a linear search to look up a filename). It will have an even worse
effect upon the performance of anything which wants a sorted list of
maps.

Consequently, most people dealing with that many maps will probably
want to split the data into multiple mapsets.

-- 
Glynn Clements <glynn at gclements.plus.com>




More information about the grass-dev mailing list