タグ

関連タグで絞り込む (0)

  • 関連タグはありません

タグの絞り込みを解除

qiitaとdatabaseとerlangに関するnabinnoのブックマーク (5)

  • Mnesia の同期テストを slave モジュール使って行う - Qiita

    環境 Mac OS X 10.9.4 Erlang/OTP 17.1 概要 Erlang VM を複数立てて、Mnesia の同期テストを CommonTest ではなく EUnit ではどうやるのか調べていたところ slave モジュールを使えばよいという事だったので、slave モジュールを使ってみることにした。 CommonTest には ct_slave という専用モジュールがある模様。 フロー ノード名を自分に付けます net_kernel:start/1 クッキーをセットします erlang:set_cookie/2 ノードを 3 つ起動します slave:start/3 -setcookie でクッキーを指定する 3 ノード全てで mnesia を起動します mnesia:start/0 1 ノードに対してテーブルを生成します mnesia:create_table/2 テー

    Mnesia の同期テストを slave モジュール使って行う - Qiita
  • mnesiaをelixirから使ってみる - Qiita

    はじめに 記事はElixir Advent Calendar 2017の21日目です。 mnesiaはErlang/OTPについてくる高速、高可用性が売りのRDBMSです。 今回はこれをElixirで少し便利に使ってみようという話です。Elixir特有というよりmnesia特有の話かつhow to的なものになっています。内容は テーブルの作成 分散モードへの移行とレプリケーションの構成 障害復旧方法 シャーディング その他曰く云い難い何かになります。 分散モード elixir/erlangランタイムOSプロセス(群)はノードと呼ばれ、スタンドアローンと分散の二つのモードがあり、分散モードのノードはさらに、ホスト内で有効なショートネームとホストを超えて有効なロングネームのモードがあります。 モードの切り替えは、

    mnesiaをelixirから使ってみる - Qiita
    nabinno
    nabinno 2017/12/22
    LYSE本によるとMnesiaはCPのNoSQLよりなので、RDBMSとか高可用性 (A) とか言ってしまうのはどうなんだろう😶💭
  • [Yacto] Ecto のマイグレーションを自動化したり水平分割するためのライブラリを作った - Qiita

    Ecto はデータベースを扱うとても便利なライブラリです。 ただ、自分達が使う上でいくつか使い勝手の悪い部分があったので、Yacto というライブラリを作りました。1 Yacto とは Yacto は、Ecto で使いにくかった部分をサポートするためのライブラリです。 大まかに以下の機能があります。 マイグレーションファイルの自動生成 別アプリケーションからのマイグレーションの利用 水平分割したデータベースへのマイグレーション 複数データベースを跨るトランザクション(XA トランザクション) それぞれ説明していきます。 マイグレーションファイルの自動生成 Yacto は、特にマイグレーション周りが Ecto と異なります。 Ecto はスキーマとマイグレーションを別で定義していましたが、Yacto は スキーマからマイグレーションファイルを自動的に出力します。 具体的には、以下の様にスキー

    [Yacto] Ecto のマイグレーションを自動化したり水平分割するためのライブラリを作った - Qiita
  • ElixirからETSを使う - Qiita

    :ets.new/2で新しいテーブルを作成してETSのPIDが返ります。1個目の引数はテーブル名のatom、2個目はテーブルの定義をatomのlistで設定します。 :setはテーブルの定義を指定していて、同一のキーは登録不可になります。他だと:bagはキーの重複ありなど種類に応じて使い分けられます。 :protectedはアクセスの範囲を指定しています。この場合だと書き込みはテーブルを作成したプロセスのみ、読み取りはオープンという具合です。他にはpublic、privateがあります。 読み書き iex(2)> :ets.insert(table, {:foo, "hoge"}) true iex(3)> :ets.lookup(table, :foo) [{:foo, "hoge"}] iex(4)> :ets.lookup(table, :bar) [] iex(5)> :ets.i

    ElixirからETSを使う - Qiita
  • 3分で分かる Erlang hot code loading - Qiita

    安っぽいタイトルを付けてしまい大変申し訳ありません。 Hot code loading とは、データはそのままでコードだけ最新のやつに差し替える Erlang VM の機能です。 うまくやると無停止で運用できるので嬉しかったりしますが、ちゃんとわかって使わないと謎の挙動に苦しむことになるのでちょっと調べてみました。 概要 まずは 公式ドキュメント を見て、一部動作を予想しつつまとめてみました。最低限、これだけ覚えておけば勝つる。 ■関数の実体 ある関数の実体が所属する世界は current, old の2種類ある. ■関数の実体の解決方法 「Fully qualified function calls」や「Fully qualified functionが入った変数」は常に current のやつを指す. そうでないものは現在実行中の関数が所属する世界のやつを指す. ■コード更新時の処理

    3分で分かる Erlang hot code loading - Qiita
  • 1