rob05c opened a new issue #2199: Add Grove In-Place Upgrades URL: https://github.com/apache/incubator-trafficcontrol/issues/2199 In-place upgrades would be a great feature, to continue serving clients, and keep the same cache, without dropping connections or cached content. The two biggest requirements of this are setting the socket option on the serving port to allow multiple processes to bind (SO_REUSEPORT), and somehow transferring the cache. To reuse the port, the socket option could be manually set, or via a library like https://github.com/kavu/go_reuseport . We'll also probably need a script to read the log from the new binary, and once it indicates it's accepting connections, then terminate the old. To transfer the cache, there are several methods we could use. We could look into operating system shared memory. That's likely to be faster, but painful in Go, figuring out how to map allocated shared memory to a Go object, or alternatively using Cgo and writing the object in C. We could also create a way to signal the running cache to serialize to disk, and make the new binary populate its cache from the serialized file before startup. This isn't a high priority at the moment, this case mostly exists to document the idea right now.
---------------------------------------------------------------- This is an automated message from the Apache Git Service. To respond to the message, please log on GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: [email protected] With regards, Apache Git Services
