Programming tutorial - IT technology blog

GoのSingleflightを極める:キャッシュスタンピードを防ぎ、アップストリームサービスを保護する

トラフィック急増時にホットなキャッシュキーが期限切れを迎えると、大量の同一クエリによってデータベースが過負荷に陥ることがあります。Goのsingleflightパッケージを使って並行リクエストを重複排除し、最小限のオーバーヘッドでインフラを保護する方法を解説します。
Database tutorial - IT technology blog

RedisとRedissonによる分散ロック:マルチノード環境におけるレースコンディションの防止

水平スケールアウトを行うと、JVMレベルのミューテックスや標準ロックは機能しなくなります。分散クラスタでレースコンディションが過剰販売を引き起こす原因と、Java Spring Boot環境でRedisとRedissonを用いて堅牢な分散ロックを実装する方法を解説します。
Programming tutorial - IT technology blog

Python AsyncIOを極める:イベントループ、タスク、セマフォで構築する高パフォーマンス並行処理

Python AsyncIOのイベントループ、コルーチン、セマフォを活用してI/Oのボトルネックを解消する方法を解説します。並行処理数を適切にコントロールし、ブロッキングタスクを逃がすことで、高負荷に耐えうる高パフォーマンスなバックエンドを構築する実践的テクニックを学びましょう。
Programming tutorial - IT technology blog

Server-Sent Events (SSE) と Go によるリアルタイムデータストリーミング:並行処理と高スループットパイプライン

Server-Sent Events(SSE)とGoを使用して、高性能なリアルタイムデータストリーミングパイプラインを構築する方法を学びます。スレッドセーフなクライアント管理、ブローカーパターン、低レイテンシなデータフラッシュについて詳しく解説します。
Programming tutorial - IT technology blog

Java 21 仮想スレッド:リアクティブの複雑さを排除したスケーラブルな並行処理

Java 21の仮想スレッドをマスターして、高度にスケーラブルなアプリケーションを構築しましょう。本ガイドでは、リアクティブの複雑さを解消する方法、スレッドのピン留め(pinning)といった一般的な落とし穴の回避策、より安全な非同期コードのための構造化された並行性(Structured Concurrency)の活用法について解説します。
Database tutorial - IT technology blog

楽観的ロックvs悲観的ロック:本番アプリケーションにおける同時データベースアクセスの制御

本番ECアプリでのレースコンディションと6ヶ月間向き合った経験から、楽観的ロックと悲観的ロックを実践的に比較します。それぞれの使いどころ、実際のトレードオフ、そしてプロジェクトにすぐ組み込めるPython/PostgreSQLのコードを解説します。