blob: 5b0c24e6db5a225791e227482946815e9e0ca753 [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.
= Cache Storage
Ignite Caches are designed as temporary storage for rapid response "cache" of data that may be required for local operation.
Cache data is always stored in a special *cache store*. By default, the cache maintains a weak consistency with the remote storage.
== Difference Between Caches and Tables
Unlike tables, in Ignite caches do not have persistence or store transaction history. This means that caches also do not support read-only transactions and continuous queries, as those features rely on transaction history to ensure consistency.
Fields in caches cannot be nullable.
== Creating a Cache
Caches are created by using the DDL link:/sql-reference/create-cache[CREATE CACHE] command, for example:
[source, SQL]
----
CREATE CACHE person (
id INT PRIMARY KEY,
name VARCHAR,
ttl TIMESTAMP
) EXPIRE AT ttl;
----
When creating a cache, it must use the `aimem` storage type.
== Working With Caches
Cache API completely mirrors the link:developers-guide/table-api[table] API.
== Cache Modes
Ignite supports 2 modes:
- In write-through mode, the cache maintains strong consistency with the storage.
- In write-behind mode, the cache maintains eventual consistency with the storage. This may cause consistency issues, but does improve performance.
//- In reverse replication mode, the cache does not write data