スケールアウトする分散ファイルシステム 計画 スケールアウトする分散ファイルシステムを設計中です。とりあえずはサーバー1台でも動作し、後からサーバーを足していくと、自動的に容量が増え、冗長化され、負荷分散されるというものを目指しています。LAN用に特化し、NFS+DRBDの置き換えを狙っています。 まえがき 今や、Webサーバーいくらでも冗長化や負荷分散ができるようです。メモリを足す、HDDを足す、と同じ感覚で、サーバーを足す、というのが成り立つのではないでしょうか。(この点に関してはDSAS開発者の部屋全体、特に「DSASのあれこれ」の資料を公開しますやこんなに簡単! Linuxでロードバランサ シリーズが非常に参考になります) しかしストレージはどうでしょうか。ストレージの冗長化や負荷分散にも、DRBDを始めとしていろいろなソフトウェアが開発されていますが、「スケールアウトするか」「
「初めてのPython」p.344に載っていたdir()のような動作をするソースがなかなか良い感じです。 #!usr/bin/env python # -*- coding: utf-8 -*- """ mydir.py 組み込み関数dir()をカスタマイズする例 指定のモジュールの名前空間に属する変数名の一覧を出力する """ verbose = 1 def listning(module): if verbose: print "-" * 30 print "name:", module.__name__, " file:", module.__file__ print "-" * 30 count = 0 for attr in module.__dict__.keys(): # 名前空間の内容を調べる print "%02d) %s" % (count+1, attr), if a
Macを使い始めてから、文字コードに悩まされる機会が増えました。ファイルを貰ったりすると、大抵EUCやShift-jisでうまく表示できません。各エンコーディングに対応しているエディタを使えば読むことはできますが、やっぱりターミナル上で表示できないと不便です。 対策として、iconvコマンドを使うとエンコーディングを変換することができます。 例えばtest.txtというファイルをeuc-jpからutf-8に変換したい場合、 $ iconv -f euc-jp -t utf-8 test.txt > test_utf.txtこのようにできます。 この方法の問題点 ファイル名を変更しないといけない 同じ(変換元の)ファイル名をそのままリダイレクトする*1と、ファイルの中身が空っぽになる 1度に1つのファイルしか変換できない 大量のファイルを変換したい場合は、以下のようなシェルスクリプトを利用す
えー、久しぶりにですます調です。本日の第2回PHP拡張勉強会でグダグダながらもちょこっと発表させていただいた、あのライブラリについての紹介です。 ダウンロードは以下からできます。 http://www.voltex.jp/downloads/mozo-php-20080324.tar.bz2 最新版はこちら >> http://voltex.jp/downloads/mozo-php-20080405.tar.bz2 2009-08-10 追記: 現在は Boost.PHP という名前で以下の場所で開発中です。 http://github.com/moriyoshi/boost.php なぜMozo.PHPを作ったのか Boost.Python という、Boost Project の一部である変態ライブラリがあるのですが、これは Python の拡張をおおよそ C++ とは思えないような書
cuSVM A CUDA Implementation of Support Vector Classification and Regression cuSVM is a software package for high-speed (Gaussian-kernelized) Support Vector Machine training and prediction that exploits the massively parallel processing power of Graphics Processors (GPUs). cuSVM is written in NVIDIA's CUDA C-language GPU programming environment, includes implementations of both classification and
HadoopDB An Architectural Hybrid of MapReduce and DBMS Technologies for Analytical Workloads. HadoopDB is: A hybrid of DBMS and MapReduce technologies that targets analytical workloads Designed to run on a shared-nothing cluster of commodity machines, or in the cloud An attempt to fill the gap in the market for a free and open source parallel DBMS Much more scalable than currently available parall
Code This page lists my software projects and smaller pieces of code that might be of use. Any questions or feedback to <menno@freshfoo.com>. IMAPClient IMAPClient aims to be a easy-to-use, Pythonic and complete IMAP client library with no dependencies outside the Python standard library. Features: Arguments and return values are natural Python types. IMAP server responses are fully parsed and re
はじめに Googleのインフラで実行されるクラウドサービス Google App Engineが2009年4月7日にJavaに対応しました。Javaエンジニアにも利用できるようになったGoogle App Engineを一緒に勉強して行きましょう! 今回は、GoogleのスケーラブルなデータストレージにアクセスするためのAPIを勉強したいと思います。 対象読者 ウェブサービス開発に興味のあるJavaエンジニア Google App Engine for Javaに興味がある方 必要な環境 「Google Plugin for Eclipse」がインストールされている、Eclipse 3.3(Europa)か3.4(Ganymede) 開発環境の構築手順については、第1回の解説を参照してください。 Datastore Java APIとは? Google App Engineではファイルシ
セールスフォースが採用しているマルチテナントアーキテクチャでは、すべてのユーザーが同一データベース、同一スキーマを共有しています。 では、個別に入力項目を増やすようなスキーマの変更を伴うアプリケーションのカスタマイズや、新たなテーブルを作成してそこに独自データを保存するようなアプリケーションの新規作成はできないのか? といえば、そんなことはなく、セールスフォースが提供するプラットフォームの上で、自由に項目の追加や新しいテーブルの作成が可能です。 全ユーザーでスキーマを共有しながら、しかし個別のカスタマイズを許容する。この一見矛盾する要件を、セールスフォースはどのように実現しているのでしょうか? (本エントリは「知られざる『マルチテナントアーキテクチャ』(2)~スケーラビリティのカギは組織ID」からの続きです。) 公開されているスキーマを見てみる ユーザーがスキーマを変更したり、新規テーブル
セールスフォースが採用しているマルチテナントアーキテクチャでは、すべてのユーザーが同一データベース、同一スキーマを共有しています。これによってインフラの共有が容易になり、非常に効率的な運用と低コストを実現しています。 (本エントリは「知られざる『マルチテナントアーキテクチャ』(1)~SaaSはみんな同じではない?」からの続きです。) しかし、それだけではスケーラビリティやアベイラビリティを実現することはできません。それらの実現には別の技術が併用されています。それはOracleのパーティショニング機能とパラレル機能による分散処理です。 パーティショニング機能の話をする前に、セールスフォースが採用しているデータベースの特徴を見てみましょう。 すべてのデータに振られる組織ID セールスフォースはすべてのユーザーが1つのデータベースを共有するマルチテナントアーキテクチャを採用しています。ということ
サーバを運用する際の問題の一つとして故障時の対応があります。高価なシステムを構築すればストレージはSANで構築し、サービスのフェイルオーバーも高価な商用ソフトを導入することで実現することは可能です。しかしながら、「そこまでコストをかけて構築しなくても、、、」といった場合もあるかと思います。そのような場合の解決策の一つとして、本編ではDRBD + Heartbeatというオープンソース・ソフトウェアを用いて、HA Clusterを構築する方法を解説します。以下、<host_m>と<host_s>という2台のサーバを用いた構成手順を紹介します。 DRBDとは、Distributed Replicated Block Deviceの略で、本家WEBサイトは http://www.drbd.org/ になります。具体的にDRBDは何をするものか?というと、パーティション
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く