[GRASSLIST:3161] Re: [GRASS5] Re: Grass GUI

Eric G. Miller egm2 at jps.net
Sun Feb 17 21:05:21 EST 2002


On Mon, Feb 18, 2002 at 01:06:14AM +0000, Glynn Clements wrote:
[snip]
> It isn't meant to be an alternative; the "one session per user"
> limitation should be removed regardless. The "one session per mapset"
> issue is harder to resolve. It would be easier if the lowest level of
> the directory layout were switched, so that each map was a
> self-contained directory. I.e. instead of:
> 
> 	cell/foo
> 	cellhd/foo
> 	cell_misc/foo/*
> 
> 	cell/bar
> 	cellhd/bar
> 	cell_misc/bar/*
> 
> you would have:
> 
> 	foo/cell
> 	foo/cellhd
> 	foo/cell_misc/*
> 
> 	bar/cell
> 	bar/cellhd
> 	bar/cell_misc/*

Such a layout would be similar to an Arc/Info workspace, 'cept we
don't have an "info" directory.  I still prefer the idea that
all the data sets in a LOCATION are in the same coordinate
system.  A while back, we talked about moving things around like:

  GISDBASE/LOCATION/MAPSET/
       vector/
          foo/
	  bar/
	  baz/
       raster/
          aaa/
	  bbb/
	  ccc/
       sites/
          ddd/
	  eee/
	  fff/

with some other possible entries.  Then, within a given mapset,
you could lock vector/foo either via open() calls or via
a lockfile mechanism.  Using open() could lead to races, but
using lockfiles leads to potentially stale files blocking
access.  Perhaps there are other/better ways...


> There's also the fact that the current directory hierarchy of
> $GISDBASE/$LOCATION_NAME/$MAPSET requires that $GISDBASE is
> world-writable (so that users can create new locations) and that each
> location directory is also world-writable (so that users can create
> new mapsets).

Yea, this is nonsense.  Part of this has to do with the colr2/
thingy.  Anyway, I'd think we could scrap the mapset concept
altogether using a GISDBASE/LOCATION/<feature class>/<feature>/
type layout.  But, that'd be fairly radical.

> BTW, Eric's change to the monitor socket path potentially makes
> matters worse for web applications. Whereas monitor names were tied to
> a mapset (i.e. you used to be able to have multiple instances of
> "d.mon start=PNG", provided that each had a different mapset), now
> they are tied to a UID. So now you would have to "allocate" monitor
> names.

One of the problems that change meant to overcome was the limitation
on path length for UNIX sockets.  It could be modified if there
was a session id mechanism.  It might be more flexible if we had
a monitor name method anyways.  Consider, that with sockets, that
the number of X monitors is only an arbitrary restriction now.
It might be better to have d.mon driver=PNG name="/path/to/file"
which could eliminate one environment variable.  File based
drivers would take "name" to be a file path, whereas interactive
monitors would take it as their window name.  I dunno, think that
need some more thought...

-- 
Eric G. Miller <egm2 at jps.net>



More information about the grass-dev mailing list