summaryrefslogtreecommitdiff
path: root/TODO
diff options
context:
space:
mode:
authorAndreas Baumann <abaumann@yahoo.com>2012-04-18 10:22:11 +0200
committerAndreas Baumann <abaumann@yahoo.com>2012-04-18 10:22:11 +0200
commit6e8858e71000ef3c72b7ba1d696f8ea6f39f7202 (patch)
tree9171979e66a564cb611346008cdadcce3da3d259 /TODO
parentd0cc5e0f24a961549edb1cbcffc87f9b922a8904 (diff)
downloadpgfuse-6e8858e71000ef3c72b7ba1d696f8ea6f39f7202.tar.gz
pgfuse-6e8858e71000ef3c72b7ba1d696f8ea6f39f7202.tar.bz2
more detailed DEVELOPERS documentation (guidelines and design decisions)
small fixes in BUGS and manpage updated TODO list and reprioritization
Diffstat (limited to 'TODO')
-rw-r--r--TODO23
1 files changed, 4 insertions, 19 deletions
diff --git a/TODO b/TODO
index 20af36b..3fc6314 100644
--- a/TODO
+++ b/TODO
@@ -6,33 +6,18 @@ TODO list (in order of priority)
per-user or root mounts? think about security
here!
- extended attributes
+- remove the size limitations, change the storage to
+ a bytea (in blocks) as in mysqlfs.
- pooling of PQconn
- our own, thread-synchronized pooling?
- use pgpool? has secondary benefits like a replicated filesystem for
free
+- thread-synchronization (we can ommit the -s flag)
- replace dir.path with a range search tree algo in DB
- rename (after a redo of the dir table)
-- thread-synchronization (we can ommit the -s flag)
- use of asynchonous read/writes
- what is a transaction? couple to fsync/fdatasync
for files? other ideas? customizable?
-- how to store binary data?
- - bytea complete: needs memory on client and server,
- ok for small files
- - split bytea (in blocks, as mysqlfs): should give
- good average performance
- - BLOBs: streamable, no referencial integrity though,
- have a weak security model
- => most likely a split bytea with tunable blocksize
- (with a small block cache on the side of pgfuse
- is the way to go)
-- is there a way to implement streams (append to
- file, or sequential read) efficient together
- with random access? Use COPY TO/COPY FROM?
- => most likely not worth the hazzle. Most streams
- (but for BLOBS) are mere abstractions in the
- database binding of the programming language
- => sticking to traditional libpq C way
- use prepared statements, measure performance gain
- establish self-containment (with respect to
a temporarily unavailable Postgresql server)
@@ -43,7 +28,7 @@ TODO list (in order of priority)
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
-- opimize using .flag_nullpath_ok = 1, check functions if they can live without
+- 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