In general, updates take place very quickly. In our benchmarks, the time from when a program first signals that an update is required, to the time the program transfers control into Kitsune, to the time when the new version of the program has taken over and finished initializing all state, is generally less than 200ms, and less than 500ms in the worst cases.

In general, the time for a dynamic update depends on the structure of the program, and the nature of the change. Some programs are very easy to update with Kitsune because they either have little in-flight state, or have data structures that are quick for Kitsune to traverse. Memcached, for example, updates quickly regardless of how full its caches are. Update times for Redis scale nearly linearly with database keys, on the opposite end of the spectrum. That said, a small change to Redis makes its updates essentially constant-time too. See our paper for details.