summaryrefslogtreecommitdiff
path: root/TODO
blob: 45de36170aab8f189d18270f8b3e6840e642e192 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
TODO list (in order of priority)
---------

- integrate statfs patch
  - find alteratives way to determine PGDATA at runtime (by NOT
    asking the Postgresql server)
  - find a way to calculate PGDATA while compiling
- handling of most file system metadata
  - ownership: how is this done depending on
    per-user or root mounts? think about security
    here!
  - extended attributes
  - how much access control is possible if not using default_permissions:
    - group membership doesn't work (design limitation in FUSE)
    - Selinux will not work because we can't assign parallel contexts,
      maybe forcing a security context mount option is an option, but
      so far the fuse mount helper doesn't pass the Selinux mount option
      to the kernel
- fill in st_nlink correctly
- strategy for half-blocks, help PostgreSQL optimize disk usage
  of data in BYTEA columns. Try to support tails of growing files
  and tiny files (without padding to the block size)
- establish self-containment (with respect to
  a temporarily unavailable Postgresql server)
- minimal SELinux support, i.e. one fix security context
  per mount point
  unique: 8, opcode: GETXATTR (22), nodeid: 7, insize: 68
  unique: 8, error: -38 (Function not implemented), outsize: 16
  lsetxattr("file.sgml", "security.selinux", "system_u:object_r:httpd_sys_content_t:s0", 41, 0) = -1 EOPNOTSUPP (Operation not supported)
  - investigate SELinux races
  - make some performance tests, see http://archive09.linux.com/feature/127055
- add options to specify:
  - prefix for tables and indexes
  - a --init and a --clean option, using schema.sql as template?
  - support options to specify names of tables, prefixes or/and namespaces?
- optimizations:
  - use prepared statements, measure performance gain
  - use of asynchonous read/writes
  - optimize using .flag_nullpath_ok = 1, check functions if they can live without
    path (but for verbosity and error messages), maybe add path to PgFuseFile
  - make table names options, in order to store many pgfuse filesystems in one
    database