diff --git a/doc/source/_templates/breadcrumbs.html b/doc/source/_templates/breadcrumbs.html
new file mode 100644
index 000000000..f906c40db
--- /dev/null
+++ b/doc/source/_templates/breadcrumbs.html
@@ -0,0 +1,15 @@
+
+
+
+
diff --git a/doc/source/conf.py b/doc/source/conf.py
index ee686073f..63a971653 100644
--- a/doc/source/conf.py
+++ b/doc/source/conf.py
@@ -14,6 +14,7 @@
import sys
import os
+import urllib
import shlex
# These lines added to enable Sphinx to work without installing Ray.
@@ -330,4 +331,28 @@ texinfo_documents = [
# Python methods should be presented in source code order
autodoc_member_order = 'bysource'
-# see also http://searchvoidstar.tumblr.com/post/125486358368/making-pdfs-from-markdown-on-readthedocsorg-using
+# Taken from https://github.com/edx/edx-documentation
+FEEDBACK_FORM_FMT = "https://github.com/ray-project/ray/issues/new?title={title}&labels=docs&body={body}"
+
+
+def feedback_form_url(project, page):
+ """Create a URL for feedback on a particular page in a project."""
+ return FEEDBACK_FORM_FMT.format(
+ title=urllib.parse.quote(
+ "[docs] Issue on `{page}.rst`".format(page=page)),
+ body=urllib.parse.quote(
+ "# Documentation Problem/Question/Comment\n"
+ "\n"
+ "\n"
+ "\n\n\n\n"
+ "(Created directly from the docs)\n"))
+
+
+def update_context(app, pagename, templatename, context, doctree):
+ """Update the page rendering context to include ``feedback_form_url``."""
+ context['feedback_form_url'] = feedback_form_url(app.config.project,
+ pagename)
+
+
+def setup(app):
+ app.connect('html-page-context', update_context)
diff --git a/doc/source/object-store.rst b/doc/source/object-store.rst
index 0cf80750b..cc92225e0 100644
--- a/doc/source/object-store.rst
+++ b/doc/source/object-store.rst
@@ -117,7 +117,7 @@ Serialization: Numpy Arrays
---------------------------
Ray optimizes for numpy arrays by using the `Apache Arrow`_ data format.
-The numpy array is stored as a read-only object, and all Ray workers on the same node can read the numpy array in the object store without copying (zero-copy reads). Each numpy array object in the worker process holds a pointer to the relevant array held in shared memory. Any writes to the read-only object will result in a copy into the local process memory.
+The numpy array is stored as a read-only object, and all Ray workers on the same node can read the numpy array in the object store without copying (zero-copy reads). Each numpy array object in the worker process holds a pointer to the relevant array held in shared memory. Any writes to the read-only object will require the user to first copy it into the local process memory.
There are some advantages to this form of serialization: