From 566dce4a9832074468b2782a2f88eda373ca5f4f Mon Sep 17 00:00:00 2001 From: Simon Ruderich Date: Sun, 15 Dec 2019 08:48:09 +0100 Subject: [PATCH] Add TODO.adoc --- README.adoc | 3 ++- TODO.adoc | 21 +++++++++++++++++++++ 2 files changed, 23 insertions(+), 1 deletion(-) create mode 100644 TODO.adoc diff --git a/README.adoc b/README.adoc index d2578ae..d18434f 100644 --- a/README.adoc +++ b/README.adoc @@ -45,7 +45,8 @@ The passwd/group files have the following size restrictions: violated nsscash has an extensive test suite for both the Go and C part testing general -requirements and various corner cases. +requirements and various corner cases. See TODO.adoc for a list of known +issues and possible improvements. nsscash is licensed under AGPL version 3 or later. 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. -- 2.43.2