Hatena::ブログ(Diary)

LinuxとApacheの憂鬱 このページをアンテナに追加 RSSフィード

最初はApacheネタで行くつもりが、最近は何でも有りになってきた。
うっかりソフトの世界に来てしまったエンジニアの苦悩・・・

2016-06-20 [javascript] ES6 transpiler すると壊れる問題 このエントリーを含むブックマーク このエントリーのブックマークコメント

webpack + babel で一見ちゃんとtranspilerできるのだが、動かしてみるとエラる。

Uncaught TypeError: Cannot read property 'TYPED_ARRAY_SUPPORT' of undefined.

色々調べたが解決方法には辿り着かなくて何とかひねり出したのがこれ。

    plugins: [
      new webpack.DefinePlugin({
        global: {}
      }),

トラックバック - http://d.hatena.ne.jp/hiroppon/20160620

2016-06-15

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

| 17:11 | capistrano-bundle_rsync の :repo_tree がちゃんと動かない・・・を含むブックマーク capistrano-bundle_rsync の :repo_tree がちゃんと動かない・・・のブックマークコメント

こうじゃないと動かないと思うんだが、これだけ使われてるライブラリでこんな5分で治る奴が放置されているとも思えんのだ・・・

だれか教えて偉い人!!

https://github.com/sonots/capistrano-bundle_rsync/pull/15/files

トラックバック - http://d.hatena.ne.jp/hiroppon/20160615

2016-05-30

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

23:41 | MongoDB の チューニンガソン環境を作った。を含むブックマーク MongoDB の チューニンガソン環境を作った。のブックマークコメント

例のGoogle compute engine 60日トライアル の$300 分をどう使おうか・・・と考えていたのだが、MongoDBのチューニンガソンに使えるんじゃないか!?と思って週末に一気に作ってみた。

mongo-tuningason.crumb.jp"

いきなり超負荷を掛けると、色々問題が起きるので、Stage1 ~ 4 まで別けて、ある程度チューニングが進んでから、だんだん負荷が掛かる構造にした。

stage1 5秒以内に一連のクエリーが完了すること。プロファイルの取り方と基本的なindex知識
stage2 5秒以内に一連のクエリーが完了すること。複雑なindexが張れるか?
stage3 2~3秒の間で難易度を調整中。かなり突っ込んだindexを張れないとクリア出来ない
stage4 最終ステージ。負荷が一気に増え、クリアではなくスコア(qps)での競争。MongoDB周りならなんでもあり。
stage5 構想段階。アプリ側も含めたチューン

恐らくstage3 まで行く人は既に普通には困らないだけの知識を持っているし、stage3 をクリアする人はマスターレベルだと思われる。

一旦、何人かにβテストの挑戦をして貰いたい。

興味がある人はfacebookで声を掛けて欲しい!!!!

SSHが出来るホストをお渡しして好きにチューンして貰う感じになります~

トラックバック - http://d.hatena.ne.jp/hiroppon/20160530

2016-05-24

mongosが腐る・・・

| 11:05 | mongosが腐る・・・を含むブックマーク mongosが腐る・・・のブックマークコメント

mongosの後ろのshardでstepdownが起きたときにmongosが追随せずに以降のクエリーが全て刺さり続けることがある。

こうなるともう自動で復活はしないようだ。


すべてのmongosが腐る訳ではなく、stepdown時に高負荷だったmongosが腐る傾向にある。

shardConnPoolStats コマンドではmasterが変わった事が認識できているので、何かしらのrace condition のバグがあると思われる。

少なくとも2.6系,3.0系で起きる。3.2系は不明だが恐らく起きるだろう。

本番クラスの負荷がかからないと再現しないので原因特定もかなり覚悟が要る。。。


とりあえず、監視スクリプト書いて自動再起動させる事にするが。。

jiraにも上がってなさそうだし、こんなバグ誰も気づかないんだろうか・・・

akuwanoakuwano 2016/05/24 11:47 flushRouterConfigでも駄目な感じですか?どっちにしろきついですけどw

トラックバック - http://d.hatena.ne.jp/hiroppon/20160524

2016-02-26

MongoDBクラスタ間の同期

| 12:51 | MongoDBクラスタ間の同期を含むブックマーク MongoDBクラスタ間の同期のブックマークコメント

node-mongosync

https://www.npmjs.com/package/node-mongosync

ステージング環境へのデータ同期や、MongoDB引っ越しの際に便利。

そうそう引っ越さないけど・・

以前 mongoshellで実装したものの焼き直しだ。

node-native-driverでは、tailable cursor の closeが検知出来たり、oplogの読み込みと同期先への書き込みが非同期に同時進行出来るため、性能的に有利だった。

反面CPU処理能力は若干劣るため、フックを差し込む機構は今の所諦めている。

あとnpmを使えるので導入が楽だ。

これが一番大きな理由かもしれない。

npmjs のREADME.md の表示がやたら汚いのがつらい・・・ githubの方みてね・・・

トラックバック - http://d.hatena.ne.jp/hiroppon/20160226