On May 3, 2006, at 15:21, eric kustarz wrote:
There's basically two writes that need to happen: one for time and one
for the subcommand string. The kernel just needs to make sure if a
write completes, the data is parseable (has a delimiter). Its then up
to the userland parser (zpool history) to figure out if there are
incomplete records, but the kernel guarantees it is parseable. The
userland command only prints out complete records, nothing partial.
So the userland command needs to handle if say for one "record" that
the time entry was written but the subcommand was not.
I'm not clear on how the parser knows enough to do that. I believe I
saw that a record looked like
\0<arbitrary number of NUL-terminated strings>
If this is correct, how can the parser know if a string (or part of
one) got dropped?
I think this might be a case where a structured record (like the
compact XML suggestion made earlier) would help. At least having
distinguished "start" and "end" markers (whether they be one byte each,
or XML constructs) for a record looks necessary to me.
--Ed
_______________________________________________
zfs-discuss mailing list
zfs-discuss@opensolaris.org
http://mail.opensolaris.org/mailman/listinfo/zfs-discuss