[Geocoding] Turning on fsync and full_page_writes after installation
Sarah Hoffmann
lonvia at denofr.de
Thu Dec 19 17:27:03 UTC 2013
On Thu, Dec 19, 2013 at 04:26:51AM +0000, Simon Nuttall wrote:
> After 10 days on a 1.2TB / 32GB Quad Processor a full planet import
> has completed and is continually running minutely updates. Great!
>
> The installation instructions say:
>
> 66
> For the initial import, you should also set:
>
> fsync = off
> full_page_writes = off
>
> Don't forget to switch them on again afterwards or you risk database corruption.
> 99
>
>
> So my question is how to turn these back on. It seems they need to be
> set in the postgresql.conf file.
>
> Presumably that means restarting postgresql - so how do I do that
> without corrupting the data?
If you properly restart the DB with 'service postgresql restart' and no
updates running, all will be fine. You only risk data corruption when
the system crashes for some reason (power outage etc.).
Ideally the settings should be changed after the initial import has finished
and before you start the minutely updates.
> Also I'll have to restart the minutely updates afterwards, but how do I do that?
You can cancel the updates when they are sleeping or during indexing (i.e
when it is reporting something like
'Done 7 in 1 @ 7.000000 per second - Rank 30 ETA (seconds): 1.000000')
(Actually, it should be save to cancel it at any time but no guarantees there.)
> It seems that the nominatim could be made into a service that can be
> stopped and resumed.
We do have it running as a service on osm.org. The update script for that
is here:
http://git.openstreetmap.org/chef.git/blob/HEAD:/cookbooks/nominatim/templates/default/updater.erb
And the init script that controls the service here:
http://git.openstreetmap.org/chef.git/blob/HEAD:/cookbooks/nominatim/templates/default/updater.init.erb
Just to give you an idea, how to do it. Two things you should be aware of:
1) it automatically pulls the latest changes from git. Do this only if
you know exactly what you are doing. Occasionally a commit comes along
that requires some manual adaption of the DB.
2) Second, when the service is stopped the init script does not wait for the
current round of updates to actually finish. You have to monitor the log
file to be sure it is done.
Sarah
More information about the Geocoding
mailing list