blob: 0cd17957575188111a2492fb5051d309ad97f4e4 [file] [log] [blame]
extend ../_components/base.pug
block pagetitle
| Distributed Key-Value APIs
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
section.innerhero.innerhero--keyvalue
.container.innerhero__cont
.innerhero__main
.innerhero__pre.pb-5 Apache Ignite
h1.h1.innerhero__h1 Distributed <br>Key-Value APIs
.innerhero__descr.pt-2.h5.
Query your distributed data in the fastest way possible <br>with key-value APIs
.innerhero__action
a.button.innerhero__button(href="https://ignite.apache.org/docs/latest/index") Start Coding
img.innerhero__pic.innerhero__pic--keyvalue(src="/img/features/key-value/hero.svg", alt="Distributed Key-Value APIs")
// /.innerhero
section.keyvalue1.container.flexi
.keyvalue1__left
.capstext Key-Value APIs Overview
.keyvaluetext.pt-5
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:
.keyvalue1__libs.pt-5
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
.keyvalue1__right
.keyvalue1__picwrap.picwrap
img(src="/img/features/key-value/key-value-api-pic.svg", alt="").keyvalue1__pic
// /.keyvalue1
section.keyvalueplank.container
.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>
section.keyvalue2.container.flexi
.keyvalue2__left
.keyvalue__title Automatic Synchronization With External <br>Databases To Keep A Consistent Copy Of Data
.keyvaluetext.pt-2.pb-5
p Two synchronization strategies are available in Apache Ignite: <br>write-through/behind and read-through.
dl.keyvalue2__box.pb-2
dt Write-through and write-behind capabilities
dd.pt-2 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.
dl.keyvalue2__box
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.
.keyvalue2__right
.keyvalue2__picwrap.picwrap
img(src="/img/features/key-value/key-value-api-2.svg", alt="").keyvalue2__pic
// /.keyvalue2
section.keyvalue3.container.flexi
.keyvalue3__right
.keyvalue__title Near Cache To Process Your Requests In&nbsp;Microseconds
.keyvaluetext.pt-2.pb-5
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
.keyvaluetext.pt-2.pb-5
p It&nbsp;is&nbsp;applied for applications that require a&nbsp;consistent response time ranging in&nbsp;microseconds. 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.
.keyvalue3__left
.keyvalue3__picwrap.picwrap
img(src="/img/features/key-value/key-value-api-3.svg", alt="").keyvalue3__pic
// /.keyvalue3
section.keyvalue4.container.flexi.pb-1
.keyvalue4__left
.keyvalue__title ACID Transactions To Update Your Distributed Records Consistently
.keyvaluetext.pt-2.pb-5
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
.keyvaluetext.pt-2.pb-5
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>
.keyvalue4__right
.keyvalue4__picwrap.picwrap
img(src="/img/features/key-value/key-value-api-4.svg", alt="").keyvalue4__pic
// /.keyvalue3
section.native-bottom.container
.native-bottom__grid
article.nativebotblock
h3.h4.nativebotblock__title
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="https://ignite.apache.org/docs/latest/key-value-api/basic-cache-operations", target="_blank") Using Key-Value APIs
article.nativebotblock.nativebotblock--learn
h3.h4.nativebotblock__title
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