logo separator

[mkgmap-dev] mkgmap doing excessive writing and converting to disk if used with --gmapi option

From Felix Hartmann extremecarver at gmail.com on Mon Sep 13 11:09:12 BST 2021

Oh - but data was certainly written - A rename will not show as data
written in both Task manager on Windows, as well as in the smart data (I'm
using Windows 10 pro not Windows server however - maybe that functionality
is limited to windows server?)

On Mon, 13 Sept 2021 at 13:06, Felix Hartmann <extremecarver at gmail.com>
wrote:

> Not sure if it makes it possible to use read only attribute instead of
> moving and mklink. Maybe yes - because that was not possible before. So it
> then would be set read only - instead of of move & mklink - and at the end
> remove read only instead of moving back.
>
> On Mon, 13 Sept 2021 at 12:59, Felix Hartmann <extremecarver at gmail.com>
> wrote:
>
>> Thanks Gerd,
>>
>> but that is just removing the warning if it cannot overwrite, correct?
>> If it can overwrite the gmap file it will still overwrite it as I see..
>> So in essence just a bit more intelligent then my disabling that line.
>>
>> I think it should not overwrite at all if present and --x-gmapi-minimal
>> (then you don't have to move away the files and link them back to the
>> original folder).
>>
>> On Mon, 13 Sept 2021 at 10:43, Gerd Petermann <
>> gpetermann_muenchen at hotmail.com> wrote:
>>
>>> Hi all,
>>>
>>> attached is a quick patch that implements experimaltal option
>>> --x-gmapi-minimal.
>>>
>>> If used instead of --gmapi mkgmap will not fail if a write-protected
>>> output file exists in the gmapi output folder and mkgmap copies data from
>>> *.img. It should still crash when other files like Info.xml are written.
>>>
>>> BTW: no conversion is done when those files are written. I think mkgmap
>>> simply copies data from sub files in *.img into single files. So, the same
>>> sequence of Bytes exists two or more times on the Computer. Windows Server
>>> seems to support automatic data deduplication (1). I am sure Linux offers
>>> similar support. No idea how effective or reliable it is, but it might be
>>> worth trying.
>>>
>>> Gerd
>>> (1)
>>>
>>> https://docs.microsoft.com/en-us/windows-server/storage/data-deduplication/install-enable
>>>
>>> ________________________________________
>>> Von: mkgmap-dev <mkgmap-dev-bounces at lists.mkgmap.org.uk> im Auftrag von
>>> Carlos Dávila <carlos at alternativaslibres.org>
>>> Gesendet: Sonntag, 12. September 2021 22:45
>>> An: mkgmap-dev at lists.mkgmap.org.uk
>>> Betreff: Re: [mkgmap-dev] mkgmap doing excessive writing and converting
>>> to disk if used with --gmapi option
>>>
>>> I think it's a good idea if mkgmap checks the required files are present.
>>>
>>> El 12/9/21 a las 21:16, Gerd Petermann escribió:
>>> > Hi Felix,
>>> >
>>> > so you just want a new option so that mkgmap doesn't fail if it cannot
>>> overwrite (write-protected) files in the output directory, right? No need
>>> to verify the content of the exiting file(s)?
>>> >
>>> > Gerd
>>> >
>>> > ________________________________________
>>> > Von: mkgmap-dev <mkgmap-dev-bounces at lists.mkgmap.org.uk> im Auftrag
>>> von Felix Hartmann <extremecarver at gmail.com>
>>> > Gesendet: Sonntag, 12. September 2021 19:10
>>> > An: Development list for mkgmap
>>> > Betreff: Re: [mkgmap-dev] mkgmap doing excessive writing and
>>> converting to disk if used with --gmapi option
>>> >
>>> > And well - it is burning SSD for the contourlines currently even if
>>> not calling multiple times. 130GB minimum per worldwide map update for all
>>> geofabrik extracts at 20m equidistance. 260GB at 10m. With calling multiple
>>> times and 10m and 20m I had about 2TB of useless writes per weekly map
>>> update. I've got rid of all of them with my uncommenting the line, plus
>>> saved about 500GB of writes by now doing all the gmapsupp.img and gmap
>>> stuff in Ramdisk So now instead of 4TB of disk writes per map update I'm
>>> down to 1TB.. (and yeah the resplitting of tiles added another 5TB of
>>> writes - but that could have been fixed easily by changing order of
>>> commands too).
>>> >
>>> > On Sun, 12 Sept 2021 at 20:04, Felix Hartmann <extremecarver at gmail.com
>>> <mailto:extremecarver at gmail.com>> wrote:
>>> > because you need to do it if you want to show contourlines. Now
>>> compiling the worldwide contourlines each time again - would burn SSD as
>>> well - besides taking longer than just compiling the maps. So everyone who
>>> offers maps for many countries as download puts the contourlines separate.
>>> If you want to offer the choice of showing contourlines or not - mkmgap
>>> will write the gmap contourlines once not needed, and once the maps not
>>> needed. If you don't want to offer that option - it's only the contourlines
>>> being written without need. Contourlines for all geofabrik extracts 20m
>>> equidistance are about 130GB, 10m would be 260GB.
>>> > If you offer 10m and 20m it will be even more not needed writes.
>>> >
>>> > The only solution is to go for a Ramdisk instead - However you likely
>>> will need 128GB of RAM to do that - because for Asia or Europe you need a
>>> 64GB Ramdisk. Same for North America extract (but few people offer that and
>>> just have Canada and the US divided into the 4-5 zones). For other maps you
>>> will get by with a 15-20GB Ramdisk (which I have resorted to now for all
>>> but the windows installers because I don't want to let the server wait for
>>> ages for the single thread NSIS wrapping up the data and instead start the
>>> next country in parallel). And yes going RAMDISK already using my patch and
>>> symlinking those files so mkgmap cannot overwrite them (would still be
>>> faster if mkgmap didn't try in first place I think). If you want to write
>>> out the contourlines as well besides the additional time - for Asia
>>> continent you may then go for a 90GB Ramdisk minimum if offering windows
>>> and gmap installers. In this case gmapsupp.img donwnloads aren't possible
>>> anyhow due to the huge data amounts. For sm
>>> >   aller countries I have them too....
>>> >
>>> > I coded around this now by using symlinks - but yeah that will be
>>> quite a lot of work and is prone to break - while I guess it's only 10
>>> lines or so to add to mkgmap code to have a mode that does not write them
>>> out if they are present - or if you tell on commandline they are present
>>> already. For .img files they aren't overwritten either...
>>> >
>>> > On Sun, 12 Sept 2021 at 18:40, Gerd Petermann <
>>> gpetermann_muenchen at hotmail.com<mailto:gpetermann_muenchen at hotmail.com>>
>>> wrote:
>>> > Hi Felix,
>>> >
>>> > did not read all the posts in detail. I understand that mkgmap is
>>> neither burning SSDs nor doing any excessive writing unless you call it
>>> multiple times for the same input files. So the question is: Why do you do
>>> that?
>>> >
>>> > Gerd
>>> >
>>> > ________________________________________
>>> > Von: mkgmap-dev <mkgmap-dev-bounces at lists.mkgmap.org.uk<mailto:
>>> mkgmap-dev-bounces at lists.mkgmap.org.uk>> im Auftrag von Felix Hartmann <
>>> extremecarver at gmail.com<mailto:extremecarver at gmail.com>>
>>> > Gesendet: Freitag, 10. September 2021 00:02
>>> > An: Development list for mkgmap
>>> > Betreff: Re: [mkgmap-dev] mkgmap doing excessive writing and
>>> converting to disk if used with --gmapi option
>>> >
>>> > Well I think the .tmp files are just building up - and the renamed. So
>>> they are not causing any actual excessive write.
>>> > As for the gmap - it would be cool if there is a mode to not write
>>> them.
>>> >
>>> > Actually it would be great if mkgmap could write all in one go.
>>> Because the thing that takes so much time - is the address search - and
>>> that is always the same. The differences are tiny (just because MapInstall
>>> is crashing when files are missing) you need to compile them separately.
>>> >
>>> > but maybe there could be a mode where mkgamp writes all in one go.
>>> > So family-name / family-name1 / family-name2
>>> > description / description1 / description2
>>> > input input1 input2
>>> > family-name..
>>> > show-profiles
>>> > overview-mapname
>>> > product-id
>>> > (and maybe I missed some options are those that would need to be given
>>> for each set of input tiles. And then just an option where you tell mkgmap
>>> files starting with which first 4 numbers are relevant for address search.
>>> No need to analyze if those other supplied .img (e.g. buildings or
>>> contourlines) need to be added to address search.). I know coded around the
>>> problem of the gmap files causing excessive writes. But yeah that is
>>> actually really complicated be it on windows or linux...
>>> >
>>> > On Wed, 8 Sept 2021 at 17:07, Felix Hartmann <extremecarver at gmail.com
>>> <mailto:extremecarver at gmail.com><mailto:extremecarver at gmail.com<mailto:
>>> extremecarver at gmail.com>>> wrote:
>>> > Well I could give it 20 GB ram disk, maybe 32 but then I need to
>>> render on less than 12 processes 64GB ram available). But that is not
>>> enough for Asia continent map, and I guess super tight for Europe...
>>> >
>>> > Mkgmap could definitely keep those .tmp files in memory. But the
>>> important bit is the gmap files not needeed to be written.... Also would
>>> save quite some CPU time.
>>> >
>>> > On Wed, 8 Sep 2021, 14:31 ael <witwall3 at disroot.org<mailto:
>>> witwall3 at disroot.org><mailto:witwall3 at disroot.org<mailto:
>>> witwall3 at disroot.org>>> wrote:
>>> > On Wed, Sep 08, 2021 at 02:10:52PM +0300, Felix Hartmann wrote:
>>> >> Yes on an nvme disk you barely notice the conversion - it's really
>>> quick.
>>> >> BUT it is not needed if you have the files and even more - it burns
>>> your
>>> >> NVME SSD disk.
>>> > +1. I always use an old spinning rust disk when using mkgmap to save
>>> ssd
>>> > write cycles, even without contours and such. It seems to be profligate
>>> > in its use of disk cycles. I did try using RAM disk, but even with 16GB
>>> > on a laptop, that was soon exhausted.
>>> >
>>> > ael
>>> >
>>> >
>>> > _______________________________________________
>>> > mkgmap-dev mailing list
>>> > mkgmap-dev at lists.mkgmap.org.uk<mailto:mkgmap-dev at lists.mkgmap.org.uk
>>> ><mailto:mkgmap-dev at lists.mkgmap.org.uk<mailto:
>>> mkgmap-dev at lists.mkgmap.org.uk>>
>>> > https://www.mkgmap.org.uk/mailman/listinfo/mkgmap-dev
>>> >
>>> >
>>> > --
>>> > Felix Hartman - Openmtbmap.org & VeloMap.org
>>> >
>>> > _______________________________________________
>>> > mkgmap-dev mailing list
>>> > mkgmap-dev at lists.mkgmap.org.uk<mailto:mkgmap-dev at lists.mkgmap.org.uk>
>>> > https://www.mkgmap.org.uk/mailman/listinfo/mkgmap-dev
>>> >
>>> >
>>> > --
>>> > Felix Hartman - Openmtbmap.org & VeloMap.org
>>> >
>>> >
>>> >
>>> > --
>>> > Felix Hartman - Openmtbmap.org & VeloMap.org
>>> >
>>> > _______________________________________________
>>> > mkgmap-dev mailing list
>>> > mkgmap-dev at lists.mkgmap.org.uk
>>> > https://www.mkgmap.org.uk/mailman/listinfo/mkgmap-dev
>>>
>>>
>>> _______________________________________________
>>> mkgmap-dev mailing list
>>> mkgmap-dev at lists.mkgmap.org.uk
>>> https://www.mkgmap.org.uk/mailman/listinfo/mkgmap-dev
>>> _______________________________________________
>>> mkgmap-dev mailing list
>>> mkgmap-dev at lists.mkgmap.org.uk
>>> https://www.mkgmap.org.uk/mailman/listinfo/mkgmap-dev
>>
>>
>>
>> --
>> Felix Hartman - Openmtbmap.org & VeloMap.org
>>
>>
>
> --
> Felix Hartman - Openmtbmap.org & VeloMap.org
>
>

-- 
Felix Hartman - Openmtbmap.org & VeloMap.org
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.mkgmap.org.uk/pipermail/mkgmap-dev/attachments/20210913/a39a3870/attachment-0001.html>


More information about the mkgmap-dev mailing list