Skip to content

Commit

Permalink
Copy changeset replication diffs to S3
Browse files Browse the repository at this point in the history
  • Loading branch information
tomhughes committed Sep 24, 2023
1 parent 5456576 commit b68187f
Show file tree
Hide file tree
Showing 3 changed files with 14 additions and 0 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -207,6 +207,10 @@ class Replicator
@config["data_dir"] + format("/%03d/%03d/%03d", sequence / 1000000, (sequence / 1000) % 1000, (sequence % 1000))
end

def s3_stem
@config["s3_dir"] + format("/%03d/%03d/%03d", sequence / 1000000, (sequence / 1000) % 1000, (sequence % 1000))
end

def write_tmp_files!(changesets)
data_file = data_stem + ".osm.gz"
tmp_state = @config["state_file"] + ".tmp"
Expand Down Expand Up @@ -255,6 +259,14 @@ class Replicator
# from the dirent and has been updated to account for any allocations.
fdirsync(File.dirname(data_file))
fdirsync(File.dirname(@config["state_file"]))

if @config["s3_dir"]
s3_file = s3_stem + ".osm.gz"
s3_state_file = s3_stem + ".state.txt"

system("/opt/awscli/v2/current/bin/aws", "--profile=osm-pds-upload", "s3", "cp", "--storage-class=INTELLIGENT_TIERING", data_file, s3_file)
system("/opt/awscli/v2/current/bin/aws", "--profile=osm-pds-upload", "s3", "cp", "--storage-class=INTELLIGENT_TIERING", data_state_file, s3_state_file)
end
end

# saves new state (including the changeset dump xml)
Expand Down
1 change: 1 addition & 0 deletions cookbooks/planet/recipes/replication.rb
Original file line number Diff line number Diff line change
Expand Up @@ -208,6 +208,7 @@
exec_start "/usr/local/bin/replicate-changesets /etc/replication/changesets.conf"
sandbox :enable_network => true
read_write_paths [
"/home/planet/.aws",
"/run/replication",
"/store/planet/replication/changesets"
]
Expand Down
1 change: 1 addition & 0 deletions cookbooks/planet/templates/default/changesets.conf.erb
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
state_file: /store/planet/replication/changesets/state.yaml
db: host=<%= node[:web][:database_host] %> dbname=openstreetmap user=planetdiff password=<%= @password %>
data_dir: /store/planet/replication/changesets
s3_dir: s3://osm-planet-eu-central-1/changesets/replication/minute
lock_file: /run/replication/changesets.lock

0 comments on commit b68187f

Please sign in to comment.