Skip to content

Commit b1b5d07

Browse files
committed
Switch to metatile based expiry on render servers
1 parent 50c5e66 commit b1b5d07

File tree

2 files changed

+44
-9
lines changed

2 files changed

+44
-9
lines changed

cookbooks/tile/templates/default/expire-tiles.erb

+43-8
Original file line numberDiff line numberDiff line change
@@ -2,16 +2,51 @@
22

33
# DO NOT EDIT - This file is being maintained by Chef
44

5-
args = [
6-
"--socket=/var/run/renderd/renderd.sock",
7-
"--tile-dir=/srv/tile.openstreetmap.org/tiles",
8-
"--touch-from=13",
9-
"--min-zoom=13"
5+
require "fileutils"
6+
7+
tileDirs = [
8+
<% node[:tile][:styles].each_key do |name| -%>
9+
"/srv/tile.openstreetmap.org/tiles/<%= name %>",
10+
<% end -%>
1011
]
1112
13+
tilesExpired = 0
14+
tilesIgnored = 0
15+
1216
Dir.glob("/var/lib/replicate/expire-queue/changes-*.txt").sort.each do |f|
13-
<% node[:tile][:styles].each do |name,details| -%>
14-
system("/usr/bin/render_expired", "--map=<%= name %>", *args, "--max-zoom=<%= details[:max_zoom] %>", :in=> f) &&
15-
<% end -%>
17+
File.open(f, "r") do |file|
18+
file.each do |line|
19+
z, y, x = line.split("/")
20+
21+
z = z.to_i + 3
22+
y = y.to_i * 8
23+
x = x.to_i * 8
24+
25+
hash = []
26+
27+
1.upto(5) do
28+
hash.push(((x & 0xf) << 4) | (y & 0xf))
29+
30+
x = x >> 4
31+
y = y >> 4
32+
end
33+
34+
tileName = "#{z}/#{hash[4]}/#{hash[3]}/#{hash[2]}/#{hash[1]}/#{hash[0]}.meta"
35+
36+
tileDirs.each do |tileDir|
37+
if File.exist?("#{tileDir}/#{tileName}")
38+
FileUtils.touch("#{tileDir}/#{tileName}")
39+
40+
tilesExpired = tilesExpired + 1
41+
else
42+
tilesIgnored = tilesIgnored + 1
43+
end
44+
end
45+
end
46+
end
47+
1648
File::unlink(f)
1749
end
50+
51+
puts "Meta tiles expired: #{tilesExpired}"
52+
puts "Meta tiles not present: #{tilesIgnored}"

cookbooks/tile/templates/default/replicate.erb

+1-1
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ do
1010
-- \
1111
--number-processes=1 \
1212
--log-progress=false \
13-
--expire-tiles=13-19 \
13+
--expire-tiles=10-16 \
1414
--expire-segment-length=90000 \
1515
--expire-output=/var/lib/replicate/dirty-tiles.txt \
1616
<% if node[:tile][:database][:multi_geometry] -%>

0 commit comments

Comments
 (0)