Amiga.org

Amiga computer related discussion => Amiga Software Issues and Discussion => Topic started by: AmigaMance on June 13, 2006, 04:42:01 PM

Title: Idea for a 68k patch/commodity: DDBS
Post by: AmigaMance on June 13, 2006, 04:42:01 PM
Hello.
 I had an idea the other day which i like to share with you. DDBS stands for dynamic disk buffering system and it is a hypothetical proggy which increases the disk buffers of a device/partition only when it is accessed, by a given amount of buffers and when it's not accessed, DDBS drops the buffers of this device to a minimum.
 The purpose of such patch would be to keep memory consumption of devices to a minimum and it would be particular useful for people who have a lot of partitions on their system.
 I'm not a coder so i don't know if this is feasible, neither if it will cause other problems like increased memory fragmentation. (very likely) I'm just throwing the idea.
Title: Re: Idea for a 68k patch/commodity: DDBS
Post by: motorollin on June 13, 2006, 05:24:57 PM
Sounds feasible. AmigaOS allows you to dynamically change the number of buffers on a volume, so I don't see why you couldn't monitor disk activity and increase/decrease buffers accordingly.

Piru? :-)

--
moto
Title: Re: Idea for a 68k patch/commodity: DDBS
Post by: Piru on June 13, 2006, 05:33:20 PM
The biggest problem here would be to identify the need for buffers. The number of disk operations doesn't necessarily correlate with it (but in practice I guess it would be close enough).

This surely is possible, (un?)fortunately I have 1GB memory so I can have full buffers with my partitions. This should not be too hard to implement, however: Some patch to capture packet I/O to the handler and then signal the helper process to call AddBuffers() accordingly to filesystem usage.
Title: Re: Idea for a 68k patch/commodity: DDBS
Post by: motorollin on June 13, 2006, 06:25:47 PM
Could the source for a hard disk benchmarking app help here? Presumably this will contain some code to measure disk activity. Once activity can be measured, it would be simple to devise an algorithm to increase/decrease buffers relative to the disk utilisation. For example:

for each volume...
[code to read amount of disk activity]
b=ax
[code to change the number of buffers to b]


where b is the number of buffers required, a is the measurement of disk activity, and x is the multiplier (e.g. 10), which could be configurable in order to allow the user to adjust how much effect increased disk activity will have on the volume.

--
moto