diff --git a/source/connect.txt b/source/connect.txt index ca6d1a99..999d8848 100644 --- a/source/connect.txt +++ b/source/connect.txt @@ -121,34 +121,6 @@ connecting by using TLS: .. To learn more about disabling hostname verification, see :ref:`kotlin-sync-insecure-tls` in .. the TLS configuration guide. -Network Compression -------------------- - -The following sections describe how to connect to MongoDB -while specifying network compression algorithms. - -Compression Algorithms -~~~~~~~~~~~~~~~~~~~~~~ - -The following tabs demonstrate how to specify all available compressors -while connecting to MongoDB: - -.. include:: /includes/connect/compression-tabs.rst - -.. To learn more about specifying compression algorithms, see -.. :ref:`kotlin-sync-enable-compression` in the Network Compression guide. - -zlib Compression Level -~~~~~~~~~~~~~~~~~~~~~~ - -The following tabs demonstrate how to specify a compression level for -the ``zlib`` compressor: - -.. include:: /includes/connect/zlib-level-tabs.rst - -.. To learn more about setting the zlib compression level, see -.. :ref:`kotlin-sync-enable-compression` in the Network Compression guide. - Server Selection ---------------- diff --git a/source/connect/connection-options.txt b/source/connect/connection-options.txt index f01765be..16be34bc 100644 --- a/source/connect/connection-options.txt +++ b/source/connect/connection-options.txt @@ -15,13 +15,11 @@ Specify Connection Options :titlesonly: :maxdepth: 1 - Stable API - Limit Server Execution Time + Network Compression + Stable API + Limit Server Execution Time Connection Pools -.. /connect/network-compression -.. /connect/server-selection - Overview -------- diff --git a/source/connect/csot.txt b/source/connect/connection-options/csot.txt similarity index 100% rename from source/connect/csot.txt rename to source/connect/connection-options/csot.txt diff --git a/source/connect/connection-options/network-compression.txt b/source/connect/connection-options/network-compression.txt new file mode 100644 index 00000000..4387b9be --- /dev/null +++ b/source/connect/connection-options/network-compression.txt @@ -0,0 +1,96 @@ +.. _kotlin-sync-compression: + +======================== +Compress Network Traffic +======================== + +.. contents:: On this page + :local: + :backlinks: none + :depth: 1 + :class: singlecol + +.. facet:: + :name: genre + :values: reference + +.. meta:: + :keywords: zlib, zstandard, zstd, snappy + +Overview +-------- + +In this guide, you can learn how to use the {+driver-short+} to enable network +compression. The driver provides a connection option to compress messages, which +reduces the amount of data passed over the network between MongoDB and your application. + +The driver supports the following compression algorithms: + +- `Snappy `__ +- `Zlib `__ +- `Zstandard `__ + +If you specify multiple compression algorithms, the driver selects the first one +in the list supported by your MongoDB instance. + +.. note:: + + Applications that require Snappy or Zstandard compression must + add explicit dependencies for those algorithms. To learn more, + see the :ref:`kotlin-sync-compression-dependencies` section of this guide. + +Specify Compression Algorithms +------------------------------ + +You can enable compression for the connection to your MongoDB instance +by specifying the algorithms in one of the following ways: + +- Chain the ``compressorList()`` method to the ``MongoClientSettings.builder()`` method. +- Use the ``compressors`` parameter in your connection URI. + +The following examples demonstrate how to specify all available compressors +while connecting to MongoDB. Select the :guilabel:`MongoClientSettings` or :guilabel:`Connection URI` +tab to see the corresponding syntax: + +.. include:: /includes/connect/compression-tabs.rst + +Specify the Zlib Compression Level +---------------------------------- + +If you specify ``zlib`` as one of your compression algorithms, you can also use the +``MongoCompressor.LEVEL`` property to specify a compression level. This option accepts +an integer value between ``-1`` and ``9``: + +- **-1:** Default compression (usually ``6``) +- **0:** No compression +- **1:** Fastest speed but lowest compression +- **9:** Best compression but slowest speed + +The following examples demonstrate how to specify a compression level for +the ``zlib`` compressor. Select the :guilabel:`MongoClientSettings` or :guilabel:`Connection URI` +tab to see the corresponding syntax: + +.. include:: /includes/connect/zlib-level-tabs.rst + +.. _kotlin-sync-compression-dependencies: + +Compression Algorithm Dependencies +---------------------------------- + +The JDK natively supports `Zlib `__ compression. However, +Snappy and Zstandard depend on open source Java implementations. To learn more +about these implementations, see the following GitHub repositories: + +- `snappy-java `__ +- `zstd-jni `__ + +API Documentation +----------------- + +To learn more about any of the methods or types discussed in this +guide, see the following API documentation: + +- `MongoClient <{+driver-api+}/-mongo-client/index.html>`__ +- `createSnappyCompressor() <{+core-api+}/MongoCompressor.html#createSnappyCompressor()>`__ +- `createZlibCompressor() <{+core-api+}/MongoCompressor.html#createZlibCompressor()>`__ +- `createZstdCompressor() <{+core-api+}/MongoCompressor.html#createZstdCompressor()>`__ \ No newline at end of file diff --git a/source/connect/stable-api.txt b/source/connect/connection-options/stable-api.txt similarity index 100% rename from source/connect/stable-api.txt rename to source/connect/connection-options/stable-api.txt