blob: 8a8c8e7a54d4dd04b80243bedc87089a413a4382 [file] [log] [blame]
// Licensed to the Apache Software Foundation (ASF) under one or more
// contributor license agreements. See the NOTICE file distributed with
// this work for additional information regarding copyright ownership.
// The ASF licenses this file to You under the Apache License, Version 2.0
// (the "License"); you may not use this file except in compliance with
// the License. You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
There are two types of nodes: servers and clients.
A _server node_ is the base computational and data storage unit. Typically, you start a single server
node per machine or container and it will scale vertically by utilizing all of the CPU, RAM, and other resources
available unless specified differently. Those resources are pooled and become available to Ignite applications
once the server node joins a cluster of other server nodes.
image::images/ignite_clustering.png[Ignite Deployment]
A _cluster_ is a group of server nodes interconnected together in order to provide shared resources like RAM and
CPU to your applications.
Operations executed by applications (key-value queries, SQL, computations, etc.) are directed to and performed by
server nodes. If you need more computational power or data storage, scale out your cluster by adding more server
nodes to it.
_Client nodes_ are your connection endpoints and gateways from the application layer to the cluster of
server nodes. You always embed a client into your application code and execute required APIs. The clients shield all
the complexity of Ignite's distributed nature from application developers who will see the cluster as a single unit. It's as simple as connecting to an RDBMS via a JDBC driver or Spring Data framework.