Skip to content

Adding new footnote functionality #3831

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 6 commits into
base: release/7.6
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 3 additions & 2 deletions modules/install/pages/install-platforms.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -33,8 +33,7 @@ a|* AL2023 (x86-64, ARM64)
a| * 12.x
* 11.x

| Oracle Linux{empty}footnote:[Only the Red Hat Compatible Kernel (RHCK) is supported.
The Unbreakable Enterprise Kernel (UEK) is not supported.]
| Oracle Linux{empty}afnote:table-1[Only the Red Hat Compatible Kernel (RHCK) is supported. The Unbreakable Enterprise Kernel (UEK) is not supported.]
a|* 9.x
* 8.x

Expand Down Expand Up @@ -62,6 +61,8 @@ a|* 2022

|===

afnote::table-1[]

.Supported Operating Systems for Development and Testing Only
[cols="100,135",options="header"]
|===
Expand Down
59 changes: 36 additions & 23 deletions modules/install/pages/install-ports.adoc
Original file line number Diff line number Diff line change
@@ -1,8 +1,10 @@
= Couchbase Server Ports

:description: Couchbase Server uses multiple TCP ports to facilitate communication between server components, as well as with Couchbase clients.
:fn-eventing-debug-port: pass:n[footnote:fn-eventing-debug-port[pass:n[The Eventing Service Debugger port `eventing_debug_port` (9140) is an internal port and is not supported for external access outside of the cluster. You should only use this port in your development environments.\]]]
:fn-encrypted-traffic-port: footnote:fn-encrypted-traffic-port[The Cluster Management Exchange encrypted port 21250 is not currently used, but is reserved for future use.]
:fn-encrypted-communication-port: footnote:fn-encrypted-communication-port[The Cluster Management Exchange encrypted port 21350 is not currently used, but is reserved for future use.]

:afnote-eventing-debug-port: afnote:table-2[The Eventing Service Debugger port `eventing_debug_port` (9140) is an internal port and is not supported for external access outside of the cluster. You should only use this port in your development environments., refid=eventing-debug-port]
:afnote-encrypted-traffic-port: afnote:table-2[The Cluster Management Exchange encrypted port 21250 is not currently used, but is reserved for future use., refid=encrypted-traffic]
:afnote-encrypted-communication-port: afnote:table-2[The Cluster Management Exchange encrypted port 21350 is not currently used, but is reserved for future use., refid=encrypted-comms]

[abstract]
{description}
Expand All @@ -12,11 +14,14 @@ These ports must be open for Couchbase Server to operate correctly.

This page describes the TCP ports that are used by Couchbase Server for network communication.
Some ports, such as those used for cluster management, are required to be open on every node because they are essential to how Couchbase Server communicates with itself.
Other ports are used by individual xref:learn:services-and-indexes/services/services.adoc[Couchbase Services], and are only required to be open on the nodes where those services are running.
Other ports are used by individual xref:learn:services-and-indexes/services/services.adoc[Couchbase Services] and are only required to be open on the nodes where those services are running.

Couchbase Server uses a default set of port numbers for all ports that it requires.
The xref:learn:clusters-and-availability/cluster-manager.adoc[Couchbase Cluster Manager] on each node is responsible for port management, and will open and close these ports on the host as necessary, as well as automatically switch to using encrypted ports if the cluster is configured to use TLS.
Most port numbers can be <<map-custom-ports,remapped>> to fit the requirements of your network environment, but some port numbers cannot be changed.
The xref:learn:clusters-and-availability/cluster-manager.adoc[Couchbase Cluster Manager] on each node is responsible for port management.
It will open and close these ports on the host as necessary,
as well as automatically switch to using encrypted ports if the cluster is configured to use TLS.
Most port numbers can be <<map-custom-ports,remapped>> to fit the requirements of your network environment,
but some port numbers cannot be changed.

IMPORTANT: If other software on the same host is using any of the ports that are required by Couchbase Server, then Couchbase Server will not function properly and may fail to start.
Refer to <<port-availability>> below.
Expand All @@ -25,8 +30,12 @@ Refer to <<port-availability>> below.

An _ephemeral_ port is one temporarily allocated by a server's operating system, as the source for an outgoing communication.
Each operating system provides a default range of port numbers that can be assigned to ephemeral ports, when necessary.
For Linux distributions, the typical range is 32768-61000.
Couchbase Server relies on the _full_ default range provided by each operating system: therefore, the default range should _not_ be reduced by the administrator; since the resulting lack of ephemeral ports may result in outgoing communications using _well-known_ ports instead (for example, _8091_); thereby preventing Couchbase-Server processes from binding to the well-known ports to which they are assigned.
For Linux distributions, the typical range is 32768–61000.
Couchbase Server relies on the _full_ default range provided by each operating system:
therefore, the default range should _not_ be reduced by the administrator;
since the resulting lack of ephemeral ports may result in outgoing communications using _well-known_ ports instead,
(for example, _8091_);
thereby preventing Couchbase-Server processes from binding to the well-known ports to which they are assigned.

