Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 20 Oct 2000 15:54:24 +0000 (GMT)
From:      Terry Lambert <tlambert@primenet.com>
To:        jgoodman@draper.com (Jason Goodman)
Cc:        freebsd-fs@FreeBSD.ORG, don@calis.blacksun.org
Subject:   Re: journaled file system
Message-ID:  <200010201554.IAA05637@usr06.primenet.com>
In-Reply-To: <4.2.2.20001020100054.00b33e00@imap.draper.com> from "Jason Goodman" at Oct 20, 2000 10:05:40 AM

next in thread | previous in thread | raw e-mail | index | archive | help
> Hi.  I found your email addresses by accident while surfing the
> web.  I am looking for a product for windows NT or windows 2000
> that has the journaled file system feature similar to what Unix
> offers.

NTFS is log structured; for what you are requesting, the type
of FS is irrelevant.  Please see:

	Inside the Windows NT File System
	Helen Custer
	Microsoft Press
	ISBN: 1-55615-660-X
	

> Basically what I need is a product that has an API that would
> allow me to either send an Internet Datagram to a Listener, when
> a file is added to a folder or changed,

You will need to write your own daemon for this.  The NTFS
supports the concept of "Monitors", which is half of what you
are asking for in a product.

Monitors are a generic FS term meaning "tell me when something
changes".  Many systems support Monitors.  Windows and MacOS
have pretty much supported them since the beginning, since if
you add a file to a directory, a file browser with a view open
onto the directory will need to update itself.  The orginal
Windows 3.x series did this by periodically polling the directory
to determine if contents have changed.  The Macintosh approach
was to implement volume change notification, so that if the data
anywhere on a volume changed, then the views onto directories on
that volume would be updated.

Appletalk implements this in their network file system by doing
a poll for the volume modification timestap, once every 11 seconds.

Most Appletalk implementations for UNIX will always state that the
modification time is the current time, causing a network poll.  In
FreeBSD, there is a true volume modification timestamp that can be
used, but of course, the Appletalk servers are user space processes,
and unless they limit volume spanning over mount points on exports,
this quickly degrades back to polling everything (I introduced this
in 1994, when I was working at Novell on NWFS, in support of much
lower network overhead for Appletalk services served by Novell
servers).

In any case, you can get what you want, but you will need to hook
the IFSMgr interface to get your events, or use the Windows API,
if you can find the documentation (it's pretty well hidden, and I
do not have my Windows develeopement system out of mothballs right
now, so I can't "just tell you").

The reason you will need to write your own daemon is because you
want to do datagram notification; since this is inherently lossy
(there is no retransmission and no receipt failure notification),
most people would never implement this or find it useful, except
in very specific applications where the lossy nature of the media
wouldn't effect the integrity of the output of the system as a
whole.

You may also want to check with Veritas, since last I heard, they
has a VXFS for Windows, and they probably document their stuff
as well on NT as they did on UNIX.


> or has an API that would allow me to interact with JDBC in some
> way?

That's really way out in left field.  File system modification
events really have nothing to do with the Java Database connector
cruft.  In general, an FS _can_ be considered to be a very special
purpose database, but you would have a hell of a time wedging FS
semantics into the very small model space that JDBC represents;
JDBC is pretty useless for everything but SQL, so wedging FS
change notifications into JDBC SQL "triggers" is probably a
non-starter as an approach (and yes, I know, some idiots have
built JDBC connectors for LDAP: I maintain they aren't useful,
except for a tiny set of problems, or where there is enough horse
power to brute-force something like an LDAP/SQL synchronization,
and they are too lazy to implement to the JNDI, or have to deal
with a legacy system integration and the short-sighted people
requesting it).

NB: If you were to wedge FS change notifications in somehow, you
sure as heck would not be using datagrams for event delivery!  The
JDBC SQL "trigger" semantics are such that dropping events on the
floor, as datagrams might, wil compromise your whole transaction
model.


PS: Are you sure you aren't really looking for B2Bi software,
such as IBM's MQ-Series or Active Software's offerings (or, to
date myself, USL's Tuxedo)?  If you are going to do a job, you
should probably use the right tools, instead of kludging it.  A
CORBA intterface might be the right approach, if you are insistent.

PPS: Of course, you have only said "how do I get this soloution
which I have already arrived at?", and haven't really told us
the problem you are trying to solve, so there's really no way we
can tell you what is or isn't appropriate technology.

PPPS: Probably you want to reexamine your problem, instead of
assuming the soloution, since there may be other soloutions that
are more natural for the problem.

PPPPS: Or you could just tell us your problem, instead, and ask
for recommendations on a soloution...


					Terry Lambert
					terry@lambert.org
---
Any opinions in this posting are my own and not those of my present
or previous employers.


To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-fs" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200010201554.IAA05637>