All of lore.kernel.org
 help / color / mirror / Atom feed
* [Lustre-devel] [Fwd: feed api, rev2]
@ 2008-01-31  6:15 Nathaniel Rutman
  2008-02-01 23:11 ` Andreas Dilger
  0 siblings, 1 reply; 3+ messages in thread
From: Nathaniel Rutman @ 2008-01-31  6:15 UTC (permalink / raw)
  To: lustre-devel


-------------- next part --------------
An embedded message was scrubbed...
From: Nathaniel Rutman <Nathan.Rutman@Sun.COM>
Subject: feed api, rev2
Date: Wed, 30 Jan 2008 16:47:20 -0800
Size: 128189
URL: <http://lists.lustre.org/pipermail/lustre-devel-lustre.org/attachments/20080130/54bdd575/attachment.eml>

^ permalink raw reply	[flat|nested] 3+ messages in thread

* [Lustre-devel] [Fwd: feed api, rev2]
  2008-01-31  6:15 [Lustre-devel] [Fwd: feed api, rev2] Nathaniel Rutman
@ 2008-02-01 23:11 ` Andreas Dilger
  2008-02-04 22:39   ` Nathaniel Rutman
  0 siblings, 1 reply; 3+ messages in thread
From: Andreas Dilger @ 2008-02-01 23:11 UTC (permalink / raw)
  To: lustre-devel

On Jan 30, 2008  22:15 -0800, Nathaniel Rutman wrote:
> hm, I tried to send this before, but it's not showing up in my mailbox.  
> Anyhow, fixed it up a little more...

In general, it would be nicer to export as text for the mailing list
unless there are graphics or something - makes it easier to comment on.

struct feed entry {
     __u32 fe_len;    total record length
     __u32 fe_ttype;   transaction type
     __u64 fe_seq;    local feed sequence number
     __u64 fe_cookie; synchronization cookie (for distributed events)
     __u64 fe_time;   event time, server-local
     __u32 fe_result; return code (0=success)
     void *fe_data;  transaction type-specific struct
}

struct feed_entry_open {
     ll_fid fid;          (see lustre idl.h)
     ll_fid parent_fid;
     nid_t clientnid;
     __u32 fsuid;
     __u32 fsgid;
     __u32 cap;
     __u32 flags;
     __u32 mode;
     __u32 filename_len;
     char *filename;
}

Do you think it makes more sense to add the client nid to the feed_entry
instead of the feed_entry_open?  I'd think the client (or server) that
performed the operation is common to every operation.


For abort_size - I suspect that the default 1000 records is much too small
for practical use.  I'd think some millions of records would be reasonable,
if there are many operations going on, so that a service that died had any
chance of reconnecting before the records are lost.  Alternately, it is
probably safer to specify some timeout (e.g. 1h) instead of a record count.

Of course, it is better if this is specified by the application, but I
suspect the apps won't have a good idea of what an appropriate default
value is, as that is highly dependent upon the filesystem size and usage.


With the change to force the "ONESHOT" behaviour, this hurts the ability
of the userspace process to pipeline operations.  No matter how large a
read the user process does, it will eventually have to finish processing
ALL of the records before it can read any more, or they will be lost on
the next read and any application failure will result in lost records
if they are not completely processed.  I preferred the ability to
explicitly cancel records.

Cheers, Andreas
--
Andreas Dilger
Sr. Staff Engineer, Lustre Group
Sun Microsystems of Canada, Inc.

^ permalink raw reply	[flat|nested] 3+ messages in thread

* [Lustre-devel] [Fwd: feed api, rev2]
  2008-02-01 23:11 ` Andreas Dilger
@ 2008-02-04 22:39   ` Nathaniel Rutman
  0 siblings, 0 replies; 3+ messages in thread
From: Nathaniel Rutman @ 2008-02-04 22:39 UTC (permalink / raw)
  To: lustre-devel

Andreas Dilger wrote:
>
> With the change to force the "ONESHOT" behaviour, this hurts the ability
> of the userspace process to pipeline operations.  No matter how large a
> read the user process does, it will eventually have to finish processing
> ALL of the records before it can read any more, or they will be lost on
> the next read and any application failure will result in lost records
> if they are not completely processed.  I preferred the ability to
> explicitly cancel records.
>   
There are arguments on both sides.   I'd really like to stay away from 
having
multiple cancellation mechanisms though - I think this will be extra 
work and
extra confusion.
With explicit cancel and a regular file we can have multiple readers all 
reading the same audit log,
which is a big plus. (Record would be purged at first cancel.) This adds 
complication
for the users though, which is a minus: they must now a) persistently 
keep track of
their last-processed record ID, b) explicitly cancel records, c) map 
record numbers
to file offsets.  I think c) is a real hassle.
With explicit cancel and a FIFO we have a) and b), but not c), but not 
multiple
readers either.

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2008-02-04 22:39 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2008-01-31  6:15 [Lustre-devel] [Fwd: feed api, rev2] Nathaniel Rutman
2008-02-01 23:11 ` Andreas Dilger
2008-02-04 22:39   ` Nathaniel Rutman

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.