タグ

ロックに関するakatakunのブックマーク (3)

  • 『Redisのトランザクションとパフォーマンス』

    前回まででredisのレプリケーションが同期を取る仕組みについてやったので、 今日はRedisのトランザクションとロックにまつわるパフォーマンスの話をしようと思います。 キーワード: 楽観的ロック 悲観的ロック トランザクション 2フェーズコミット MULTI/EXEC ①従来の良くあるRBDのトランザクション リレーショナルデータベースのトランザクションについて簡単におさらいしましょう。RDBは強烈なACID特性を持つのですが、それを特徴づける機能にトランザクションっていうのがあります。 トランザクションとは簡単に言うと、複数の処理をまとめて一つとすることです。 RDBでは BEGIN COMMIT ROLLBACK っていうのがありますが、これをアプリサイドのコードで上手い事使い分けるわけです。疑似コードで言うと try: conn.begin() conn.save('あるSQL文'

    『Redisのトランザクションとパフォーマンス』
    akatakun
    akatakun 2019/08/22
    Redisのトランザクションはqueueにopを溜め込んで、一括実行するからラウンドトリップが少ない(パイプライン処理),整合性の面では何かと穴がある,単にパフォーマンス向上の目的
  • ミューテックス - Wikipedia

    ミューテックス (英: mutex) とは、コンピュータプログラミングにおける技術用語。クリティカルセクションでアトミック性を確保するための排他制御や同期機構の一種である。「mutex」という語は「mutual exclusion」 (相互排他、排他制御) の省略形である。ここでは、狭義の排他制御について述べる。 概要[編集] セマフォをクリティカルセクションの排他制御に用いる時、セマフォでは(初期値が1でなければ)複数のタスクがクリティカルセクションに入ることを許可するのに対し、ミューテックスでは同時に一つのタスクのみがクリティカルセクションに入ることを許可する(ここで言うタスクとは、スレッドまたはプロセスを指す)。挙動はセマフォ変数の初期値を1にする事と等価。このようなタスク優先度とリンクしないミューテックスを、バイナリセマフォと呼ぶ場合もある。 狭義には、ミューテックスの場合にそれを

    akatakun
    akatakun 2018/02/19
    mutex(ミューテックス): クリティカルセクションでアトミック性を確保するための排他制御や同期機構の一種
  • ALTER TABLEを上手に使いこなそう。

    テーブル定義を変更したい。インデックスが壊れてしまったので再作成したい。そんな場合はALTER TABLEを使う。ALTER TABLEはテーブル定義を変更するお馴染みのコマンドであるが、その挙動は意外と知られていない。(エキスパートとおぼしき方々からも度々質問を受ける。)そんなわけで、今日はALTER TABLEについて解説しようと思う。 まず結論から言うと、なんとMySQLのALTER TABLEはテーブルのデータを全てコピーし直すのである。なんて無駄なことを!?と思うかも知れないが、テーブル定義(スキーマ)の変更を動的に行うには、ストレージエンジンによるサポートが必要であり、動的なスキーマ変更をサポートしているストレージエンジンはまだ少ないのである。(動的スキーマ変更をサポートしているのはMySQL Clusterぐらいだ。しかも追加だけ。)デフォルトで利用出来るMyISAMはInn

    ALTER TABLEを上手に使いこなそう。
    akatakun
    akatakun 2017/11/08
    ALTER TABLEはテーブルのデータを全てコピーし直す,読み込み専用なTL_WRITE_ALLOW_READロックする
  • 1