Groups | Search | Server Info | Keyboard shortcuts | Login | Register
Groups > de.sci.informatik.misc > #367
| From | Andreas Wagner <andreasw-usenet@web.de> |
|---|---|
| Newsgroups | de.sci.informatik.misc |
| Subject | Freispeichermanagement |
| Date | 2022-12-13 09:59 +0000 |
| Message-ID | <jvr0o1Fdr6vU1@mid.individual.net> (permalink) |
Hallo zusammen, ich arbeite gerade an dem Freispeicher-Management für einen persistenten AVL-Baums. Also auf Festplatte, in einer Datei. Nach dem Löschen eines Knotens samt Daten will ich den freigegebenen Speicher wieder nutzen. Meine Überlegung war, dafür zwei weitere AVL-Bäume zu nutzen, die die freigegebenen "Löcher" managt: 1. Einen für eine Map, die die Position in der Datei auf die Größe des freigegebenen Speichers abbildet: (Postition_in_Datei -> Größe_des_Lochs) 2. Eine für eine Map, die die Lochgrößen auf Wurzeln von Mengen von Positionen von Löchern abbildet. (Lochgröße -> Menge von Positionen) Beim Löschen wird der freigegebene Block in die Maps eingetragen und ggf. vereinfacht: Liegt der neue Block neben einem vorhandenen Block, so werden diese verschmolzen. Beim Reservieren von Speicher wird erst geschaut, ob ein passender oder größerer Block in den Maps eingetragen ist. Wird ein größerer Block genutzt, wird von der Front des Blocks ein Teil abgeschnitten. Gibt es keinen Block oder nur kleinere, wird das Dateiende verwendet. Die zwei Maps nutzen das selbe Speichermanagement wie die zu speichernden Daten. Dabei ist der folgenden Fehler aufgefallen: remove() ruft removeSpaceReservation() auf, welches wiederum store() aufruft. Dieses ruft reserveSpace() auf, welches remove() aufruft. Also klar Failure by Design. Das ginge im Kreis. Ein separates Speichermanagement für die beiden Maps zu nutzen ergäbe, dass man beliebig viele dieser Bäume hintereinanderhängen müsste. Die Alternative, genutzten Speicher die Maps einzutragen, dürfte das selbe Problem haben. Die Option, die zwei Maps mit einem Manager zu verwenden, der immer nur ans Ende anhängt, möchte ich vermeiden. Wie löst man das Problem des Speichermanagement am elegantesten? Stichworte wären schon hilfreich. Gruß Andreas Wagner
Back to de.sci.informatik.misc | Previous | Next — Next in thread | Find similar
Freispeichermanagement Andreas Wagner <andreasw-usenet@web.de> - 2022-12-13 09:59 +0000
Re: Freispeichermanagement Stefan Reuther <stefan.news@arcor.de> - 2022-12-13 18:28 +0100
Re: Freispeichermanagement Andreas Wagner <andreasw-usenet@web.de> - 2022-12-13 20:19 +0100
Re: Freispeichermanagement Stefan Reuther <stefan.news@arcor.de> - 2022-12-14 19:55 +0100
Re: Freispeichermanagement Andreas Wagner <andreasw-usenet@web.de> - 2022-12-15 01:40 +0100
Re: Freispeichermanagement Stefan Reuther <stefan.news@arcor.de> - 2022-12-15 11:30 +0100
Re: Freispeichermanagement Andreas Wagner <andreasw-usenet@web.de> - 2022-12-18 11:28 +0000
csiph-web