Skip to content
Snippets Groups Projects
  • Georgy Kirichenko's avatar
    96938faf
    Add hot function reload for C procedures · 96938faf
    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
    96938faf
    History
    Add hot function reload for C procedures
    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