-
Georgy Kirichenko authored
This patch adds ability to reload C procedures on the fly without downtime. To achive that, Tarantool loads a new copy of shared library and starts routing all new request to the new version. The previous version remains active until all started calls are finished. All shared libraries are loaded with RTLD_LOCAL, therefore two or more copies can co-exist without any problems. From now box loads all external modules via an unique symlink to avoid caching inside dlopen(). If one of some module function is reloaded then all other functions from this module will be reloaded. Reviewed and heavily patched by Roman Tsisyk. Closes #910
Georgy Kirichenko authoredThis patch adds ability to reload C procedures on the fly without downtime. To achive that, Tarantool loads a new copy of shared library and starts routing all new request to the new version. The previous version remains active until all started calls are finished. All shared libraries are loaded with RTLD_LOCAL, therefore two or more copies can co-exist without any problems. From now box loads all external modules via an unique symlink to avoid caching inside dlopen(). If one of some module function is reloaded then all other functions from this module will be reloaded. Reviewed and heavily patched by Roman Tsisyk. Closes #910