]> ruderich.org/simon Gitweb - nsscash/nsscash.git/blob - TODO.adoc
.github: update upstream actions to latest version
[nsscash/nsscash.git] / TODO.adoc
1 = TODOs
2
3 - Support big-endian systems in NSS module; the Go-part is endian agnostic
4
5 - Currently, all files are fetched first and then updated one-by-one. This
6   protects against partial updates if the server has issues, but won't help if
7   the disk is full. In that case it's possible that only passwd is updated but
8   then group cannot be written and now the system uses an inconsistent state.
9   To prevent this, write to temporary files for all files first and then
10   rename them all in one step. +
11   However, most of the time passwd and group are not directly linked in a way
12   that an inconsistent state will create problematic issues.
13
14 - Implement a push mechanism to reduce the traffic generated by regular runs
15   of `nsscash fetch` (e.g. via cron). +
16   However, for most setups even minutely updates won't generate any noticeable
17   traffic due to `If-Modified-Since`.
18
19 - Implement an improved file format for passwd/group nsscash to perform even
20   faster lookups. At the moment `mmap(2)` is the bottleneck. However,
21   switching to `read(2)` is problematic with a large number of users. A new
22   format using a B-tree like structure could use `read(2)` and thus improve
23   the performance, at the cost of increased complexity.