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
(弊社の)OpenSearchに潜んでいた罠
Search
Keisuke Yamauchi
May 23, 2024
Programming
0
27
(弊社の)OpenSearchに潜んでいた罠
Keisuke Yamauchi
May 23, 2024
Tweet
Share
More Decks by Keisuke Yamauchi
See All by Keisuke Yamauchi
半年かけてPHP5.6からPHP7.4までバージョンアップした苦労と工夫 PHPカンファレンス福岡2024
kechiiin
1
170
ランダム処理を修正し、DBの負荷を下げた話
kechiiin
0
15
レガシーからモダンへ? PHP5.6からの脱却
kechiiin
0
180
Other Decks in Programming
See All in Programming
【Gemini本発売記念】npaka による マルチモーダルとローカルLLMの現在と未来
npaka
3
990
ドラ🔵もんでDIを学ぶ
tomo1227
0
4.7k
Kotlin Script 활용하기
kciter
0
120
5分でわかるExplicitly Built Modules
giginet
PRO
0
160
Gobra で見る形式検証 (mercari.go #26)
artoy
0
430
[Flutter] Unitテストの基礎を理解する
haruki_uiru
0
150
KotlinのLinter まなびなおし2024
nyafunta9858
0
1.7k
Get started with Compose Multiplatform!
ogi2ogi
0
1.1k
並行処理を学びGuzzleと仲良くなる
shimabox
2
390
♾️ マルチプロダクトの組織でマイクロサービスアーキテクチャを支えるCICDプラットフォーム設計
hiroki_hasegawa
3
290
Fluent UI Blazor 最新Update
tomokusaba
1
140
君は新しい日付/時刻API Temporal を知っているか?
luccafort
PRO
4
860
Featured
See All Featured
Embracing the Ebb and Flow
colly
80
4.3k
StorybookのUI Testing Handbookを読んだ
zakiyama
14
4.8k
Documentation Writing (for coders)
carmenintech
61
4.1k
Speed Design
sergeychernyshev
3
160
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
15
1.6k
WebSockets: Embracing the real-time Web
robhawkes
59
7.1k
Gamification - CAS2011
davidbonilla
77
4.8k
The Illustrated Children's Guide to Kubernetes
chrisshort
35
47k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
661
120k
Being A Developer After 40
akosma
68
580k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
226
51k
Fashionably flexible responsive web design (full day workshop)
malarkey
399
65k
Transcript
© Cake.jp Co.Ltd. All Right Reserved.|Confidential 2024/05/23 (弊社の) OpenSearchに潜んでいた罠 山内
啓輔
2 © Cake.jp Co.Ltd. All Right Reserved.|Confidential 自己紹介 山内 啓輔
やまうち けいすけ 担当業務 CRM、PHPバージョンアップなど 🍰おすすめスイーツ 元祖かぼちゃプリン 約1.2kg かぼちゃ感が強く、甘さが控えめで美味し い! 付属のカラメルをかけることで甘さもアッ プ
3 © Cake.jp Co.Ltd. All Right Reserved.|Confidential 今日話す内容 1. 背景の説明
2. 何が起きたのか 3. どのような対応をしたのか 4. まとめ 検索機能のしくじり
4 © Cake.jp Co.Ltd. All Right Reserved.|Confidential 今日話す内容 1. 背景の説明
2. 何が起きたのか 3. どのような対応をしたのか 4. まとめ 検索機能のしくじり
5 © Cake.jp Co.Ltd. All Right Reserved.|Confidential 背景の説明 ・商品検索でOpenSearchを使用している 「OpenSearchは、大量のデータをリアルタイムでインデックス化し、迅速かつ柔軟に検索・分析できる
オープンソースの検索エンジンです。」 by ChatGPT 4o ・何をしようとしていたのか ソートに使用する項目に変更を加えた 0〜5まで設定できる項目を、0〜500まで設定できるように変更 → 仕様変更
6 © Cake.jp Co.Ltd. All Right Reserved.|Confidential 今日話す内容 1. 背景の説明
2. 何が起きたのか 3. どのような対応をしたのか 4. まとめ 検索機能のしくじり
7 © Cake.jp Co.Ltd. All Right Reserved.|Confidential 何が起きたのか 時系列順に説明
8 © Cake.jp Co.Ltd. All Right Reserved.|Confidential 何が起きたのか DBの値を更新 DBの値を更新→
9 © Cake.jp Co.Ltd. All Right Reserved.|Confidential 何が起きたのか OpenSearchのインデックス更新 DBの値を更新→OpenSearchのインデックス更新→
10 © Cake.jp Co.Ltd. All Right Reserved.|Confidential 何が起きたのか 他部署の方から「なんかおかしい」と連絡 DBの値を更新→OpenSearchのインデックス更新→他部署
の方から「なんかおかしい」と連絡→
11 © Cake.jp Co.Ltd. All Right Reserved.|Confidential 何が起きたのか 「待ってれば大丈夫」と言うための調査開始 DBの値を更新→OpenSearchのインデックス更新→他部署の方から「なんかおかしい」
と連絡→「待ってれば大丈夫」と言うための調査開始→
12 © Cake.jp Co.Ltd. All Right Reserved.|Confidential 何が起きたのか エラー発見! DBの値を更新→OpenSearchのインデックス更新→他部署の方
から「なんかおかしい」と連絡→「待ってれば大丈夫」と言う ための調査開始→エラー発見!→
13 © Cake.jp Co.Ltd. All Right Reserved.|Confidential 何が起きたのか 調査開始 DBの値を更新→OpenSearchのインデックス更新→他部署の方から「なんか
おかしい」と連絡→「待ってれば大丈夫」と言うための調査開始→エラー発 見!→調査開始→
14 © Cake.jp Co.Ltd. All Right Reserved.|Confidential 何が起きたのか エラー内容把握 管理画面の変更→DBの値を更新→OpenSearchのインデックス更新→社内に連絡→他部署から「なんかおかしい」と連
絡→「待ってれば大丈夫」というための調査開始→エラー発見!→調査開始→エラー内容把握→
15 © Cake.jp Co.Ltd. All Right Reserved.|Confidential 何が起きたのか エラー内容 "reason":"Value
[400] is out of range for a byte"
16 © Cake.jp Co.Ltd. All Right Reserved.|Confidential 何が起きたのか OpenSearchの公式を見に行くと・・・
17 © Cake.jp Co.Ltd. All Right Reserved.|Confidential 何が起きたのか OpenSearchの公式を見に行くと・・・ 引用:https://opensearch.org/docs/latest/field-types/supported-field-types/numeric/
18 © Cake.jp Co.Ltd. All Right Reserved.|Confidential 何が起きたのか せめて全て失敗していれば良かったのに、 1→100だけ成功してしまったばっかりに、
ソートがおかしくになってしまった
19 © Cake.jp Co.Ltd. All Right Reserved.|Confidential 今日話す内容 1. 背景の説明
2. 何が起きたのか 3. どのような対応をしたのか 4. まとめ 検索機能のしくじり
20 © Cake.jp Co.Ltd. All Right Reserved.|Confidential どのような対応をしたのか ・DBのデータを元に戻す 100→1、200→2、、、
これをすることでOpenSearchのインデックスは、バッチが勝手に元に戻してくれる とりあえず、不具合解消 ・テスト環境で予行練習 OpenSearchのフィールドの型を変更する(byte→integer) DBのデータを更新する OpenSearchのインデックスの更新 ・本番で実施 OpenSearchのフィールドの型を変更する(byte→integer) DBのデータを更新する OpenSearchのインデックスの更新
21 © Cake.jp Co.Ltd. All Right Reserved.|Confidential 今日話す内容 1. 背景の説明
2. 何が起きたのか 3. どのような対応をしたのか 4. まとめ 検索機能のしくじり
22 © Cake.jp Co.Ltd. All Right Reserved.|Confidential まとめ 関連する項目を確認し、 どのようにデータが入っていくのかを確認しよう!
なかなか、難しいけどね、、、