MessagePackフォーマット仕様にTimestamp型を追加

MessagePackフォーマット仕様のPull Request #209をマージし、MessagePackにTimestamp型を追加しました。 ※この記事の英語版は XXX にあります(翻訳中) Extension型の型コード -1 として定義されているため、後方互換性が維持されています。つまり、既にEx…

続々・リトライと冪等性のデザインパターン - あらゆる操作を冪等にする方法

いつも心に冪等性。古橋です。リトライと冪等性のデザインパターンの完結編です。 だいぶ間が空いてしまいましたが! 最後に冪等性を実装する汎用的な実装手法についてまとめていきます。 パターン6:操作ログとリクエストIDでUPDATEを冪等にする 同じIDで…

日本OSS貢献者賞を受賞しました

このたび、第10回 日本OSS貢献者賞 を受賞いたしました。 非同期メッセージングライブラリ「MessagePack」、分散Key-Valueストア「kumofs」、ログコレクタ「Fluentd」、バルクデータローダ「Embulk」、Presto向けゲートウェイサーバ「Prestogres」など、大学…

Embulkでやりたいことリスト(2015年7月版)

バルクロード機能 1つの設定ファイルで複数ジョブを実行する Running multiple jobs using one config file · Issue #167 · embulk/embulk · GitHub 例えば users.csv と histories.csv の2つのファイルを、それぞれPostgreSQLにある users と histories の2…

Re: 論理削除はなぜ「筋が悪い」か

Kazuhoさんの論理削除はなぜ「筋が悪い」かを読んで。 UPDATEが発生しないテーブルならば、削除フラグを使った実装手法でも現在の状態と更新ログを別々に表現でき、結果として効率と過去の情報を参照できるメリットを簡潔に両立できるのではないか、という話…

Embulk 0.3 & 0.4 の新機能 - リジュームとJavaプラグイン

つい先日*1、Embulk の新しいメジャーバージョンを2つリリースしました。 これらのバージョンでは、データ転送ミドルウェア勉強会で得られたフィードバックを元に、リジューム機能、Javaプラグイン機能、そして プラグインテンプレートジェネレータ を追加し…

並列データ転送ツール『Embulk』リリース!

こんにちは。古橋です。 先日の*1 データ転送ミドルウェア勉強会で、新しいオープンソースツール Embulk をリリースしました。 Embulk, an open-source plugin-based parallel bulk data loader from Sadayuki Furuhashi Embulk は、リアルタイムなログ収集…

データ転送ミドルウェア勉強会

Treasure Data, Inc. 古橋貞之です。 来たる1月27日、新しいOSSツール Embulk をリリースします。EmbulkはFluentdのバッチ処理版のようなツールで、CSVデータやアクセスログなどの構造化データを高い信頼性で転送することができるコンパクトなツールです。 …

続・リトライと冪等性のデザインパターン - リトライはいつ成功するか

三度の飯よりエラー処理。古橋です。大変好評をいただいた序章リトライと冪等性のデザインパターンの続編です。 前回はほぼ前置きでしたが、今回は冪等でない操作を冪等にする具体的なテクニックもまとめていきます。 パターン2:エラーを区別してDELETEを…

リトライと冪等性のデザインパターン

リトライを肴に一晩酒が飲める古橋です。大規模なデータに触れることが日常茶飯事になっている今日この頃。この分野のおもしろいところは、いつまで経っても終わらないプログラムを簡単に作れてしまうことかもしれません。エラー処理、リトライそして冪等性*…

デシリアライズ速度の比較 ByteBuffer vs DirectBuffer vs Unsafe vs C

OpenJDK や Hotspot VM には sun.misc.Unsafe という内部APIがあり*1、これを使うと ByteBuffer.getInt や ByteBuffer.getLong よりも高速にバイト列から整数値をデコードできるという。これを駆使することで、Cで実装された拡張ライブラリに匹敵する速度を…

Presto 0.54を1台のサーバで起動する

Presto | Distributed SQL Query Engine for Big Data v0.54 を1台のサーバ上で動かす手順です。Mac OS X でも動きます(と言うよりMac OS Xを想定しています) JDK 7 が必要になるので、事前にインストールしておいてください。Oracle JDK(Mac OS X版)を…

Fluentd Casual Talks #3

Fluentd Casual Talks #3 でしゃべってきました。会場提供していただいた DeNA さん、主催の@tagomorisさんありがとうございましたm(_ _)m What's new in v11 - Fluentd Casual Talks #3 #fluentdcasual from Sadayuki Furuhashi Ustreamで録画されているの…

データの更新履歴をRDBMSからfluentdに流すfluent-plugin-sql

Fluentd Advent Calendar 9日目。担当の古橋です。 Fluentd v11の情報は Fluentd Casual Talks #3 at :D でお話しすることにして、今回はFluentdの大幅な性能向上を可能にするMultiprocessプラグインを紹介…しようと思っていたら@niku4i さんに先を越されて…

「分散システムのためのメッセージ表現手法に関する研究」 - 筑波大学大学院を卒業しました

このたび筑波大学大学院を卒業し、修士号を取得しました。卒業にあっては本当に多くの方々にご助力いただきました。この場を借りて御礼申し上げます。ありがとうございました。 現在は起業して、12月からアメリカに在住しています。新たな価値を生み出すべく…

