並び順

ブックマーク数

期間指定

  • から
  • まで

321 - 360 件 / 595件

新着順 人気順

トランザクションの検索結果321 - 360 件 / 595件

  • Cloud Spannerについて

    旧約の「創世記」の「光よあれ」は、ビッグバンを思わせて、物理学者はちょっと萌えるかもしれないのだが、新約の「ヨハネによる福音書」には、言語学者が喜びそうなフレーズがある。 「初めに言があった。言は神と共にあった。言は神であった。」 僕が知っていたのは、「はじめにことばありき」という訳だったのだが。この口語訳での「言」は、英訳だとこうなっている。 "In the beginning was the Word, and the Word was with God, and the Word was God." 「言」= "Word" である。はじめにあったのは、Wordであって、Language ではない。だから、新しい口語訳では、普段、あまり馴染みない「言」という訳語を使ったのかも。「初めに語があった」では、なんかしまらないんだろうな。(僕は、「はじめにことばありき」というフレーズの方が好き

      Cloud Spannerについて
    • Microsoft PowerPoint - PODC-keynote

      1 PODC Keynote, July 19, 2000 PODC Keynote, July 19, 2000 Towards Robust Towards Robust Distributed Systems Distributed Systems Dr. Eric A. Brewer Dr. Eric A. Brewer Professor, UC Berkeley Professor, UC Berkeley Co Co- -Founder & Chief Scientist, Inktomi Founder & Chief Scientist, Inktomi PODC Keynote, July 19, 2000 PODC Keynote, July 19, 2000 Inktomi at a Glance Inktomi at a Glance Company Overvi

      • @Transactional(Spring Framework)のpropagation属性 - 行きあたりばったりエンジニアの日記

        表題の件を調べていて、ほぼJava EEのJTAと同じかと思いきや、NESTEDというJTAには無いものがあったのでまとめました。 @Transactionalとは? メソッドに付加すると、メソッドの開始がトランザクションの開始、メソッドの終了がトランザクションの終了になります。 メソッド内で非チェック例外(RuntimeException及びそのサブクラス)が発生した場合はロールバックされます。 チェック例外の場合はロールバックされません。 具体的なコードで説明します。 実際にDBにアクセスするTxTestRepositoryクラス(以下「リポジトリ」)があり、それを呼び出しているTxTestService1(以下「サービス1」)とTxTestService2(以下「サービス2」)があります。 そして、サービス1はサービス2も呼び出しているとします。 @Repository public

          @Transactional(Spring Framework)のpropagation属性 - 行きあたりばったりエンジニアの日記
        • @IT:連載 ビジネスWebサービス最新事情(6) 混迷するWebサービス・トランザクション制御

          Webサービスをビジネスで利用するために、高度なセキュリティやトランザクション処理、複数のWebサービスの連携などを実現するさまざまな仕様が策定されようとしている。本連載では、これらの仕様を理解するための解説を行っていく。(編集局) 日本アイオナテクノロジーズ(株) 小野沢 博文 2004/1/22 今回から2回に分けて、Webサービスのトランザクション仕様の解説を行います。本連載の第1回に、「Webサービスのトランザクション仕様は、セキュリティ仕様以上にあわただしい動きが見られる分野」と述べましたが、あれからわずか半年足らずの間にさらに大きな変化がありました。今回は、前半でこうした新しい変化を踏まえて、現在提案されているトランザクション仕様の最新事情を説明し、後半でこれらのトランザクション仕様がそもそも何を目指しているのかというベーシックな部分を解説します。 ■Webサービス・トランザク

          • MySQLのautocommitとトランザクション分離レベルのメモ - Qiita

            概要 MySQL5.6のInnoDBエンジン使用時の自動コミットモードとトランザクション周りの調査メモです。 記事の前半は自動コミットやトランザクションに関係する設定値の参照、変更方法の確認で、後半は自動コミットモードとトランザクション分離レベルの組み合わせによるデータの見え方の確認を行います。 環境 Windows7 (64bit) MySQL 5.6.25 InnoDB 参考 InnoDB のトランザクションモデルおよびロック SET TRANSACTION 構文 バイナリログ形式の設定 設定値 自動コミットモード (autocommit) autocommit my.cnf

              MySQLのautocommitとトランザクション分離レベルのメモ - Qiita
            • 愛と苦悩の日記: MySQLのINSERT文を高速化する

              70年代生まれの人々のためのWebサイト think or die の「愛と苦悩の日記」をブログ化 1997/12/13から現在まで、日常生活をテツガクするエッセー集 中国の歌やドラマ関係も。ジェイド・イン(Jade Yin)、alan「懐かしい未来」、『地下鉄の恋』など。 仕事で「MySQL」を使うことになったのだが、Notes/DominoのLotusScript(Visual Basic互換の言語)のForループの中から、ADODBオブジェクトを使って、ODBC接続でINSERT文をくりかえしMySQLサーバへ発行すると、処理速度が遅いのが気になった。 MySQLのドキュメントで「INSERTクエリの速度」の部分を読むと、「複数ステートメント」を利用すると高速になるという。「INSERT INTO table_a VALUES (1, 23), (2, 24), (3, 2

              • Bitcoin Energy Consumption Index - Digiconomist

                Did you know Bitcoin runs on an energy-intensive network? Ever since its inception Bitcoin’s trust-minimizing consensus has been enabled by its proof-of-work algorithm. The machines performing the “work” are consuming huge amounts of energy while doing so. Moreover, the energy used is primarily sourced from fossil fuels. The Bitcoin Energy Consumption Index was created to provide insight into thes

                  Bitcoin Energy Consumption Index - Digiconomist
                • MySQL トランザクション

                  MySQL では、表作成時に無指定の場合テーブル形式は、MyISAM になります 既存表の形式は、SHOW TABLE STATUS で知る事ができます。また、 SHOW CREATE TABLE 表名によって表形式のオプション指定方法 を知る事もできます トランザクションを利用する場合は、テーブル形式は InnoDB を 使用します。以下にテーブル作成の CREATE 構文のサンプルを示し ます CREATE TABLE 商品マスタ ( コード varchar(4), 商品名 varchar(50), 単価 int, PRIMARY KEY(コード) ) TYPE=InnoDB

                  • MySQL :: MySQL 5.1 リファレンスマニュアル :: 13.5.10.8 InnoDB 内で各種 SQL ステートメントによって設定されるロック

                    一般に、ロック読み取り、UPDATE、または DELETE では、SQL ステートメントの処理時にスキャンされるすべてのインデックスレコード上に、レコードロックが設定されます。 行を除外する WHERE 条件がステートメント内に存在するかどうかは、関係ありません。 InnoDB には正確な WHERE 条件が記憶されませんが、スキャンされたインデックスの範囲は認識されます。 通常、ロックはレコードの直前にある「ギャップ」への挿入もブロックするネクストキーロックです。 ただし、ギャップロックは明示的に無効にすることができます。これにより、ネクストキーロックが使用されなくなります。 詳細は、セクション15.7.1「InnoDB ロック」を参照してください。 トランザクション分離レベルによって、どのロックが設定されるのかも影響を受けます。セクション15.7.2.1「トランザクション分離レベル」を

                    • MySQLのINSERT文(方法ごとの処理時間比較)

                      大量のデータをINSERTする場面があってなんとか高速化できないかと思って、 以下の手法を比較してみた。 1件ずつINSERTする トランザクションを使用する 1クエリでまとめてINSERTする テスト環境は以下の通り。 MySQL 5.1 テーブルはInnoDB、AUTO_INCREMENT付き(innodb_autoinc_lock_mode=1) PHP 5.3.6 1000件、3000件、5000件、10000件と件数を増やしながらそれぞれ5回ずつ試行して平均を取っている。 使用したコードは最後に。 結果 手法 1,000件 3,000件 5,000件 10,000件 1件ずつINSERTする

                        MySQLのINSERT文(方法ごとの処理時間比較)
                      • InnoDBのネクストキーロックによるデッドロックの例 - iakioの日記

                        あまりMySQLのことは自信ないですが。 一見問題なさそうに見える操作でデッドロックしてしまうケースがあったので動画にしてみました。 SELECTしてみて「有ればUPDEATE、無ければINSERT」や、あるいは「有れば何もせず、無ければINSERT」を行ないたい場合に、SELECT FOR UPDATEして無ければINSERTとしてしまうと、動画の最初の例のようにデッドロックしちゃいます。存在しない行に対してSELECT FOR UPDATEするとちょっと広めに行ロックがかかってしまう感じでしょうか。 「有ればUPDATE、無ければINSERT」であれば、INSERT ... ON DUPLICATE KEY UPDATEを使うのが良さそう。「有れば何もせず、無ければINSERT」なら、いきなりINSERTしてみて一意制約違反ではじいてもらうのがいいのかな。 動画の2つめの例は、i =

                          InnoDBのネクストキーロックによるデッドロックの例 - iakioの日記
                        • Replicated Serializable Snapshot Isolation解説 - 急がば回れ、選ぶなら近道

                          ちょっと諸般の事情で放りだしてあったのですが、まとめておかないと忘れるので、記録的においておきます。あとでたぶん自分でも見直すと思うので。 このエントリーは完全にトランザクションの人向けです。現時点これが本当に必要な人は世界でたぶん50人ぐらいだと思います。全日本的には絶対わかんないとまずいという人はたぶん5人ぐらいです。 ただし、分散DBガチの人はわかっていた方がいいと思うので、おいておきます。 論文はこちら http://sydney.edu.au/engineering/it/~hyungsoo/vldb2011.pdf 内容はSerializable Snapshot Isolation (以下SSIと略記)の分散環境下への適用に関する論文です。一応実装もあってベンチマーク結果が出ています。SSIについては下記エントリーを参照にしてください。 http://d.hatena.ne.

                            Replicated Serializable Snapshot Isolation解説 - 急がば回れ、選ぶなら近道
                          • 【DB概論】DBMSに求められるもの(1)排他制御とACID属性

                            【DB概論】DBMSに求められるもの(1)排他制御とACID属性:できるエンジニアになる! ちょい上DB術・基礎編(2) デキるエンジニアになるためには、DB技術の基礎は必須です。本連載では、豊富な実例と演習問題で、プロとして恥ずかしくない設計手順を解説します。DB設計のポイントとなる汎用的なケースを紹介しているので、通常の業務とは異なる場合でも応用できる「共通の考え方」を身に付けられます。

                              【DB概論】DBMSに求められるもの(1)排他制御とACID属性
                            • トランザクション分離レベルを理解するために実際に試してみる – sawara.me

                              「トランザクション分離レベル」って今まで聞いたことはあったんだけど、なんのこっちゃわからんかったし、実用面で運用中に気にすることもなかったし、けど知らないままなのもなんだかなぁ、ってことで改めて調べてみました。 Wikipediaによりますと トランザクション分離レベル (-ぶんり-)または 分離レベル (英: Isolation) とは、データベース管理システム上での一括処理(トランザクション)が複数同時に行われた場合に、どれほどの一貫性、正確性で実行するかを4段階で定義したものである。隔離レベル 、 独立性レベルとも呼ばれる。トランザクションを定義づけるACID特性のうち,I(Isolation; 分離性, 独立性)に関する概念である。 Wikipedia「トランザクション分離レベル」より 重要なのはトランザクションのACID特性のI(Isolation; 分離性, 独立性)に関する概

                                トランザクション分離レベルを理解するために実際に試してみる – sawara.me
                              • [RDBMS][SQL]トランザクション分離レベルについて極力分かりやすく解説 - Qiita

                                技術系の記事色んなところで書いてたけど、ここにまとめることにした。昔書いてたやつは綺麗バッサリ消そうかと思ったんだけど、やたらView数が多いやつが何個かあったので気が向いた時に乗り換えしつつ(予定)今の知識で更新。 概要 以下の3つの不都合な読み込み現象がある。この意味に関しては後ほど解説。とりあえずはどれもRDBMSのACID特性のI(Isolation-隔離性)から外れたものと思ってくれればいい。 ダーティリード ファジーリード(非再現リード,ノンリピータブルリード) ファントムリード で、本題のトランザクション分離レベルは4つのレベルがある。 READ UNCOMMITTED READ COMMITTED REPEATABLE READ SERIALIZABLE 下に行くほど高レベルで上に行くほど低レベル。 高レベルになればなるほど、先ほどの不都合な読み込み現象が発生しなくなる。が

                                  [RDBMS][SQL]トランザクション分離レベルについて極力分かりやすく解説 - Qiita
                                • PHP+MySQLでトランザクション

                                  ということで今回はPHP+MySQLでトランザクションです。 トランザクションとは金融のシステムに必要不可欠な処理です。 トランザクションって何?って方はここをご覧になって その重要性を知っていただきたい ではソースです。 <? if ( !extension_loaded( "mysql" ) ) { dl( "php_mysql.dll" ); } //接続用文字列 $Server = "サーバ名"; $DbName = "データベース名"; $User = "ユーザ名"; $Password = "パスワード"; //接続 $Connect = @mysql_connect( $Server, $User, $Password ); if( !$Connect ){ print "接続できませんでした"; exit(); } //DBの選択 mysql_select_db( $DbN

                                    PHP+MySQLでトランザクション
                                  • ソーシャルアプリにおけるRedisの活用事例とトラブル事例

                                    [CEDEC 2021] 運用中タイトルでも怖くない! 『メルクストーリア』におけるハイパフォーマンス・ローコストなリアルタイム通信技術の導入事例Naoya Kishimoto

                                      ソーシャルアプリにおけるRedisの活用事例とトラブル事例
                                    • トランザクションを使ってSQLiteの処理を超高速化 | KUMALOG

                                      トランザクションを使ってSQLiteの処理を超高速化 2008-05-04 (日) 21:06 PHP 諸事情で70万弱のデータをデータベース(SQLite3)に格納することがあったのですが、処理が長引きすぎてサーバ側で強制終了。 マニュアルを読んで見つけた「トランザクション」を使ってみると、処理速度が劇的に向上。そして、数秒のうちに格納完了。あまりの早さにビックリしたので、スクリプト実行時間を計測して比較してみました。 データベースの操作はPDOで行いました(PDOしか使ったことがない)。 PHP: PDO - Manual 比較した2つのスクリプト サンプルスクリプト1(トランザクション不使用) 同じSQL文を100回実行するスクリプト。データベースへのパスは適当。 //開始 $start = microtime(true); //データベースへの接続 $db = new PD

                                      • トップページ

                                        SQL データベース操作言語SQLについて、またRDBMSの持つ機能について詳しく解説します。 DB概要、SQL、テーブル操作、データ操作 ... 特集:replication PostgreSQLのレプリケーションシステムを紹介し、それらの機能を比較していきます。 特集:pgbench PostgreSQLのベンチマークテストに用いられるプログラムである pgbench について解説します。 SQL演習問題 各章に用意された演習問題を集めました。

                                        • 補正トランザクション | Microsoft Docs

                                          このブラウザーはサポートされなくなりました。 Microsoft Edge にアップグレードすると、最新の機能、セキュリティ更新プログラム、およびテクニカル サポートを利用できます。 一連のステップで構成される最終的に整合性がある操作を使用するときは、補正トランザクション パターンが役立ちます。 具体的には、1 つ以上のステップが失敗した場合、補正トランザクション パターンを使用して、ステップで実行された作業を元に戻すことができます。 通常、最終的整合性モデルに従う操作は、複雑なビジネス プロセスとワークフローを実装するクラウド ホスト型アプリケーションで見受けられます。 コンテキストと問題 クラウドで実行されるアプリケーションでは、データが頻繁に変更されます。 このデータは、異なる地理的場所にあるさまざまなデータ ソースに散在している場合があります。 分散環境で競合を回避しパフォーマンス

                                            補正トランザクション | Microsoft Docs
                                          • オラクル排他メモ(Hishidama's Oracle Lock Memo)

                                            排他(ロック) RDB(Oracle)の機能の一つに、排他(ロック)がある。 SELECT ~ FOR UPDATE [2009-01-19] 排他のタイミング [2007-09-15] SELECT ~ FOR UPDATE レコードをロックするには、SELECT文でFOR UPDATEを指定する。[2009-01-19] SELECT * FROM emp WHERE empno=7902 FOR UPDATE; FOR UPDATEでは、自分がロックしたい対象を 他のトランザクションがロックしている場合に、待つかどうかを指定するオプションがある。 WAITだと、相手がロック解除(コミットまたはロールバック)するまで無期限に待つ。 NOWAITだと、即座に戻る。(ORA-00054「リソース・ビジー、NOWAITが指定されていました。」が発生する) 省略時はWAIT(無期限に待つ)。

                                            • READロックとWRITEロックがよくわからなくなるので改めて – sawara.me

                                              MySQLではLOCK TABLES文で明示的にテーブルにロックをかけることが出来ます。 で、いつもわからなくなるんですね。READロックとWRITEロックが。 他のスレッドからWRITE不可 他のスレッドからREAD/WRITE不可 さて、どっちがREADロックでどっちがWRITEロックか分かりますか? 単純に考えると 他のスレッドからWRITE不可 → 【WRITEロック】 他のスレッドからREAD/WRITE不可 → 【READロック】 って思うでしょう。普通。いや実はこれ不正解なんです。 「えっ?なんで?」って思いませんか。WRITEを出来なくする(ロックする)から「WRITEロック」、READも出来なくする(ロックする)から「READロック」じゃないのって。 僕だけですかね。 いつも間違えて、あれ?どっちだったけ?ってなって、毎度調べてしまっているので、今回は改めて頭に叩き込むこ

                                                READロックとWRITEロックがよくわからなくなるので改めて – sawara.me
                                              • トランザクション管理の複雑性を克服する(パート1)

                                                The Rational Edgeより:サービス指向のインフラの中で発生するビジネストランザクションは非常に複雑だ。それは、サービスが非同時的で、さまざまな形態を取り、分散し、不透明な場合が多いためだ。本稿は、トランザクション・コーディネーションサービスがこの複雑性をどのように調整し、管理するかについて説明する。 トランザクションは、業務上のあらゆるやりとりに必要なものだ。トランザクションは、特定の業務活動が隅々まで適切に遂行されるのを保証する目的で存在する。どこか1カ所でも不備が発生したら、データの一貫性を維持するため、トランザクション全体を遂行できなくしなくてはならない。 また、サービス指向アーキテクチャの出現により、Webベースサービスの特性もあって、トランザクション管理の複雑性はさらに増している。サービスは非同時的で、さまざまな形態を取り、分散し、不透明な場合が多い。サービス指向ア

                                                  トランザクション管理の複雑性を克服する(パート1)
                                                • MySQL :: MySQL 5.6 リファレンスマニュアル :: 14.2.3 InnoDB のロックモード

                                                  ロック読み取り (SELECT ... FOR UPDATE および SELECT ... LOCK IN SHARE MODE)

                                                  • IBM Developer

                                                    IBM Developer is your one-stop location for getting hands-on training and learning in-demand skills on relevant technologies such as generative AI, data science, AI, and open source.

                                                      IBM Developer
                                                    • トランザクション — Redis Documentation (Japanese Translation)

                                                      トランザクション¶ MULTI, EXEC, DISCARD および WATCH は Redis におけるトランザクションの基本です。これらは、複数のコマンドの実行をひとつのステップで行えるようにします。その際、2 つの重要な点が保証されます。 トランザクション中のすべてのコマンドは直列化され、順に実行されます。他のクライアントにより発行されたリクエストが、Redis トランザクションの 途中に 入り込むことはありません。このことは、コマンド群がひとつの隔離されたオペレーションとして実行されることを保証します。 すべてのコマンドが実行されるか、ひとつも実行されないかのいずれかであり、すなわち Redis のトランザクションはアトミックです。 EXEC コマンドはトランザクション中の全コマンドの実行のトリガです。もし、クライアントがトランザクションの途中で、 MULTI [訳注: EXEC

                                                      • トランザクションSQL -TECHSCORE-

                                                        SQL データベース操作言語SQLについて、またRDBMSの持つ機能について詳しく解説します。 DB概要、SQL、テーブル操作、データ操作 ... 特集:replication PostgreSQLのレプリケーションシステムを紹介し、それらの機能を比較していきます。 特集:pgbench PostgreSQLのベンチマークテストに用いられるプログラムである pgbench について解説します。 SQL演習問題 各章に用意された演習問題を集めました。

                                                        • セッションを使う &mdash; SQLAlchemy 0.6.5 ドキュメント (和訳)

                                                          セッションを使う¶ SQLAlchemy でオブジェクト・リレーショナルマッパを設定するときには、 Mapper を API のエントリポイントに使います。しかし、 ORM を使うときにもっ ともよく扱うのは、セッション (Session) で す。 セッションの役割¶ 大雑把に言えば、 Session は、データベース との対話を全て担当し、データベースから読み出したり生成したマッピングインス タンスを「保存しておく場所」です。セッションは Unit of Work パターンを実装しているので、オブジェクトに加えられた全ての変更を追跡して、 適時変更部分をデータベースに flush します。セッションのもう一つ重要なポ イントは、セッションがインスタンスの 一意な コピー、すなわち「あるプラ イマリキーに対応するただ一つのオブジェクト」を保持しているということです。 これは、いわゆる I

                                                          • トップページ

                                                            SQL データベース操作言語SQLについて、またRDBMSの持つ機能について詳しく解説します。 DB概要、SQL、テーブル操作、データ操作 ... 特集:replication PostgreSQLのレプリケーションシステムを紹介し、それらの機能を比較していきます。 特集:pgbench PostgreSQLのベンチマークテストに用いられるプログラムである pgbench について解説します。 SQL演習問題 各章に用意された演習問題を集めました。

                                                            • 【Google App Engine】 Entityとトランザクション

                                                              Entity設計について GAEではEntityというモデルを定義してJDOを使ってデータを永続化する。Entityはオブジェクトモデルであり画面など実際の業務アプリケーションや外部インターフェースなどを直感的に表現できるという点で優れている。しかし、階層型ということもあり、リレーショナルなモデルとはあまり馴染まない。もしかしたら、これまでRDB的な設計を中心にやってこられた方にとっては苦痛さえ感じるかもしれない。Entityをうまく設計するためには、ひとまずRDB的な頭をリセットしてオブジェクト的な発想をすることをおすすめする。一度慣れてしまうと誰でも簡単にサクサク作れるようになるだろう。逆に、RDBの呪縛から開放されOOに覚醒してしまうともう後には戻れないので注意が必要である。RDBって不要じゃん?とか、これからの時代はOOでKey/Valueだ!などと思うようになれば覚醒した証拠だ。

                                                                【Google App Engine】 Entityとトランザクション
                                                              • ke-tai.org > Blog Archive > MySQLとPostgreSQLのRepeatable Read時の挙動の違いについて

                                                                MySQLとPostgreSQLのRepeatable Read時の挙動の違いについて Tweet 2010/7/2 金曜日 matsui Posted in サーバ | 1 Comment » モバイルとは全く関係ないですが、自分のメモ代わりに記事にしてみたいと思います。 たまたまテストしていて、MySQLとPostgreSQLのRepeatable Read時の挙動の違いを見つけました。 AさんとBさんという二人のユーザが同時に一つのレコードを更新している場合です。 user_tblのuser_typeというカラムを「0」→「1」にアップデートしています。 分離レベルはMySQL、PostgreSQLともにRepeatable Readです。 Aさん Bさん mysql> begin; Query OK, 0 rows affected (0.00 sec) トランザクション開始 my

                                                                • SQL_SLAVE_SKIP_COUNTER がまずいもう一つの理由 | Yakst

                                                                  MySQL Performance Blogの翻訳。SQL_SLAVE_SKIP_COUNTERを使うとマスタとスレーブ間で不整合が起きる原因となる場合がある。 レプリケーションがおかしくなって、キーの重複や対象行が存在しないといった問題で行の更新や削除が出来なくなった時、 STOP SLAVE; SET GLOBAL SQL_SLAVE_SKIP_COUNTER=1; START SLAVE; を実行して解決するというのは、MySQLの世界ではよくあることだ。これがうまくいって、不正な行やSQL文を修正できることもあるだろう。しかし、その文が複数の文からなるトランザクションの一部だったらどうなるだろう?そうすると、面白いことに、不正な行をスキップすることで、トランザクション全体がスキップされてしまう。これは、 ドキュメント にはちゃんと書かれている。例を見てみよう。 マスタには3行存在し

                                                                  • OceanVista 再読 - 急がば回れ、選ぶなら近道

                                                                    OceanVista http://www.vldb.org/pvldb/vol12/p1471-fan.pdf 基本的アーキテクチャは、DC間クラスターをインフラにおいて、高遅延・耐障害性を前提にした分散transactionの仕組みになっている。 どう見てもAlibabaのOceanBaseそのものではない。が、同じAlibabaグループでかつ、Oceanの名前をつけているので、関係はなくはないと思う。少なくとも同じグループまたは情報交換はしているのではないか。技術的な方向性を模索するプロトタイプに見える。 バックグラウンド的な与太話をすると、Alibabaは、というか中国的には、ITでの米国からの依存脱却(ポーズだけなのか、実際なのかは置いておいて)を目標として掲げているのは周知の通り。んで具体的な話としては、Alibaba的には脱Oracleが一つの目標になっている。この目線で見た

                                                                      OceanVista 再読 - 急がば回れ、選ぶなら近道
                                                                    • マスタリング・イーサリアム

                                                                      イーサリアムとは、分散型アプリケーションやスマートコントラクトのアプリケーション構築を可能にするオープンソースプロジェクトです。送金、決済などの金銭取引を行う機能に加えて、ゲーム、不動産取引、身分証明など、さまざまなサービスがイーサリアムから生まれています。本書は、ビットコインの定番書『Mastering Bitcoin』の著者と、イーサリアム共同設立者でありスマートコントラクト開発言語Solidityの開発者により執筆された、イーサリアムの技術解説書。イーサリアムとブロックチェーンの基本に始まり、ウォレット、トランザクション、Solidity言語によるスマートコントラクトの構築、暗号とセキュリティ、Vyper、DAppの構築、ERC20トークン、イーサリアム仮想マシン(EVM)、コンセンサスの仕組みまで、幅広い知識が得られます。イーサリアムについて詳しく知りたいすべての人必携の一冊です。

                                                                        マスタリング・イーサリアム
                                                                      • 明日のためにその1:トランザクション処理に依存しすぎない - masayang's diary

                                                                        最近いわゆる非RDBでちょいと苦労したので、この記事は楽しく読めた。一方で、この記事を勘違いして読み取って、やたらとロックかけまくるようなシステムを作り上げる人達が増えないことを願って、ちょいとメモ書きなどを。 DBの「トランザクション分離レベル」が必要な理由  (PostgreSQLで,ファントム・リードを防止すべきサンプル事例) 分離レベルがデフォルト(read comitted)のままだと,恐ろしい不具合が発生する。 この後簡単な例題があって「ね、ファントムリードって怖いでしょ」という話に進んでいるわけだ。でも考えてみよう。「ある瞬間に唐突に締めきって、その瞬間にお金を分配する」なんていう処理はあるのだろうか? 商売の世界なら「締め時間」があり、それ以前に受け付けたものなら処理の対象になる、というのが普通であろう。そして午後3時に締めて、そのコンマ数秒後に結果を出さなければならない、

                                                                          明日のためにその1:トランザクション処理に依存しすぎない - masayang's diary
                                                                        • データベースさわったこと無い新人向けトランザクション入門 - Qiita

                                                                          最近DBを初歩から学び直しているのでその中でトランザクションとは何か、今一度改めて勉強したのでメモをここに残しておきます。 自分は就職して、仕事を始めてからDBを触り始めた。 DBを触るようになって基本的な構文とかはググりながらなんとか覚えたけど先輩とかが話をしている中でどうしても謎だったのが「コミット」「ロールバック」「トランザクション」だった。 「何を言っているんだろう?どういう意味!?」って感じで最初よくわかってないない状態だった。 そんな自分のような「コミット」「ロールバック」「トランザクション」を謎に感じている新人エンジニアにとって、この記事が参考になればと思います トランザクションとは? トランザクションとは簡単にいえば「データベースに対して行われる1つ以上の更新処理」のこと。 トランザクションによってデータ更新処理の確定や取り消しを管理できる。便利。 トランザクションの作成は

                                                                            データベースさわったこと無い新人向けトランザクション入門 - Qiita
                                                                          • トランザクションでデータの不整合を防ぐ

                                                                            トランザクションの構成と実行 今回は、トランザクションの構成と実行に挑戦します。トランザクションは、複数のユーザーが同時にデータベースを操作する状況において、データベースに対する複数の操作(選択、更新、削除など)を実行している途中で仮にエラーが発生したとしても、データの不整合が起きないことを保証するリレーショナルデータベースシステム(RDBMS)のメカニズムです。 これまでの連載において紹介してきた例題では、同時にデータベースを操作するユーザーは1人であるという暗黙の前提において説明をしてきました。しかし、RDBMSを利用したアプリケーションでは、複数ユーザーによる同時利用を前提とすることがほとんどだと思います。このため、RDBMSにはデータベースを同時に更新した場合にデータの不整合が起きないように制御をするための仕組みが用意されています。 では早速、例題を実行しながらSQLの確認をしてい

                                                                              トランザクションでデータの不整合を防ぐ
                                                                            • トランザクションの基本 - Qiita

                                                                              本来はこの話はトランザクション技術アドベントカレンダー初日に書くべきだったかも知れない。 トランザクションとは「1つ以上の連続した操作の単位」であり、ACID特性を満たすとよく言われている。(というか先日も何度も何度も無意識にACIDという言葉を使っていた) ACIDとは ACID(えいしっど、もしくはあしっどと読む人も居るしどっちでもいいと思う)はWikipediaにも説明があるが、そこの説明は僕にはイマイチだと感じたので僕の言葉で今一度説明する。 Atomicity Consistency Isolation Durabilityの4つがトランザクションの満たすべき性質であると提唱されており、その4つの頭文字を取ってACIDと呼ぶ。それぞれの性質の内容に付いて書くと Atomicityとは トランザクションが残す結果が、すべてのトランザクション内操作が成功したか、もしくはすべて無かった

                                                                                トランザクションの基本 - Qiita
                                                                              • SELECT FOR UPDATEする上での注意点 - blog.nekokak.org

                                                                                MySQLで行ロックかけてトランザクションを効かせたい場合、SELECT FOR UPDATEを使うわけですが、 以下のようなクエリを発行しちゃうと行ロックではなくテーブルロック風味に扱われるので注意。 mysql> begin; Query OK, 0 rows affected (0.00 sec) mysql> select * from user order by id DESC limit 1 for update; +----+---------+ | id | name | +----+---------+ | 4 | xaicron | +----+---------+ 1 row in set (0.00 sec)このクエリを実行中に別のセッションから同じことを実行するとロック待ち状態になり 最悪デッドロックで死亡します。 ERROR 1205 (HY000): Lock

                                                                                • 「トランザクション」とは何か?を超わかりやすく語ってみた! - Qiita

                                                                                  2019/4/20 部分改訂 ========================================================- 0.はじめに 前々回の投稿「CPU使用率100%は悪なのか?」につきましては、本当に多くの方々に読んでもらったようで大変ありがとうございます。改めて御礼申し上げます。前回の投稿からだいぶ時間がたってしまいましたが、今回は「トランザクション」とは何か?をお話ししたいと思います。 1. 「トランザクション」とは? 「トランザクション」と言うと、単純に商業的な「取引」を連想する方もいらっしゃるかと思いますが、ここでは、IT用語としての「トランザクション」を採り上げます。この用語は、例えば設計や実装をするときばかりでなく、テストを実施したり、パフォーマンスを評価したりする際に必ず1度は聞く用語かと思います。他方、「そもそも『トランザクション』って何?」と

                                                                                    「トランザクション」とは何か?を超わかりやすく語ってみた! - Qiita