Re: databases: storing pages in / web front ends to

In a message dated 96-01-19 14:36:19 EST, www-rdb@w3.org writes:

>I currently know of two products that let you do remote authoring.
>One is Navisoft's Naviserver, which is a particular HTTP server that
>is built using a database system.  

NaviServer supports dynamic saving (using the HTTP PUT method) and also has
an integrated dbms, but these two things are independant. NaviPress,
NaviSoft's WYSIWYG HTML authoring tool does the PUT, and I know there's
another authoring tool made in Europe that does a PUT.  We (we being
NaviSoft) are trying to convince Vermeer to support PUT also.

>So, anyway, you don't actually need to use a DBMS to do remote
>authoring, it would appear.

NaviServer still stores all the pages in the file system so it's fast to
access, but it will also maintain a full text index of a site in the
database.  And it will store old versions in the database as well.  The index
and archives are updated dynamically on PUT's. So the database is nice, but
not required.

Incidentally, the database bundled with NaviServer is Illustra, and
NaviServer will dynamically generate search, entry, and update forms for any
tables in the database. And the NaviServer C and Tcl API's include lots of
primitives for accessing the database. By using these API's, you can avoid
opening and closing the database and get a big performance gain.  On Windows
NT, the API's and the auto-generated forms work for any ODBC database. We
should have a beta version of Sybase support very soon.

For more information on NaviServer and NaviPress, check out
http://info.navisoft.com or send me mail (doug@navisoft.com) and for
information on Illustra, see http://www.illustra.com.

>What if two people write "at once"?  With Navisoft's DBMS, presumably
>it serializes the accesses, and so one of the writes happens and the
>the other one overwrites it.  With Vermeer, they might have to worry
>about what happens if two concurrent threads/processes within the HTTP
>server both write the same thing at once.  The way this works depends
>on the underlying operating system.  I don't know whether the Vermeer
>software takes the trouble to worry about this case.  If it does,
>though, it's probably not to hard to do some appropriate set of system
>calls to serialize two file writes.  Most operating systems have some
>way of doing this (e.g. a "lock" feature in the file system, or atomic
>renames, or something).

Currently NaviServer doesn't do any locking so you could in theory have two
people saving at the same time. Even though we haven't seen this problem in
the field, we're planning on supporting HTTP LOCK and UNLOCK methods in our
next release. Of course we'll also try and get these methods into the
official HTTP spec.

doug (@navisoft.com)