Hallo
Omdat het mij interesseert, maak ik een eigen document database. In feite een veredelde serializer van (voorlopig nog) simpele POCO's, niettegenstaande ik toch wat extra's implementeer zoals indexen (in de vorm van binary search tree's - b-tree's zijn net nog iets te complex).
Ik heb in feite enkele basic vragen, maar weet niet direct welke oplossing nu de beste zou zijn voor dit speeltuin projectje :-)
=> Als een reeds persisted object wordt gewijzigd met als resultaat een kleinere byte size, dan kan je het gewoon wel laten staan op de zelfde positie in de file veronderstel ik? Stel dat het object eerst 10 bytes lang is en na de wijziging nog 8, dan zullen er 2 bytes ongebruikt zijn. Dit valt waarschijnlijk op te lossen door 1 of andere vacuum of reformat functie te implementeren, die al dan niet op afroep zijn werk kan doen voor de gehele file?
=> Als de wijziging resulteert in een grotere byte size, dan kan je het object op een andere plaats zetten. (In mijn simpele zandbak is dat gewoon achteraan de file). Maar om te voorkomen dat dit telkenmale moet gebeuren, neem ik dan best een soort grow factor? Bvb byte size laten groeien met factor 2? Je kan natuurlijk ook al meteen meer bytes dan nodig reserveren voor elk nieuw geserialiseerd/persisted object neem ik aan?
Misschien kan iemand zijn licht hierop laten schijnen.
Omdat het mij interesseert, maak ik een eigen document database. In feite een veredelde serializer van (voorlopig nog) simpele POCO's, niettegenstaande ik toch wat extra's implementeer zoals indexen (in de vorm van binary search tree's - b-tree's zijn net nog iets te complex).
Ik heb in feite enkele basic vragen, maar weet niet direct welke oplossing nu de beste zou zijn voor dit speeltuin projectje :-)
=> Als een reeds persisted object wordt gewijzigd met als resultaat een kleinere byte size, dan kan je het gewoon wel laten staan op de zelfde positie in de file veronderstel ik? Stel dat het object eerst 10 bytes lang is en na de wijziging nog 8, dan zullen er 2 bytes ongebruikt zijn. Dit valt waarschijnlijk op te lossen door 1 of andere vacuum of reformat functie te implementeren, die al dan niet op afroep zijn werk kan doen voor de gehele file?
=> Als de wijziging resulteert in een grotere byte size, dan kan je het object op een andere plaats zetten. (In mijn simpele zandbak is dat gewoon achteraan de file). Maar om te voorkomen dat dit telkenmale moet gebeuren, neem ik dan best een soort grow factor? Bvb byte size laten groeien met factor 2? Je kan natuurlijk ook al meteen meer bytes dan nodig reserveren voor elk nieuw geserialiseerd/persisted object neem ik aan?
Misschien kan iemand zijn licht hierop laten schijnen.