Enviar pesquisa
Carregar
『歩いておトク』の不具合事例から学ぶトランザクションの落とし穴
•
1 gostou
•
1,735 visualizações
DeNA
Seguir
DeNA TechCon 2018の登壇資料です。
Leia menos
Leia mais
Tecnologia
Denunciar
Compartilhar
Denunciar
Compartilhar
1 de 20
Recomendados
DRIVE CHARTの裏側 〜 AI ☓ IoT ☓ ビッグデータを 支えるアーキテクチャ 〜
DRIVE CHARTの裏側 〜 AI ☓ IoT ☓ ビッグデータを 支えるアーキテクチャ 〜
DeNA
IoTと業務システムをつなぐgRPC/RESTサービスの開発と運用
IoTと業務システムをつなぐgRPC/RESTサービスの開発と運用
DeNA
Can We Make Maps from Videos? ~From AI Algorithm to Engineering for Continuou...
Can We Make Maps from Videos? ~From AI Algorithm to Engineering for Continuou...
DeNA
SHOWROOMとDeNAで取り組んだライブ配信基盤刷新・超低遅延ライブ配信の裏側【DeNA TechCon 2020 ライブ配信】
SHOWROOMとDeNAで取り組んだライブ配信基盤刷新・超低遅延ライブ配信の裏側【DeNA TechCon 2020 ライブ配信】
DeNA
クラウド環境でのセキュリティ監査自動化【DeNA TechCon 2020 ライブ配信】
クラウド環境でのセキュリティ監査自動化【DeNA TechCon 2020 ライブ配信】
DeNA
DeClang 誕生!Clang ベースのハッキング対策コンパイラ【DeNA TechCon 2020 ライブ配信】
DeClang 誕生!Clang ベースのハッキング対策コンパイラ【DeNA TechCon 2020 ライブ配信】
DeNA
仕様起因の手戻りを減らして開発効率アップを目指すチャレンジ 【DeNA TechCon 2020 ライブ配信】
仕様起因の手戻りを減らして開発効率アップを目指すチャレンジ 【DeNA TechCon 2020 ライブ配信】
DeNA
DeNA データプラットフォームにおける 自由と統制のバランス【DeNA TechCon 2020 ライブ配信】
DeNA データプラットフォームにおける 自由と統制のバランス【DeNA TechCon 2020 ライブ配信】
DeNA
Recomendados
DRIVE CHARTの裏側 〜 AI ☓ IoT ☓ ビッグデータを 支えるアーキテクチャ 〜
DRIVE CHARTの裏側 〜 AI ☓ IoT ☓ ビッグデータを 支えるアーキテクチャ 〜
DeNA
IoTと業務システムをつなぐgRPC/RESTサービスの開発と運用
IoTと業務システムをつなぐgRPC/RESTサービスの開発と運用
DeNA
Can We Make Maps from Videos? ~From AI Algorithm to Engineering for Continuou...
Can We Make Maps from Videos? ~From AI Algorithm to Engineering for Continuou...
DeNA
SHOWROOMとDeNAで取り組んだライブ配信基盤刷新・超低遅延ライブ配信の裏側【DeNA TechCon 2020 ライブ配信】
SHOWROOMとDeNAで取り組んだライブ配信基盤刷新・超低遅延ライブ配信の裏側【DeNA TechCon 2020 ライブ配信】
DeNA
クラウド環境でのセキュリティ監査自動化【DeNA TechCon 2020 ライブ配信】
クラウド環境でのセキュリティ監査自動化【DeNA TechCon 2020 ライブ配信】
DeNA
DeClang 誕生!Clang ベースのハッキング対策コンパイラ【DeNA TechCon 2020 ライブ配信】
DeClang 誕生!Clang ベースのハッキング対策コンパイラ【DeNA TechCon 2020 ライブ配信】
DeNA
仕様起因の手戻りを減らして開発効率アップを目指すチャレンジ 【DeNA TechCon 2020 ライブ配信】
仕様起因の手戻りを減らして開発効率アップを目指すチャレンジ 【DeNA TechCon 2020 ライブ配信】
DeNA
DeNA データプラットフォームにおける 自由と統制のバランス【DeNA TechCon 2020 ライブ配信】
DeNA データプラットフォームにおける 自由と統制のバランス【DeNA TechCon 2020 ライブ配信】
DeNA
リアルタイムリモートデバッグ環境によるゲーム開発イテレーションの高速化【DeNA TechCon 2020 ライブ配信】
リアルタイムリモートデバッグ環境によるゲーム開発イテレーションの高速化【DeNA TechCon 2020 ライブ配信】
DeNA
MOV の機械学習システムを支える MLOps 実践【DeNA TechCon 2020 ライブ配信】
MOV の機械学習システムを支える MLOps 実践【DeNA TechCon 2020 ライブ配信】
DeNA
コンピュータビジョン技術の実応用〜DRIVE CHARTにおける脇見・車間距離不足検知〜【DeNA TechCon 2020 ライブ配信】
コンピュータビジョン技術の実応用〜DRIVE CHARTにおける脇見・車間距離不足検知〜【DeNA TechCon 2020 ライブ配信】
DeNA
DeNA の Slack 導入と活用の事例紹介
DeNA の Slack 導入と活用の事例紹介
DeNA
タクシーxAIを支えるKubernetesとAIデータパイプラインの信頼性の取り組みについて [SRE NEXT 2020]
タクシーxAIを支えるKubernetesとAIデータパイプラインの信頼性の取り組みについて [SRE NEXT 2020]
DeNA
オートモーティブ領域における 位置情報関連アルゴリズムあれこれ
オートモーティブ領域における 位置情報関連アルゴリズムあれこれ
DeNA
後部座席タブレットにおけるMaaS時代を見据えた半歩先のUX設計」 [MOBILITY:dev]
後部座席タブレットにおけるMaaS時代を見据えた半歩先のUX設計」 [MOBILITY:dev]
DeNA
ドライブレコーダ映像からの3次元空間認識 [MOBILITY:dev]
ドライブレコーダ映像からの3次元空間認識 [MOBILITY:dev]
DeNA
MOVで実践したサーバーAPI実装の超最適化について [MOBILITY:dev]
MOVで実践したサーバーAPI実装の超最適化について [MOBILITY:dev]
DeNA
MOV お客さま探索ナビの GCP ML開発フローについて
MOV お客さま探索ナビの GCP ML開発フローについて
DeNA
課題ドリブン、フルスタックAI開発術 [MOBILITY:dev]
課題ドリブン、フルスタックAI開発術 [MOBILITY:dev]
DeNA
DeNA の AWS アカウント管理とセキュリティ監査自動化
DeNA の AWS アカウント管理とセキュリティ監査自動化
DeNA
DeNAのQCTマネジメント IaaS利用のベストプラクティス [AWS Summit Tokyo 2019]
DeNAのQCTマネジメント IaaS利用のベストプラクティス [AWS Summit Tokyo 2019]
DeNA
知っててもいいかもしれない知財のこと(抜粋版)
知っててもいいかもしれない知財のこと(抜粋版)
DeNA
ゲーム開発者からMaaS開発者へ ゲーム開発のノウハウを活かして 移動体情報配信システムを作ってみた [DeNA TechCon 2019]
ゲーム開発者からMaaS開発者へ ゲーム開発のノウハウを活かして 移動体情報配信システムを作ってみた [DeNA TechCon 2019]
DeNA
パネルディスカッション:データサイエンスの競技者、 Kagglerたちが活躍する職場とは [DeNA TechCon 2019]
パネルディスカッション:データサイエンスの競技者、 Kagglerたちが活躍する職場とは [DeNA TechCon 2019]
DeNA
10年目の『エブリスタ』を支える技術
10年目の『エブリスタ』を支える技術
DeNA
『モビリティ・インテリジェンス』の社会実装 [DeNA TechCon 2019]
『モビリティ・インテリジェンス』の社会実装 [DeNA TechCon 2019]
DeNA
DeNAゲーム事業におけるデータエンジニアの貢献 [DeNA TechCon 2019]
DeNAゲーム事業におけるデータエンジニアの貢献 [DeNA TechCon 2019]
DeNA
DeNAにおけるCorpTechエンジニアリング [DeNA TechCon 2019]
DeNAにおけるCorpTechエンジニアリング [DeNA TechCon 2019]
DeNA
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
博三 太田
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
UEHARA, Tetsutaro
Mais conteúdo relacionado
Mais de DeNA
リアルタイムリモートデバッグ環境によるゲーム開発イテレーションの高速化【DeNA TechCon 2020 ライブ配信】
リアルタイムリモートデバッグ環境によるゲーム開発イテレーションの高速化【DeNA TechCon 2020 ライブ配信】
DeNA
MOV の機械学習システムを支える MLOps 実践【DeNA TechCon 2020 ライブ配信】
MOV の機械学習システムを支える MLOps 実践【DeNA TechCon 2020 ライブ配信】
DeNA
コンピュータビジョン技術の実応用〜DRIVE CHARTにおける脇見・車間距離不足検知〜【DeNA TechCon 2020 ライブ配信】
コンピュータビジョン技術の実応用〜DRIVE CHARTにおける脇見・車間距離不足検知〜【DeNA TechCon 2020 ライブ配信】
DeNA
DeNA の Slack 導入と活用の事例紹介
DeNA の Slack 導入と活用の事例紹介
DeNA
タクシーxAIを支えるKubernetesとAIデータパイプラインの信頼性の取り組みについて [SRE NEXT 2020]
タクシーxAIを支えるKubernetesとAIデータパイプラインの信頼性の取り組みについて [SRE NEXT 2020]
DeNA
オートモーティブ領域における 位置情報関連アルゴリズムあれこれ
オートモーティブ領域における 位置情報関連アルゴリズムあれこれ
DeNA
後部座席タブレットにおけるMaaS時代を見据えた半歩先のUX設計」 [MOBILITY:dev]
後部座席タブレットにおけるMaaS時代を見据えた半歩先のUX設計」 [MOBILITY:dev]
DeNA
ドライブレコーダ映像からの3次元空間認識 [MOBILITY:dev]
ドライブレコーダ映像からの3次元空間認識 [MOBILITY:dev]
DeNA
MOVで実践したサーバーAPI実装の超最適化について [MOBILITY:dev]
MOVで実践したサーバーAPI実装の超最適化について [MOBILITY:dev]
DeNA
MOV お客さま探索ナビの GCP ML開発フローについて
MOV お客さま探索ナビの GCP ML開発フローについて
DeNA
課題ドリブン、フルスタックAI開発術 [MOBILITY:dev]
課題ドリブン、フルスタックAI開発術 [MOBILITY:dev]
DeNA
DeNA の AWS アカウント管理とセキュリティ監査自動化
DeNA の AWS アカウント管理とセキュリティ監査自動化
DeNA
DeNAのQCTマネジメント IaaS利用のベストプラクティス [AWS Summit Tokyo 2019]
DeNAのQCTマネジメント IaaS利用のベストプラクティス [AWS Summit Tokyo 2019]
DeNA
知っててもいいかもしれない知財のこと(抜粋版)
知っててもいいかもしれない知財のこと(抜粋版)
DeNA
ゲーム開発者からMaaS開発者へ ゲーム開発のノウハウを活かして 移動体情報配信システムを作ってみた [DeNA TechCon 2019]
ゲーム開発者からMaaS開発者へ ゲーム開発のノウハウを活かして 移動体情報配信システムを作ってみた [DeNA TechCon 2019]
DeNA
パネルディスカッション:データサイエンスの競技者、 Kagglerたちが活躍する職場とは [DeNA TechCon 2019]
パネルディスカッション:データサイエンスの競技者、 Kagglerたちが活躍する職場とは [DeNA TechCon 2019]
DeNA
10年目の『エブリスタ』を支える技術
10年目の『エブリスタ』を支える技術
DeNA
『モビリティ・インテリジェンス』の社会実装 [DeNA TechCon 2019]
『モビリティ・インテリジェンス』の社会実装 [DeNA TechCon 2019]
DeNA
DeNAゲーム事業におけるデータエンジニアの貢献 [DeNA TechCon 2019]
DeNAゲーム事業におけるデータエンジニアの貢献 [DeNA TechCon 2019]
DeNA
DeNAにおけるCorpTechエンジニアリング [DeNA TechCon 2019]
DeNAにおけるCorpTechエンジニアリング [DeNA TechCon 2019]
DeNA
Mais de DeNA
(20)
リアルタイムリモートデバッグ環境によるゲーム開発イテレーションの高速化【DeNA TechCon 2020 ライブ配信】
リアルタイムリモートデバッグ環境によるゲーム開発イテレーションの高速化【DeNA TechCon 2020 ライブ配信】
MOV の機械学習システムを支える MLOps 実践【DeNA TechCon 2020 ライブ配信】
MOV の機械学習システムを支える MLOps 実践【DeNA TechCon 2020 ライブ配信】
コンピュータビジョン技術の実応用〜DRIVE CHARTにおける脇見・車間距離不足検知〜【DeNA TechCon 2020 ライブ配信】
コンピュータビジョン技術の実応用〜DRIVE CHARTにおける脇見・車間距離不足検知〜【DeNA TechCon 2020 ライブ配信】
DeNA の Slack 導入と活用の事例紹介
DeNA の Slack 導入と活用の事例紹介
タクシーxAIを支えるKubernetesとAIデータパイプラインの信頼性の取り組みについて [SRE NEXT 2020]
タクシーxAIを支えるKubernetesとAIデータパイプラインの信頼性の取り組みについて [SRE NEXT 2020]
オートモーティブ領域における 位置情報関連アルゴリズムあれこれ
オートモーティブ領域における 位置情報関連アルゴリズムあれこれ
後部座席タブレットにおけるMaaS時代を見据えた半歩先のUX設計」 [MOBILITY:dev]
後部座席タブレットにおけるMaaS時代を見据えた半歩先のUX設計」 [MOBILITY:dev]
ドライブレコーダ映像からの3次元空間認識 [MOBILITY:dev]
ドライブレコーダ映像からの3次元空間認識 [MOBILITY:dev]
MOVで実践したサーバーAPI実装の超最適化について [MOBILITY:dev]
MOVで実践したサーバーAPI実装の超最適化について [MOBILITY:dev]
MOV お客さま探索ナビの GCP ML開発フローについて
MOV お客さま探索ナビの GCP ML開発フローについて
課題ドリブン、フルスタックAI開発術 [MOBILITY:dev]
課題ドリブン、フルスタックAI開発術 [MOBILITY:dev]
DeNA の AWS アカウント管理とセキュリティ監査自動化
DeNA の AWS アカウント管理とセキュリティ監査自動化
DeNAのQCTマネジメント IaaS利用のベストプラクティス [AWS Summit Tokyo 2019]
DeNAのQCTマネジメント IaaS利用のベストプラクティス [AWS Summit Tokyo 2019]
知っててもいいかもしれない知財のこと(抜粋版)
知っててもいいかもしれない知財のこと(抜粋版)
ゲーム開発者からMaaS開発者へ ゲーム開発のノウハウを活かして 移動体情報配信システムを作ってみた [DeNA TechCon 2019]
ゲーム開発者からMaaS開発者へ ゲーム開発のノウハウを活かして 移動体情報配信システムを作ってみた [DeNA TechCon 2019]
パネルディスカッション:データサイエンスの競技者、 Kagglerたちが活躍する職場とは [DeNA TechCon 2019]
パネルディスカッション:データサイエンスの競技者、 Kagglerたちが活躍する職場とは [DeNA TechCon 2019]
10年目の『エブリスタ』を支える技術
10年目の『エブリスタ』を支える技術
『モビリティ・インテリジェンス』の社会実装 [DeNA TechCon 2019]
『モビリティ・インテリジェンス』の社会実装 [DeNA TechCon 2019]
DeNAゲーム事業におけるデータエンジニアの貢献 [DeNA TechCon 2019]
DeNAゲーム事業におけるデータエンジニアの貢献 [DeNA TechCon 2019]
DeNAにおけるCorpTechエンジニアリング [DeNA TechCon 2019]
DeNAにおけるCorpTechエンジニアリング [DeNA TechCon 2019]
Último
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
博三 太田
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
UEHARA, Tetsutaro
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
Hiroshi Tomioka
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
sugiuralab
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
FumieNakayama
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
FumieNakayama
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
akihisamiyanaga1
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
Yuki Kikuchi
Último
(8)
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
『歩いておトク』の不具合事例から学ぶトランザクションの落とし穴
1.
『歩いておトク』の不具合事例から学ぶ トランザクションの落とし穴 DeNAライフサイエンス 馬場 南実
2.
自己紹介 • 馬場 南実 -
2017年 新卒入社 - DeNAライフサイエンス 所属 - 歩いておトク - iOS/Android エンジニア 2
3.
『歩いておトク』の紹介 • ドコモヘルスケア社と協業 • 計測された歩数に応じて・・・ -
dポイントがもらえる! - バーチャル旅行が進む! 3
4.
『歩いておトク』の紹介 • ドコモヘルスケア社と協業 • 計測された歩数に応じて・・・ -
dポイントがもらえる! - バーチャル旅行が進む! 4 『歩いておトク』で発生した 歩数データに関する不具合を通して トランザクションに関する学びを得た話
5.
利用者毎の歩数データの更新 • クライアントから定期的に歩数送信され、データベースに保存 - 保存されている歩数より大きい場合のみ、データ更新 5 5000歩
送信 10:30 更新! 0歩 5000歩 2000歩 送信 10:30 更新しない 5000歩 5000歩 5010歩 送信 10:35 更新! 5000歩 5010歩
6.
今回発生した不具合 • 連続した歩数送信時に、不適切な更新が発生してしまった • 次の歩数送信まで歩数が違う値になり、アプリ上の表示に違和感 6 5000歩
送信 10:30 更新! 0歩 5000歩 2000歩 送信 10:30 更新! 0歩 2000歩 5010歩 送信 10:35 更新! 5000歩 5010歩
7.
今回発生した不具合 • 連続した歩数送信時に、不適切な更新が発生してしまった • 次の歩数送信まで歩数が違う値になり、アプリ上の表示に違和感 7 5000歩
送信 10:30 更新! 0歩 5000歩 2000歩 送信 10:30 更新! 0歩 2000歩 5010歩 送信 10:35 更新! 5000歩 5010歩 まずは、正しく動作していた時の 実装から紹介していきます
8.
歩数更新の実装 🙆 • 今からご紹介する実装は、擬似的なコードです •
クライアントから、定期的に歩数送信が行われる 8 クライアント
9.
歩数更新の実装 🙆 • その時サーバーでは、以下のような処理が行われる 9 サーバー
10.
歩数更新のデータ操作 🙆 • その時MySQLでは、以下のようなSQL文が実行される 10 MySQL
11.
複数送信時のデータ操作の流れ 🙆 11 5000歩 送信
2000歩 送信 トランザクション開始 歩数取得&ロック開始 歩数更新 ロック&トランザクション終了 0歩 5000歩 トランザクション開始 歩数取得&ロック開始 0歩 5000歩 ロック待ち 更新後の値を取得 ロック&トランザクション終了
12.
複数送信時のデータ操作の流れ 🙆 12 5000歩 送信
2000歩 送信 トランザクション開始 歩数取得&ロック開始 歩数更新 ロック&トランザクション終了 0歩 5000歩 トランザクション開始 歩数取得&ロック開始 0歩 5000歩 ロック待ち 更新後の値を取得 ロック&トランザクション終了 つづいて、不具合が発生していた時の 実装を紹介します
13.
歩数更新の実装 🙅 • 関係ないテーブルからデータを取得する、たった1行を追加 13 サーバー
14.
歩数更新のデータ操作 🙅 • トランザクション開始とロック開始の間に 一つ処理が入ってしまっている・・・ •
これこそが不具合の原因!! 14 MySQL
15.
複数送信時のデータ操作の流れ 🙅 15 5000歩 送信
2000歩 送信 トランザクション開始 歩数取得&ロック開始 歩数更新 ロック&トランザクション終了 0歩 5000歩 トランザクション開始 歩数取得&ロック開始 ロック&トランザクション終了 0歩 0歩 ロック待ち メッセージ取得 メッセージ取得 歩数更新 2000歩 更新前の 歩数を 取得 不適切な更新
16.
今回ハマった落とし穴 • トランザクションの分離性 - 1つ目のSQLが実行されたタイミングで データベースの状態が切り取られる -
それ以降、別のトランザクションで更新されたデータは読み込めない - データを取得するタイミングによって、結果が 変わってしまうことを防ぐため - トランザクション分離レベルによって挙動は変わる (詳しい説明は割愛) 16
17.
複数送信時のデータ操作の流れ 🙅 17 5000歩 送信
2000歩 送信 トランザクション開始 歩数取得&ロック開始 歩数更新 ロック&トランザクション終了 0歩 5000歩 トランザクション開始 歩数取得&ロック開始 ロック&トランザクション終了 0歩 0歩 ロック待ち メッセージ取得 メッセージ取得 歩数更新 2000歩 切り取り この更新は 反映されず 0歩
18.
複数送信時のデータ操作の流れ 🙅 18 5000歩 送信
2000歩 送信 トランザクション開始 歩数取得&ロック開始 歩数更新 ロック&トランザクション終了 0歩 5000歩 トランザクション開始 歩数取得&ロック開始 ロック&トランザクション終了 0歩 0歩 ロック待ち メッセージ取得 メッセージ取得 歩数更新 2000歩 切り取り この更新は 反映されず 0歩 たった一行のデータ取得により ロック機構が上手く機能しなくなった
19.
歩数更新の実装 🙆 • トランザクション開始の直後にロック開始されるように修正 19 サーバー
20.
まとめ • トランザクション開始の直後にロック開始するのが無難だと思う • ここにハマらないようにする方法があれば教えて欲しい 20 『歩いておトク』で発生した 歩数データに関する不具合を通して トランザクションに関する学びを得た話