]> ruderich.org/simon Gitweb - nsscash/nsscash.git/blobdiff - TODO.adoc
Add TODO.adoc
[nsscash/nsscash.git] / TODO.adoc
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.