Renku's data recovery and autosave capabilities

We have not mentioned much about this topic here. However, in light of recent events and also in general, it is a good idea to recap how Renku can help users recover data. This refers to data that is lost when a session is interrupted in some way such that the data or code that is unsaved is lost when the session is restarted. Furthermore, it should be noted what we mean by “saving” here. Because Renku uses essentially ephemeral computing environments simply saving your code in your editor alone is not enough because this file and all your data will be completely deleted when you shut down your session. In Renku things are properly saved only when they are committed and pushed to Gitlab.

Now because not all of us are Git ninjas, and after all we are all human and can make mistakes, Renku has a few features that try to prevent losing data from user sessions.

These “autosave” features create a branch in the Gitlab repository for the project with a specific name. This branch contains all unsaved data that was around when the session was terminated. There are a few scenarios that these features address:

  1. When a user shuts down a session but there are changes in the repository that are either uncommitted or committed but not pushed to Gitlab.
  2. When an outage or similar problems occur, and the session is interrupted due to factors that are outside of the user or even Renku developers’ control. In this case it is not always guaranteed that the autosave branch can be created fully. So in this case data loss can occur.

Either way if you have some data that was successfully recovered by Renku, then when you start a new session you will get notified that this has occurred. Once your session starts the recovered data will be present in your session, either as uncommitted or un-pushed changes or both. When you are back into your session with the recovered data you can decide what to do with it. If you wish to keep it all you have to do is commit and push the changes. If you do not wish to keep it, you can simply undo these changes. As a matter of fact, Renku will even tell you what command to run to discard the “autosaved” data you do not wish to keep when you launch your session.