I rolled out Wave 0.7 to a cluster with about 1k deployments. Migation went smooth. However, it crashed due to a concurrent access to the new watcher hashmap. Apparently, watchers are separate goroutines and run concurrently:
I fixed that by adding mutexes. Obviously, access to this hashmap can be optimized further.
However, even with this crash it performs well. Restarts are fast enough and the other controller will take over within a few seconds. Even though it crashes occasionally the overall CPU load is lower than before:
Same appears to be the case for memory usage:
Upgrade happened around 21:00 which explains the small CPU spike during that time.
I rolled out Wave 0.7 to a cluster with about 1k deployments. Migation went smooth. However, it crashed due to a concurrent access to the new watcher hashmap. Apparently, watchers are separate goroutines and run concurrently:
I fixed that by adding mutexes. Obviously, access to this hashmap can be optimized further.
However, even with this crash it performs well. Restarts are fast enough and the other controller will take over within a few seconds. Even though it crashes occasionally the overall CPU load is lower than before:
Same appears to be the case for memory usage:
Upgrade happened around 21:00 which explains the small CPU spike during that time.