| A | B | C | D | |
|---|---|---|---|---|
1 | User Story | Estimate | Discussion | Reference |
2 | EUI and IAB Data and Indexes | |||
3 | ||||
4 | As a netaddr developer, I want to extend unit testing to cover EUI and IAB entries with incorrect character encodings. | S | Attempted already, but bit-rotting now that the true nature of the issue was uncovered. | https://github.com/drkjam/netaddr/pull/145 |
5 | As a long-running applicaiton, I want to be able to run for months at a time (possibly upgrading my EUI and IAB indexes over time), and I want the data to remain consistent. | Epic | Epic because there are a number of different ways to go about this. If the data file changes, the index could be regenerated on-the-fly, or re-read from disk in attempt to update it. The simplest thing to do would be to leave the file open, but then the data would become stale over time. But if the file is replaced out from under netaddr, keeping the file open would prevent it from going out of sync with the index. | https://github.com/drkjam/netaddr/issues/146 |
6 | As a consumer of the IEEE index data, I want to be sure the index matches my data. | M | Could generate a checksum or SHA-256 hash for subset of the data file we care about (such as a per-record hash). Could include a preamble in the index that indicates the hash of the entire file, its size, and last date of modiciation. Could check, when seeking, that the seek index is sane (at the beginning of a line?) Should make the code that reads the data file more robust, so it has less chance of throwing an exception if the index doesn't match the data. | |
7 | As a consumer of the IEEE index data, I want the index to be re-read and/or regenerated on-the-fly if the underlying data changes. | S | Depends on knowing that the index matches the data or not. Some corner cases, such as: if we re-read the index file and it's still out of sync with the data file, we then must re-index the file (and keep the results in memory if we don't have permission to update it). | |
8 | As an installation of netaddr using an external source for my IEEE data file, I want to regenerate the index the first time a lookup is attempted, rather than trusting the possibly-stale on-disk index. | S | Could be expensive on an embedded device, but it could made be a runtime option (or made the default behavior if the index is missing, so that the behavior could be - implicitly - intentionally forced). | |
9 | As a long-running application, I want the option to cache IEEE data file descriptors on first use, so that if the data file changes, my application can still access the previous data file (which is presumably - hopefully, verifiably - consistent with the cached index). | S | If combined with the user story above, this is an easy way to get the desired behavior on Debian distributions. |