All Posts

CouchDB Source Code Reading part6

couch_httpd_db:db_req/2 前回までドキュメントの取得の流れを見てきたので、次に更新まわりを見ていこうと思います。 couch_httpd_db.erl: 1db_req(#httpd{method='POST',path_parts=[_DbName]}=Req, Db) -> 2 couch_httpd:validate_ctype(Req, "application/json"), 3 Doc = couch_doc:from_json_obj(couch_httpd:json_body(Req)), 4 validate_attachment_names(Doc), 5 Doc2 = case Doc#doc.id of 6 <<"">> -> 7 Doc#doc{id=couch_uuids:new(), revs={0, []}};

CouchDB Source Code Reading part5

couch_db:open_doc_int/3 前回はcouch_db_updater:refresh_validate_doc_funs/1を読んでいく中でDesignDocsを取得す

CouchDB Source Code Reading part4

couch_db_updater:refresh_validate_doc_funs/1 今回はcouch_db_updater:init/1から呼び出している関数の中でまだ見ていないrefresh_validate_doc_f

CouchDB Source Code Reading part3

couch_db_updater:init_db/6の以下の部分を掘り下げてみたいと思います。 couch_db_updater.erl: 1 {ok, IdBtree} = couch_btree:open(Header#db_header.fulldocinfo_by_id_btree_state, Fd, 2 [{split, fun(X) -> btree_by_id_split(X) end}, 3 {join, fun(X,Y) -> btree_by_id_join(X,Y) end}, 4 {reduce, fun(X,Y) ->

CouchDB Source Code Reading part2

couch_db_updater:init/1 前回はヘッダ部を読み込むコードを読んだので、今回はDBの読み込み準備?のところを読んでみます。couch_db_updater:init/

CouchDB Source Code Reading part1

Why CouchDB? 数年前にCouchDBのデータフォーマットについて解説しているページを読みました。CouchDBの内部ではデータをB+treeで保持して

Development Environment For Rails4 With Docker And Ansible

DockerとAnsibleを使ってRails4の開発環境を作ってみました。 Environment ruby2.1.0 rails4 emacs24 ruby-mode rinari rhtml Docker Dockerfileにはsshdでログインできる

Serf Source Code Reading part2

前回のmemberlistに続き、今回はserfのコードを読んでみました。 Serf Summery serfは、memberlistを利用してクラスタ内のノードの

Serf Source Code Reading

このところ、Serfのコードを読んでいました。一旦、読んで理解した内容をまとめてみたいと思います。 Packages Serfは大きく次の2つのパッケージに分

How to assign a port mapping to a running docker container

Docker ちょっと前にVPSサービスの乗り換えをしました。それまで、1つのVPS仮想ノードに複数のサービスを置いていたのですが、この乗り換えを機にD