並び順

ブックマーク数

期間指定

  • から
  • まで

1 - 40 件 / 51件

新着順 人気順

冪等性の検索結果1 - 40 件 / 51件

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

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

      リトライと冪等性のデザインパターン - Blog by Sadayuki Furuhashi
    • サーバーレスが気になる開発者に捧ぐ「べき等性」ことはじめ 第一回〜べき等性 (冪等性/idempotency) ってなんだ!? - builders.flash☆ - 変化を求めるデベロッパーを応援するウェブマガジン | AWS

      そもそも、べき等性とは、どういうことを言うのでしょうか ? これは「ある操作を 1 回行っても複数回行っても結果が同じである」ことをいう概念です。 例えば、注文処理を考えます。画面インターフェースで、注文確定 / 送信ボタンを押すという操作で二度三度押してしまうユーザーがいます。これで同じ内容の注文が複数回登録されてしまったら問題です。こういったケースでは、画面側で連続して押せないような実装を追加したり (①)、サーバー側で同じ注文の処理であることを認識して適切に一つの処理と判断するようなこと (②) が必要です。 この例では、画面側の制御を入れたほうが簡単なように見えます。しかし、現実には画面とサーバーとの間のネットワークの問題や画面以外からの HTTP コールなどを考えると、このような重複リクエストが起こってしまうという可能性はゼロではありません。 このようなものへの対処として、サーバ

        サーバーレスが気になる開発者に捧ぐ「べき等性」ことはじめ 第一回〜べき等性 (冪等性/idempotency) ってなんだ!? - builders.flash☆ - 変化を求めるデベロッパーを応援するウェブマガジン | AWS
      • 続々・リトライと冪等性のデザインパターン - あらゆる操作を冪等にする方法 - Blog by Sadayuki Furuhashi

        いつも心に冪等性。古橋です。 リトライと冪等性のデザインパターンの完結編です。 だいぶ間が空いてしまいましたが! 最後に冪等性を実装する汎用的な実装手法についてまとめていきます。 パターン6:操作ログとリクエストIDでUPDATEを冪等にする 同じIDで識別される値がUPDATEされる場合、つまりmutableである値の管理は、一般に冪等に行うのが難しい。 例えば、ユーザーごとに「最後に購入したアイテム」を更新する操作を考えてみると: 1. ユーザーAが最後に購入したアイテムをアイテム1に変更する(UPDATE) 2. ユーザーAが最後に購入したアイテムをアイテム2に変更する(UPDATE) この操作に何の対策もなくリトライを実装した場合、後続のUPDATE処理の結果を古い内容で上書きしてしまう可能性がある: 1. ユーザーAが最後に購入したアイテムをアイテム1に変更する(UPDATE)→

          続々・リトライと冪等性のデザインパターン - あらゆる操作を冪等にする方法 - Blog by Sadayuki Furuhashi
        • 続・リトライと冪等性のデザインパターン - リトライはいつ成功するか - Blog by Sadayuki Furuhashi

          三度の飯よりエラー処理。古橋です。 大変好評をいただいた序章リトライと冪等性のデザインパターンの続編です。 前回はほぼ前置きでしたが、今回は冪等でない操作を冪等にする具体的なテクニックもまとめていきます。 パターン2:エラーを区別してDELETEを冪等にする リソースに常に一意なIDが振られていれば、Deleteを冪等にするのは難しくない。そもそも同じリソースを2度削除することはできない。 一つ注意するべきなのは、削除されたリソースのIDが再利用されるケースでは、Deleteの冪等性は保証されない。例えば、kill -KILL <pid> コマンドはDelete系のAPIと考えられるが、pidは再利用されるので、何度も繰り返すと意図しないプロセスを殺してしまう可能性がある。 一般にIDの生成は非常に難しい問題だが、Deleteに関してのみ言えば再利用されなければいいので、単調増加する整数(

            続・リトライと冪等性のデザインパターン - リトライはいつ成功するか - Blog by Sadayuki Furuhashi
          • これだけ覚えておけばOK!シェルスクリプトで冪等性を担保するためのTips集 - Qiita

            「シェルスクリプトって冪等性ないじゃないですか」 そんなことをよく耳にします。しかし、if文を入れるだけで簡単に冪等性を担保したシェルスクリプトを書くことができます。 今回は、私が使う条件式を紹介します。基本的な形式なものなので、組み合わせると幅が広がりますよっ! ファイル/フォルダ関係 ファイルの存在確認 -e 'ファイル名'で「ファイル名」が存在しているかチェックします。 if [ -e 'ファイル名' ]; then # ファイル/フォルダが存在していれば、ファイル/フォルダを削除するなど rm ファイル名 fi

              これだけ覚えておけばOK!シェルスクリプトで冪等性を担保するためのTips集 - Qiita
            • バッチ処理における冪等性の検討 ─ クラウドネイティブもしくは、はてなダイアリーの自動移行を題材に - Hatena Developer Blog

              アプリケーションエンジニアのid:tkzwtksです。今回はバッチ処理の冪等性(べきとうせい、idempotence)について、どう考えるか/考えてきたかをご紹介します。 このエントリを書くきっかけとなったのは、はてなエンジニア有志で定期的に開催しているCloudNative推進会です。ここでは、社内のシステムをクラウドネイティブにしていくため「クラウドネイティブなシステムとはどういうものか?」を考えており、この会での「クラウドネイティブなバッチ処理」の議論も踏まえつつ説明していきます。 バッチ処理における冪等性とは メッセージ送信の信頼性を考慮する クラウドネイティブで可用性を高めるために どのような場合に冪等性を考慮すべきか 冪等な実装における3つのケーススタディ ケース1: n分前までに更新されたレコードを集計する ケース2: DB上の対象レコードを更新する ケース3: 対象ユーザー

                バッチ処理における冪等性の検討 ─ クラウドネイティブもしくは、はてなダイアリーの自動移行を題材に - Hatena Developer Blog
              • Immutable InfrastructureとChefと冪等性の話 - プログラマでありたい

                最近話題になっているImmutable Infrastructure(イミュータブル・インフラストラクチャ/サーバ)。あんまりよく解っていないので、整理してみました。 Immutable Infrastructureとは? そもそもImmutable Infrastructureとは、何でしょう?極論すると、「稼働中のサーバの構成管理をやめて、サーバを使い捨てにしよう」という考え方です。これだけ言われても、さっぱり解らないと思います。 まずは従来の考え方。Mutable Infrastructureというのか、既存のサーバに変更を加えていくことが前提になります。 それに対して、Immutable Infrastructure。直訳すると変化しないインフラとなります。どういうことかと言うと、サーバ構成(ミドル・アプリ)を変更したい場合は新規にサーバを立ちあげ、そこに既存の機能と新規の機能を加

                  Immutable InfrastructureとChefと冪等性の話 - プログラマでありたい
                • S3をトリガーとするLambdaの冪等性をDynamoDBで実現してみた | DevelopersIO

                  どうも!AWS勉強中の西村祐二@大阪です。 みなさんLambdaは使ってますでしょうか。 サーバレスでいろんなことができるので個人的にかなり好きなサービスです。 Lambdaは様々な使い方ができますが S3と連携してファイルがアップロードされたらLambdaで 何かしらの処理を実行するなどの使い方をしている方多いのではないでしょうか。 そんな時に重要になってくるのが冪等性です。 今回はLambdaの冪等性をDynamoDBの条件付き書き込みという機能を利用して 冪等性を実現してみたいと思います。 なんで冪等性が必要なのか Lambdaはたまに2回以上実行されるときがあるからです 例えば Lambdaでアクセスログの集計処理などを行っている場合、 複数回処理されると複数回集計されて結果がおかしくなるときがあります。 また、複数のファイルをまとめてアップロードした際に 何らかの理由で一部のファ

                    S3をトリガーとするLambdaの冪等性をDynamoDBで実現してみた | DevelopersIO
                  • HTTPメソッドのPOSTとPUTの冪等性 - アインシュタインの電話番号

                    昨日の記事のはてブコメントにて、POSTとPUTの使い分けには冪等性が重要ですよとのアドバイスをいただいた。ので、冪等性について調べてみた。 冪等性と安全性 @tkawaさんに、はてブコメントにてアドバイスいただいたのは冪等という考え方。 これに加えて、性質の違いとしてPOSTは冪等ではないがPUTは冪等というのも重要です 冪等ってあまり聞かない用語だけど、この冪等についても、Webを支える技術にはちゃんと書いてあった。 冪等とは「ある操作を何回行っても結果が同じこと」を意味する数学用語です。たとえばPUTとDELETEは冪等ですので、PUTやDELETEを同じリソースに何回発行しても、必ず同じ結果(リソースの内容が更新されている、リソースが削除されている)が得られます。 安全とは「操作対象のリソースの状態を変化させないこと」を意味します。リソースの状態に変化を与えることを副作用といいます

                      HTTPメソッドのPOSTとPUTの冪等性 - アインシュタインの電話番号
                    • Workflow Engine をつくろう! Part 2 (Workflow の冪等性) - Qiita

                      Part 1 Task の依存関係の解決 Part 2 Workflow の冪等性 Part 3 Task 間でのデータのやり取り Part 4 Task の並列実行 まえおき この連載記事で作成する Workflow Engine は、Luigi の設計思想に大きく影響を受けています。なので、 @k24d さんの Luigi によるワークフロー管理 を先に読んでおくと、理解が深まると思います。 前回は Task の依存関係の解決方法を実装しましたが、Part 2の今回は Workflow の冪等性について実装していきます。 Workflow を実行、制御する上で、冪等性(何回実行しても結果が同じであること)は大変重要です。なぜ重要かというと、現実問題として Workflow は途中で失敗する可能性があり、いかに確実に簡単にリトライ処理ができるかが、業務システムを運用の手間に直結するからで

                        Workflow Engine をつくろう! Part 2 (Workflow の冪等性) - Qiita
                      • Ansible の shell モジュールでチェックモードも考慮して冪等性を保つ - Qiita

                        まずは結論から、例えば以下のようなタスクの場合、 uname -a コマンドの結果を /tmp/hoge に出力する /tmp/hoge が既にあるなら実行しない コメントの通りファイルの存在確認なら stat モジュールで十分なのですが、より多くのケース(なにかしらのコマンドの結果を元に実行の有無を制御)を想定してあえて shell モジュールを使います 次のようにします。 - hosts: localhost tasks: - shell: test -e /tmp/hoge register: res always_run: yes failed_when: no changed_when: res.rc != 0 - shell: uname -a > /tmp/hoge when: res|changed これだけなら shell モジュールの creates を使うだけでいいん

                          Ansible の shell モジュールでチェックモードも考慮して冪等性を保つ - Qiita
                        • Ansible の shell や command モジュールで冪等性を保つ方法 | Tricorn Tech Labs

                          Tricorn Tech Labs はメールや LINE を用いた Web マーケティング SaaS に強みを持つトライコーン技術者によるブログです。 はじめまして、入社1年と数ヶ月のkamoです。初投稿になります。 最近、巷で噂のRaspberry Pi B+を買ってしまいました。 え?この記事を書かずにそんなことしてん?何してんの? 他にもやることあるよね、kamo? という心の声が聞こえてきましたが、学生の頃、テスト期間中に勉強しなければいけないのに、机の上や部屋の掃除をしてしまう感じで買ってしまいました。すみません。 Raspberry Pi B+で何をするかは、まだ考えていません。色々と片付いたら弄ろうと思っていますので、ご勘弁を。 さて、最近はサーバを構成管理ツールで管理するのが流行っていますが、トライコーンでは Ansible を使っての構成管理を試してみています。 その中で

                            Ansible の shell や command モジュールで冪等性を保つ方法 | Tricorn Tech Labs
                          • デプロイツールfabric+cuisineで冪等性保証 - Qiita

                            はじめに Python製のデプロイツールfabricは,シェルスクリプトをPythonで便利に利用できるようにしたものであり,Chef-Soloライクな構成管理を容易に行うことができる.また,Chefの大きな特徴の1つである冪等性だが,fabricのラッパーであるcuisineを用いることで,保証することができる. 非常にシンプルでChefなどと比較すると学習コストも小さく,さらに対象となるマシンにのみインストールすればよいので手軽に導入できる.今回はfabricを用いてvagrantへdotfilesを配置するちょっとしたスクリプトを書いてみた. インストール 以下のコマンド一発でインストールできる.

                              デプロイツールfabric+cuisineで冪等性保証 - Qiita
                            • Ansibleの冪等性とPlaybook | DevelopersIO

                              渡辺です。 Ansibleを利用する時、避けて通れない概念が「冪等性(べきとうせい/idempotence)」です。 冪等性は数学方面の用語で、大雑把に言えば「1回だけ操作を行っても、不数回(N回)行っても結果が変わらない特性」のことを指します。 例えば、有理数の乗算であれば1と0には冪等性があります。 1は、Nに何回かけても結果はNです。 同様に、0は、Nに何回かけても結果は0です。 とはいえ、Ansibleの冪等性は、あくまで構成管理を行う上でのことなので、数学的な冪等性については「そんな概念なんだ」程度の理解で良いと思います。 Ansibleによる冪等性はサーバの状態を保つこと サーバの定義を記述したAnsibleのPlaybookを実行すると、定義に合わせたミドルウェアなどがサーバにインストールされ、サーバの状態が変更されます。 そして、サーバの定義、すなわちPlaybookを変更

                                Ansibleの冪等性とPlaybook | DevelopersIO
                              • Ansibleで冪等性を保つためにはfailed_whenとかstatを使うと便利 - 銀色うつ時間

                                構成管理ツールとしてAnsibleを使って開発環境を作っているんだけど(本番でも使えるようにとかはまだできてない)、特定のコマンドの実行結果によって次の処理をスキップするかどうかみたいなのを制御したい場面がある。 例えばcentos6.xでnginxの設定を行いたいとすると、以下のようになる。 - name: get nginx rpm get_url: url="http://nginx.org/packages/centos/6/noarch/RPMS/nginx-release-centos-6-0.el6.ngx.noarch.rpm" dest="/var/tmp/nginx-release-centos-6-0.el6.ngx.noarch.rpm" - name: add nginx rpm yum: name=/var/tmp/nginx-release-centos-6-

                                  Ansibleで冪等性を保つためにはfailed_whenとかstatを使うと便利 - 銀色うつ時間
                                • 「冪等性Tシャツ」から生まれてしまった会話 - 海波パソコン

                                  suzuri.jp ふとしたきっかけでこの「冪等性ロングスリーブTシャツ」を買い、好んで着ている。 エンジニア向けイベントに関連するX(Twitter)での会話の中で発見したものだったので、基本的には「冪等性(べきとうせい)」が通じるエンジニア向けイベントにしか着ていかないつもりだった。しかし、あまり長袖Tシャツを持っていないので、気候に合う日には「まあいいか」と思って着て外出している。 昨日はたまたま、東京都薬用植物園(東京都小平市)まで出向き、開催中の「ケシのパネル展」(4/22~5/15)を見に行った。ものがものだけに、話しかけられない雰囲気にしたいなと思って、わざと冪等性Tシャツを着た。天候的にもちょうどよかった。 それなのに、西武拝島線で最寄りである東大和市駅まであと一駅というところで、発車直前に列車に飛び込んできたお姉さんに「この電車、本川越まで行きますか?」と尋ねられてしまっ

                                    「冪等性Tシャツ」から生まれてしまった会話 - 海波パソコン
                                  • 冪等性とは「同じ操作を何度繰り返しても、同じ結果が得られる性質」のこと - Qiita

                                    冪等性(べきとうせい、idempotency, idempotence)とは、同じ操作を何度繰り返しても、同じ結果が得られるという性質です。冪等性がある操作(idempotent operation)は、1回操作した場合の結果と、2回以上操作した場合の結果は同じになります。 関数における冪等性 fという関数に引数xを与えた場合、次の式が成り立つ性質。(もちろんfは副作用がない関数であることが前提です)

                                      冪等性とは「同じ操作を何度繰り返しても、同じ結果が得られる性質」のこと - Qiita
                                    • Idempotency-Keyヘッダによるマイクロサービスの冪等性の担保 - エムスリーテックブログ

                                      こちらはエムスリー Advent Calendar 2023の15日目の記事です。 デジスマチームの田口です。 去年のアドベントカレンダーでイベント駆動アーキテクチャの記事を書きましたが、ありがたいことにデジスマ診療のサービスとしての成長も著しく、開発も一層活発になっています。 去年と比較してどれくらいスケールしたかはCTOでありデジスマPdMでもある山崎さんがpmconf 2023で発表した資料にもあるので、興味がある方は是非ご覧ください。 speakerdeck.com 本記事では去年の記事でも少し触れた「冪等性」について、デジスマチームでの考え方・実装についてまとめます。 なぜ冪等性が重要か Idempotency-Key ヘッダ デジスマでの実装 おわりに We are hiring!! なぜ冪等性が重要か デジスマ診療(以降デジスマ)はQRコードによるチェックインや自動後払い、オ

                                        Idempotency-Keyヘッダによるマイクロサービスの冪等性の担保 - エムスリーテックブログ
                                      • デプロイツールfabric+cuisineで冪等性保証 - Qiita

                                        はじめに Python製のデプロイツールfabricは,シェルスクリプトをPythonで便利に利用できるようにしたものであり,Chef-Soloライクな構成管理を容易に行うことができる.また,Chefの大きな特徴の1つである冪等性だが,fabricのラッパーであるcuisineを用いることで,保証することができる. 非常にシンプルでChefなどと比較すると学習コストも小さく,さらに対象となるマシンにのみインストールすればよいので手軽に導入できる.今回はfabricを用いてvagrantへdotfilesを配置するちょっとしたスクリプトを書いてみた. インストール 以下のコマンド一発でインストールできる.

                                          デプロイツールfabric+cuisineで冪等性保証 - Qiita
                                        • fluentd の forward の冪等性とリトライについて

                                          methane @methane forwardはストリーミングできるんだけど、受信確認が無いから際接続時にどっから再送したらいいのか全く分からない。 なのでout_forwardはチャンク毎に切断してるんだけど、接続コスト考えたらチャンクはある程度大きくないといけない 2014-06-12 13:52:03

                                            fluentd の forward の冪等性とリトライについて
                                          • バッチ処理と冪等性 / 20191218_merpay_techtalk

                                            B2C、B2B プロダクトマネジメントの違い(および思考の罠) / B2C, B2B PM and reduction fallacy

                                              バッチ処理と冪等性 / 20191218_merpay_techtalk
                                            • 実例からみる冪等性問題

                                              #tqrk11

                                                実例からみる冪等性問題
                                              • コード決済における冪等性と整合性 / #merpay_techtalk

                                                CockroachDB はどのくらい「しぶとい」のか? / How tough is CockroachDB?

                                                  コード決済における冪等性と整合性 / #merpay_techtalk
                                                • Tech Talk vol.2 Backend Engineer 〜マイクロサービスの冪等性〜 を開催しました | メルカリエンジニアリング

                                                  はじめに こんにちは。メルペイBackend Engineerの@knsh14です。 12月18日にメルペイ主催でTech Talkを開催しました。 今回はテーマとして「マイクロサービスの冪等性」を掲げ、プロダクト開発をしているエンジニアたちに冪等性についてそれぞれの思いを語ってもらいました。 この記事では、当日の発表をそれぞれ簡単に紹介します! 発表内容 500万ユーザーを支える残高の冪等性 まずはじめに私@knsh14が「500万ユーザーを支える残高の冪等性」と題して発表しました。 メルペイの残高を管理するマイクロサービスでどのように冪等性をもたせているかなどを解説しました。 コード決済における冪等性と整合性 次にCode Paymentチームの@susho0220が「コード決済における冪等性と整合性」というタイトルで、コード決済において冪等性があることによって決済が失敗したところから

                                                    Tech Talk vol.2 Backend Engineer 〜マイクロサービスの冪等性〜 を開催しました | メルカリエンジニアリング
                                                  • Ansible get_url モジュールで、冪等性を考えてみる - Qiita

                                                    Ansibleのモジュールを使っていて、get_urlモジュールの冪等性が気になったので動作を確認した。 何が問題か get_urlモジュールは、wgetやcurlのように、外部からファイルをダウンロードしてくる訳だけど、ダウンロードに失敗してファイルが途中で切れていたりすると、その後のtar展開などで困る。 しかし、get_urlのデフォルト動作では、Playbookを再実行しても、壊れたファイルを見て「あ、もうダウンロード終わってるじゃん」となってしまい、ファイルを再取得してくれない。 おまけをつけると、ダウンロードしたファイルが更新された時だけ、その先のビルド処理を流したい。 解決方法 まず、get_url に sha256sum オプションを渡してあげる。 さらに force=yes を渡してあげる。 すると、ファイルが既にあったら、最初にsha256sumチェックサムを見てくれて

                                                      Ansible get_url モジュールで、冪等性を考えてみる - Qiita
                                                    • 冪等性とかもすごいよね

                                                      そう!その言葉が欲しかったって思ったもの。便利。 欲しい言葉を作ってくれたひと、浸透させてくれたひとに感謝したい。 anond:20220403143312

                                                        冪等性とかもすごいよね
                                                      • 冪等性マネジメントを高めるための思考と試行 - comix

                                                        本記事はコネヒト Advent Calendar 2019の23日目のエントリーになります。 今日はマネジメントの話がしたくなったのでマネジメントの話をします。マネジメントは「ナマモノ」なので、その人のパーソナリティはもちろん、関係性や状況によって、有効な手段が変わるので銀の弾丸はないのですが、ナマモノだからこそ、現場のノウハウを公開していく必要があると考えています。 また、マネジメントのテクニックを公開すること=手の内をメンバーに見せることになるので、公開することを敬遠するマネージャーもいますが、僕は正直でいることが最大の戦略だと思っているので、自分の考えの整理も兼ねて書いてみたいと思います。 というわけで誰かの一助になれば幸いです。 冪等性マネジメントとは? 僕がマネージャーとして意識していることの一つに「冪等性マネジメント」(Idempotent Management)というのがあり

                                                          冪等性マネジメントを高めるための思考と試行 - comix
                                                        • 副作用と参照透過性と冪等性を理解して、テストでドメインを磨く - Qiita

                                                          朝でも夜でも mac でも windows でも商用環境でも日本でもアメリカでも、add(2, 3)は5 透過的 ( transparency ) とは「存在するものを存在しないように見せる」感じらしい 透過の反対は仮想らしい 透過 → あるけど見えないガラス 仮想 → ないけど見えるホログラム つまり「参照透過性」は「参照があるけどないように見せる」ということ 変数の再代入やグローバル変数の参照が処理内になければ、処理内では変数の参照について心配する必要がないので、参照が透過的と言える 冪等性 処理を何回実行しても同じ結果になること 現状を気にせず叩けば良いので、chef やマイクロサービス等のたくさんの状態を更新する処理と相性が良い (一部が失敗しても全てが成功するまで叩き直せば良いから) 身近な例だと「オン | オフ」みたいなトグルボタンは冪等性がないけど「オフにする」ボタンは冪等性

                                                            副作用と参照透過性と冪等性を理解して、テストでドメインを磨く - Qiita
                                                          • 冪等性(べきとうせい)とは - hagetak's blog

                                                            冪等性(べきとうせい)とは ココ1年くらいで、冪等性(べきとうせい)という言葉を何度も聞いた。 ついに業務でもこの言葉が出てきたので、改めて意味を調べてみることにする。 冪等性とは 冪等性とは、ある操作を1回行っても複数回行っても結果が同じであることをいう概念である。 よく例にあげられるのは、i = 0 と i = i + 1 である。 var i = 0; // i は必ず 0 になる:冪等性が保たれる // 実行する度に i が 1 足される。(実行回数によって、 i の値が変わってしまう) // :冪等性が保たれない i = i + 1 他に例を挙げるなら、 copy も同様である。 copy a.txt b.txt # copy できた copy a.txt b.txt # 既に b.txt があるため、copy できない overwrite b.txt? (y/n [n]) イン

                                                              冪等性(べきとうせい)とは - hagetak's blog
                                                            • 冪等性を考慮したデータ連携ジョブの設計

                                                              内製したSlack Appで頑張るIncident Response@Waroom Meetup #1 / Incident Response with Slack App in 10X

                                                                冪等性を考慮したデータ連携ジョブの設計
                                                              • 冪等性を担保したGoogle Cloud Composerの設計と実装

                                                                こんにちは! 2022年2月からLuupにデータエンジニアとしてジョインした河野(@matako1124) です! 元々マイクロモビリティに興味があり、データ基盤もこれからきっちり作っていきたいという0からのフェーズで、お声がけをいただけたことに感謝です。 現在、Luupのデータチームの構成は、Data Strategy部の中にData EngineeringチームとData Scienceチームの2つがある形となっています。 Data Engineeringチームとしては前回の記事執筆者@t-kurimuraと私の二人で取り組んでいます! ということで、まだ入社数ヶ月の私ですが、Luupでのデータ基盤としてGoogle Cloud Composerを導入し、どのように冪等性を担保した設計にしようとしているかご紹介していきたいと思います。 注意 記事執筆から半年ほど経過しており、現在の最新

                                                                  冪等性を担保したGoogle Cloud Composerの設計と実装
                                                                • ansibleのコマンド実行時の冪等性を簡単にするためのモジュール(ansible2にも対応) - Qiita

                                                                  ansible2にも対応しました。 ansibleは色々なモジュールがあり便利ですね。 クライアントインストールレスが嬉しいです。 構成管理以外にもリリース作業の自動化や、情報収集や調査タスクにも使えますね。今後ansibleを中心に進めていこうと思っているのですが。 しかし、複数行のコマンドを実行した際の冪等性の考慮が難しいです。参考:http://lab.tricorn.co.jp/kamo/4836 やってられなくはないですが、 - name: check default conf stat: path=/etc/nginx/conf.d/default.conf register: is_exists - name: move default conf shell: mv /etc/nginx/conf.d/default.conf /etc/nginx/conf.d/defaul

                                                                    ansibleのコマンド実行時の冪等性を簡単にするためのモジュール(ansible2にも対応) - Qiita
                                                                  • バッチ処理の改善 〜冪等性の設計導入〜 - Timee Product Team Blog

                                                                    前編(トランザクション範囲の最小化)へ はじめに こんにちは。タイミーのバックエンドエンジニア中野です。 前編では締めのバッチ処理におけるトランザクションの範囲を最小化した技術的改善をご紹介しました。トランザクションの範囲をバッチ処理全体から最小限の範囲に変更したことにより、バッチ処理が失敗した場合に請求レコードの処理が途中まで完了している状態が発生するようになりました。後編では、処理対象の請求レコードに対し状態を持たせることでバッチ処理全体での冪等性を担保し、バッチ処理が途中で失敗した場合でも安全に処理を再開できるようにした取り組みをご紹介します。 はじめに 締めのバッチ処理とは 現状の課題認識 実施した施策 冪等性とは 冪等性を実現する方法 バッチ処理への適用 達成できたこと 今後の課題 スループット向上とリソース最適化 まとめ 締めのバッチ処理とは まずは前編のおさらいになりますが、

                                                                      バッチ処理の改善 〜冪等性の設計導入〜 - Timee Product Team Blog
                                                                    • GCP版Dataformで冪等性を担保する設計ポイント3つ - TVer Tech Blog

                                                                      データエンジニアの遠藤です。 TVer Advent Calendar 2023の24日目の記事になります。 はじめに 本年(2023年)、Google Cloudのビッグデータ基盤として展開されるBigQueryでは、データガバナンスツールであるDataformがGA(Generally Avaialble)になりました。 cloud.google.com このDataformの登場により、BigQuery上でデータを利活用しやすいように変換する(データマートを生成する)システムの構築が容易になりました。 本記事では、Dataform上において、定常実行やリトライ実行を容易にするために、冪等性が担保される設計のテクニックを3点紹介します。(Dataformの基本的な使い方については触れませんのでご注意ください) 1. SQLX内のクエリに変数を用いる DataformはSQLXと呼ばれる

                                                                        GCP版Dataformで冪等性を担保する設計ポイント3つ - TVer Tech Blog
                                                                      • Ansible、コマンド実行結果を"ok"にする(冪等性を保つ方法) - Goldstine研究所

                                                                        Ansibleでソースコードインストールする際とか すでにインストールされているかのチェックなどで、 シェルコマンドを実行してその結果で判断したい時がある。 ぼくがよくやる例では以下とか。 - name: check httpd installed command: which httpd ignore_errors: true なんですが... こうやってしまうと、仮に既にインストールされていて、正常なときでも"changed"と表示されてしまう。 これでは、本当にchangedなものなのか、わからなくなってくる。 これを解決するのにchaged_whenを使うといい。 - name: check httpd installed command: which httpd ignore_errors: true changed_when: false こうするとコマンドが成功した際には"o

                                                                          Ansible、コマンド実行結果を"ok"にする(冪等性を保つ方法) - Goldstine研究所
                                                                        • やはり俺の AUTO INCREMENT を含むテーブルに対するリソースに PUT を使うのはまちがっている、または HTTP PUT の冪等性と AUTO INCREMENT の相性が最悪な件について (あるいは私が PUT を諦め POST を使うまで) - Humanity

                                                                          3行で伝える代わりにタイトルで説明してみた (親切心)。 (2016/07/30 2:45 追記) ちなみにコメント欄で指摘頂いた通り、今回問題視した PUT の設計も冪等と言えます。 私の冪等性の理解が間違っていたので、以下の冒頭の項目で説明する PUT の設計が RESTful じゃないと記載しているのは誤りです。 悩み DB の AUTO INCREMENT な値 (以下「連番」) をメッセージボディの JSON に含め、 そのリクエストを受け付けたバックエンドが DB の連番と比較し、 違っていればエラーを返すという設計の API があるとして、 PUT であるリソースを更新すると当然連番がインクリメントされるので連続で送ることができない。 つまり冪等性を保っておらず RESTful ではない。 では RESTful に実現しようとするなら一体どうすればいいんだろう?というので最近

                                                                            やはり俺の AUTO INCREMENT を含むテーブルに対するリソースに PUT を使うのはまちがっている、または HTTP PUT の冪等性と AUTO INCREMENT の相性が最悪な件について (あるいは私が PUT を諦め POST を使うまで) - Humanity
                                                                          • Azure ARM Templateによるデプロイと冪等性

                                                                            宣言的に、冪等に ここ数年で生まれたデプロイメント手法、ツールは数多くありますが、似たような特徴があります。それは「より宣言的に、冪等に」です。これまで可読性や再利用性を犠牲にしたシェル芸になりがちだったデプロイの世界。それがいま、あるべき姿を定義しその状態に収束させるように、また、何度ツールを実行しても同じ結果が得られるように変わってきています。 さて、そんな時流に飛び込んできたデプロイ手法があります。AzureのARM(Azure Resource Manager) Templateによるデプロイです。ARMはAzureのリソース管理の仕組みですが、そのARMに対し、構成を宣言的に書いたJSONを食わせて環境を構築する手法です。Azureの標準機能として、提供されています。 Azure リソース マネージャーの概要 “ソリューションを開発のライフサイクル全体で繰り返しデプロイできます。

                                                                            • cuisineでfabricに冪等性を授ける - Qiita

                                                                              cuisineとは cuisineは、fabricに冪等性を授けるライブラリです。 冪等性とは、1回実行しても複数回実行しても同じ結果になる特性のことです。インフラ界隈で言うと、ChefやPuppet、Ansibleなどのツールが冪等性を持っています。つまり、これらのツールは1回実行しても複数回実行してもサーバが同じ状態になる特性を持っています。 しかしながら、fabricは冪等性がないため実行時の設定状態に配慮しなければ、複数回実行するとエラーになります。例えば、ユーザを追加するスクリプトを書いた場合、1回目の実行は上手く追加されますが、2回目はすでにユーザが存在するためエラーになってしまいます。 サーバの初期設定にfabricを使っていましたが、初期設定しか意識せずにスクリプトを書いていたので、ちょっとした変更や修正でも再実行できなくて困っていました。いまさら、ChefやPuppet、

                                                                                cuisineでfabricに冪等性を授ける - Qiita
                                                                              • 冪等性を考慮してファイルに文字列を追加するシェルスクリプト - Qiita

                                                                                /home/vagrant/.bashrc に環境構築PHP_IDE_CONFIGを設定したい Vagrant で実行するプロビジョニングに記載するので、冪等性を持ちたい grep して値が無ければ、追記する。 $ grep -q PHP_IDE_CONFIG /home/vagrant/.bashrc || echo 'export PHP_IDE_CONFIG="serverName=xxx.xxx.xxx.xxx"' >> /home/vagrant/.bashrc Register as a new user and use Qiita more conveniently You get articles that match your needsYou can efficiently read back useful informationYou can use dark the

                                                                                  冪等性を考慮してファイルに文字列を追加するシェルスクリプト - Qiita
                                                                                • AWSサーバーレスアーキテクチャのための冪等性(べきとうせい)入門

                                                                                  垂直スケーラビリティと効果的なテストによる金融取引システムのパフォーマンスと効率の最大化 Peter Lawrey氏はJavaチャンピオンであり、Chronicle SoftwareのCEOとして、開発者を鼓舞してソリューションのクラフトマンシップを高めることに情熱を注いでいる。経験豊富なソフトウェアエンジニアとして、Lawrey氏はソフトウェア開発プロセスにおけるシンプルさ、パフォーマンス、創造性、革新性を奨励することに努めている。

                                                                                    AWSサーバーレスアーキテクチャのための冪等性(べきとうせい)入門