=== Couchbase Server Communication Paths

Expand Down Expand Up @@ -72,29 +81,30 @@ The following table lists all port numbers, grouped by category of communication
| _Node-local only_
| *Unencrypted*: 9119, 9998, 11213, 21200, 21300

*Encrypted*: 21250 {fn-encrypted-traffic-port}, 21350 {fn-encrypted-communication-port}
*Encrypted*: 21250 {afnote-encrypted-traffic-port}, 21350 {afnote-encrypted-communication-port}

| _Node-to-node_
| *Unencrypted*: 4369, 8091-8094, 9100-9105, 9110-9118, 9120-9122, 9130, 9999, 11209-11210, 21100

*Encrypted*: 9999, 11206, 11207, 18091-18094, 19102, 19130, 21150

| _Client-to-node_
| *Unencrypted*: 8091-8097, 9123, 9140 {fn-eventing-debug-port}, 11210, 11280
| *Unencrypted*: 80918097, 9123, 9140 {afnote-eventing-debug-port}, 11210, 11280

*Encrypted*: 11207, 18091-18097
*Encrypted*: 11207, 1809118097

| _XDCR (cluster-to-cluster)_
a| * Version 2 (XMEM)
** *Unencrypted*: 8091, 8092, 11210
** *Encrypted*: 11207, 18091, 18092

NOTE: If enforcing TLS encryption, these ports may be blocked outside of a Couchbase Server cluster but need to remain open between nodes.
NOTE: If enforcing TLS encryption,
these ports may be blocked outside a Couchbase Server cluster but need to remain open between nodes.

| _cbbackupmgr (backup/restore client)_
a| *Unencrypted*: 8091-8096, 9102, 11210
a| *Unencrypted*: 80918096, 9102, 11210

*Encrypted*: 11207, 18091-18096, 19102
*Encrypted*: 11207, 1809118096, 19102

[NOTE]
====
Expand Down Expand Up @@ -135,7 +145,7 @@ The following table contains a detailed description of each port used by Couchba
| Client-to-node
| XDCR (cluster-to-cluster)

| `epmd` footnote:fn-cannot-remap[This port cannot be remapped.]
| `epmd`{empty}afnote:table-2[This port cannot be remapped.]
| 4369
| Erlang Port Mapper Daemon
| Yes
Expand Down Expand Up @@ -354,7 +364,7 @@ a| Search Service gRPC port used for xref:learn:services-and-indexes/services/se
| No
| No

| `eventing_debug_port` footnote:fn-eventing-debug-port[]
| `eventing_debug_port` afnote:table-2[refid=eventing-debug-port]
| 9140
| Eventing Service Debugger
| No
Expand All @@ -379,7 +389,7 @@ a| Search Service gRPC port used for xref:learn:services-and-indexes/services/se

| `memcached_dedicated_port` / `memcached_dedicated_ssl_port`
| 11209 / 11206
| Data Service and ns_server. Used for important control-commands; e.g. creation of buckets and vBuckets, and compaction.
| Data Service and ns_server. Used for important control-commands; e.g., creation of buckets and vBuckets, and compaction.
| Yes
| No
| No
Expand All @@ -405,7 +415,7 @@ a| Search Service gRPC port used for xref:learn:services-and-indexes/services/se
| No
| No

| Cluster Management Exchange footnote:fn-encrypted-traffic-port[]
| Cluster Management Exchange{empty}afnote:table-2[refid=encrypted-traffic]
| 21200 / 21250
| Cluster management traffic and communication

Expand All @@ -414,7 +424,7 @@ a| Search Service gRPC port used for xref:learn:services-and-indexes/services/se
| No
| No

| Cluster Management Exchange footnote:fn-encrypted-communication-port[]
| Cluster Management Exchange{empty} afnote:table-2[refid=encrypted-comms]
| 21300 / 21350
| Cluster management traffic and communication

Expand All @@ -424,6 +434,8 @@ a| Search Service gRPC port used for xref:learn:services-and-indexes/services/se
| No
|===

afnote:table-2[]

