blob: 6a60c1b86775e6a6029f04c1a8920e833f1ab7f8 [file] [log] [blame]
extend ../_components/base.pug
block pagetitle
title Distributed Key-Value APIs - Apache Ignite
meta(name="description", content="Apache Ignite as a distributed key-value store is supported for different caching techniques. Ignite key-value APIs allow to create database key-value tables on-chain and increase processing performance.")
link(rel="canonical", href="")
meta(property="og:title", content="Distributed Key-Value APIs - Apache Ignite")
meta(property="og:type", content="article")
meta(property="og:url", content="")
meta(property="og:image", content="/img/og-pic.png")
meta(property="og:description", content="Apache Ignite as a distributed key-value store is supported for different caching techniques. Ignite key-value APIs allow to create database key-value tables on-chain and increase processing performance.")
block css
link(rel="stylesheet", href="../css/native-persistence.css?ver=" + config.version)
link(rel="stylesheet", href="../css/key-value-api.css?ver=" + config.version)
block main
- global.pageHref = "features"
- config.hdrClassName = "hdr__blue"
include ../_components/header.pug
.innerhero__pre.pb-5 Apache Ignite
h1.h1.innerhero__h1 Distributed <br>Key-Value APIs
Query your distributed data in the fastest way possible <br>with key-value APIs
a.button.innerhero__button(href="") Start Coding
img.innerhero__pic.innerhero__pic--keyvalue(src="/img/features/key-value/hero.svg", alt="Distributed Key-Value APIs")
// /.innerhero
h2.capstext Key-Value APIs Overview
p Every record in Ignite is stored as a key-value pair. All the records are distributed evenly across the cluster nodes. Your key-value queries are directed automatically to the nodes that store requested data. This is how Ignite utilizes all the given memory, disk, and CPU resources.
p Key-value APIs are supported by all existing Ignite client libraries:
p.h5.leyvalue__lang Java <small>(implements JSR-107 specification known as JCache)</small>
p.h5.leyvalue__lang .NET
p.h5.leyvalue__lang Python
p.h5.leyvalue__lang Node.JS
p.h5.leyvalue__lang Your language
img(src="/img/features/key-value/key-value-api-pic.svg", alt="").keyvalue1__pic
// /.keyvalue1
.keyvalueplank__inner Apache Ignite key-value APIs provide additional capabilities such as&nbsp;<strong>automatic synchronization</strong> with external databases, <strong>near caching</strong> and <strong>ACID transactions.</strong>
h3.keyvalue__title Automatic Synchronization With External <br>Databases To Keep A Consistent Copy Of Data
p Two synchronization strategies are available in Apache Ignite: <br>write-through/behind and read-through.
dt Write-through and write-behind capabilities Ignite can automatically write-through or&nbsp;write-behind all the changes to&nbsp;an&nbsp;external database for every key-value request issued by&nbsp;your applications.
dt Read-through capabilities
dd Read-through means that Ignite can automatically load data from an&nbsp;external database if&nbsp;a&nbsp;record is&nbsp;missing in&nbsp;memory.
img(src="/img/features/key-value/key-value-api-2.svg", alt="").keyvalue2__pic
// /.keyvalue2
h3.keyvalue__title Near Cache To Process Your Requests In&nbsp;Microseconds
p A near cache is a local client-side cache that stores the most frequently <br>used data on the application end.
.keyvalue__title How it works
p It is applied to applications that require a consistent response time of a few <strong>microseconds.</strong> Ignite automatically invalidates and updates the near cache.
p Whenever the primary copy of&nbsp;a&nbsp;record gets updated on&nbsp;a&nbsp;server node, Ignite propagates the change to&nbsp;all the nodes that store the record&rsquo;s backup copy, as&nbsp;well as&nbsp;to&nbsp;the applications that keep the record&rsquo;s copy in&nbsp;their near caches.
img(src="/img/features/key-value/key-value-api-3.svg", alt="").keyvalue3__pic
p 1. Call to the near cache
p 2. Call to the Ignite cluster
span (if a record is not found in the near cache)
p 3. Read-through from the external database
span (if the record is not in the Ignite cluster yet)
// /.keyvalue3
h3.keyvalue__title ACID Transactions To Update Your Distributed Records Consistently
p Apache Ignite key-value APIs are fully transactional, which means that data can be&nbsp;updated consistently and reliably.
.keyvalue__title How it works
p An&nbsp;Ignite transaction can update multiple records from different tables stored on&nbsp;different cluster nodes. Ignite can even span a&nbsp;transaction to&nbsp;an&nbsp;underlying relational database. Ignite implements <a href="/features/acid-transactions.html">two-phase-commit protocol to&nbsp;ensure data consistency at&nbsp;scale.</a>
img(src="/img/features/key-value/key-value-api-4.svg", alt="").keyvalue4__pic
// /.keyvalue3
img(src="/img/features/native-rocket.svg", alt="").nativebotblock__icon
span Ready to Start?
p.nativebotblock__text Create your first application using <br>Ignite key-value APIs
a.nativebotblock__link.arrowlink(href="", target="_blank") Using Key-Value APIs
img(src="/img/features/native-docs.svg", alt="").nativebotblock__icon
span Want to Learn More?
p.nativebotblock__text Check out how Apache Ignite can be configured <br>and used as a standard key-value store
a.nativebotblock__link.arrowlink(href="/use-cases/key-value-store.html") Key-Value Store