hunk.code_window: Reporting bugs and asking questions
   -----------------------------------
   We use `GitHub issues`_ for bug reports and feature requests. For discussions
   about development, questions about usage, or any general questions, we use our
   mailing list `ray-dev@googlegroups.com`_.
   To contribute a patch:
   ----------------------
  
hunk.labels: keep keep keep replace replace replace keep keep keep
hunk.after_edit: You can post questions or issues or feedback through the following channels:
   1. `ray-dev@googlegroups.com`_: For discussions about development or any general
      questions and feedback.
   2. `StackOverflow`_: For questions about how to use Ray.
   3. `GitHub Issues`_: For bug reports and feature requests.
  
hunk.file_path: CONTRIBUTING.rst
hunk.type: replace
file: The Plasma Object Store
  =======================
  
  Plasma is a high-performance shared memory object store originally developed in
  Ray and now being developed in `Apache Arrow`_. See the `relevant
  documentation`_.
  
  Using Plasma with Huge Pages
  ----------------------------
  
  On Linux, it is possible to increase the write throughput of the Plasma object
  store by using huge pages. You first need to create a file system and activate
  huge pages as follows.
  
  .. code-block:: shell
  
    sudo mkdir -p /mnt/hugepages
    gid=`id -g`
    uid=`id -u`
    sudo mount -t hugetlbfs -o uid=$uid -o gid=$gid none /mnt/hugepages
    sudo bash -c "echo $gid > /proc/sys/vm/hugetlb_shm_group"
    # This typically corresponds to 20000 2MB pages (about 40GB), but this
    # depends on the platform.
    sudo bash -c "echo 20000 > /proc/sys/vm/nr_hugepages"
  
  **Note:** Once you create the huge pages, they will take up memory which will
  never be freed unless you remove the huge pages. If you run into memory issues,
  that may be the issue.
  
  You need root access to create the file system, but not for running the object
  store.
  
  You can then start Ray with huge pages on a single machine as follows.
  
  .. code-block:: python
  
    ray.init(huge_pages=True, plasma_directory="/mnt/hugepages")
  
  In the cluster case, you can do it by passing ``--huge-pages`` and
  ``--plasma-directory=/mnt/hugepages`` into ``ray start`` on any machines where
  huge pages should be enabled.
  
  See the relevant `Arrow documentation for huge pages`_.
  
  .. _`Apache Arrow`: https://arrow.apache.org/
  .. _`relevant documentation`: https://arrow.apache.org/docs/python/plasma.html#the-plasma-in-memory-object-store
  .. _`Arrow documentation for huge pages`: https://arrow.apache.org/docs/python/plasma.html#using-plasma-with-huge-pages
  