MessagePack for Java ついに 0.6 リリース!

先日の fluent に引き続き、新しいソフトウェアのリリースです。 満を持して、MessagePack for Java 0.6 をリリースしました! 9ヶ月ぶりのメジャーバージョンアップです。 以前のバージョン 0.5 の API をすべて見直し、互換性を維持しながらも、数多くの機…

イベントログ収集ツール fluent リリース!

こんにちは。Treasure Data の古橋です^^; 先日の Treasure Data, Inc. 壮行会 で、イベントログ収集ツール fluent をリリースしました!Fluent event collector fluent は syslogd のようなツールで、イベントログの転送や集約をするためのコンパクトなツー…

MessagePack-Hadoop Integration (HBase勉強会)

Hbase勉強会(第二回)で発表したスライドを公開しました:MessagePack+Hadoop (HBase-study 2011-06-16 Japan) - Scribd MessagePackとHadoopを連携させるプロジェクトは、github の msgpack/msgpack-hadoop で進行中です。 HBase や Hive で、非構造化デー…

MessagePack IDL 仕様案

先日のMessagePackハッカソンで議論した、MessagePack IDL の仕様についてまとめます。 実際のユースケースを元に、大規模な分散アプリケーションまでカバーできる実践的な仕様を目指しました。 基本的な文法 IDLは、大きく分けて 型の定義 と サービスの定義…

第3回MessagePackハッカソン開催報告

4月3日、MessagePackハッカソン第3回を開催しました。 14人のユーザーと開発者が集まり、実際のユースケースを元にしながら多くの問題が解決(への方針が決定)しました。 リンク MessagePack-RPC Erlang(α版くらい) MessagePack for OCamlを公開しました …

Webサイトをgithubで管理してpush時に自動的に同期する方法

Webサーバに Subversion のサーバを立てておき、HTML や CSS を commit することでWebサイトを更新する方法は、良く知られているテクニック、らしいですね*1。更新の履歴を残すことができるし、ましてチマチマとFTPやsftpでアップロードするよりずっと簡単で…

Amazon EC2 で手元のホストとファイルを共有する

Amazon EC2 はVMを好きなタイミングで好きなだけ使うことができるので、複数のサーバを使う分散システムの検証環境として非常に使いやすい*1。費用を計算してみても、自宅でクラスタを動かすことを考えれば、十分安く上がりそうである。 しかし、VMを起動す…

共有ホームディレクトリ環境の管理方法

MacPorts や apt などのパッケージ管理システムでインストールできないアプリケーションやライブラリ、自分で書いたツールなどを、ホームディレクトリにインストールしたいことは良くある。 ホームディレクトリならroot権限が要らないし、rootを持っている場…

mplexでソースコードレベルメタプログラミング

Webアプリケーションを作るとき、HTMLを生成するテンプレートエンジンをよく使いますが、これはパラメータに応じて様々なコードを生成する自動生成ツールであると言えます。 mplexは、プログラムを生成するためのテンプレートエンジンです。 実は MessagePac…

MessagePack for PHP@Webホスティング

先日 phpのserializeを使うより高速でサイズもコンパクトに仕上げる「MessagePack」とPHP拡張 でも紹介されている MessagePack for PHP ですが、Webホスティングサービスにも標準で組み込まれ始めているようです: Joe’sウェブホスティング、高速シリアライ…

Kyoto Tycoon に MessagePack-RPC をプラグインして Java から使う

Tokyo Cabinet を始めとする Tokyo シリーズの作者として知られる平林幹雄さんですが、Tokyo シリーズに続く新製品として、Kyoto シリーズがリリースされています。 Kyoto Tycoon(以下KT)は、ネットワーク経由で使えるデータベースサーバで、Tokyo Tyrant…

世界の「NoSQL」開発者が東京に集結 - NOSQL afternoon in Japan

NoSQLと呼ばれる新型の分散データストアの開発者が一堂に会するイベント NOSQL afternoon in Japan が、2010年11月1日、楽天タワーで開かれました。 海外からは「Cassandra」のサポートを行う Riptano や、「MongoDB」を開発する 10gen、「Couch DB」の Clou…

高速メッセージングシステムMessagePack - 楽天テクノロジーカンファレンス2010

もはや先月のことですが、楽天テクノロジーカンファレンス2010で発表してきました。 MessagePackについて、かなり詳しく紹介しています。 MessagePack Rakuten Technology Conference 2010View more presentations from frsyuki.Ustream.tvの録画はこちら Me…

日本OSS奨励賞を受賞しました

このたび、独立行政法人 情報処理推進機構 日本OSS奨励賞を受賞いたしました。ITPro 他に受賞された方々の名前を拝見すると恐縮ではありますが、高く評価していただいたことを大変光栄に思います。 受賞理由は、「分散Key-valueストアである「kumofs」を開発…

MessagePack for Java 0.4 開発版リリース!

バイナリシリアライズ形式 MessagePack のJava版の最新版をリリースしました! 新しいAPIを大量に追加し、使い勝手が大幅に向上しています。 今回は開発版のリリースで、安定版のリリースはもう少し先になります。 こういうAPIの方が良いのではないか、ここの…