Skip to content

Commit

Permalink
DOC-65: 1st pass at Platform nav (#1133)
Browse files Browse the repository at this point in the history
Merge 1st pass and review
  • Loading branch information
oliverhowell committed Jun 28, 2024
1 parent 6fb97f0 commit c6507ab
Show file tree
Hide file tree
Showing 68 changed files with 6,965 additions and 1,510 deletions.
6 changes: 4 additions & 2 deletions antora-playbook-local.yml
Original file line number Diff line number Diff line change
@@ -1,12 +1,14 @@
site:
title: Documentation
url: http:localhost:5000
start_page: hazelcast:getting-started:get-started-cli.adoc
start_page: hazelcast:ROOT:what-is-hazelcast.adoc
robots: disallow
keys:
docsearch_id: 'QK2EAH8GB0'
docsearch_api: 'ef7bd9485eafbd75d6e8425949eda1f5'
docsearch_index: 'prod_hazelcast_docs'
urls:
html_extension_style: drop
content:
sources:
- url: .
Expand All @@ -17,7 +19,7 @@ content:
start_path: docs
ui:
bundle:
url: https://github.com/hazelcast/hazelcast-docs-ui/releases/latest/download/ui-bundle.zip #../hazelcast-docs-ui/build/ui-bundle.zip
url: ../hazelcast-docs-ui/build/ui-bundle.zip
snapshot: true
asciidoc:
attributes:
Expand Down
4 changes: 2 additions & 2 deletions docs/antora.yml
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ asciidoc:
page-latest-supported-python-client: '5.3.0'
page-latest-supported-nodejs-client: '5.3.0'
page-latest-supported-clc: '5.3.1'
open-source-product-name: 'Open Source'
enterprise-product-name: 'Enterprise'
open-source-product-name: 'Community Edition'
enterprise-product-name: 'Enterprise Edition'
nav:
- modules/ROOT/nav.adoc
230 changes: 179 additions & 51 deletions docs/modules/ROOT/nav.adoc
Original file line number Diff line number Diff line change
@@ -1,34 +1,131 @@
.Get Started
* xref:index.adoc[What is Hazelcast Platform]
include::getting-started:partial$nav.adoc[]
.Get started
* xref:whats-new.adoc[What's new in 5.4]
* xref:what-is-hazelcast.adoc[What is Hazelcast Platform]
* xref:getting-started:editions.adoc[Available versions]
//* xref:placeholder.adoc[Feature overview]
//* xref:placeholder.adoc[How Hazelcast works]
* Start a local cluster
** xref:getting-started:get-started-docker.adoc[Docker]
** xref:getting-started:get-started-cli.adoc[CLI]
** xref:getting-started:get-started-binary.adoc[Binary]
** xref:getting-started:get-started-java.adoc[Java Embedded]
* xref:getting-started:enterprise-overview.adoc[Get started with Enterprise Edition]
** xref:getting-started:persistence.adoc[]
** xref:getting-started:authenticate-clients.adoc[]
** xref:getting-started:wan.adoc[]
** xref:getting-started:blue-green.adoc[]
* Get started with SQL
** xref:sql:get-started-sql.adoc[]
** xref:sql:learn-sql.adoc[]
** xref:sql:get-started-sql-files.adoc[]
* xref:clients:hazelcast-clients.adoc[Get started with a Hazelcast Client]
* xref:getting-started:support.adoc[]
.Develop Solutions
* Finding the Right Tool
.Install & upgrade
* Overview
** xref:deploy:choosing-a-deployment-option.adoc[Available Topologies]
** xref:deploy:versioning-compatibility.adoc[Versioning and Compatibility]
** xref:deploy:deploying-in-cloud.adoc[Deploying on Cloud]
*** xref:deploy:deploying-on-aws.adoc[]
*** xref:deploy:deploying-on-azure.adoc[]
*** xref:deploy:deploying-on-gcp.adoc[]
** xref:deploy:deploying-with-docker.adoc[]
* xref:getting-started:install-enterprise.adoc[Install {enterprise-product-name}]
** xref:deploy:enterprise-licenses.adoc[Managing Enterprise license keys]
* xref:getting-started:install-hazelcast.adoc[Install {open-source-product-name}]
// * xref:placeholder.adoc[Upgrade to Enterprise from OSS/Community]
* xref:migrate:data-migration-tool.adoc[]
* Upgrades
** xref:migrate:upgrading-from-jet.adoc[]
** xref:migrate:upgrading-from-imdg-4.adoc[]
** xref:migrate:upgrading-from-imdg-3.adoc[]
** xref:migrate:migration-tool-imdg.adoc[]
*** xref:migrate:dmt-command-reference.adoc[]
* xref:release-notes:releases.adoc[Release notes]
// * xref:placeholder.adoc[Troubleshooting]
// * xref:placeholder.adoc[FAQ]
.Develop & build

* Ingestion
** xref:ingest:overview.adoc[]
** xref:computing:distributed-computing.adoc[]
** xref:query:overview.adoc[]
include::clients:partial$nav.adoc[]
* Best Practices
** xref:capacity-planning.adoc[]
** xref:cluster-performance:performance-tips.adoc[]
** xref:cluster-performance:back-pressure.adoc[]
** xref:cluster-performance:pipelining.adoc[]
** xref:cluster-performance:aws-deployments.adoc[]
** xref:cluster-performance:threading.adoc[]
** xref:cluster-performance:near-cache.adoc[]
include::architecture:partial$nav.adoc[]
* Member/Client Discovery
** xref:clusters:discovery-mechanisms.adoc[]
** xref:clusters:discovering-by-tcp.adoc[]
** xref:clusters:discovering-by-multicast.adoc[]
** xref:clusters:discovering-native-clients.adoc[]
include::kubernetes:partial$nav.adoc[]
include::data-structures:partial$nav.adoc[]
* xref:cache:overview.adoc[]
+
--
include::mapstore:partial$nav.adoc[]
--
include::pipelines:partial$nav.adoc[]
* SQL
** xref:sql:sql-overview.adoc[Overview]
** SQL Over Maps
*** xref:sql:get-started-sql.adoc[Tutorial]
*** xref:sql:querying-maps-sql.adoc[Queries]
*** xref:sql:mapping-to-maps.adoc[Mappings]
** SQL Over Kafka
*** xref:sql:learn-sql.adoc[Tutorial]
*** xref:sql:mapping-to-kafka.adoc[Mappings]
** SQL Over File Systems
*** xref:sql:get-started-sql-files.adoc[Tutorial]
*** xref:sql:mapping-to-a-file-system.adoc[Mappings]
** SQL Over JDBC
*** xref:sql:mapping-to-jdbc.adoc[Mappings]
** SQL Over MongoDB
*** xref:sql:mapping-to-mongo.adoc[Mappings]
** xref:sql:working-with-json.adoc[Working with JSON]
** xref:sql:querying-streams.adoc[Stream Processing]
** xref:sql:parameterized-queries.adoc[Query Parameters]
** xref:sql:finding-mappings.adoc[Finding Mappings]
** xref:sql:improving-performance.adoc[Improving Performance]
** xref:sql:sql-reflection-configuration.adoc[Reflection Configuration]
** xref:sql:troubleshooting.adoc[Troubleshooting]
** Statements
*** xref:sql:sql-statements.adoc[Overview]
*** xref:sql:alter-job.adoc[`ALTER JOB`]
*** xref:sql:create-data-connection.adoc[`CREATE DATA CONNECTION`]
*** xref:sql:create-index.adoc[`CREATE INDEX`]
*** xref:sql:create-job.adoc[`CREATE JOB`]
*** xref:sql:create-mapping.adoc[`CREATE MAPPING`]
*** xref:sql:create-snapshot.adoc[`CREATE SNAPSHOT`]
*** xref:sql:create-view.adoc[`CREATE VIEW`]
*** xref:sql:delete.adoc[`DELETE`]
*** xref:sql:drop-data-connection.adoc[`DROP DATA CONNECTION`]
*** xref:sql:drop-job.adoc[`DROP JOB`]
*** xref:sql:drop-mapping.adoc[`DROP MAPPING`]
*** xref:sql:drop-snapshot.adoc[`DROP SNAPSHOT`]
*** xref:sql:drop-view.adoc[`DROP VIEW`]
*** xref:sql:explain.adoc[`EXPLAIN`]
*** xref:sql:sink-into.adoc[`INSERT INTO`/`SINK INTO`]
*** xref:sql:select.adoc[`SELECT`]
*** xref:sql:show-jobs.adoc[`SHOW JOBS`]
*** xref:sql:show-resources.adoc[`SHOW RESOURCES`]
*** xref:sql:show-mappings.adoc[`SHOW MAPPINGS`]
*** xref:sql:update.adoc[`UPDATE`]
** xref:sql:functions-and-operators.adoc[Functions and Expressions]
** xref:sql:data-types.adoc[]
** xref:sql:user-defined-types.adoc[]
** Optimizing SQL queries
*** xref:sql:partition-pruning.adoc[Partition Pruning]
** xref:query:predicate-overview.adoc[Predicates API]
include::query:partial$nav.adoc[]
* Improving Query Performance
** xref:query:indexing-maps.adoc[]
** xref:performance:caching-deserialized-values.adoc[]
** xref:data-structures:preventing-out-of-memory.adoc[]
* SQL
+
--
include::sql:partial$nav.adoc[]
--
include::integrate:partial$nav.adoc[]
include::spring:partial$nav.adoc[]
include::computing:partial$nav.adoc[]
* xref:computing:entry-processor.adoc[]
* xref:clusters:user-code-namespaces.adoc[]
include::clusters:partial$nav.adoc[]
include::serialization:partial$nav.adoc[]
Expand All @@ -37,37 +134,22 @@ include::transactions:partial$nav.adoc[]
include::test:partial$nav.adoc[]
include::troubleshoot:partial$nav.adoc[]
.Deploy Clusters
* xref:production-checklist.adoc[]
* xref:capacity-planning.adoc[]
* Installation
** xref:deploy:choosing-a-deployment-option.adoc[]
** xref:getting-started:editions.adoc[Editions and Distributions]
** xref:getting-started:install-hazelcast.adoc[{open-source-product-name}]
** xref:getting-started:install-enterprise.adoc[{enterprise-product-name}]
* Member/Client Discovery
** xref:clusters:discovery-mechanisms.adoc[]
** xref:clusters:discovering-by-tcp.adoc[]
** xref:clusters:discovering-by-multicast.adoc[]
** xref:clusters:discovering-native-clients.adoc[]
include::deploy:partial$nav.adoc[]
include::kubernetes:partial$nav.adoc[]
.Operate & manage
.Configure and Manage Clusters
include::configuration:partial$nav.adoc[]
* xref:deploy:enterprise-licenses.adoc[]
* xref:maintain-cluster:logging.adoc[]
include::maintain-cluster:partial$nav.adoc[]
* Partition Groups and Networking
** xref:clusters:creating-clusters.adoc[Grouping Clusters]
** xref:clusters:partition-group-configuration.adoc[Grouping Partitions]
** xref:clusters:network-configuration.adoc[Networking]
* xref:configuration:jet-configuration.adoc[]
include::cluster-performance:partial$nav.adoc[]
include::secure-cluster:partial$nav.adoc[]
include::fault-tolerance:partial$nav.adoc[]
** xref:storage:high-density-memory.adoc[]
include::tiered-storage:partial$nav.adoc[]
include::cp-subsystem:partial$nav.adoc[]
** xref:cluster-performance:thread-per-core-tpc.adoc[]
include::data-connections:partial$nav.adoc[]
include::wan:partial$nav.adoc[]
* xref:extending-hazelcast:extending-hazelcast.adoc[]
Expand All @@ -81,25 +163,71 @@ include::wan:partial$nav.adoc[]
** xref:osgi:design.adoc[]
** xref:osgi:using-osgi-service.adoc[]
.Upgrade
include::migrate:partial$nav.adoc[]
.Integrate
* xref:integrate:connectors.adoc[Overview]
* Files
// Files need an overview (options, what's available for SQL, what's available for Jet API)
** xref:integrate:file-connector.adoc[]
** xref:integrate:legacy-file-connector.adoc[]
* Integrating with Spring
** xref:spring:overview.adoc[Overview]
** xref:spring:configuration.adoc[]
** xref:spring:springaware.adoc[]
** xref:spring:add-caching.adoc[]
** xref:spring:hibernate.adoc[]
** xref:spring:transaction-manager.adoc[]
** xref:spring:best-practices.adoc[]
* xref:integrate:kafka-connect-connectors.adoc[]
* Messaging System Connectors
** xref:integrate:messaging-system-connectors.adoc[Overview]
** xref:integrate:kafka-connector.adoc[]
** xref:integrate:kinesis-connector.adoc[]
** xref:integrate:jms-connector.adoc[]
** xref:integrate:pulsar-connector.adoc[]
* Data Structure Connectors
// Need an overview (options, what's available for SQL, what's available for JetAPI)
** xref:integrate:jcache-connector.adoc[]
** xref:integrate:list-connector.adoc[]
** xref:integrate:map-connector.adoc[]
** xref:integrate:reliable-topic-connector.adoc[]
* Databases
** xref:integrate:database-connectors.adoc[Overview]
** xref:integrate:jdbc-connector.adoc[]
** xref:integrate:cdc-connectors.adoc[]
** xref:integrate:elasticsearch-connector.adoc[]
** xref:integrate:mongodb-connector.adoc[]
** xref:integrate:influxdb-connector.adoc[]
** xref:integrate:redis-connector.adoc[]
* xref:integrate:test-connectors.adoc[]
* xref:integrate:socket-connector.adoc[]
* xref:integrate:http-connector.adoc[]
* xref:integrate:twitter-connector.adoc[]
* xref:integrate:custom-connectors.adoc[]
.Reference

include::architecture:partial$nav.adoc[]

* xref:system-properties.adoc[]
* xref:faq.adoc[]
* xref:list-of-metrics.adoc[Metrics]
* xref:phone-homes.adoc[]
* xref:compact-binary-specification.adoc[]
.Clients & APIs
* xref:clients:hazelcast-clients.adoc[Overview]
* xref:clients:java.adoc[]
* xref:clients:cplusplus.adoc[]
* xref:clients:dotnet.adoc[]
* xref:maintain-cluster:enterprise-rest-api.adoc[]
* xref:clients:memcache.adoc[]
* xref:clients:python.adoc[]
* xref:clients:nodejs.adoc[]
* xref:clients:go.adoc[]
.Tools & plugins
* xref:management-center.adoc[Management Center]
* xref:kubernetes:deploying-in-kubernetes.adoc#hazelcast-platform-operator-for-kubernetesopenshift[Platform Operator]
* xref:clients:clc.adoc[Command Line Client (CLC)]
* xref:ROOT:simulator.adoc[Simulator]
* xref:plugins:hazelcast-plugins.adoc[]
** xref:plugins:cloud-discovery.adoc[]
** xref:plugins:web-session-replication.adoc[]
** xref:plugins:framework-integration.adoc[]
** xref:plugins:other-integrations.adoc[]
.Reference
* xref:ROOT:glossary.adoc[]
* xref:system-properties.adoc[]
* xref:faq.adoc[]
* xref:list-of-metrics.adoc[Metrics]
76 changes: 0 additions & 76 deletions docs/modules/ROOT/pages/capacity-planning.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -227,82 +227,6 @@ Multi-socket clients are the smart clients which maintain a connection to each m
Unisocket clients have a single connection to the entire cluster.
You can find more information about these two modes here: xref:clients:java.adoc#java-client-operation-modes[Java Client Operation Modes].

== Uniform Hardware

Hazelcast is designed to run efficiently on homogeneous clusters. All JVM
processes that participate in the cluster should have equal CPU, memory
and network resources. One slow cluster member can kill the performance
of the whole cluster.

=== Minimal Configuration

Hazelcast is a lightweight framework and is reported to run well on devices
such as the Raspberry Pi Zero (1GHz single-core CPU, 512MB RAM).

=== Recommended Configuration

As a starting point for data-intensive operations, consider machines
such as AWS https://aws.amazon.com/ec2/instance-types/c5/[c5.2xlarge]
with:

* 8 CPU cores
* 16 GB RAM
* 10 Gbps network

=== CPU

Hazelcast can use hundreds of CPU cores efficiently by exploiting data and
task parallelism. Adding more CPU can therefore help with scaling the
CPU-bound computations. If you're using jobs and pipelines, read about the
xref:architecture:distributed-computing.adoc#cooperative-execution-engine[Execution model]
to understand how Hazelcast makes the computation parallel and design your pipelines according to it.

By default, Hazelcast uses all available CPU. Starting two Hazelcast
instances on one machine therefore doesn't bring any performance benefit
as the instances would compete for the same CPU resources.

Don't rely just on CPU usage when benchmarking your cluster. Simulate
production workload and measure the throughput and latency instead. The
task manager of Hazelcast can be configured to use the CPU aggressively.
As an example, see https://hazelcast.com/blog/idle-green-threads-in-jet/[this benchmark]: the CPU usage was close to 20% with just 1000 events/s. At 1m items/s
the CPU usage was 100% even though Jet still could push around 5 million
items/s on that machine.

=== Network

Hazelcast uses the network internally to shuffle data and to replicate the
backups. The network is also used to read input data from and to write
results to remote systems or to do RPC calls when enriching. In fact a
lot of Hazelcast jobs are network-bound. A 1 Gbit network connection is a
recommended minimum, but using a 10 Gbit or faster network
can improve application performance. Also consider scaling the cluster
out (adding more members to the cluster) to distribute the load.

Consider collocating a Hazelcast cluster with the data source and sink to avoid
moving data back and forth over the wire. If you must choose between colocating
Hazelcast with the source or sink, choose the source. Processed results are often
aggregated, so the size is reduced.

A Hazelcast cluster is designed to run in a single LAN and can encounter unexpected
performance problems if a single cluster is split across multiple different networks.
Latency is the strongest constraint in most network scenarios, so deploying Hazelcast
clusters to a network with high or varying latencies (even on the same LAN) can lead
to unpredictable performance results.

=== Disk

Hazelcast is an in-memory framework. Cluster disks aren't involved in regular
operations except for logging and thus are not critical for the cluster
performance. There are optional features of Hazelcast (such as Persistence and
CP Persistence) which may utilize disk space, but even when they are in use a
Hazelcast system is primarily in-memory.

Consider using more performant disks if you use the following Hazelcast features:

* xref:pipelines:sources-sinks.adoc[The file connector] for reading or writing to files on the cluster's file system.
* xref:storage:persistence.adoc[Persistence] for saving map data to disk.
* xref:cp-subsystem:persistence.adoc[CP Persistence] for strong resiliency guarantees when using the CP Subsystem.

== Size for Failures

Hazelcast clusters are elastic to deal with failures and performance spikes.
Expand Down
Loading

0 comments on commit c6507ab

Please sign in to comment.