Codebase list pseudo / upstream/1.9.0+git20190802.060058b Futures.txt
upstream/1.9.0+git20190802.060058b

Tree @upstream/1.9.0+git20190802.060058b (Download .tar.gz)

Futures.txt @upstream/1.9.0+git20190802.060058braw · history · blame

Some notes on features under discussion or consideration, and some
vague implementation thoughts:

* Add some kind of filter for "the directory we care about"
  - pseudo operations would only go to the server for items
    in this directory
  - optionally, logging could be generated for accesses
    *outside* this directory
  - intent is to reduce server load dramatically, and improve
    and/or streamline the logging path when, e.g., doing
    host contamination checking
  - probably implies a new message type, MSG_LOG.

* Database recovery/reconstruction
  - capability for failing harder in the event of apparent
    corruption

* Log database performance improvements
  - some way to do "live" queries against the log database
    while the server is running
  - some way to flush unwanted data
  - possibly a way to separate logging into multiple files
    or otherwise restrict the amount of stuff produced
  - logging filters of some sort

* Canonicalization speedups
  - possibly implement some kind of cache of directory names
    and known canonicalizations

* Possibly limited handling for extended attributes
  - specifically, the case where they're used to manpulate or
    query the plain old modes ala chmod/stat.

* Test cases
  - boy, do we need test cases!

* Clean up *at() functions
  - The *at() function implementations are gratuitously complicated,
    I believe because they predate the auto-canonicalization that came
    with the rewritten pseudo wrappers.

* Memory allocation/deallocation issues.
  - there's a number of places where results from pseudo_get_value() are
    strdup'd, then the originals freed, which makes no sense.
  - there's at least one unchecked realloc() to do with the fd table.

* Benchmarking/performance work.
  - It'd be nice to get some kind of measurement of how much time is
    going to which parts of pseudo (database access, filesystem access,
    IPC overhead, logic, client processing, and so on).
  - Maybe some work on finding ways to make profiling work, since I was
    having issues getting good profiling data.
  - Some moderately-canonical benchmarks would be nice to have for evaluating
    the costs of various common use cases.