]> ruderich.org/simon Gitweb - nsscash/nsscash.git/commitdiff
Add TODO.adoc
authorSimon Ruderich <simon@ruderich.org>
Sun, 15 Dec 2019 07:48:09 +0000 (08:48 +0100)
committerSimon Ruderich <simon@ruderich.org>
Sun, 15 Dec 2019 07:48:09 +0000 (08:48 +0100)
README.adoc
TODO.adoc [new file with mode: 0644]

index d2578ae76376364f3e85fb26d17e6878269fc0a0..d18434f7790607e1c24f7feb0def9b2c7e36b3d9 100644 (file)
@@ -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 (file)
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.