Placing Databases @ Uber
At Uber we have many thousands of MySQL databases running inside of Docker containers on thousands of hosts. When deciding exactly which host a database should run on it is important that you avoid hosts running databases of the same cluster as the one you are placing, that you avoid placing all databases of a cluster on the same rack or in the same data center. All these things should be kept in mind when placing a database, at Uber we have developed a service Overseer which suggests where to place databases and as load increases it also suggests which databases could benefit from being moved to other hosts and hence Overseer will continuously move databases around as they grow and the hosts they run on fails and gets replaced.
Software Developer, Uber
I have a PhD in computer science from Aarhus University where I specialized in Algorithms and Data Structures. I currently work at Uber on the Storage Platform team where I work on Schemaless our distributed, highly available data store with secondary indexes. My core area at Uber is designing the algorithms to do database placement of our thousands of MySQL databases across our fleet of hosts.