misc

用語集

用語集 FTサーバー … Fault Tolerant Server。無停止型サーバー。CPUやメモリ、ストレージ、電源ユニットなどすべての装置を二系統備え、常にまったく同じ処理をさせながら稼働する。いずれかの部品に問題が発生して停止した場合、残った片方で処理を続行し、その間に新しい部品と交換することができる。どの部品もシステム全体を停止せずに着脱可能な構造となっている。 有名な製品でいうと、HPのNonStop Serverが挙げられる。各HWベンダーが独自アーキテクチャの製品を出している。 HP「NonStopサーバー」って?/フェイスブックの中の人に聞いたMySQL 5.6の使い方 (1⁄2) 目指せ!落ちない高可用性サーバ、ハードウェアの選び方 高可用性サーバにとって、ファームウェアで重要なこと * サイトで調べる際に、ファームウェアのバグや最新バージョンがわかりやすいか * ファームウェアの切り戻しがしやすいか。 各ベンダーが出しているミッションクリティカルサーバ * IBM Power * HPE Superdome X * Fujitsu PRIMEQUEST * Strutas FT Server * NEC ftサーバ Express5800 ミッションクリティカルサーバの特徴まとめ * ハードウェアの二重化 * 長年の同じ仕組みを使うことによるファームウェア、ドライバーの信頼性 * ハードウェアに問題がある場合、ダンプ機能がしっかりしており、原因の特定が可能 無停止型 ftサーバ Express5800シリーズ フォールトトレラントサーバ(ftサーバ 300シリーズ) > CPU、メモリ、ノースブリッジ、BIOSで構成するCPUモジュール、サウスブリッジとそれに接続されるデバイスで構成するPCIモジュールに分かれており、これらを2組にして二重化を実現している。すなわち、CPUモジュール2台、PCIモジュール2台でftサーバ1構成となる。Aモジュールにハードウェア的な障害を検知した場合は、稼動状態を維持したままAモジュールを切り離し、Bモジュールにのみで作業することができる。 > フェイルオーバークラスタ構成と違い、フェイルオーバーに伴うダウンタイムがないため、数秒のダウンタイムも許されないような業務に向いているとされる。しかしながら、ソフトウエア障害に対しては対応できない。 > なお、機器を増設する場合は、片方のみの増設ではなく、両方の系統に増設しなくてはならない。(CPUやメモリ、HDDを増設する場合、同じものを2組分用意する必要がある) 人から聞いたこと Aさん: FTサーバっていうとx86で全コンポーネントを二重化して双方で同じ処理をすることで、HW障害に耐えられる仕組みをイメージしますね。Nonstopは処理系統を三重化する事ができて、仮にHW起因で1系統の演算結果が誤っていたとしても多数決論理回路で正しい結果を出せるという代物。アプリがバグるとみな死ぬのは一緒ですけど。ほんとにお金をかけてガチでやるシステムは複数系統を設け、それぞれ別のソフトウェア実装を動かして、その結果を多数決するという仕組みもあった気がします(軍用のやつとか)。ちゃんと教わった訳じゃなくて独学なんで確信ないですが。。 Bさん: 一般にftserverと言われるのはIAというかXeonが動いて普通のLinuxやWIndowsを無停止で(ハード故障しても止まらない)稼働できるもので、 stratusかNECのイメージが強いです。PRIMEQUEST、SuperdomeはIA64(Itanium)、IBM Zはzですが、こいつらはメインフレームの系列(今はItanium->Xeon)IBM Power Systems、hp IntegrityはUNIXの系列。これらもft機能はありますが、あまりftサーバとは言わないですね。UNIX機やメインフレームという言い方が一般的のように思います。 »

並列(Parallel)と並行(Concurrent)の違いについて concurrentは目的であって、例えば昼ご飯食べながらスマホをイジる、とかはコンカレント。スケジュール上の同じタイムスロットに複数の目的が割り当てられていればそれはコンカレント parallelは手段であって、目がスマホを凝視したまま口では咀嚼し続ける、みたいなのはパラレルです。目的の数に関係なく、複数の動作を物理的に同時に行えばパラレル。スマホに集中しちゃって口が止まったらそれはパラレルではない。 内部でキューイングされて実行されるから実質は逐次処理であってもキューの中にNつまで入れてクライアントを待たせる事ができるならそれはconcurrent。 実体として逐次なのか完全同時並列なのかは仕様のカバーするところでないのであれば、並列っていう言葉を持ち出す方がconfusing 参考 https://togetter.com/li/159203 »

MoneyForwardのTips

MoneyForwardのTips CSVファイル一括ダウンロード ログインした状態で以下のソースコードをChromeのDeveloper Tools等で入力する。 urls=[]; for(y=2017;y<=2017;++y) for(m=1;m<=3;++m) urls.push('https://moneyforward.com/cf/csv?from='+y+'%2F'+m+'%2F01&month='+m+'&year='+y); function doLoop(){ if(url=urls.pop()) { console.log(url); var link = document.createElement("a"); document.body.appendChild(link); link.href = url; link.click(); document.body.removeChild(link); setTimeout(doLoop,3000); } }; doLoop(); CSVファイルから特定項目のgrep CSVがSJISになっていて文字化けするのでiconvで文字コード変換をする iconv -f SJIS -t UTF-8 収入・支出詳細_2017* | grep 水道料金 特定の項目を計算する iconv -f SJIS -t UTF-8 収入・支出詳細_2017* | grep 水道| perl -F',' -alne '{print $F[3]}' | perl -pe 's/"//g; s/-/+/g; s/\n//g;' | perl -pe 's/^\+(.+)/$1\n/g' | bc »