-
Notifications
You must be signed in to change notification settings - Fork 31
/
Copy pathTODO
63 lines (39 loc) · 2.05 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
To do and/or consider (no particular order):
* Optimize writing files
Currently writing does a lot of updates of the file header block (with
adfFileFlush() - which also writes the block and update allocation map).
This has some advantages:
- less data (blocks) lost on a powercut (only the last, incompletely
saved data block is lost in such case)
but also some (important) drawbacks:
- lower performace
- extensive writing on disks (attention with flash drives!)
This was done as a relatively quick and safe first implementation, but can
(and probably should) be (carefully) improved.
* File / file blocks implementation in general
This is kind of related with the thing above - the file i/o performance
could be improved and file state management (probably) could be easier
if some file block cache subsystem was added and separated from file.
* Review all subsystems and add tests
In particular, directory cache. But also bitmap allocation code or utilities
like undelete.
* Implement more disk utilities
undelete, checkdisk, defragment and similar.
(Some functionality maybe can be in the library, but some probably should go
to utility programs - like in case of any repair/recovery tools, where
algorithms/methods used can differ).
* Review devices implementation, better abstract devices
Currently there are several types of devices (dumps / file images of floppies
and hard disks, native (physical) devices), It would be good to provide an
interface and a way to implement additional devices that could be used along
with the existing ones (like an in-memory device, or any other user-defined /
implemented).
* Test "native" (physical) devices
This is a tricky one and must be done carefully. Probably not possible to do
automatically in CI, it rather should be done on a VM or some special box
dedicated for such purpose.
* Review and update the API
Make consistent prefixing in all modules/subsystems, to separate namespace
of the ADFlib and (in the second part) of a (sub)module.
* Update documentation
...