-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathTODO
73 lines (63 loc) · 2.41 KB
/
TODO
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
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
0.3.7:
======
* multi data buffer sizes can be perf tuned
* document bfsync init
* document bfsync check-integrity
* document bfsync file-log
* update bfsync pull documentation
* gc should output database size
* debug: libdb++-6.0 behaviour
* debug: merge-test.py subdir-rm crashes
==============================================================================================
* automatic deadlock detection
* retry transactions on deadlock
* properly handle copy-on-write() errors (disk full, ...)
* check for open files before allowing readonly mode
* better cache expiring for INodeLinks
* merge INodeLinks and INode cache
* check permissions for touch
* rename bfsync.transferutils => bfsync.transfer (and other fooutils => foo)
* more strict locking for multi-part commands such as pull: lock should be
acquired before checking for uncommitted changes and released after the
end of pull
* background hashing for fs
* node discovery
* support partial commit
* auto-push/pull
* excludes
* detect broken connections using non-blocking i/o and timeouts
* split transactions every 15 seconds
* gc should show an estimate how much db cache is used
* maybe upgrade time -> 64bit storage in BDB
* reduce TransferList memory usage, to allow a large number of files in get/put
* repo-files command should also work on files (not only directories)
Performance:
============
* cache friendly get would hash and copy file-by-file, since then the data
is read only once from the physical media
* sorted hash dedup
* revert could be O(changed inodes) if it used changed_inodes & history diffs
* backlinks allow faster status | merge
RELEASE:
========
* register pids, to be able to detect when to recover (<-> add locking)
* flush before status
==============================================================================================
ENCRYPTED MODE:
* files are stored as continuous stream of encrypted data
* index is stored as pointers into file stream
* splitting (as 16M blocks) enables easy update
* passphrase-derived key
* sha-256 checksum for each block at the beginning
-> partial writes become invisible
==============================================================================================
b4release:
- update NEWS
- bump "configure.ac" version
- edit upgrade command in "src/bfsync/main.py"
- make check
- update documentation if necessary
- update homepage
- post release announcement @ google group
- update freshmeat
- tag release