>>> Hallvard Breien Furuseth <[email protected]> schrieb am 09.11.2015 um 23:00 in Nachricht <[email protected]>: > On 09/11/15 18:47, Christian Sell wrote: >> To create the environment, we are using a mapsize of 1 GiB and the flags >> MDB_NOSUBDIR | MDB_NOLOCK. Under Linux, this results in one file with a size >> that seems to correspond to the size of the data actually stored. However, > under >> Windows, the file size is the same as the mapsize, namely 1 GiB. >> (...) The same issue surfaced under Linux (...) with the MDB_WRITEMAP option > > That's the logical size, which can be bigger than the physical > size. In lmdb's case, the end of the file doesn't use any disk > space. On filesystems which support this, anyway. Most do. > So, nevermind mdb_copy - there is no problem to fix. > > On Unix, 'du <file>' shows disk usage. Don't know about Windows. > > When you want to copy the file anyway, you should use mdb_copy > rather than plain filecopy. And MDB_COMPACT does shrink the file > somewhat since it drops pages which LMDB has freed and not yet > reused, but that's another matter. The DB would grow later > anyway, LDMB does need pages it can write to.
I wonder as SSD become more and more common: Should LMDB have a way to signal to the operating system that some parts of the file are no longer in use? So the OS->filesystem->blockdevice could actually reclaim the space. > > Hallvard
