スティルハウスの書庫の書庫

はてなダイアリーで書いてた「スティルハウスの書庫」を移転してきました。

メモ

Spannerお勉強メモ

Spannerお勉強メモです。かなり久々の技術系エントリだ。。朝起きてTwitterみてたら@ichiro_satoh先生のこんなつぶやきが。現時点ではGoogle Spannerの一番詳しい資料かも。berlinbuzzwords.de/sites/berlinbu…— ICHIRO SATOHさん (@ichiro_satoh) 6月 6, 20…

Google Cloud PlatformチームでSolutions Architectのお仕事をします #gaeja

昨年1月にGoogleに入社して以来ほとんどApp Engineとは関係のない仕事をしてきましたが、4/23よりCloud PlatformチームのSolutions Architectという職につくことになりました。GoogleのCloud products(App Engineをはじめ、Google Cloud SQL、Google Cloud …

ニュータウンLOVE!

液状化で一躍有名となった新浦安に住み始めて12年ほどになりますが、引っ越してくる前から数年くらい前まではよく都市公団(UR都市機構)の各所のニュータウンを歩いて回ってました。ニュータウンマニアです!新浦安のマリナイーストはもちろん、千葉ニュ…

#appengine タグから #gaeja タグに移りましょう!

久々の更新です!最近、Twitterの#appengineタグがスパムっぽいアカウントのつぶやきであふれて、あまり使い物になってませんでした。そんななか、@higayasuo さん: 今後 #appengine 関連の日本語のつぶやきは #gaeja を使うことにしましょうか #appenginej…

Google Megastoreのお勉強メモ #appengine

BrettさんのSTMに関する記事の中でGoogle Megastoreについて言及されていて、そのリンク先がハミルトン先生の2008年7月の記事(内で紹介されていたPhil Bernsteinさんのメモ)でした。つまりどうやらMegastoreに関する公開情報でGooglerのお墨付きなものはこ…

グローバルトランザクション/分散トランザクションについて

「グローバルトランザクション」という言葉の意味について、昨日の飲み会で議論になったので、まとめ。 グローバルトランザクションと分散トランザクション グローバルトランザクションは、分散トランザクションと同義です。グローバルトランザクションは複…

#appengine アプリの処理時間は「平均1秒以下」にすべし!重いのはTQへ!

ひがさんがつぶやかれてた件のソースです:Chat Time transcript for May 5, 2010 Q: Why am I seeing a lot of warning logs saying "Request was aborted after waiting too long to attempt to service your request"? A: As of release 1.3.1, there is …

#appengine で skiplist ってすごくね?

@koherさんのエントリ「Google App Engineでランキングやページングを実現する」はすごいです。。どうすごいのかは、時間があるときに改めてエントリを書きますが(もう寝なきゃ〜)、とりあえずはこの件で@kibayosさんからいただいた貴重な情報群のまとめで…

#appengine の30同時リクエスト制限が撤廃

ひがさんのつぶやき: Nick said: The simultaneous dynamic request limit was eliminated in a recent SDK #appengine http://bit.ly/blUr32 同時リクエスト制限を撤廃だと!?(ガタッご存じのとおりApp Engineではアプリケーションサーバー(App Server)が…

#appengine の未来はこうなる!

と釣りっぽいタイトルで、 App Engine Product Roadmapを簡単にレビューしたいと思います。久々に見たら、いろいろ追加されてた! 各項目毎に、私の勝手な予測(妄想)コメントを加えてみました。 SSL for third-party domains Google Appsで独自ドメインをA…

佐藤先生がErlang、Scala、Javaなどの並行処理を斬る!

ここ数日の佐藤先生のエントリが熱い! Erlang、Scala、Go、Javaなどの現代の言語(Erlangは古いか)における並行処理の扱い方について、それぞれの歴史的背景や意義、得手不得手などがわかりやすく紹介されてます。80年代から並行処理やオブジェクト指向を…

Solr+Flexはいい感じ

ここ2週間くらいはお仕事で全文検索サーバーApache Solrを使ってました。Solrは要するに「全文検索エンジンLuceneの機能をRESTで呼び出せるサーバー(Jettyベース)」です。今回、要件としてファセット検索をさくさく使いたいというニーズがあったので、RDB…

インデックステーブルについてMLで聞いてみた

App Engineのインデックステーブルについて、いまいち理解できてない部分や細かな疑問がいくつかあったのでMLで聞いてみました。 インデックステーブルの各行はどう構成されてる? How Entities and Indexes are Storedで説明されているEntitiesByProperty A…

STMよくわかりません><・その2

前回にひきつづきSTMをお勉強中。WikipediaのSTMの説明を読み直していたら、以下のような記述がありました。 2005年に、Tim Harris、Simon Marlow、Simon Peyton Jones そして Maurice Herlihy によって STM が Concurrent Haskell 上に構築された。これは任…

STMよくわかりません><

@ashigeruさん謹製のsmalltable_toyのソースを読み解く基礎知識として、Beautiful CodeのSubversion解説につづき、@ashigeruさんとの会話で教えていただいたSTM(Software Transactional Memory)の論文をちろっと読んでみました(pdfをkindleに入れて、子供と…

Google I/O 2010のApp Engine関連セッションの予定テーマまとめ

Google I/O 2010のセッション一覧が発表されてました(thx! > @shot6)さっそくApp Engine関連のセッションを抜き出してみましょう。 Building high-throughput data pipelines with Google App Engine / Brett Slatkin This session will cover how to buil…

LogCounterはどうでしょう?・実装編

元旦はSlim3の練習もかねてLogCounterを実装してみました。このカウンターは、 ユニークな連番を生成して返す(sharding counterのように集計専用ではありません) 追記ログで値を保持するのでスケールアウトする(はず) といった特徴があります。以前のロ…

appengine ja night #4のお知らせです

appengine ja night #4のお知らせです。今回はスピーカーに浅海さんと荒川さんをお招きして、App EngineによるDSL駆動開発やトランザクション処理といったコアなテーマについてそれぞれお話いただきます。また今回から「java」ではなく「ja」と名前を変えま…

LogCounterはどうでしょう?

お題:App Engineでカウンターを作る前提: カウント数を集計する用途だけでなく、ユニークな連番を振る用途にも使いたい 1つのエンティティをカウンター代わりに使うのは負荷集中に弱いので避けたい こんな実装はどうでしょう? MemcacheService#increment…

Smalltable、OODB、STM、分散バージョン管理

SmalltableのローカルのSQLiteは、既存のSQLプログラミング手法をそのまま使えてかつDatastoreの特性を生かせるという意味では便利ですが、しかしActionScriptやJavaScriptのオブジェクトをもとにSQL組み立てたりORMしたりするのってそもそも面倒です。なの…

Amazon AWSでUS West目指してたらハマった

Amazon EC2とRDSでサービスを構築しようとしてます。今月公開されたUS Westは国内からの遅延がUS Eastよりも数10msくらい低いと評判で、今回はUS Westですべて揃えようかな〜と思って作業を始めましたが、いろいろハマっておりますのでメモ。 RDSはUS Eastの…

Android/GAE Hack-a-thonに参加したメモ

Android/GAE Hack-a-thonに参加してきました。Android使いとApp Engine使いが集まり役割分担してなんか作るという面白イベントです。私はAndroid全然しらなくて対応携帯も持っていませんが、この機会に勉強したいなぁ〜と参加してみました(余談:携帯+サー…

NoSQLデータストアのデータモデル

首藤さんがNoSQLデータストア(おもにmemcached、Amazon Dynamo/Simple DB、Microsoft Azure、Google Bigtable)について、それぞれのデータモデルや特徴を大変わかりやすくまとめられてます:NoSQLデータストアのデータモデルこれはありがたや。。さまざま…

Amazon RDSの運用メモ

ただいまAmazon RDSで実運用環境を絶賛構築中! ドキュメントから運用や構成上で気になるところだけメモしました:http://aws.amazon.com/rds/faqs/ http://docs.amazonwebservices.com/AmazonRDS/latest/DeveloperGuide/index.html?Overview.BackingUpUpAnd…

Confluence+Jiraによるドキュメント制作ソリューション

あるお客さまから「開発チームと密接に連携を取りながらup-to-dateなドキュメントを効率的に制作したい」とのご要望をいただいたので、私の一番のお勧めとしてAtlassianの強力コンビConfluence(wiki/CMS)とJira(タスク管理/BTS)のソリューションを提案…

Paxosお勉強メモ

Paxosのお勉強メモです(以下、分散システムとか無知なのですごく勘違いしてる可能性ありますので要注意)Wikipedia: Paxos algorithm Paxos is a family of protocols for solving consensus in a network of unreliable processors. Consensus is the proc…

これはわかりやすいPaxos説明

Paxosってなんぞ…と思ってたのですが、kuenishiさんのわかりやすいスライドを見つけたました。しかもErlangで実装済み! おおざっぱには「タイブレーカーなくても稟議でコミット内容決める」って感じでした(合ってるかな?)。自分が提案した値をコミットで…

appengine hack-a-thon #1をやってみました

appengine hack-a-thon #1にお集まりいただいた皆さんありがとうございました。ちょっとhack-a-thonと名付けたのはおおげさでしたね。。六本木ライブラリーでみんなで集まって、六本木ヒルズ40Fから富士山を眺めながらめいめいApp Engine的コード書くという…

シングルプロパティインデックスとコンポジットインデックスの図

ひがさんからご指摘いただきました: @kazunori_279 @ITの記事でsingle property indexのnameがageに間違ってる@kazunori_279 composite indexのキーにはproperty nameは含まれないはず emp/D1/05のようにかんじ #appengineふむふむ〜、それぞれこんな感じで…

appengine hack-a-thon #1のお知らせです

週末にApp Engine的(Py/Java)な作業をしたい人が六本木ライブラリーでゆるく集まる会です。詳しくはこちらから:http://atnd.org/events/2111