Chapter 8. Multiuser Jupyter Notebooks

Jupyter notebooks have the inherent ability to be modified by users as and when the user enters data or makes a selection. However, there is an issue with the standard implementation of the notebook server software that does not account for more than one person working on a notebook at the same time. The notebook server software is the underlying Jupyter software that displays the page and interacts with the user-it follows the directions in your notebook for display and interaction.

A notebook server, really a specialized internet web server, typically creates a new path or thread of execution for each user to allow for multiple users. A problem comes up when a lower level subroutine, used for all instances, does not properly account for multiple users where each has their own set of data.

Note

Some of the coding/installs of this chapter may not work in a Windows environment.

In this chapter, we will do the following:

  • We will give an example of the issue that occurs when multiple users access the same notebook in a standard Jupyter installation
  • We will use a new version of Jupyter, JupyterHub, that was built by extending upon Jupyter to specifically address the multiple user problem
  • We will also use Docker, a tool to allow for multiple instances of any software, to address the issue

Sample interactive notebook

For this chapter, we will use a simple notebook that asks the user for some information and displays other information.

For example, we could have a script such as this (taken from  Chapter 7 , Sharing and Converting Jupyter Notebooks):

from ipywidgets import interact
def myfunction(x):
    return x
interact(myfunction, x= "Hello World ")

The script presents a textbox to the user with the original value of the box containing the "Hello World" string. As the user interacts with the input field and changes the value, the value of the variable x in the script changes accordingly and is displayed on screen. For example, I have changed the value to the letter A:

Sample interactive notebook

We can see the multiuser problem if we just open the same page in another browser window (copy the URL, open a new browser window, paste in the URL, and hit Enter)-we get the exact same display pulling up the last checkpoint. The new window should have started with a new script, just prompting you with the default "Hello World" message. However, since the Jupyter server software is only expecting one user, there is only one copy of the variable x, so it displays its value.

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset
18.217.182.45