X-Git-Url: https://ruderich.org/simon/gitweb/?a=blobdiff_plain;ds=sidebyside;f=TODO.adoc;fp=TODO.adoc;h=d1d7d205c2b718e3a5621795b140a38a5357ff31;hb=566dce4a9832074468b2782a2f88eda373ca5f4f;hp=0000000000000000000000000000000000000000;hpb=c43a74c01d838cef9dfe4aadbff54c03df8f1f1d;p=nsscash%2Fnsscash.git diff --git a/TODO.adoc b/TODO.adoc new file mode 100644 index 0000000..d1d7d20 --- /dev/null +++ b/TODO.adoc @@ -0,0 +1,21 @@ += TODOs + +- Currently, all files are fetched first and then updated one-by-one. This + protects against partial updates if the server has issues, but won't help if + the disk is full. In that case it's possible that only passwd is updated but + then group cannot be written and now the system uses an inconsistent state. + To prevent this, write to temporary files for all files first and then + rename them all in one step. + + However, most of the time passwd and group are not directly linked in a way + that an inconsistent state will create problematic issues. + +- Implement a push mechanism to reduce the traffic generated by regular runs + of `nsscash fetch` (e.g. via cron). + + However, for most setups even minutely updates won't generate any noticeable + traffic due to `If-Modified-Since`. + +- Implement an improved file format for passwd/group nsscash to perform even + faster lookups. At the moment `mmap(2)` is the bottleneck. However, + switching to `read(2)` is problematic with a large number of users. A new + format using a B-tree like structure could use `read(2)` and thus improve + the performance, at the cost of increased complexity.