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
940
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
専門分化が進む分業下でもユーザーが本当に欲しかったものを追求するプロダクトマネジメント/Focus on real user needs despite deep specialization and division of labor
moriyuya
1
1.3k
AI時代の経営、Bet AI Vision #BetAIDay
layerx
PRO
1
2k
「AIと一緒にやる」が当たり前になるまでの奮闘記
kakehashi
PRO
3
140
リリース2ヶ月で収益化した話
kent_code3
1
250
オブザーバビリティプラットフォーム開発におけるオブザーバビリティとの向き合い / Hatena Engineer Seminar #34 オブザーバビリティの実現と運用編
arthur1
0
380
LLMで構造化出力の成功率をグンと上げる方法
keisuketakiguchi
0
790
Lambda management with ecspresso and Terraform
ijin
2
160
dipにおけるSRE変革の軌跡
dip_tech
PRO
1
270
MCP認可の現在地と自律型エージェント対応に向けた課題 / MCP Authorization Today and Challenges to Support Autonomous Agents
yokawasa
5
2.3k
✨敗北解法コレクション✨〜Expertだった頃に足りなかった知識と技術〜
nanachi
1
690
Foundation Model × VisionKit で実現するローカル OCR
sansantech
PRO
1
350
Oracle Cloud Infrastructure:2025年7月度サービス・アップデート
oracle4engineer
PRO
1
190
Featured
See All Featured
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
26k
Rebuilding a faster, lazier Slack
samanthasiow
83
9.1k
Become a Pro
speakerdeck
PRO
29
5.5k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
229
22k
Why Our Code Smells
bkeepers
PRO
337
57k
Unsuck your backbone
ammeep
671
58k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
667
120k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
231
53k
Embracing the Ebb and Flow
colly
86
4.8k
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
8
760
A designer walks into a library…
pauljervisheath
207
24k
Art, The Web, and Tiny UX
lynnandtonic
301
21k
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