Updating Objects requires DefragmentTo before database size is reduced

Jul 10, 2014 at 11:52 AM
I'm finding that if I update a large string in an object stored in the database with a smaller string, the file size increases. I don't get a reduced file size unless I use the defragmentTo() function. Does this mean the original of all objects that are updated remains in the database until defragmented?
Coordinator
Aug 10, 2014 at 8:37 AM
Hello,
yes you are right, deleted objects are only marked as deleted, not removed from db file.

All about that is done for couple of reasons (marking instead of deleting):
  • performance, operation on file disk are expensive
  • complexity, existing solution is quite simple and allows on easy implementation of many NDatabase features. Changing that will cause to rise complexity and will make impact on existing features, which will made NDatabase less stable and more complex.
I'm happy to see any proposed solution to make it working, which will not harm much other features which are already supported by NDatabase.