タグ

2009年11月11日のブックマーク (7件)

  • ここが大変だよBigtableとGoogle App Engine

    ここが大変だよBigtableとGoogle App Engine:分散Key-Valueストアの命「Bigtable」(3)(1/2 ページ) RDBとは別の、クラウド時代のデータベースとして注目を浴びている「分散Key-Valueストア」。その命ともいえる、Googleの数々のサービスの基盤技術「Bigtable」について徹底解説 月間3000万PVの大規模サイトの運用費が月額4万円!? 月間3000万PV相当の膨大なトラフィックを楽々とさばく大規模サイトが、月額4万円弱で運用されている。 Google App Engine(以下、App Engine)が普及するにつれて、そんな驚愕の国内事例も登場しつつあります。GClueがApp Engine上で実装したmixiアプリモバイルモバイルには、1日100万PV以上のアクセスが集中している状態でもサービスのレスポンス低下やダウンは皆無

    ここが大変だよBigtableとGoogle App Engine
  • Windows PowerShell 入門(1)-基本操作編

    はじめに Windows PowerShell(以降、PowerShell)はシステム管理や自動化に役立つように設計された新しいコマンドラインシェルです。 しかし、ただのコマンドラインシェルではありません。 対話型シェルによるオペレーション シェルスクリプトの実行 を行うことができます。 PowerShellは.NET Frameworkを基に設計されており、コマンドの実行およびスクリプトにおいてその恩恵を十分に受けることができます。これにより、かつてない強力なシェル環境が登場したと言っても過言ではないでしょう。 PowerShellの操作を習得し、システム管理・運用を効率的に進められるようにしていきましょう。 対象読者 システム管理者 PowerShellに興味がある方 必要環境 .NET Framework 2.0以降 Windows PowerShell 対象OS Windows X

    Windows PowerShell 入門(1)-基本操作編
  • 新プログラミング言語「Go」をCentOSにインストールしてみた | zaru blog

    Googleから新プログラミング言語「Go」がリリースされて、LinuxMacに対応しているっていうことで、早速ものは試しでCentOSに入れてみた。 1:バージョン管理ツール「Mercurial」をインストール CentOSにMercurialが入っていなかったので、インストール。まず、easy_installコマンドが欲しかったので先にpython-setuptoolsをインストールする。 #yum install python-setuptools #easy_install mercurial これで、Mercurialが使えるようになった。 2:環境変数を設定 $GOROOT/$GOOS/$GOARCH/$GOBINを設定する。とりあえず、ホームディレクトリに「bin」ディレクトリを作っておく。 $cd;mkdir bin $export GOROOT=$HOME/go $ex

  • App EngineのEntityGroupを理解しよう - ひがやすを技術ブログ

    App EngineのEntitiGroupは、Keyの親子関係を利用して組み立てられたEntityの集まりです。 Entityとは、Bigtable上の1つの行で、ユニークに識別するためのKeyを持っています。 Keyは、種類をあらわすkindとAppEngineから自動的に採番されるidもしくはアプリケーション側で自由に決めることのできるnameで構成されます。 通常は、AppEngineの自動採番に任せますが、Emailのアドレスをキーに使いたい場合などは、nameを使います。kindはテーブル名のようなものだと思ってください。 Keyの親子関係は次のようにして作ります。 Key grandparentKey = KeyFactory.createKey("Grandparent", "しげお"); Key parentKey = KeyFactory.createKey(grand

    App EngineのEntityGroupを理解しよう - ひがやすを技術ブログ
  • NoSQL – SQLはもう古い?

    Photo by shindotv ここ最近、海外のブログで「NoSQL」という単語をちょこちょこと見るようになりました。 これは新しいデータベースのムーブメントで、「SQL=リレーショナル」ではないデータベースの事を指しています。 NoSQL DBサーバの有名な物は、Facebookがリリースした「Cassandra」、Erlangで書かれた「CouchDB」、日からは、mixiがリリースしている「TokyoTyrant」があります。 またGoogle App Engineでは、DataStoreというBigTableベースのNoSQLサービスが提供されています。 ある程度ユーザを集めたコンシューマ向けサービスは、大抵の場合パフォーマンスとの戦いとなります。 技術誌の中でも「スケールアウト技法」的な記事を目にすることが増えてきたことからも、多くのサイト運営者が、パフォーマンスの問題を抱

    NoSQL – SQLはもう古い?
  • Google App Engine入門:Datastore上で「ユニーク制限」を実現する方法

    Google App Engine のDatastoreには、通常のリレーショナルデータベースと比べた時にいくつかの制限があるが、その一つが「このプロパティの値は常にユニークでなければならない」という指定(ユニーク制限)ができないことである。 Invoice IDのように自動生成するものであれば、アプリケーション側でなんとかすることも簡単だが、メールアドレスやハンドル名など、ユーザーが入力するものになると、ユニークであることをきちんと判定した上でEntityを作ることが必要になる。 もちろん、単純に「有無をチェックして、なければ作る」というプログラムではスレッド間の競合に対応できないので、そこはトランザクションを使ってアトミックに処理をする必要がある。 App Engine上でトランザクションを実現するには、エンティティグループという仕組みを使って行うが、気をつけなければいけないのは、エン

  • App Engineのユニーク制限を正しく理解しよう - ひがやすを技術ブログ

    Google App EngineではRDBMSのようなUnique Indexをサポートしていません。ユニーク制限を実現する場合は、トランザクション中でKeyを使ったgetとputを組み合わせる必要があります。 ここでは、email addressがユニークだったらそれを確定してtrueを返し、そうでない場合にはfalseを返すコードを考えます。 最初にトランザクションを使わないコードを見てみましょう。KeyFactory.createKeyの最初に引数は、kindといってテーブル名みたいなものです。 public boolean putUniqueEmailAddress(String value) { DatastoreService ds = DatastoreServiceFactory.getDatastoreService(); Key key = KeyFactory.cr

    App Engineのユニーク制限を正しく理解しよう - ひがやすを技術ブログ