From: Tom Hughes Date: Sun, 16 Jun 2024 15:16:36 +0000 (+0100) Subject: Switch to metatile based expiry on render servers X-Git-Url: https://git.openstreetmap.org./chef.git/commitdiff_plain/18176319d3b0a18f6d86e0e26c5798b22787d5b6 Switch to metatile based expiry on render servers --- diff --git a/cookbooks/tile/templates/default/expire-tiles.erb b/cookbooks/tile/templates/default/expire-tiles.erb index 1af7f0a64..82921b7fe 100644 --- a/cookbooks/tile/templates/default/expire-tiles.erb +++ b/cookbooks/tile/templates/default/expire-tiles.erb @@ -2,16 +2,53 @@ # DO NOT EDIT - This file is being maintained by Chef -args = [ - "--socket=/var/run/renderd/renderd.sock", - "--tile-dir=/srv/tile.openstreetmap.org/tiles", - "--touch-from=13", - "--min-zoom=13" +require "fileutils" + +tileDirs = [ +<% node[:tile][:styles].each_key do |name| -%> + "/srv/tile.openstreetmap.org/tiles/<%= name %>", +<% end -%> ] +tilesExpired = 0 +tilesIgnored = 0 + +expiredTime = Time.new(2000, 1, 1) + Dir.glob("/var/lib/replicate/expire-queue/changes-*.txt").sort.each do |f| - <% node[:tile][:styles].each do |name,details| -%> - system("/usr/bin/render_expired", "--map=<%= name %>", *args, "--max-zoom=<%= details[:max_zoom] %>", :in=> f) && - <% end -%> + File.open(f, "r") do |file| + file.each do |line| + z, y, x = line.split("/") + + z = z.to_i + 3 + y = y.to_i * 8 + x = x.to_i * 8 + + hash = [] + + 1.upto(5) do + hash.push(((x & 0xf) << 4) | (y & 0xf)) + + x = x >> 4 + y = y >> 4 + end + + tileName = "#{z}/#{hash[4]}/#{hash[3]}/#{hash[2]}/#{hash[1]}/#{hash[0]}.meta" + + tileDirs.each do |tileDir| + if File.exist?("#{tileDir}/#{tileName}") + FileUtils.touch("#{tileDir}/#{tileName}", :mtime => expiredTime) + + tilesExpired = tilesExpired + 1 + else + tilesIgnored = tilesIgnored + 1 + end + end + end + end + File::unlink(f) end + +puts "Meta tiles expired: #{tilesExpired}" +puts "Meta tiles not present: #{tilesIgnored}" diff --git a/cookbooks/tile/templates/default/replicate.erb b/cookbooks/tile/templates/default/replicate.erb index f0fa89961..8d8e28792 100644 --- a/cookbooks/tile/templates/default/replicate.erb +++ b/cookbooks/tile/templates/default/replicate.erb @@ -10,7 +10,7 @@ do -- \ --number-processes=1 \ --log-progress=false \ - --expire-tiles=13-19 \ + --expire-tiles=10-16 \ --expire-segment-length=90000 \ --expire-output=/var/lib/replicate/dirty-tiles.txt \ <% if node[:tile][:database][:multi_geometry] -%>