並び順

ブックマーク数

期間指定

  • から
  • まで

41 - 58 件 / 58件

新着順 人気順

transactionの検索結果41 - 58 件 / 58件

  • 【翻訳】ActiveRecordにおける、ネストしたトランザクションの落とし穴 - Qiita

    🙅‍♂️この記事の内容は実際のコードに適用しないでください!! (2022-10-5追記) この記事の本文でトランザクションに joinable: false というオプションを付けることが推奨されていますが、 joinable: false は内部APIなので指定してはいけない、というのがRails開発チームの見解のようです。 https://github.com/rails/rails/issues/39912#issuecomment-665483779 https://github.com/rails/rails/issues/46182#issuecomment-1266550987 joinable: false を付けるとコミット実行前にafter_create_commitコールバックが呼ばれるなど(参考)、思いがけない別の問題を引き起こすことがあります。 というわけで、

      【翻訳】ActiveRecordにおける、ネストしたトランザクションの落とし穴 - Qiita
    • PostgreSQLのrow-level lockの動きについて - Qiita

      この記事では、前回の記事PostgreSQLのrow-level lockの概要に引き続き、動きがわかりづらいPostgreSQLのrow-level lockについての解説を行います。 大まかな概要を掴むための記事なのですべての動作を網羅しているわけではないですし、一部解説に誤りが含まれていたり、正確ではない可能性があるのでご注意ください。 なお、クエリの実行例などはすべてPostgreSQL 13上での動作結果となります。 また、次の二つの拡張機能を利用しています。 https://www.postgresql.org/docs/current/pgrowlocks.html https://www.postgresql.org/docs/current/pageinspect.html ロックに利用される領域について row-level lockはタプルヘッダのt_infomask,

        PostgreSQLのrow-level lockの動きについて - Qiita
      • XTDB - the open database with temporal graph queries

        Immutable Records XTDB contains a perfect, immutable record of every fact your system has ever known. See the entire history of your business, everywhere. Learn More Temporal Query Immutable records are incomplete without time-traveling queries. XTDB allows you to query the entire timeline. Make retroactive corrections, simplify data migrations, and get clarity on out-of-order events. Learn More R

          XTDB - the open database with temporal graph queries
        • Implementing Raft: Part 0 - Introduction - Eli Bendersky's website

          This is the first post in a multi-part series describing the Raft distributed consensus algorithm and its complete implementation in Go. Here is a complete list: Part 0: Introduction (this post) Part 1: Elections Part 2: Commands and log replication Part 3: Persistence and optimizations Raft is a relatively new algorithm (2014), but it's already being used quite a bit in industry. The best known e

          • アプリケーション・モダナイゼーション: マイクロサービス間のデータ同期 - 赤帽エンジニアブログ

            レッドハットのソリューションアーキテクトの森です。 マイクロサービスについて、前回はそのアーキテクチャの概要から利点、そして課題についてまとめました。今回はマイクロサービス間のデータ同期の手法についてご紹介していきます。 前回の記事はこちらです。 rheb.hatenablog.com Outboxパターン と Change Data Capture によるデータ同期 マイクロサービスにおいては、基本的には各サービスとデータベースは1:1とするモデルを推奨しています。そのため、サービス間のデータベースの同期を取るしくみについて考慮が必要です。データベース間の同期を取るための方法の1つとして、データベース処理とメッセージを併用する Transactional Outbox と Transactionlog tailing があります。 Transactional Outbox の実体はデータ

              アプリケーション・モダナイゼーション: マイクロサービス間のデータ同期 - 赤帽エンジニアブログ
            • 【戦術的DDD】なぜトランザクションをユースケース層で張るのか - Yappli Tech Blog

              概要 こんにちは。サーバーサイドエンジニアの窪田です。 これまでの戦術的DDDについて以下のような記事で紹介してきました。 戦術的DDDをGoで実現する【entity編】 - Yappli Tech Blog 戦術的DDDをGoで実現する【Value Object編】 - Yappli Tech Blog Deep Moduleという観点から戦術的DDDのRepositoryの設計を考えてみた - Yappli Tech Blog 今回は戦術的DDDにおけるトランザクションの扱いについて注目します。 トランザクションは一見インフラ層の関心ごとなのでインフラ層で完結するように思えますが、DDDの本にある例では、ユースケース層で張っているソースコードの例が紹介されています。 なぜ、そのような設計になるのかを考えていきます。 DDDとトランザクションの関係 DDDとトランザクションは実は深い関係

                【戦術的DDD】なぜトランザクションをユースケース層で張るのか - Yappli Tech Blog
              • Rails APIドキュメント: Active Recordのトランザクション(翻訳)|TechRacho by BPS株式会社

                概要 MITライセンスに基づいて翻訳・公開いたします。 英語ドキュメント: ActiveRecord::Transactions::ClassMethods(18707ab) ライセンス: MIT 2020/11/30: 初版公開(77f7b2d) 2022/12/07: 更新 トランザクションとは、それが1件のアトミックな操作としてすべて成功した場合に限りSQLステートメントが永続化する、保護的なブロックです。古典的な例としては「出金が成功した場合にのみ入金ができる(またはその逆の)2つの口座間での振替」があります。トランザクションはデータベースの一貫性を強制し、プログラムのエラーやデータベースの破損からデータを保護します。つまり、「すべて一括実行される」か「一切実行されない」かのどちらかでなければならないステートメントが複数ある場合は、基本的にトランザクションブロックを使うべきです。

                  Rails APIドキュメント: Active Recordのトランザクション(翻訳)|TechRacho by BPS株式会社
                • プログラミング英語教本 | グローバリゼーションデザイン研究所

                  目次 はじめに 【第1部 ドキュメント・タイプ別解説】 第1章 ソースコード 1-1. ソースコードで使われる英語 1-2. サンプルと解説 1-3. ソースコード英語の特徴(1) − 名前 1-4. ソースコード英語の特徴(2) − コメント 1-5. ソースコード英語の特徴(3) − コミット・メッセージ 1-6. 例題 第2章 APIリファレンス 2-1. サンプルと解説 2-2. APIリファレンス英語の特徴 2-3. 例題 第3章 マニュアル/ヘルプ 3-1.サンプルと解説 3-2. マニュアル/ヘルプ英語の特徴 3-3. 使用許諾契約英語の特徴 3-4. 例題 第4章 ユーザー・インターフェイス(UI) 4-1. サンプルと解説 4-2. UI英語の特徴 4-3. 例題 【第2部 プログラミング必須英単語】 第5章 ベーシック300 第6章 アドバンスト300 第7章 その他の

                    プログラミング英語教本 | グローバリゼーションデザイン研究所
                  • Pitfalls of Rails db transactions

                    Rollback Rails transaction and rescue error to display it good: This is fine record = MyModel.last error_for_user = nil begin ActiveRecord::Base.transaction do # ... record.save! end rescue ActiveRecord::RecordInvalid => e # do something with exception here error_for_user = "Sorry your transaction failed. Reason: #{e}" end puts error_for_user || "Success" source, source2, source3 This is ok as wel

                    • トランザクションのネストの使い方まとめた(初心者向け) - Qiita

                      トランザクションのネストについてまとめてみました どう記述したらネストができるの? ロールバックした時の挙動は? などなどまとめてみました 自分がよく使うMySQLとRails(ActiveRecord)について記載します。他のDBやフレームワークでは多分話が変わりますのでご注意ください 前提 ネストしたトランザクションの挙動 ネストしたトランザクションって、正確な挙動がこうあるべきという決まりがあるのかどうかは筆者はよく知りません ここでは、以下のような挙動を満たすことを目的にします トランザクションの内部に、もう一つトランザクションを貼る 内側のトランザクションがロールバックした場合、外側のトランザクションには影響を与えない 外側のトランザクションがロールバックした場合、内側のトランザクションもロールバックする 内側だけコミットされてしまうと、外側のトランザクションから見ると一貫性が破

                        トランザクションのネストの使い方まとめた(初心者向け) - Qiita
                      • Distributed transaction patterns for microservices compared | Red Hat Developer

                        As a consulting architect at Red Hat, I've had the privilege of working on legions of customer projects. Every customer brings their own challenges but I've found some commonalities. One thing most customers want to know is how to coordinate writes to more than one system of record. Answering this question typically involves a long explanation of dual writes, distributed transactions, modern alter

                          Distributed transaction patterns for microservices compared | Red Hat Developer
                        • MySQLを止めずにレプリケーションをブーストする小技 - mita2 database life

                          先日は、MySQLユーザ会会 2020年7月に参加しました。 今回はWebや雑誌で連載の著者の方々が、執筆に至った経緯や、執筆時に心がけていることを語る回でした。 @kk2170 さんが「過去の自分に向けて書く」とおっしゃっていたのが、(そういう視点は自分の中になかったので)すごく響きました。 mysql.connpass.com -- 一刻も早くレプリケーション遅延を取り戻したい!そんな場合に使える小技を紹介します。 レプリケーションを止めずに有効化・無効化できるのみを取り上げています。 元に戻すのにレプリケーションを止める必要性のある方法だと、またそこでレプリケーション遅延が発生しますからね… CPU の governor を performance に変更する LinuxにはCPUクロックの調整機能があり、CPU governor が ondemand 設定の場合、負荷に応じて、CP

                            MySQLを止めずにレプリケーションをブーストする小技 - mita2 database life
                          • 【書き起こし】Payment distributed transaction case study – Rui Gao【Merpay Tech Fest 2021】 | メルカリエンジニアリング

                            【書き起こし】Payment distributed transaction case study – Rui Gao【Merpay Tech Fest 2021】 Merpay Tech Fest 2021は、事業との関わりから技術への興味を深め、プロダクトやサービスを支えるエンジニアリングを知れるお祭りで、2021年7月26日(月)からの5日間、開催しました。セッションでは、事業を支える組織・技術・課題などへの試行錯誤やアプローチを紹介していきました。 この記事は、「Payment distributed(分散)transaction case study」の書き起こしです。 Rui Gao氏:皆さん、こんにちは。本日は「Payment distributed(分散)transaction case study」というテーマで発表させていただきます。 まず、簡単に自己紹介させてください

                              【書き起こし】Payment distributed transaction case study – Rui Gao【Merpay Tech Fest 2021】 | メルカリエンジニアリング
                            • SQLiteのDatabase is lockedで悩む人に見て欲しいロックの話

                              SQLiteを使ったサイトをいくつか運営しているのですが、時折発生する↓このエラーに頭を悩ませていました。 SQLSTATE[HY000]: General error: 5 database is locked 急いでいる方のために先に答えを書いておきますが、このエラーはSQLiteのトランザクションの挙動を理解していないために発生しているエラーであり、BEGIN IMMEDIATEを適切に使うことで解決しました。 何も考えず、pdoのbeginTransactions()を使ったり、単に BEGIN だけで開始したり…。 PDOの接続オプションで PDO::ATTR_TIMEOUT に20を設定しておけば書き込みが衝突しても20秒待ってくれるだろ、と思い込んだり…。MySQLやPostgreSQL、SQLSeverやOracleなどの商用データベースに慣れている方ほどこの Databa

                                SQLiteのDatabase is lockedで悩む人に見て欲しいロックの話
                              • Go Microservice with Clean Architecture: Transaction Support

                                In order to support the transaction in the business layer, I tried to get a Spring like declarative transaction management in Go, but couldn’t find it, so I decided to write one. Transaction is easy to implement in Go, but it is pretty difficult to get it right. ( Please note, there is a new version of it which greatly simplified it and also extracted the transaction code into a third-party lib. T

                                • Cloud Spanner における各種トランザクションの使い分け

                                  Cloud Spanner における各種トランザクションの使い分け 概要 Cloud Spanner にはトランザクションの実行方法が数種類あります。これらの各方式には使うべき場所やメリット・デメリットがあるため、これらの各方式についての差分を学ぶことでより効率的に Cloud Spanner を利用できます。 Cloud Spanner で利用可能なトランザクションは分類すると以下のパターンがあります。 読み取り/書き込みトランザクション 読み取り専用トランザクション 強い整合性読み取り ステイル読み取り パーティション化 DML 特に断りがない場合、単一リージョン(リージョナル)構成での Cloud Spanner の動作を前提としています。 コードサンプルは Ruby と Ruby Spanner Client での動作を確認しています。 読み取り / 書き込みトランザクション(Re

                                    Cloud Spanner における各種トランザクションの使い分け
                                  • Firestore (in Datastore mode) のトランザクションの挙動を試してみる - Qiita

                                    (本記事は今年の夏頃に某勉強会で発表した内容の焼き直しです。参加者の方が読むとかなりの部分重複があると思いますがご容赦下さい🙇‍♂️) はじめに 旧Cloud Datastore(以降、旧Datastoreと記します)を長く使ってきましたが、そろそろFirestore in Datastore mode(以降Firestoreと記します)に真面目に取り組もうと重い腰を上げることにしました。 Firestoreの仕様はDatastoreとほぼ変わらないですが、主にトランザクション周りに大きな変更があります。 本記事ではFirestoreのトランザクションの挙動を実際にプログラムを動かしていろいろ検証してみます。 なお、本記事ではnative modeについては扱いません。 ただ、おそらくトランザクション周りの挙動はほぼ共通なのではと思っている(違っていたらごめんなさい)ので、参考にはなるか

                                      Firestore (in Datastore mode) のトランザクションの挙動を試してみる - Qiita
                                    • On the Performance of User-Mode Threads and Coroutines – Inside.java

                                      Discussions of coroutines and user-mode threads — like Project Loom’s virtual threads or Go’s goroutines — frequently turn to the subject of performance. The question I’ll try answering here is, how do user-mode threads offer better application performance than OS threads? One common assumption is that this has to do with task-switching costs, and that the performance benefit of user-mode threads

                                        On the Performance of User-Mode Threads and Coroutines – Inside.java