タグ

KVSに関するshowyouのブックマーク (19)

  • MongoDB全機能解説2

    The document describes MongoDB's GridFS specification for storing and retrieving files that exceed the BSON document size limit of 16MB. It explains that GridFS splits files into chunks, which are stored as individual documents, and maintains metadata about the file such as length, MD5, and filename in a separate collection. It provides examples of using the mongofiles command line tool to list, s

    MongoDB全機能解説2
    showyou
    showyou 2011/06/11
  • へ〜たのめも:Riak と Cassandra と HBase、あらまー! - livedoor Blog(ブログ)

    2010年05月25日 Riak と Cassandra と HBase、あらまー! Mozilla Blog Riak and Cassandra and HBase, Oh My!の勝手訳。各分散 KVS の特徴が分析されていて興味深い……と思って訳してみた。この無様なタイトルは Google 翻訳による。 Riak と Cassandra と HBase、あらまー! 我々は、SoCorro Crash プロジェクトにおいて HBase との統合を進めているが、その話はちょっと置いておいて、今回はメトリック・チームが巻き込まれている別のプロジェクトについて話をしよう。 Mozilla Labs Test Pilotは、実世界の Firefox ユーザをから集めたデータを分析して、ユーザ・エクスペリエンスを向上させるための実験をしたり、定量的データを集めたりするためのプロジェクトだ。 私

  • Cassandra vs MongoDB vs CouchDB vs Redis vs Riak vs HBase comparison :: Software architect Kristof Kovacs

    Hello, I’m Kristof, a human being like you, and an easy to work with, friendly guy. I've been a programmer, a consultant, CIO in startups, head of software development in government, and built two software companies. Some days I’m coding Golang in the guts of a system and other days I'm wearing a suit to help clients with their DevOps practices. While SQL databases are insanely useful tools, their

  • kumofs ストレージ API - tmtmsのメモ

    kumofs のストレージのAPIについて調べてみました。 元々 kumofs は configure 時にストレージを選択できるようになっていて、体部分とストレージ部分が API によりある程度分離されています。なので独自にストレージを作成することもそんなに難しくなくできると思います。 ストレージ部には21個の関数が必要です。関数は src/storage/interface.h で定義されています。 以下、各関数について説明します。関数名の「xxxxx」は通常ストレージ固有の名前を指定します。たとえば kumofs 標準のストレージである Tokyo Cabinet の Hash の場合は tchdb となっています。 嘘書いてあるかもしれないので、あまり信じない方がいいと思います。 ストレージ層に渡されるキーとデータはクライアントから指定されたものそのままではなく、kumofs 管

    kumofs ストレージ API - tmtmsのメモ
    showyou
    showyou 2010/06/02
  • id:shot6 の Cassandra の記事がわかりやすかったので,Ubuntu でやってみた! - 宇宙行きたい

    http://gihyo.jp/dev/serial/01/cassandra/0002 上記記事は Windows なので Ubuntu でやってみる. インストール ダウンロードして展開するだけ…… あと,環境変数も追加 $ cd ~/opt $ wget http://ftp.kddilabs.jp/infosystems/apache/cassandra/0.6.1/apache-cassandra-0.6.1-bin.tar.gz $ tar zxvf apache-cassandra-0.6.1-bin.tar.gz バージョンアップのためにシンボリックリンクも貼っておく $ ln -s ~/opt/apache-cassandra-0.6.1 ~/opt/cassandra 環境変数はこんな感じ export JAVA_HOME=/usr/lib/jvm/java-6-sun

    id:shot6 の Cassandra の記事がわかりやすかったので,Ubuntu でやってみた! - 宇宙行きたい
    showyou
    showyou 2010/05/11
  • Columnのtimestampとか、transactionについての話 - terurouメモ

    Cassandraをはじめたばっかりの時に自分の頭を整理するために書いたモデル図が他の人にも役に立ったようで、トラックバックがきていた。ありがたいことです。 で、トラックバック元のブログを読んでいたら、こんなことが書いてあった。 Columnの構成はシンプルで、name,valueとtimestampで構成されています。(中略)また面白いことにtimestampの時間は、クライアント型のtimestampを設定します。なので、サーバ側とちゃんと時間同期しておいてくださいねとのことです。思い切った割り切りですね。分散型DBってこんな感じなのでしょうか。 Cassandraのデータモデリング。或いはKeyspaceの設定方法 - プログラマになりたい このtimestampの話って結構重要だと個人的には思っている。前からブログに書こうかなーと思ってたので、反射的に書いておく。 Cassandr

    Columnのtimestampとか、transactionについての話 - terurouメモ
    showyou
    showyou 2010/05/10
  • HadoopでN-gramで転置インデックス作成

    Hadoopのサンプルコードと言えばwordcountぐらいしか見かけないということで,転置インデックスのサンプルを作ってみました. 転置インデックス作成をMapReduceのモデルで表すと以下になります.google論文に習った擬似コードで表します. Map: 単語ごとに文書名を出力しています. 単語の分割をfor each wordとしていますが,日語の場合単語の分割が問題ですが,今回は単純なN-gramで実装しました. map(String key, String value): //key: 文章名 //value: 文章の内容 for each word w in value: EmitIntermediate(w, key); Reduce: 重複を取り除くだけです.valuesでソートするとなお良いかもしれません reduce(String key, Iterato

  • Tokyo TyrantとテーブルDBでリアルタイム検索 - mixi engineer blog

    ドラクエは卒業して、もっと英語漬けをやっているmikioです。さて今回は、データベースサーバTokyo Tyrantとテーブルデータベースを使ってリアルタイム検索システムを構築する方法について語ります。 テーブルDBを分散させたい Tokyo TyrantでもテーブルDBがサポートされているわけですが、これはリアルタイム検索システムへの布石です。テーブルDBは任意のコラムにインデックスを張ることができ、時系列のコラムにインデックスを張ればその値によって古いコラムを効率的に消すことができます。チュートリアルの「Persistent but Expirable Cache」でもその方法を示しています。また、任意のコラムに分かち書きトークン方式もしくは文字N-gram方式で転置インデックスを張ることができます。これらを総合すると、最新のデータのみを保持してサイズと性能を一定に保ったインデックスを

    Tokyo TyrantとテーブルDBでリアルタイム検索 - mixi engineer blog
    showyou
    showyou 2010/05/06
  • Hadoop HBase操作サンプル(Hishidama's Hadoop HBase sample Memo)

    HBaseのテーブルは、qualifierの中はデータ追加で自動的に増やせるが、family(列)はテーブルを一旦使用不可にして項目追加を行わないと増やせない。 したがって変化の無いものを列(family)にする方がいいんじゃないかと思う。 (試験名の方を可変にしておけば、模試とか補習(苦笑)とかにも対応できるし) 準備:テーブルの作成 今回のサンプル用に、HBase Shellからcreateコマンドを実行するか、HBaseのテーブル作成APIを使ってテーブルを作成しておく。 HBase Shellの場合 hbase(main):001:0> create 'student','personal','suugaku','kokugo','rika','shakai','eigo','total5' HBase APIの場合 package jp.hishidama.hadoop.hbas

  • 列指向データベースCassandraにPythonで接続する

    Cassandraをインストールしてから日が開いてしまいましたが・・・ 分散データベース管理システムCassandraをDebianで動作させる Thriftのことを調べたおかげで、多少理解できた気がします。 PythonからThriftのライブラリ経由で接続し、データを操作してみます。 起動時にOutOfMemoryError 以前試したときのバージョンは0.4.2でしたが現時点で0.5.0に バージョンがあがっていました。 せっかくなので、バージョンアップして起動しようとすると・・・ # Listening for transport dt_socket at address: 8888 INFO - Sampling index for /var/lib/cassandra/data/Keyspace1/Standard1-1-Data.db INFO - Sampling inde

    列指向データベースCassandraにPythonで接続する
  • TwitterとDiggがNoSQLの「Cassandra」を選ぶ理由

    スケーラブルなデータベースを実現する手段として「Sharding MySQL plus memcached」がよく知られる方法だとは、1つ前の記事「MySQL+Memcachedの時代は過ぎ、これからはNoSQLなのか、についての議論」で紹介しました。 ちなみに「Sharding」(シャーディング)とは複数のデータベースにデータを分散して運用することで、ざっくりいえばShared Nothing的な分散データベース構成のことです(この記事で紹介する英文中には「Shared MySQL」(共有MySQL)との記述がありますが、これは恐らく「Sharded MySQL」(ShardされたMySQL)のミススペルではないと推測します)。 日で(たぶん)もっともMySQLについて詳しく解説してあるブログ「漢(オトコ)のコンピュータ道」のエントリ「さらにMySQLを高速化する7つの方法」では、Sh

    TwitterとDiggがNoSQLの「Cassandra」を選ぶ理由
    showyou
    showyou 2010/03/15
  • jugyo.org

    This domain may be for sale!

  • Web 時代の非リレーショナルデータベース: 第 3 回 Apache CouchDB で MapReduce フレームワークに基づく問いあわせを行う

    IBM Developer is your one-stop location for getting hands-on training and learning in-demand skills on relevant technologies such as generative AI, data science, AI, and open source.

    Web 時代の非リレーショナルデータベース: 第 3 回 Apache CouchDB で MapReduce フレームワークに基づく問いあわせを行う
  • WordCountを読む - 日記

    Hadoopに添付されているサンプルプログラムを読んでみよう!と言うか、来ならチュートリアルとか読むべきなんでしょうけど、英語なんでパス!必要に応じて眺める程度で。まずは、クラスの宣言。 public class WordCount extends Configured implements Tool { ... ConfiguredはConfigurationを持つもの全般を表すための抽象クラス。当然、Configurationのインスタンスをプロパティとして持つ。Toolインターフェースはコマンドラインで叩かれることを想定したrun(String[] args)メソッドをもつインターフェース。argsはコマンドラインオプション。もちろん、WordCountもコマンドラインから実行されるわけで、そのためのmainが実装されている。 public static void main(Str

    showyou
    showyou 2010/01/23
    Hadoop
  • kumofs を KVM 上の Debian(lenny) にインストールして動かすまで - なんとなく日記

    KVM on Debian(lenny) を使ったサーバを構築してみます. システムインストール 最初は virt-manager などで VM を作成.ホスト名は kumofs で標準システムのみに. 下準備 まずは基セットをインストール $ su - # aptitude install sudo vim lv openssh-server # update-alternatives --config editor There are 4 alternatives which provide `editor'. Selection Alternative ----------------------------------------------- 1 /bin/ed *+ 2 /bin/nano 3 /usr/bin/vim.tiny 4 /usr/bin/vim.basic Pr

    kumofs を KVM 上の Debian(lenny) にインストールして動かすまで - なんとなく日記
    showyou
    showyou 2010/01/20
  • 分散Key-Valueストア「kumofs」を公開しました! - Blog by Sadayuki Furuhashi

    分散Key-Valueストア kumofs を、日オープンソースソフトウェアとしてリリースしました! kumofs@SourceForge kumofs関連資料まとめ kumofsとは? kumofs(クモエフエス)は、実用性を重視した分散データストアです。レプリケーション機能を備え、一部のサーバーに障害が発生しても動作し続けます。単体でも高い性能を持ちながら、サーバーを追加することで読み・書き両方の性能が向上する特徴を持ち、低コストで極めて高速なストレージシステムを構築・運用できます。 kumofsの大きな特徴は、システムの構成の簡単に変更できる点です。システムを止めることなく、簡単な手順でサーバーを追加したり復旧したりできます。アプリケーションには一切影響を与えません。 またkumofsは、広く利用されている分散キャッシュシステムの「memcached」と互換性のあるプロトコルを実装

    分散Key-Valueストア「kumofs」を公開しました! - Blog by Sadayuki Furuhashi
    showyou
    showyou 2010/01/18
  • ubuntu に mongodb をインストール - with pymongo / vs couchdb

    一段落ついたので、couchdb に引き続き mongodb もインストールしてみた。環境は同じく VMWare 上の ubuntu。シングルサーバ、シングルクライアント (python) な環境で比較することに。 というのも、設定に誤りがあるためか、 couchdb が期待できるようなパフォーマンスが出なかったため。100 万件のデータを insert 処理するストレステスト (番バッチ処理環境を考慮) をしているのですが、途中で conflict -> socket error -> down になってしまう。途中 sleep を入れると socket error は出なくなるけど、それだと遅いのと、なんだか気持ち悪い。前ポストで書いたように、0.8.0, 0.11.0b, 0.10.0 で試したけど、結果は同じでした。何が悪いのだろう・・・。 気は取り直して、mongodb は期待

  • 54行で分散KVSを実装する(レプリケーション機能付き) - Blog by Sadayuki Furuhashi

    Ruby と MessagePack-RPC があれば、簡単なkey-valueストレージは簡単に作れます。54行で書けます(レプリケーションと負荷分散機能付き。サーバー38行、クライアント16行)。 簡単なKVSをベースにして、ログ集計や遠隔デプロイ、遠隔管理機能などの機能を追加していけば、ちょっと便利なサーバープログラムをサクサク自作できるハズ。 この分散KVSは、(keyのハッシュ値 % サーバーの台数)番目のサーバーにkeyを保存します。また、サーバーの名前順でソートしたときの「次のサーバー」と「次の次のサーバー」にデータをレプリケーションします。 すべてのサーバーで同じ設定ファイルを使います。サーバーごとの設定は引数を自分のホスト名に書き換えるだけなので、デプロイが容易です。 MessagePack-RPC for Ruby を使うと、分散しないkey-valueストレージ*1は

    54行で分散KVSを実装する(レプリケーション機能付き) - Blog by Sadayuki Furuhashi
    showyou
    showyou 2009/11/26
  • 追記型オブジェクトストレージ「Kastor」(pre-alpha) - Blog by Sadayuki Furuhashi

    Facebookで写真配信のために使われているストレージシステム「Haystack」に関する情報が公開されました。(Needle in a haystack: efficient storage of billions of photos) Facebookは最初はNFSを使っていたようです。しかし写真の1枚1枚をファイルとして保存していたため、ディレクトリエントリなどのinodeメタデータの総量がキャッシュに収まらないサイズになってしまい、一つの写真を保存したり取り出したりするのにHDDのシークが複数回発生していたのがボトルネックになっていたそうです。 (もしかしたら「NetAppは高すぎた」のがもっと重要だったかも知れません:Facebook、独自の写真配信ネットワーク、Haystackを完成―収益性の改善に寄与か?) シークの問題を軽減するために、profile用などの小さな写真はキ

    追記型オブジェクトストレージ「Kastor」(pre-alpha) - Blog by Sadayuki Furuhashi
    showyou
    showyou 2009/05/27
  • 1