中年engineerの独り言 - crumbjp

LinuxとApacheの憂鬱

今時、digest認証なんかしたくないんだが。。。

先方がそうなので仕方なく、、、ユーザ名に @ が含まれていると動かなかったので少しだけ世直し。 github.com

MongoDBの開発陣は糞

アトミック性の部分の問題を何年も放置する判断力は異常 コメントでも相当言われてるが、、あいつらバカなんだろう。。 bulkUpdate & upsert でユニーク制約エラーを起こす [SERVER-14322] Retry on predicate unique index violations of update + upsert -…

Rails の or クエリー

qiita.com まあ説明はこちらに譲るとして、、 一番の問題は 非常に気を遣う ということだ。 普通に使うと動くけど、レアケースで落ちるのが痛い。 qiita.com これが一番しっくり来た。 コメントの通りちょっと直さないと落ちるんだけど。。これをinitializer…

ITシステムを構築するということ

引っ越しついでに。。。 技術を体系的に理解するということ IT技術は日進月歩でどんどん進化も早くなるので、専門職化して行くのはある程度仕方ないとは思うけど やっぱり、その様な人材や技術を効率的に正確に扱うには、全体を万遍無く理解出来てないと難し…

Markdownじゃなきゃダメな体に・・・

引っ越して来ました。。。 もうMarkdownじゃなきゃやってらんないよね。。 へー色サポートしてるのね

ES6 transpiler すると壊れる問題

