Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Consistency & Elasticsearch
Search
Elasticsearch Inc
November 04, 2013
Technology
2
1.2k
Consistency & Elasticsearch
Fun with working around eventual consistency!
Elasticsearch Inc
November 04, 2013
Tweet
Share
More Decks by Elasticsearch Inc
See All by Elasticsearch Inc
OSCON: Scaling a distributed engineering team from 50-250
elasticsearch
13
1.5k
Stuff a Search Engine Can Do
elasticsearch
17
1.7k
Using Elastic to monitor anything
elasticsearch
3
1.5k
Log all the things!
elasticsearch
4
1.2k
Why Elastic? @ 50th Vinitaly 2016
elasticsearch
5
1.9k
What's New In Elasticland?
elasticsearch
3
930
Kibana, Timelion, Graph Meetup
elasticsearch
3
790
Elastic for Time Series Data and Predictive Analytics
elasticsearch
4
3.1k
Elastic 2.0
elasticsearch
1
750
Other Decks in Technology
See All in Technology
Agentic DevOps時代の生存戦略
kkamegawa
0
1.1k
プロダクトエンジニアリング組織への歩み、その現在地 / Our journey to becoming a product engineering organization
hiro_torii
0
110
~宇宙最速~2025年AWS Summit レポート
satodesu
1
1.5k
標準技術と独自システムで作る「つらくない」SaaS アカウント管理 / Effortless SaaS Account Management with Standard Technologies & Custom Systems
yuyatakeyama
2
1.1k
Amplifyとゼロからはじめた AIコーディング 成果と展望
mkdev10
1
380
2025/6/21 日本学術会議公開シンポジウム発表資料
keisuke198619
2
480
20250623 Findy Lunch LT Brown
3150
0
800
Claude Code Actionを使ったコード品質改善の取り組み
potix2
PRO
4
1.8k
Microsoft Build 2025 技術/製品動向 for Microsoft Startup Tech Community
torumakabe
2
220
Azure AI Foundryでマルチエージェントワークフロー
seosoft
0
160
監視のこれまでとこれから/sakura monitoring seminar 2025
fujiwara3
10
2.9k
20250625 Snowflake Summit 2025活用事例 レポート / Nowcast Snowflake Summit 2025 Case Study Report
kkuv
1
250
Featured
See All Featured
Building Flexible Design Systems
yeseniaperezcruz
328
39k
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
3.9k
The Invisible Side of Design
smashingmag
299
51k
Music & Morning Musume
bryan
46
6.6k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
29
9.5k
Writing Fast Ruby
sferik
628
61k
Building a Modern Day E-commerce SEO Strategy
aleyda
41
7.3k
A designer walks into a library…
pauljervisheath
206
24k
GitHub's CSS Performance
jonrohan
1031
460k
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
PRO
181
53k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
194
16k
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
26
2.8k
Transcript
Elasticsearch & Data Consistency @drewr Tuesday, November 5, 13
Search Tuesday, November 5, 13
Data Tuesday, November 5, 13
Fast Tuesday, November 5, 13
Distributed Tuesday, November 5, 13
Tuesday, November 5, 13
Tuesday, November 5, 13
Tuesday, November 5, 13
Tuesday, November 5, 13
Tuesday, November 5, 13
Tuesday, November 5, 13
Tuesday, November 5, 13
Tuesday, November 5, 13
Tuesday, November 5, 13
Tuesday, November 5, 13
Tuesday, November 5, 13
Tuesday, November 5, 13
Tuesday, November 5, 13
Tuesday, November 5, 13
Tuesday, November 5, 13
P R R P Tuesday, November 5, 13
Requests Tuesday, November 5, 13
Tuesday, November 5, 13
Tuesday, November 5, 13
Tuesday, November 5, 13
Tuesday, November 5, 13
? ? ? ? Tuesday, November 5, 13
Consistency Tuesday, November 5, 13
PUT /foo/t/one { "age": 35, "bio": "Some long text", "name":
"Foo" } Tuesday, November 5, 13
Update http://www.elasticsearch.org/guide/reference/api/update/ Tuesday, November 5, 13
POST /foo/t/one/_update { "doc": { "name": "Bar" } } Tuesday,
November 5, 13
POST /foo/t/one/_update { "params": { "ageinc": 1 }, "script": "ctx._source.age
+= ageinc" } Tuesday, November 5, 13
PUT /foo/t/one { "age": 36, "bio": "Some long text", "name":
"Bar" } Tuesday, November 5, 13
A write is a write... Tuesday, November 5, 13
{ "_id": "one", "_index": "foo", "_type": "t", "_version": 1, "ok":
true } Tuesday, November 5, 13
{ "_id": "one", "_index": "foo", "_type": "t", "_version": 1, "ok":
true } Tuesday, November 5, 13
PUT /foo/t/one { "age": 36, "bio": "Some long text", "name":
"Baz" } Tuesday, November 5, 13
{ "_id": "one", "_index": "foo", "_type": "t", "_version": 2, "ok":
true } Tuesday, November 5, 13
PUT /foo/t/one?version=1 { "age": 36, "bio": "Some long text", "name":
"Baz" } Tuesday, November 5, 13
{ "error": "VersionConflict... current [2], provided [1]]", "status": 409 }
Tuesday, November 5, 13
PUT /foo/t/one?version=2 { "age": 36, "bio": "Some long text", "name":
"Baz" } Tuesday, November 5, 13
{ "_id": "one", "_index": "foo", "_type": "t", "_version": 3, "ok":
true } Tuesday, November 5, 13
GET/Search Tuesday, November 5, 13
PUT /foo/t/one?version=3&refresh=true { "age": 36, "bio": "Some long text", "name":
"Quux" } Tuesday, November 5, 13
{ "_id": "one", "_index": "foo", "_type": "t", "_version": 4, "ok":
true } Tuesday, November 5, 13
?consistency=... Tuesday, November 5, 13
?replication=... Tuesday, November 5, 13
Case Study Tuesday, November 5, 13
Tuesday, November 5, 13
Tuesday, November 5, 13
No New Deployment Tuesday, November 5, 13
No New Deployment Consume perf loss OK Tuesday, November 5,
13
No New Deployment Consume perf loss OK Don’t really care
about AMQP Tuesday, November 5, 13
Rabbit Elasticsearch Exchange Index Queue Type Routing key ? Tuesday,
November 5, 13
news.politics.uk news.sports news.politics.usa news.* trade.dow trade.nasdaq Tuesday, November 5, 13
Search! Tuesday, November 5, 13
POST /exch/test.foo { "op": "frob", "thing": "/over/there" } Publish... Tuesday,
November 5, 13
GET /exch/test.foo/_search { "query": { "bool": { "must": [ {
"constant_score": { "filter": { "missing": { "existence": true, "field": "__q_status", "null_value": true } } } }, { "prefix": { "_type": "test.foo" } } ] } }, "size": 1, "sort": [ { "__q_control": { "order": "desc" } } ] } Consume... Tuesday, November 5, 13
PUT /exch/test.foo/UN1QU3ID?version=1&refresh=true { ... "__q_status": "unack" } Consume... Tuesday, November
5, 13
PUT /exch/test.foo/UN1QU3ID?version=2&refresh=true { ... "__q_status": "ack" } Finish up... Tuesday,
November 5, 13
Performance Tuesday, November 5, 13
Conclusion Tuesday, November 5, 13