タグ

ブックマーク / atmarkit.itmedia.co.jp (128)

  • ドキュメントは最強のコミュニケーションツールである――Joelの機能仕様書入門

    ドキュメントは最強のコミュニケーションツールである――Joelの機能仕様書入門:プロジェクト成功確率向上の近道とは?(1)(1/2 ページ) ITシステム開発の問題点の一つであるコミュニケーションの失敗。連載では、これを防ぐ方法としてお勧めしたい3つのドキュメントを紹介していく。今回は「Joelの機能仕様書」のポイントを解説する。 連載目次 はじめに 連載では、ITシステム開発がビジネスに貢献していくために必要な、最も基的な条件である“システム開発の成功”につながるいくつかのポイントを紹介します。 筆者は、さまざまなコンピューターシステム開発に長年携わってきたソフトウェア技術者ですが、この連載では、あえて技術的ではない話題を中心に述べます。というのも、技術論だけではシステム開発が成功する条件としては不十分ですし、すでにたくさんの優れた技術論が各方面で展開されています。あらためてそこ

    ドキュメントは最強のコミュニケーションツールである――Joelの機能仕様書入門
  • HortonworksとPivotal、Hadoop管理ツールの「Ambari」で協業

    HortonworksとPivotal、Hadoop管理ツールの「Ambari」で協業:エンタープライズレベルの運用環境整備に向けて HPの出資が話題となったばかりのHortonworksが、運用環境の整備でPivotalとの協業を発表した。エンタープライズデータプラットフォーム環境確立の流れが強まるようだ。 HadoopプロバイダーのHortonworksとPivotalは、エンタープライズ向けにApache Hadoopの強化を目指すプロジェクト「Apache Ambari」で協業すると発表した。Hortonworksは、HPが戦略提携を発表したばかりだ。 AmbariはHadoopクラスタのプロビジョニングや管理のためのツールとAPIの開発を進めるプロジェクト。 Hadoopをエンタープライズ向けの「完全なデータプラットフォーム」とするためには、(1)データアクセス、(2)データ管理

    HortonworksとPivotal、Hadoop管理ツールの「Ambari」で協業
  • HPがHortonworksと戦略提携、データプラットフォーム強化へ

    HPがHortonworksとの提携を発表した。自社のデータプラットフォームとの連携を強化。エンタープライズアプリケーションを意識した環境整備が進んでいるようだ。 米Hewlett-Packard(HP)とHadoopプロバイダーのHortonworksは2014年7月24日、Hadoopの普及促進を目指し戦略的提携を結んだと発表した。 提携に基づいてHortonworksのApache Hadoopディストリビューション「Hortonworks Data Platform」とHPのビッグデータプラットフォーム「HAVEn」を緊密に連携させ、HPの顧客がHAVEnのHadoopコンポーネントとしてHortonworks Data Platformを導入できるようにする。 HPはHortonworksに5000万ドルを出資する他、執行副社長兼最高技術責任者(CEO)のマーティン・フィンク氏を

    HPがHortonworksと戦略提携、データプラットフォーム強化へ
    yass
    yass 2014/07/28
    " HPはHortonworksに5000万ドルを出資する他、執行副社長兼最高技術責任者(CEO)のマーティン・フィンク氏をHortonworksの取締役に送り込む。" 50億円
  • 64bitファイルシステム XFSの実装

    XFSのジャーナリング機能 XFSのジャーナリング機能は、メタ・データをジャーナルする方式である。ext3のように、メタ・データを書き込む前にデータをディスクに書き込むといった特別な方式は取っていない。XFSの特徴は、ログを頻繁に更新することで、復旧時にこのログの手順を再生する確率を高めている点である。 例えば、XFSはwriteなどのオペレーションが行われると、オペレーションのログとしてメタ・データの更新操作情報がメモリ上のバッファに書き込まれる(1)。バッファのデータは、ディスクに書き込まれるとジャーナルファイルとなる(2)。このディスクへの書き込みは非同期に行われる。ジャーナルファイルの書き込みが完了すると、リソースをディスクに書き込む。クラッシュ後の復旧は、マウント時にジャーナルファイルが読み込まれ、メタ・データのチェックを行うことで実行される。 XFSのジャーナルログの構造 XF

    64bitファイルシステム XFSの実装
    yass
    yass 2014/06/29
    " XFSのライトアヘッドロギングは、ログがon-disk logにコミットされるまで、修正されたデータをディスクにフラッシュしない。"
  • ext3とトランザクション処理

    kjournaldによるコミットとチェックポイント ext3では、トランザクションのコミット操作はカーネルスレッドである「kjournald」によって定期的に行われる。kjournaldは、Linuxに実装されているダイナミックタイマと呼ばれる時間管理のためのタイマ機構を利用し、これらのコミット操作が時系列に沿って実行されるようにする。 kjournaldは、カーネルから起動されるとインターバルが5秒ごとに実行されるタイマリストを作成する。個々のトランザクションは、このタイマリストに現在の時刻+5秒後にコミットが実行されるようにタイマをセットする。kjournaldは5秒置きに起動し、コミットが予定されているトランザクションを登録していた場合は、そのトランザクションをコミットする。ext3では、コミットとチェックポイントはkjournaldの中に一緒に実装されており、コミットが完了するとチ

    ext3とトランザクション処理
    yass
    yass 2014/06/29
    " ただし、書き込むためのバッファにデータがあることを確認してからジャーナリングを行う。また、トランザクションのコミットも、データの書き込みおよびトランザクションのコミットとシーケンシャルに行われる。"
  • ブロックアルゴリズムとB-Treeアルゴリズム

    ファイルサーチを高速化するB-Treeアルゴリズム ext2、ext3がベースとするブロックアルゴリズムは、ブロック数が対応するディスクのジオメトリ数に制限されること、ファイルサーチにO(n)かかる(注)こと、ファイルサイズに関係するパフォーマンス低下など、いくつかの問題があった。 注:「O(n)」とは、実行時間が入力の大きさ「n」に比例するアルゴリズムである。O(n)は「nのオーダー」または「オーダーn」と読む。後述する「O(log n)」は、アルゴリズムの計算量に関する議論の場合logの底は常に2で、O(log n)の方がO(n)よりも効率が良い。例えばn=8の場合、O(log n)は入力8に対して3回の実行で済むが、O(n)は8回の実行となる。 ReiserFS、JFS、XFSといったファイルシステムでは、こうしたブロックアルゴリズムの限界に対して、早い段階からデータベースの技術をフ

    ブロックアルゴリズムとB-Treeアルゴリズム
    yass
    yass 2014/06/29
    " B+-Treeはデータとキーを完全に分けて管理 / ノードの下位層をインデックス部とデータ部に分けて構成し、「データ」は常にリーフノードに保存する。インデックス部の各ノードは4つのキー値と5つのポインタのみを保持 "
  • ブロックアルゴリズムとB-Treeアルゴリズム

    後で説明するが、ext2ではブロックグループ0の「スーパーブロック」に、パーティション内のブロックグループ全体の管理情報が格納される。 スーパーブロックには、 iノードの総数 ブロックサイズ ファイルシステムのサイズ 空きブロック数、空きiノード数 使用されているブロックグループ 最終fsck時刻 など、ファイルシステムに関するさまざまな情報が含まれている。「グループディスクリプタ」は、「データブロックビットマップ」や「iノードビットマップ」情報などを参照して空きブロックや空きiノードを探し、データを割り当てる際に最適なブロックを決定するのに使われる。 「データブロックビットマップ」と「iノードビットマップ」は、ビットマップ情報である。ビットマップ情報は、あるデータが使用中か未使用かを0か1のbitで保持している。1byte=8bitsなので、80個のブロックの状態を10bytesで管理で

    ブロックアルゴリズムとB-Treeアルゴリズム
    yass
    yass 2014/06/29
    " iノードが不足するとデータブロックに空きがあってもファイルを作成できなかったり、逆にデータブロックがいっぱいになると未使用のiノードが発生してしまうという問題が生じる。"
  • Google Compute Engine上では毎秒100万通のメッセージを安定処理できる

    Pivotalとの共同検証で、Google Compute EngineがRabbitMQを使った仮想クラスタ環境での大量メッセージング処理で高い性能を示した。 米グーグルとPivotalは2014年6月23日、「Google Compute Engine」にオープンソースのメッセージングシステム「RabbitMQ」を導入して行った性能実験で、毎秒100万通を超すメッセージを安定して処理できる性能を実証したと発表した。 送信したメッセージと受信したメッセージを合せると処理数は毎秒200万通を超え、1日当たりに換算すると860億通に相当する。これはAppleが1日に処理するiMessagesの400億通を上回るという。 実験ではGoogle Compute Engine上に、それぞれ8個のvCPUと30GバイトのRAMを搭載した仮想マシン32台のクラスタを構築。各仮想マシンのDebian上に

    Google Compute Engine上では毎秒100万通のメッセージを安定処理できる
    yass
    yass 2014/06/25
    "8個のvCPUと30GバイトのRAMを搭載した仮想マシン32台のクラスタ / RabbitMQクラスタは、RabbitMQ RAMノード30台とRabbitMQ Discノード、RabbitMQ Statsノードが各1台ずつという構成 "
  • スケジューラの挙動は三巨頭会談で決まるのだ?(2/2) - @IT

    1月版 スケジューラの挙動は三巨頭会談で決まるのだ? 小崎資広 2009/1/30 まだまだあるぞ新機能 ■IO CPU affinity 従来、I/O完了処理はI/Oデバイスからの割り込みが上がったCPUで行われていたので、どのCPUで処理されるかは、実質irqbalanceデーモンの胸先三寸でした。今回Jens Axboeの手によって、「IO CPU affinity」という設定(注3)をONにすることにより、I/O完了処理をI/O発行CPU(注4)で行えるようにするオプション機能が追加されました。 昔のPCはバスが共有バスだったので、どのCPUからSCSIコマンドを出すかはあまり重要ではなく、空いているCPUで処理するのが正しかったといえます。 NUMAマシンやポイント・ツー・ポイントでメモリやI/Oと接続されているイマドキのCPUでは、ターゲットI/Oデバイスから近いCPUと遠いC

    yass
    yass 2014/05/12
    " 今回Jens Axboeの手によって、「IO CPU affinity」という設定をONにすることにより、I/O完了処理をI/O発行CPU(注4)で行えるようにするオプション機能が追加されました。"
  • Hotspot VMの基本構造を理解する

    ネイティブコンパイラは、高速に動作するネイティブコードの実行ファイルを生成しますが、Javaのメリットでもある動的なクラスのロードに対応できない場合があります。今回の説明の対象としているのは動的コンパイラです。Javaで使われている動的コンパイラは、メモリ上にコードを生成するものであり、ある形式のファイルを生成するものではありません。動的コンパイラは一般にはJITJust In Time)コンパイラと呼ばれており、HotSpot VMもこの1つです。 バイトコードの解釈と実行 初期のJava VMはバイトコードインタプリタのみでバイトコードを実行しており、実行速度が非常に遅いという問題がありました。その後、高速化のために動的コンパイルという技術が導入され、現在のようにバイトコードインタプリタと動的コンパイラが併用されるようになりました。HotSpot VMもこの方式で動作します。 図9は

    Hotspot VMの基本構造を理解する
  • データセンター技術への投資としては「過去最大」:米インテルがクラウデラに出資、Hadoopディストリビューション「CDH」へ統合 - @IT

    米インテルがクラウデラに出資、Hadoopディストリビューション「CDH」へ統合:データセンター技術への投資としては「過去最大」 米インテルは2014年3月27日、Apache Hadoopディストリビューションプロバイダーの米クラウデラ(Cloudera)への出資を発表した。インテルのHadoopディストリビューションは、クラウデラの「Cloudera's Distribution including Apache Hadoop」(CDH)に統合する予定だ。 米インテルは2014年3月27日、Apache Hadoopディストリビューションプロバイダーの米クラウデラ(Cloudera)への出資と、広範な戦略提携を発表した。インテルは同社の筆頭戦略株主となり、取締役に就任する。 クラウデラへの出資は、インテルがデータセンター技術に行う投資としては過去最大級。Hadoopをベースとするクラウ

    データセンター技術への投資としては「過去最大」:米インテルがクラウデラに出資、Hadoopディストリビューション「CDH」へ統合 - @IT
    yass
    yass 2014/03/28
    " インテルの「Distribution for Apache Hadoop/Intel Data Platform」(IDH/IDP)はCDHに統合する予定で、3月末のバージョン3.1リリース後に移行する "
  • いま知っておくべきWebサービスのための高速ネットワーク技術(前編)

    では、なぜいまWebサービスに高速ネットワーク技術が必要なのでしょうか? 高速ネットワーク技術とサーバ性能の現状を見ながら、その理由を解き明かしていきましょう。 拡大期を迎えるモバイルインターネット 米Morgan Stanleyは2009年に行った調査で、2014年ごろには、モバイル環境からのインターネットユーザー数がデスクトップ環境のそれを追い抜くだろうと予測していました(図3)。この調査から3年が経とうとしている現在、予想はまさに現実のものになろうとしています。モバイルインターネットの利用拡大は目覚ましく、家庭にも個人にも深く浸透してきています。 さて、モバイル環境向けに提供するWebサービスでは、ワイヤレスデータ通信網を考慮して、コンテンツ自体を小さく作るよう心掛けるはずです。これにより、小さなパケットを大量に送受信できるWebサーバの重要性が必然的に増しており、「ネットワーク帯域

    いま知っておくべきWebサービスのための高速ネットワーク技術(前編)
    yass
    yass 2014/03/02
    "結論からいえば、1GbEに比べて10/40GbEのパケット処理性能向上が確認でき、サーバ本来が持つネットワーク性能の潜在量も確認できました。しかし同時にパケット処理性能(Packet/sec)に頭打ちが生じている" 1 GbE 320K pps
  • 第1回 最新モデルを意識したCPUとメモリのサイジング

    Hyper-Vのプロセッサ要件 まずはHyper-Vサーバのためのプロセッサ*2の要件から説明しよう。Hyper-Vでは、プロセッサの機能要件がいくつか定められている。煩わしいことに、マイクロソフトが表記する名称とIntelプロセッサ/AMDプロセッサでの実装名がそれぞれ異なっている。まとめると次の表のようになる。 *2 「プロセッサ」と「CPU」という用語について: この2つの用語はほぼ同義だが、稿では、製品そのものを指す場合はベンダの表記に従ってプロセッサとし(例:Intel Xeonプロセッサ、AMD Opteronプロセッサなど)、その中に含まれる機能を指す場合はCPUとする。

    第1回 最新モデルを意識したCPUとメモリのサイジング
    yass
    yass 2014/03/02
    "HTの動作を理解する場合、高速道路における料金所をイメージ / 料金所の反対側にも窓を作ると、中にいる収受員が身体を回して対応することで1つの料金所で2つのゲートに対応 / 収受員は一度に片側の窓しか対応できない"
  • 第3回 Hyper-Vネットワーク設計のベストプラクティス

    第3回 Hyper-Vネットワーク設計のベストプラクティス:Windows Server 2012 R2時代のHyper-Vサーバ設計術(2/3 ページ) 前ページで述べたように、中規模クラスの番環境を考えると、Hyper-Vホスト1台あたり最低8つの「1Gbpsイーサネット(1GbE、ギガビット・イーサネット)」ポートが必要になる。今後のデータ量増加に備えて余裕も持たせておきたいし、IPストレージ/バックアップ/Hyper-Vレプリカなども考えている場合は、1GbEだと15ポート近くも必要となってしまう。1枚で1GbEを4ポート搭載するカードもあるものの、1Uサーバの最大搭載数(多くは内蔵4ポート+拡張2スロット)を埋め尽くしてしまうか、超過してしまうのが現実だ。 これから仮想化環境を新規に構築するのであれば、5年は耐用できるサイジング設計をするべきだ。扱うデータ量が増えた際に「PCI

    第3回 Hyper-Vネットワーク設計のベストプラクティス
    yass
    yass 2014/02/28
    " DACの最大のメリットはその低コストにある。1対あたり40万円かかっていた10GBase-SRと比べ、DACはトランシーバ込みで2万円前後と、コストを20分の1に削減できる / 10GBase-T 2000円程度"
  • リリース/デプロイをめぐる刺激的な議論

    ソフトウェアの開発と提供を行うほとんどの企業・組織が、ソフトウェアのデプロイ/リリースで何らかの課題を抱えている。それでも、「スクリプトを使えばいい」「スーパープログラマには自分のやりかたがある」「運用担当者の仕事がなくなるようなことはしたくない」「うちは頻繁にリリースをしないから考えなくていい」といった声が聞こえてくる。当にそうなのか。UrbanCodeの共同創設者でCEOであり、2013年IBMに買収されたことで、現在はIBMのデプロイ/リリース製品ライン・ディレクターを務めているマチェイ・ザワツキー(Maciej Zawadzki)氏に、これらの疑問を直接ぶつけてみた。 ザワツキー氏の経験は豊富だ。UrbanCodeの活動を通じ、1996年以来、顧客組織におけるソフトウェアのビルドにかかわる問題を解決し、その後さらにリリース/デプロイの改善に取り組んできた。UrbanCodeがリリ

    リリース/デプロイをめぐる刺激的な議論
    yass
    yass 2013/12/01
    " デプロイ・プロセスを開発者がセルフサービスとして利用できないかぎり、本当の自動化とはいえない / 「多くの人は直感的に、アップデートの頻度を減らすほうが安全なのではないかと考える。しかし、真実はその逆だ"
  • Intelコンパイラはここがスゴい、Xeon Phiで自動オフロード

    「Intel Parallel Studio XE」が「2013 SP1」にバージョンアップした。プラグマを1行書くだけでXeon Phiや、第3世代Coreプロセッサ以降のCPUが備える統合GPUで演算処理を実行するコードを生成する機能を備えた。 米Intelが開発し、エクセルソフトが販売するx86プロセッサ向けソフトウェア開発ツール「Intel Parallel Studio XE」が「2013 SP1」にバージョンアップした。それに含まれるC/C++コンパイラの「Intel C++ Composer」はバージョン14になり、C++11規格やOpenMP 4.0への対応のほか、並列処理を高速実行する機能が追加された。具体的には、Xeon Phiや、第3世代Coreプロセッサ(開発コード名「Ivy Bridge」)以降のCPUが備える統合GPU「Intel HD Graphics」で演算

    Intelコンパイラはここがスゴい、Xeon Phiで自動オフロード
    yass
    yass 2013/09/22
    "オフロード実行モデルでは、プログラムの起動はホストPC側で行い、ソースコード上の一部分だけをXeon Phiで実行させる。Xeon Phiで実行させるコードの単位は、関数/メソッドだけでなく、forループなど任意の単位で指定可能"
  • Red Hat、Linuxコンテナ技術で米新興企業と提携

    米Red Hatは、Linuxの次世代コンテナ技術に関して、米新興企業と提携を結んだと発表した。Red Hat Enterprise Linuxに「Docker」を組み合わせて、Red HatのPaaS製品の強化を目指す。 米Red Hatは2013年9月19日、Linuxのコンテナ技術に関して、新興企業の米dotCloudと提携を結んだと発表した。PaaS(Platform as a Service)環境の構築に向けたdotCloudのオープンソースエンジン「Docker」と、Red Hat Enterprise Linuxを組み合わせて、Red HatのPaaS製品「OpenShift」の強化を目指す。 両社はこの提携に基づいて、複数の共同プロジェクトを展開する予定だ。例えば、Fedoraの今後のバージョンでDockerを提供するほか、DockerのAuFS(Advanced Mult

    Red Hat、Linuxコンテナ技術で米新興企業と提携
    yass
    yass 2013/09/21
    " Linuxのコンテナ技術に関して、新興企業の米dotCloudと提携を結んだと発表した。PaaS 環境の構築に向けたdotCloudのオープンソースエンジン「Docker」と、Red Hat Enterprise Linuxを組み合わせて、Red HatのPaaS製品「OpenShift」の強化 "
  • インターネットを過激に加速するアプリdolipoの種明かし- @IT

    drikin 2008/8/19 Polipo技術解説 dolipoは、PolipoというオープンソースのプロキシプログラムにGUIを追加したプログラムです。 Polipoは、フランス人のJuliusz Chroboczek氏が主体となって開発されています。 Polipoがどのような原理でネットワークを加速しているのか、少し技術的な解説をしてみたいと思います。 といっても、僕もPolipo自体の開発にはかかわっていません。あくまでも、公式ページやdolipo解説サイトなどの解説からひもといた内容です。 プロキシによるネットワークの高速化は、Polipoがはじめてというわけではありません。そもそも、多くのプロキシプログラムには、データをキャッシュしてデータの転送を効率化して高速化する機能が備わっています。 Polipoが興味深いのは単なるデータキャッシュだけでなく、さらに積極的にネットワーク

  • ガベージコレクタの仕組みを理解する

    GCを適切に行わせるためのヒープサイズの設定 JVMにGCを適切に行わせるにはヒープサイズを適切に設定(New領域サイズ、Old領域サイズ、領域サイズのバランスなど)する必要があります。当然、適切なヒープサイズはアプリケーションに依存します。一般にヒープサイズが小さいとGCが頻発してアプリケーションのパフォーマンスが低下します。さらに、ヒープサイズが必要量を下回る場合はOutOfMemoryErrorが発生してアプリケーションが停止してしまいます。一方、ヒープサイズが大きいと、GCの起動回数は減りますが、GC1回当たりの処理時間、すなわちアプリケーション停止状態が長くなり、アプリケーションの応答時間に問題が出る場合もあります。システムの物理メモリのフリー領域が不足するまでヒープサイズを大きくすると、物理メモリからスワップ領域へのページングが起こってしまい、かなりのパフォーマンスが劣化する可

    ガベージコレクタの仕組みを理解する
  • RDBMSで使われるB木を学ぼう (1/3)- @IT

    第5回 RDBMSで使われるB木を学ぼう はやしつとむ アナハイムテクノロジー株式会社 2009/6/22 オブジェクト指向によって、アルゴリズムは隠ぺいされていることが多くなった。しかし、「用意されていない処理」が求められたときに対応できるだろうか(編集部) 第3回「AVL木で木構造を学ぼう」、第4回「もっとAVL木で木構造を学ぼう」と2回連続でAVL木について解説しました。 今回はAの後だからBというわけではありませんが、B木(B-Tree)を取り上げます。 B木の変種であるB+木やB*木は、OracleやPostgreSQL、Firebirdなどのリレーショナルデータベースでインデックスとして利用されている、メジャーな木構造です。 筆者はDelphi 2009でサンプルプログラムを作成していますが、Delphiをお持ちでない方は下記のURLからTurboDelphiをダウンロードして