タグ

ブックマーク / kuenishi.hatenadiary.jp (5)

  • mnesiaのレプリケーションがどうなっているのかちょっと調べてみた - kuenishi's blog

    問題 N-act構成にしたとき、ネットワークが切れてまたつながった場合にデータ不整合が起きるか。復旧の方法はあるか。 結論 起きる。簡単な復旧方法はなさげ。 Mnesiaレプリカのあるノードが一時的に通信不能になり、その間にMnesiaオリジナル*1が不整合の起きるレコード更新を行うと、Mnesiaレプリカが復帰できない。 set_master_nodes/2は微妙(ざっとリファレンスを見た限りでは、不整合を解決する方法はこれくらいしかなさげ) 使ったマシン dom0 -> -name a@192.168.0.72 domU -> -name a@192.168.0.31 どちらもdebian lenny@linux-2.6.26-xen/ xen 3.2(要はlenny最新版) まずは準備。 dom0側 [kuenishi@] $ erl -name a@192.168.0.72 -se

    mnesiaのレプリケーションがどうなっているのかちょっと調べてみた - kuenishi's blog
  • Erlang RunTime System の闇(闇というほどのものでもないけど) - kuenishi's blog

    みなさんご存知かもしれませんが、*nixではひとりのユーザーが同時にオープンできるファイルディスクリプタの数の上限がきまっていたりします。もっと有り体にいうと、ひとつの*nixプロセスで動作するファイルディスクリプタの上限が制限されてしまうというのが一番の問題。いくらC10Kに耐えられるようなスーパープログラムを書いたところで、こいつの初期値は1024とか256だったりするので「あり?おかしいな?」とかいうのは誰もが通る道だと思います*1。 で、まあやっぱりErlangのはなしになります。ErlangでC10KなTCPサーバー書いたところでこの問題は避けて通れません。そいでsudo ulimit -n 1000000とかやっちゃいますよね。当然です。 とはいえ、そうしたらなぜかしらん、erlコマンド叩いてerts起動しただけでメモリを500MBをう[要検証]との報告があったので、一体なん

    Erlang RunTime System の闇(闇というほどのものでもないけど) - kuenishi's blog
  • 「技術」という言葉について - kuenishi's blog

    とくにソフトウェアとかインターネット的な世界のはなし。典型的な用法は「〜〜という新しい技術仕事で使いたいのだけど、上司が許可してくれない」というものだ。この〜〜には、たとえばちょっと前だとLAMP, Ruby on RailsとかAWSとかHadoopだし、今だとなんだろう、DockerとかC#かな。うーんこの違和感。私の定義では、これはどれも技術ではない。ただのソフトウェアだ。AWSはサービスだ。 TCP/IPやSIPは技術だろうか?わたしの感覚ではノーだ。ただの仕様だ。いずれもベースになっている技術はあって、たとえばパケットのルーティングや名前解決、フレーム再送やウィンドウ制御の仕組みや実装は技術といっていいだろう。Hadoopは分散処理の技術を実装したソフトウェアだ。LAMPはWebサービスを実装するためのソフトウェアスタックの総称で、そのなかに様々な要素技術はあるだろう。Dock

    「技術」という言葉について - kuenishi's blog
  • メモリリークとは何か - kuenishi's blog

    メモリリークに悩まされている技術者は多いだろう。メモリリークが嫌でGCという技術が開発されたといっても過言ではないし、歴史的にはC++からJavaへシフトが起きた大きな理由のひとつといっていい。Unix系の簡単な定義でいえば、ヒープ領域を指すポインタ(アドレス)をロストしてしまえばそのメモリはもう漏れたといってよい。たとえばこういったコードだ。 struct { int i; char c; } spam; int main(){ void* p; int i; for(i=0; i<1024; ++i){ p = malloc(sizeof(struct spam)); } pause(); } このコードではpause(3)の時点で約5KBのメモリが漏れている。free(3)を使えばメモリをOSに返却できるが、アドレスが分からないので返却できない。 ところが、ここでいいたいのは、メモリ

    メモリリークとは何か - kuenishi's blog
  • そろそろGoについて一言いっておくか - kuenishi's blog

    昨日、GoCon(ごうこん)なるイベントに参加してきた。以下に続く話は5割以上がフィクションなので虚実織り混ざっている様を楽しみながらお読みいただけたらと思う。 最初に発表されたニュースを聞いたときは、Goはよい車輪のよい再発明で、結局GoogleC++Javaを使い続けるだろうし、世間はGoogle独自言語としてみなすのだろうなという予感はあったし、2010年だから2011年ころはそういう見方をされていたように記憶されている。私もそういうものだと思っていたし、特に関心を持つこともしなかった。いま思えば正常性バイアスだったのだろう。 実際に昨日のカンファレンスで一番興味深かったのは鵜飼さんによるGoの解説だった。比較対象がC++, Python, Javaだったことが最も印象的で、普段からErlangやOCamlといった関数型言語に接していた身として新鮮だった。話を聞くうちにGoogl

    そろそろGoについて一言いっておくか - kuenishi's blog
  • 1