[#map-custom-ports]
== Custom Port Mapping

Expand All @@ -437,15 +449,16 @@ WARNING: Changing port mappings should only be done at the time of initial node/
.To Change Port Mapping
. xref:install-intro.adoc[Install Couchbase Server].
. xref:startup-shutdown.adoc[Stop the Couchbase Server service].
. For most ports, you'll need to edit the Couchbase Server [.path]_static_config_ file.
. For most ports, you will need to edit the Couchbase Server [.path]_static_config_ file.
(This will be wherever you put the path to [.path]_/couchbase/etc/couchbase/static_config_ in multi-node installations.)
+
[source,console]
----
vi /opt/couchbase/etc/couchbase/static_config
----
+
If you're remapping the CAPI port (8092 / 18092) you'll need to edit the [.path]_/opt/couchbase/etc/couchdb/default.d/capi.ini_ file and replace 8092 with the new port number.
If you are remapping the CAPI port (8092 / 18092),
you will need to edit the [.path]_/opt/couchbase/etc/couchdb/default.d/capi.ini_ file and replace 8092 with the new port number.
. Add each custom port map entry on its own line, using the following format (enclosed in braces and terminated by a period):
+
[source,console,subs=+quotes]
Expand All @@ -460,8 +473,8 @@ For example, to change the REST API port from 8091 to 9000, you would add the fo
{rest_port, 9000}.
----
+
Once you've added all of your custom port mappings, save the file and close your text editor.
. If Couchbase Server was previously configured, you'll need to delete the [.path]_/opt/couchbase/var/lib/couchbase/config/config.dat_ file and files in the [.path]_/opt/couchbase/var/lib/couchbase/config/chronicle/_ directory to remove the old configuration.
Once you have added all of your custom port mappings, save the file and close your text editor.
. If Couchbase Server was previously configured, you will need to delete the [.path]_/opt/couchbase/var/lib/couchbase/config/config.dat_ file and files in the [.path]_/opt/couchbase/var/lib/couchbase/config/chronicle/_ directory to remove the old configuration.
+
[source,console]
----
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,9 @@
{description}
It is important to understand which backend storage is best suited to your requirements.

:afnote-omit-separators: true
:magma-support-note-fn: If these services are required in versions prior to 7.1.2, Couchstore should be used.
:magma-memory-requirements-fn: Magma's minimum memory requirement is higher at 1GB per node due to the more complex data structures it has to maintain.
== Couchstore

Couchstore is the default bucket storage engine.
Expand All @@ -19,10 +22,10 @@ If you have a small data set that can fit in memory, then you should consider us

Magma is designed for high performance with very large datasets that do not fit in memory.
It is ideal for use cases that rely primarily on disk access.
The performance of disk access will be as good as the underlying disk sub-systems --
The performance of disk access will be as good as the underlying disk subsystems --
for example, using NVMe SSDs will give higher performance.

In order to get maximum performance from Magma for disk-oriented workloads, it is recommended to set the Writer Threads to `Disk i/o optimized`. This setting will ensure there are enough threads to sustain high write rates.
To get maximum performance from Magma for disk-oriented workloads, it is recommended to set the Writer Threads to `Disk i/o optimized`. This setting will ensure there are enough threads to sustain high write rates.

To learn more about Writer Thread settings, see xref:manage:manage-settings/general-settings.adoc#data-settings[Data Settings]

Expand All @@ -38,11 +41,10 @@ For example, if a node is holding 5{nbsp}TB of data, Magma can be used with only
|Query, Index, XDCR, Backup

|*Version 7.1.2 and Higher*
|[[magma-support-ref]]Search, Eventing, Analytics<<magma-support-note, ^[1]^>>
|[[magma-support-ref]]Search, Eventing, Analytics{empty}afnote:magma-support-fns[{magma-support-note-fn}]
|===

[horizontal]
[[magma-support-note]]<<magma-support-ref, ^1^>>:: If these services are required in versions prior to 7.1.2, Couchstore should be used.
afnote:magma-support-fns[omit-separator=true]

== Couchstore and Magma at a Glance

Expand All @@ -51,7 +53,7 @@ For example, if a node is holding 5{nbsp}TB of data, Magma can be used with only

| Minimum bucket memory quota
| 100{nbsp}MB
| [[quota-ref]]1{nbsp}GB<<quota-note, ^[1]^>>
| [[quota-ref]]1{nbsp}GB{empty}afnote:mem-req-fns[{magma-memory-requirements-fn}]

| Minimum memory to data ratio
| 10%
Expand All @@ -62,8 +64,7 @@ For example, if a node is holding 5{nbsp}TB of data, Magma can be used with only
| 10{nbsp}TB

|===
[horizontal]
[[quota-note]]<<quota-ref, ^1^>>:: Magma's minimum memory requirement is higher at 1GB per node due to the more complex data structures it has to maintain.
afnote:mem-req-fns[omit-separator=true]

== When should you use Couchstore?

Expand Down