博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Elastic 并发更新问题
阅读量:6671 次
发布时间:2019-06-25

本文共 2450 字,大约阅读时间需要 8 分钟。

hot3.png

当并发更新时会有更新冲突,见下面的演示

#!/bin/bash#clear firstcurl -XDELETE 'localhost:9200/test-concurrent-update?pretty'curl -XPOST 'localhost:9200/test-concurrent-update/type/1?pretty' -d '{  "count": 0}'#并发执行for ((i=0; i<10; i++))docurl -XPOST 'localhost:9200/test-concurrent-update/type/1/_update?pretty' -d '{    "script" : "ctx._source.count += 1"}' &donewait#check resultecho "check final result"# why must have to sleep some time or cannot query any result ?sleep 1curl -XPOST 'localhost:9200/test-concurrent-update/type/_search?pretty' -d '{  "query":{"match_all": {}}}'

执行上述脚本

$ bash  test_concurrent_update {  "acknowledged" : true}{  "_index" : "test-concurrent-update",  "_type" : "type",  "_id" : "1",  "_version" : 1,  "created" : true}{  "_index" : "test-concurrent-update",  "_type" : "type",  "_id" : "1",  "_version" : 2}{  "error" : "VersionConflictEngineException[[test-concurrent-update][2] [type][1]: version conflict, current [2], provided [1]]",  "status" : 409}{  "error" : "VersionConflictEngineException[[test-concurrent-update][2] [type][1]: version conflict, current [2], provided [1]]",  "status" : 409}{  "error" : "VersionConflictEngineException[[test-concurrent-update][2] [type][1]: version conflict, current [2], provided [1]]",  "status" : 409}{  "error" : "VersionConflictEngineException[[test-concurrent-update][2] [type][1]: version conflict, current [3], provided [2]]",  "status" : 409}{  "error" : "VersionConflictEngineException[[test-concurrent-update][2] [type][1]: version conflict, current [3], provided [2]]",  "status" : 409}{  "_index" : "test-concurrent-update",  "_type" : "type",  "_id" : "1",  "_version" : 3}{  "_index" : "test-concurrent-update",  "_type" : "type",  "_id" : "1",  "_version" : 4}{  "error" : "VersionConflictEngineException[[test-concurrent-update][2] [type][1]: version conflict, current [4], provided [2]]",  "status" : 409}{  "error" : "VersionConflictEngineException[[test-concurrent-update][2] [type][1]: version conflict, current [4], provided [3]]",  "status" : 409}check final result{  "took" : 4,  "timed_out" : false,  "_shards" : {    "total" : 5,    "successful" : 5,    "failed" : 0  },  "hits" : {    "total" : 1,    "max_score" : 1.0,    "hits" : [ {      "_index" : "test-concurrent-update",      "_type" : "type",      "_id" : "1",      "_score" : 1.0,      "_source":{"count":3}    } ]  }}

期待count最终为10,但实际为3.其他的更新操作均因冲突导致更新失败。

转载于:https://my.oschina.net/zhuguowei/blog/486250

你可能感兴趣的文章
《音乐达人秀:Adobe Audition实战200例》——1.2 从双卡录音机到多轨录音软件
查看>>
《运营力——微信公众号 设计 策划 客服 管理 一册通》导读
查看>>
Unreal Engine 4.5 发布, 超 40 项功能改进
查看>>
《Rhino3D 4.0产品造型设计学习手册》——1.2节Rhino 3D的特征
查看>>
新版 Win 10 针对中国市场,改善简体中文输入体验
查看>>
《众妙之门——自由网站设计师成功之道》一1.7 像专业人士一样出击
查看>>
百度 360 诉讼案宣判 360 败诉
查看>>
《SolidWorks 2016中文版机械设计从入门到精通》——2.3 草图编辑
查看>>
《OpenGL编程指南》一1.5 第一个程序:深入分析
查看>>
Reddit 事实核查新方法,人为劝导和智能算法结合
查看>>
Chrome 57 Beta 新特性 改进了 Add to Home Screen
查看>>
Java 学习线路图是怎样的?
查看>>
Spark源码分析 – DAGScheduler
查看>>
《设计模式解析(第2版•修订版)》—第1章 1.6节面向对象范型
查看>>
《手机测试Robotium实战教程》—第2章2.2节Eclipse的安装
查看>>
《Android游戏开发详解》一2.2 设置开发机器
查看>>
《数据分析变革:大数据时代精准决策之道》一第2章 更多数据……巨多数据……大数据!...
查看>>
《万物互联》——2.5 审视无线技术
查看>>
IO调度算法学习
查看>>
《制造业中的机器人、自动化和系统集成》—— 3.8 安全与防护
查看>>