webpack + babel で一見ちゃんとtranspilerできるのだが、動かしてみるとエラる。 Uncaught TypeError: Cannot read property 'TYPED_ARRAY_SUPPORT' of undefined. 色々調べたが解決方法には辿り着かなくて何とかひねり出したのがこれ。 plugins: [ new web…

capistrano-bundle_rsync の :repo_tree がちゃんと動かない・・・

こうじゃないと動かないと思うんだが、これだけ使われてるライブラリでこんな5分で治る奴が放置されているとも思えんのだ・・・ だれか教えて偉い人!! https://github.com/sonots/capistrano-bundle_rsync/pull/15/files

MongoDB の チューニンガソン環境を作った。

例のGoogle compute engine 60日トライアル の$300 分をどう使おうか・・・と考えていたのだが、MongoDBのチューニンガソンに使えるんじゃないか!?と思って週末に一気に作ってみた。mongo-tuningason.crumb.jp"いきなり超負荷を掛けると、色々問題が起き…

mongosが腐る・・・

mongosの後ろのshardでstepdownが起きたときにmongosが追随せずに以降のクエリーが全て刺さり続けることがある。 こうなるともう自動で復活はしないようだ。 すべてのmongosが腐る訳ではなく、stepdown時に高負荷だったmongosが腐る傾向にある。 shardConnPo…

MongoDBクラスタ間の同期

node-mongosync https://www.npmjs.com/package/node-mongosyncステージング環境へのデータ同期や、MongoDB引っ越しの際に便利。 そうそう引っ越さないけど・・以前 mongoshellで実装したものの焼き直しだ。 node-native-driverでは、tailable cursor の clo…

『もう二度と、絶対にMongoDBを使うべきじゃない理由』というのがあるらしい

記事 https://fa-works.com/blog/why-you-should-never-ever-ever-use-mongodbなかなか香しいな。 というよりコイツ他のブログも結構ヒドイw とりあえず不満をぶちまけるタイプのようだ。で、、事の本質はプロダクトの設計がちゃんと出来ない人はどんな場合…

MongoDB3.2 readConcernの挙動について

実装 mongosの場合はもうちょっと複雑になるが、レプリカセットの場合はこの辺に実装があるようだ === /db/repl/replication_coordinator_impl.cpp === auto loopCondition = [this, isMajorityReadConcern, targetOpTime] { return isMajorityReadConcern ?…

MongoDB3.2 ReleaseNote所感

そろそろ3.2も手を付けようと思うので、検証がてらつらつらと。。 リリースノート https://docs.mongodb.org/manual/release-notes/3.2/非常に丁寧な日本語訳があるので、こちらもどうぞ http://qiita.com/fetaro/items/cd570d70623b58b5deef WiredTiger as …

AWS上にハイパフォーマンスMongoDBを構築する方法

AWSインスタンスの選定 AWSインスタンスタイプ一覧以下のインスタンスボリュームが付随しているプロダクトラインが候補になる。 個人的にはi2.xxx が好みである。 r3.xxx メモリ最適化インスタンス i2.xxx SSD容量最適化インスタンス ただし、インスタンスボ…

あまり頻発するような問題ではないようだ

http://d.hatena.ne.jp/hiroppon/20151216/1450251504 以前、MongoDB3.0系のバックアップを取り上げた。色々検証したが、データファイル自体が破壊されるような事は起きなかった。 中のデータがある程度おかしいのかもしれないし、極稀にファイル破壊が起き…

バックアップができない!?

ご存知の様にMongoDBのバックアップは fsyncLock Snapshot fsyncUnlock の流れなのだが、、 最近、MongoDB3.2 系のドキュメントにこんな事が書かれていた Compatibility with WiredTiger Changed in version 3.2: Starting in MongoDB 3.2, db.fsyncLock() c…

MongoDB3.0.xの設定ファイルテンプレ

Advent Calendar にも投稿した内容ですが、MongoDB3系の設定周り。 僕はこんな感じで運用してますよ。という位の内容。/usr/local/mongodb/ 以下に構築する場合の設定周り 1. ディレクトリ構成 バイナリをDLして適当に配置してください。 # mkdir -p /usr/lo…

MongoDB3系(WiredTiger)の現状

ご無沙汰してます。最近全然更新出来てない訳ですが、MongoDBに愛想が尽きて、離れていた訳ではありません。 むしろガッツリ嵌ってます。。最近は MongoDB3 系 WiredTiger を使いながら頑張っている訳ですが・・・ キリの良い所で書こうと思っていたのに、メ…

DB tech showcase 2015 登壇

DB tech showcase 2015 で話して来ました。http://www.slideshare.net/crumbjp/db-tech-showcase2015-how-to-replicate 3年目ですが、だんだん制服組が減って、エンジニアが増えてていい感じでした〜

MongoDB 3.0 リリースノート斜め読み

遂にMongoDB 3.0 が正式リリースされました!! 例によってリリースノートを斜め読みします。 http://docs.mongodb.org/master/release-notes/3.0/ が、、最初に一言で纏めると、まあ、、目玉機能はロックレベルの話だけですよー でわ。。 Pluggable Storage…

MongoDB aggregation の検証

だいぶ空いてしまったが、久々の更新!Aggregate周りを色々検証したので載せておく。基本的なTAG構造。TAGを扱う上でオーソドックスなクエリーと性能を調査。 性能は、people 2000万件、hobies 3200万件、完全ランダムデータで計測。 月数千円で手に入るコン…

Proposal about notablescan option

I issue this ticket from strong sense of impending crisis and wanted to know how others thinks about this. https://jira.mongodb.org/browse/SERVER-15561This proposal is about the feature of the notablescan option. This is not for the progra…

Mongoクエリー・ベース・レプリケーション

レプリカセット間レプリケーション MongoDBではレプリカセットを跨いでデータを同期する手段が無い。 そもそもレプリカセット自体が冗長構成を目的としているので設計に組み込まれていないのだろう。 しかし現実は Staging環境や、PV系/集計系の分離など、…

Index intersection を試してみた。(失敗談)

MongoDB 2.6 からIndex intersectionという機能が追加された。 1つのクエリーで2つのインデックスを使う(かもしれない)機能で、より効率的にクエリーを処理できる。 (どう効率的なのか?はこのへんが詳しい)さて、じゃあ実際に見てみようというのが今…

MongoDB2.6.1 でやっとメジャーバージョンアップ

チェンジログ http://docs.mongodb.org/master/release-notes/2.6-changelog/ひたすらヤバイ者揃いですが、やっとメジャーバージョンアップ程度の品質になったかと。 やっと頑張れば使えるかな?暇が出来次第 http://mongodb.jp/ を早々に生贄にする所存。。

MongoDB 2.4 => 2.6 アップデートした

2.6.1(人柱バージョン)にチャレンジ 2.4.4 => 2.6.1 バージョンアップ手順 今回データファイルには互換性があるので超簡単 ディレクトリ構成 /usr/local/mongo |- bin -> mongodb-linux-x86_64-2.4.4/bin |- mongodb-linux-x86_64-2.4.4 |- data |- logs |- …

MongoDB2.6.0は時期尚早

MongoDBのメジャーバージョンアップはいつもの通り大混乱だ。 最早様式美ですらある。。いつも思うがmongodb.incの連中はmongodb使って欲しい訳だ。 Eat yourown dog food !! jira眺めてて、今問題が多そうな部分 インデクシング(全体的におかしい) Aggreg…

MongoDB2.6リリースノート斜め読み!

ご存知の通りMongoDB2.6がリリースされました!相変わらず乱文で解説!! Aggregation Enhancements Aggregationが強化された。 db.collection.aggregate() がカーソルを返却するようになった 今まで最終結果には64MBの制約があったが、解消されたようだ。 …

mecabでのユーザ辞書でハマった話

コストは単純に足し込むと思ってたのだけど、遷移コストなんてものがあるのね。。 日本テレビ東京で学ぶMeCabのコスト計算しかし困ったぞ、、cost 0 でユーザ辞書に登録しても採用されない問題!どんな事が起きるかというと、、(形態素解析の例としては良く…

MongoDB vs MySQL性能比較

MongoDB Aggregation FWシリーズの最後 - Aggregation FW機能、SQLとの比較 - Aggregation FWの特徴と地雷 - (今回)MongoDB vs MySQL性能比較Aggregation FWについては、大体、把握している情報を吐き出したと思う。 MongoDBのRDBMSライクな機能について性…