3 ms·
From my understanding, they migrate the backed-up old data to the new db after writers have already started writing any new updates to the new db. So the MapRe
by rockostrich 10y ago
From my understanding, they migrate the backed-up old data to the new db after writers have already started writing any new updates to the new db. So the MapReduce job on that backed-up data should just have to look at timestamps on create/update to check whether or not to load that row into the new db.
- overcast 10y agoRight, but how is that new code rolled out to live systems with zero downtime? They said they try not to update more than a few hundred lines of code, and only on individual objects. What process are they using to roll that out to start the writing?
- jey 10y agoHere's one simple model: launch new containers into the load balancer pool (having the new code), and shutdown old containers. This can be done in an incremental way so you get a staged rollout with no downtime.
- overcast 10y agoContainers make sense, thanks.
- icebraining 10y agoOr use workers with a manager like uwsgi. Containers are overkill if you just want zero-downtime upgrades.
- clay_to_n 10y agoDoesn't even need to be containers, the key part is having a load-balancer that can shift the load to the new web applications deployed without downtime.