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.3k
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
2k
What's New In Elasticland?
elasticsearch
3
1k
Kibana, Timelion, Graph Meetup
elasticsearch
3
810
Elastic for Time Series Data and Predictive Analytics
elasticsearch
4
3.1k
Elastic 2.0
elasticsearch
1
760
Other Decks in Technology
See All in Technology
AI Agent Agentic Workflow の可観測性 / Observability of AI Agent Agentic Workflow
yuzujoe
1
760
AI に「学ばせ、調べさせ、作らせる」。Auth0 開発を加速させる7つの実践的アプローチ
scova0731
0
250
スクラムを一度諦めたチームにアジャイルコーチが入ってどう変化したか / A Team's Second Try at Scrum with an Agile Coach
kaonavi
0
230
テストセンター受験、オンライン受験、どっちなんだい?
yama3133
0
210
旬のブリと旬の技術で楽しむ AI エージェント設計開発レシピ
chack411
1
250
AI時代のアジャイルチームを目指して ー スクラムというコンフォートゾーンからの脱却 ー / Toward Agile Teams in the Age of AI
takaking22
11
6.4k
Introduction to Sansan for Engineers / エンジニア向け会社紹介
sansan33
PRO
5
61k
「アウトプット脳からユーザー価値脳へ」がそんなに簡単にできたら苦労しない #RSGT2026
aki_iinuma
11
5.1k
2025年 山梨の技術コミュニティを振り返る
yuukis
0
160
#22 CA × atmaCup 3rd 1st Place Solution
yumizu
1
170
Redshift認可、アップデートでどう変わった?
handy
1
140
I tried making a solo advent calendar!
zzzzico
0
150
Featured
See All Featured
エンジニアに許された特別な時間の終わり
watany
106
220k
New Earth Scene 8
popppiees
1
1.3k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
231
54k
HU Berlin: Industrial-Strength Natural Language Processing with spaCy and Prodigy
inesmontani
PRO
0
130
Self-Hosted WebAssembly Runtime for Runtime-Neutral Checkpoint/Restore in Edge–Cloud Continuum
chikuwait
0
280
The Anti-SEO Checklist Checklist. Pubcon Cyber Week
ryanjones
0
39
Marketing to machines
jonoalderson
1
4.5k
Redefining SEO in the New Era of Traffic Generation
szymonslowik
1
190
4 Signs Your Business is Dying
shpigford
187
22k
Making Projects Easy
brettharned
120
6.5k
Exploring anti-patterns in Rails
aemeredith
2
220
How to train your dragon (web standard)
notwaldorf
97
6.5k
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