Adrian explores libexacct

Adrian Cockroft has been exploring the extended accounting streams available in Solaris. By blogging about his exploration, Adrian is sharing his cognitive process—highly valuable to, say, the designer looking to improve a software subsystem for developers. I was amused by the following frustration-induced comment

The design is so abstract that it seems that reading meaningful data out of the log file is some obscure side effect of the code. You can read the data, but there is no guarantee that any specific item of data will be present. The accounting system has various options to send more or less data to the file, so it needs to be flexible, but the important thing is the meaning of the data being logged. I care about the semantic and informational content of the data source. What I get from exacct is “there are some tagged typed objects in this file”. I can’t consume the data without making assumptions about it, and the API doesn’t embody those assumptions. because some of these drawbacks were design goals: exacct is a general purpose, variable-length, grouped binary record format affording traversal in either direction through the file. I think Adrian’s criticism is valid (except that it was always meant for reading and writing data) if I read it as you haven’t written the accounting data handling layer yet.

While I wait for some time to think about how we might do that, I’ve filed

6260320 *wracct* should have some form of "for all objects" support
so we can fix at least one annoyance.