タグ

アルゴリズムと設計に関するkenichiiceのブックマーク (2)

  • リトライと冪等性のデザインパターン - Blog by Sadayuki Furuhashi

    リトライを肴に一晩酒が飲める古橋です。 大規模なデータに触れることが日常茶飯事になっている今日この頃。この分野のおもしろいところは、いつまで経っても終わらないプログラムを簡単に作れてしまうことかもしれません。エラー処理、リトライそして冪等性*1の3つを抑えていないプログラムは、小規模なデータなら問題ないが、データ量が多くなると使い物にならなくなる可能性が大です。 大規模データをバッチ処理するケース以外でも、リトライは一般にプログラムの信頼性に関わる重要な問題です。 そんなわけで、リトライに関わるいくつかのデザインパターンを、連載でまとめておこうと思います*2。 では、第1回は背景から: なぜリトライが必要なのか プログラムは色々な理由で失敗する。例えば、 A) 通信先のプログラムが高負荷すぎて応答できなかった B) メモリを消費しすぎてメモリ確保に失敗した。またはOOM KIllerに殺さ

    リトライと冪等性のデザインパターン - Blog by Sadayuki Furuhashi
  • [ruby-dev:49209] データ構造コンテスト:テーブルデータ構造の再考

    Subject: [ruby-dev:49209] データ構造コンテスト:テーブルデータ構造の再考 From: SASADA Koichi <ko1@ d . t Date: Wed, 12 Aug 2015 19:10:54 +0900 # 概要 Ruby インタプリタのデータ構造についての協力者を募集します。具体的には、 特定のテーブルデータ構造の高速化、およびベンチマークの作成です。題目にコ ンテストと書いていますが、とくに賞品はありません。 # 詳細 Ruby インタプリタでは、テーブルデータ構造を使っています。テーブルデータ 構造だと曖昧ですが、Ruby だと Hash クラスに代表される、あるキーに対して 特定の値が返る、というデータ構造と考えてください。キーに重複はないことと します。 Ruby インタプリタのテーブルデータ構造には、st というデータ構造が利用され ており、

    kenichiice
    kenichiice 2015/08/12
    「Ruby インタプリタのデータ構造についての協力者を募集します。具体的には、特定のテーブルデータ構造の高速化、およびベンチマークの作成です。」
  • 1