並び順

ブックマーク数

期間指定

  • から
  • まで

1 - 40 件 / 185件

新着順 人気順

kvsの検索結果1 - 40 件 / 185件

  • AWS、SQL互換の新問い合わせ言語「PartiQL」をオープンソースで公開。RDB、KVS、JSON、CSVなどをまとめて検索可能

    Amazon Web Services(以下AWS)は、SQL互換の新しい問い合わせ言語およびそのリファレンス実装である「PartiQL」をオープンソースとして公開したことを発表しました。 PartiQLはSQL互換の構文に最小限の拡張を施すことで、リレーショナル形式のデータベースだけでなく、KVSやJSONなどを含むNoSQLデータベースやCSVファイルなど、さまざまなデータソースに対して横断的に検索できる問い合わせ言語およびそのリファレンス実装です。 下記はPartiQLを発表したブログからの引用です。 Today we are happy to announce PartiQL, a SQL-compatible query language that makes it easy to efficiently query data, regardless of where or in

      AWS、SQL互換の新問い合わせ言語「PartiQL」をオープンソースで公開。RDB、KVS、JSON、CSVなどをまとめて検索可能
    • KVS系NoSQLのまとめ(Hibari、Dynamo、Voldemort、Riak編)

      序 章 ビッグデータの時代 第1章 NOSQLとは何か? 第2章 NOSQLのデータモデル 第3章 アーキテクチャの基本概念と技術 第4章 HadoopはNOSQL? 第5章 主なNOSQLデータベース製品 第6章 NOSQLデータベースの選択基準 第7章 NOSQLを使うビジネス 本連載は書籍『NOSQLの基礎知識』(リックテレコム刊、ISBN:978-4897978871)で解説されている内容から一部を抜粋し、本連載向けに一部再編集して掲載したものです。 書籍では、一般にNoSQLと呼ばれている各種データベース技術について、基本概念から主要なプロダクトの特性、ベンチマーク結果までを紹介しています。データモデルやアーキテクチャの違いといった基本概念から、各プロダクトの特徴を理解できる内容になっています。 本連載では、この書籍の内容から、主要プロダクトを紹介している第5章を抜粋し、そのエッ

        KVS系NoSQLのまとめ(Hibari、Dynamo、Voldemort、Riak編)
      • node/webosocketによるオンラインゲームの実装を考える / オンメモリ、KVS、RDBMS、圧縮プロトコル、そのゲームデザイン + 就活の話 - mizchi log

        派手で見栄えがする大規模なプロダクトを作ろう!っていうことで、一人でフルスタックなネトゲを作っている。大きなプログラムを書いても破綻しないようにテスト書きまくってテストファーストを心がけたり、Travis-CIによる継続的インテグレーションで頑張ったり。 というわけで作っているのはMMORPGなんだけど、ここで実装するのはまあ平均的なMMORPGを想像してもらいたい。自分がやろうとしているのは、モダンなOSSとさくらの安いVPSで、独学の学生一人でもフルスタックなネトゲみたいなのが組める、ということの実証。 なんでそんなことをしているかって言うと、一応就活中で、見栄えがするアプリ提出できるとおいしいなーっていう下心。 *追記* ここでは https://github.com/mizchi/wanderer のことを言ってるんだけど大規模リファクタリング中なのでここで言ってることは半分ぐらい

          node/webosocketによるオンラインゲームの実装を考える / オンメモリ、KVS、RDBMS、圧縮プロトコル、そのゲームデザイン + 就活の話 - mizchi log
        • 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
          • 他言語ユーザがRust言語をガチめに使っての雑感 - 分散KVSを書いてみて - - Qiita

            どうも ryo_grid です。 昨年はRustを覚えたいと思い、題材としてRESTインタフェースを持った分散KVS(実質はいわゆる分散ハッシュテーブル)を書いたりしました。 FunnelKVS: Rust implementation of autonomous distributed key-value store which has REST interfaces この記事では、他言語を使ってきた私が、経験のないRustを用いてそこそこのコード規模・複雑さのシステムソフトウェアを書いてみた上で、Rustについて感じたことを、独断と偏見で述べます。 Rustってなんか流行りそうな雰囲気あるけど難しいとも聞くし、どうなんだろ?と考えている方や、Rustガチ勢の方々に、「初学者はこう感じるんだな」「ここらへんに苦労するんだな」というところを伝えることで、Rustのスムーズな普及に少しでも寄

              他言語ユーザがRust言語をガチめに使っての雑感 - 分散KVSを書いてみて - - Qiita
            • S3は巨大なKVSなのでRailsのCache storeとしても使える | うなすけとあれこれ

              S3 is a Key-Value store Amazon S3 は、一意のキー値を使用して、必要な数のオブジェクトを保存できるオブジェクトストアです。 Amazon S3 オブジェクトの概要 - Amazon Simple Storage Service Amazon S3の基礎技術は、単純なKVS(Key-Value型データストア)でしかありません。 Amazon S3における「フォルダ」という幻想をぶち壊し、その実体を明らかにする | DevelopersIO Amazon S3の実体はKey-Value storeという事実は、既にご存知の方々にとっては何を今更というようなことではありますが、それでも初めて聞くときには驚かされたものです。 さて、Key-Value storeと聞いて一般的に馴染みが深いのはRedisでしょう。そして、RailsにおけるRedisの役割としてCac

                S3は巨大なKVSなのでRailsのCache storeとしても使える | うなすけとあれこれ
              • 分散KVSの使い方 - sdyuki-devel

                今流行のkey-value storageの利点と欠点など。小さいデータをたくさん扱うタイプで、単純なkey-value型のデータモデルを持つ分散KVSについて。 Webアプリをとりまく最近のKVS事情、雑感を読んで、ちゃんと整理して把握しておかないといけないな、と思ったので少し整理。 それは違うぞーという事があったらコメントくださいm(_ _)m ※2009-11-17 追記:現在、KVSという用語の意味は定義されておらず、使う人によって揺れています。ここで言うところの分散KVSは、Dynamo や kumofs や ROMA など を想定しています。 分散KVSの利点 スケールアウトできる 簡単にサーバーを追加して性能を上げられる 単体の性能が高い スキーマレス 最初は少ない台数で安く、後からサーバーを足してスケールアウト!という運用ができる。アプリケーションに影響せずに、ストレージ側

                  分散KVSの使い方 - sdyuki-devel
                • Webアプリをとりまく最近のKVS事情、雑感 - Tous Les Jours 攻防記

                  RDBの復権はしばらくないと思う 最近目にしたのは、「これからRDBが十分速くなっていくので、memcachedに代わってRDBがまた使われるようになる」という意見。これはしばらくの間は無いんじゃないかと思う。全データがオンメモリだったとしても、KVSはRDBより一桁以上速い(Memcachedで100,000req/sec出せるマシンで、MySQLのpkeyによる単純なSELECTをした場合、10,000req/sec出るかどうか)。SQLパーサやらなんやらを捨てない限りこの速さには対抗できない。RDBには、1コネクション1スレッドというモデルが持つ、接続数がスケールしないという制約もある。 また、memcacheプロトコルは、get_multiが使える。get_multiを効果的に活用した場合、RDBとの差はさらに広がると思う。 RDBで大丈夫なアプリも Viewキャッシュが効果的なア

                    Webアプリをとりまく最近のKVS事情、雑感 - Tous Les Jours 攻防記
                  • いまさら聞けないKVSの常識をHbaseで身につける

                    いまさら聞けないKVSの常識をHbaseで身につける:ビッグデータ処理の常識をJavaで身につける(3)(1/3 ページ) Hadoopをはじめ、Java言語を使って構築されることが多い「ビッグデータ」処理のためのフレームワーク/ライブラリを紹介しながら、大量データを活用するための技術の常識を身に付けていく連載 ビッグデータの要! KVSとは何なのか 「KVS(Key-Value Store)」とは、Key値を指定してValue値の格納や取得を行う方式です。それに対して、RDBではキー(プライマリキー)が必須ではなく、逆に複数のカラムをセットしてキーにすることもできます。 テーブル構造だけを見れば、KVSとRDBは似ています。例えば、RDBでプライマリキーと1つのBLOB型を持ったテーブルを作れば、KVSと同じような構造にもなります。しかし、RDBでKVSのまねごとをするのと、KVSとして

                      いまさら聞けないKVSの常識をHbaseで身につける
                    • KVSを使った高速配信Webサーバ·クリティカルスピード MOONGIFT

                      クリティカルスピードは〜のオープンソース・ソフトウェア。高速なレスポンスを行うWebサーバは誰しもが願う所だ。Googleがあれだけ大きく成長したのは検索のアルゴリズムはもちろんのこと、高速なレスポンスにも一因があったと思われる。欲しい情報がすぐに手に入るというのはとても気分がいい。 表示が速い! Webサーバで高速化を行うための手法は幾つか存在する。並列化したり、サーバのスペックを上げたり、ネットワークを強化すると言った方法の他、システム側でも対応できるものがある。その一つ、高速配信サーバのクリティカルスピードを紹介しよう。 クリティカルスピードの最大の特徴はKVS(キー・バリュー・ストア)をWebサーバとして使っていることだ。KVSとしてTokyoTyrantを採用しているが、今後はLuxIO、kumofs、ROMAといった他のKVSにも対応していくとのこと。WebサーバはPlack/

                        KVSを使った高速配信Webサーバ·クリティカルスピード MOONGIFT
                      • PHP7から不変配列がOPcacheに乗るのでKVSを置き換えられるかもしれないという話

                        PHPerKaigi 2021 (2021/3/27) 発表資料。補足記事:https://hnw.hatenablog.com/entry/2021/03/29/011242 Read less

                          PHP7から不変配列がOPcacheに乗るのでKVSを置き換えられるかもしれないという話
                        • [次世代DB編]分散KVSに重要なデータを置いてはいけない

                          分散KVS(キーバリューストア)は、RDBMSの代わりになると思ってはいけない。RDBMSでは当たり前だった機能の一部は、あきらめる必要がある。このため、重要なデータをむやみやたらと分散KVS上に置くのはやめた方がよい。 分散KVSであきらめなければならない機能には、次の四つがある、 ・トランザクション機能 ・排他制御機能 ・読み取り一貫性を保証する機能 ・スプリットブレイン対策機能 逆にいえば、これらを取り込まないことで、分散KVSはRDBMSではかなわなかった、無尽蔵なスケーラビリティーや、極端に短いレイテンシー(要求が返ってくるまでの遅延時間)による高パフォーマンスを実現できたわけだ。 ところが、使い方を間違えれば、たちまち問題が生じてしまう。とりわけ、業務システムにおける重要なデータを分散KVS上に置く場合は注意が必要だ。 トランザクション処理に支障 重要なデータとは、不整合や損失

                            [次世代DB編]分散KVSに重要なデータを置いてはいけない
                          • Consul KVSをバックエンドにしたリアルタイムダッシュボード #monitoringcasual - 酒日記 はてな支店

                            最近悩んでいることを解決する小さいアプリケーションを書いたので、monitoring casual talks #7 で発表してきました。 モニカジは毎回全員発表で濃い話がいろいろできて楽しいですね! Consul KV Dashboard // Speaker Deck GitHub - fujiwara/consul-kv-dashboard: Consul KVS based dashboard web application. 概要はスライドにありますが、Consul KVS に保存された値をいい感じにまとめて(リアルタイム更新で)見せることのできる、Go + React.js でできた小さな Web application です。 ConsulのREST APIに値を送る(curlで十分)だけで、現在の各ホストで発生した値を画面でリアルタイムに更新しつつ閲覧できます。 Consu

                              Consul KVSをバックエンドにしたリアルタイムダッシュボード #monitoringcasual - 酒日記 はてな支店
                            • [次世代DB編]分散KVSで正規化をしてはいけない

                              クラウド上のデータベースとして、分散型のキーバリューストア(分散KVS)を用いることが多くなった。分散KVSは、スケーラビリティーに優れており、特にユーザー数が多いシステムでは利用価値が高い。 ただし、分散KVSにはいくつかの制約があり、システム開発に利用する際には、これまでの“RDBMS脳”をいったんリセットする必要がある。中でも、RDBMSでは真っ先に考慮していた「正規化」については、分散KVSでは原則として行ってはいけない。 分散KVSの四つの特徴 なぜ分散KVSでは正規化をしてはいけないのか。これを理解するには分散KVSの特徴を押さえる必要がある。分散KVSには、大きく四つの特徴がある(図1)。 一つは、分散KVSでは問い合わせにキーを使って、バリュー(値)を取得することだ。データ構造が単純なので、データの取り出し時間が短くて済む。PerlやPHPの連想配列や、JavaのMap、C

                                [次世代DB編]分散KVSで正規化をしてはいけない
                              • YappoLogs: KVSでORマッパーを使うという事

                                KVSでORマッパーを使うという事 ケイレキ.jpの中でケイレキ.jpに招待して欲しい人を呼びかけても絶賛スルーされてるYappoです。さて今回は今巷で大人気のKey Value StorageでORマッパーを使う事についてお話するのじゃ。 一般的にORマッパーとはオブジェクトとリレーショナルデータベースをマッピングする為の仕組みの呼び名だと言うのは知られている所です。はい、そうするとKVSってのはハッシュデータベースであるわけなのでおかしいですね。今回の話はData::Model::Driver::Memcachedを使う事を前提としてるので問題が無いのです。なぜなら「data/object mapper」とか書いてあるから。 いわゆるPerlなORマッパーってのは行データをHASHで管理します。それはRDBが一般的に表形式でデータを管理しているからなんだと思います。なんでKVSをオブジ

                                • Redis入門 インメモリKVSによる高速データ管理

                                  Redis入門 インメモリKVSによる高速データ管理 Josiah L. Carlson, 長尾高弘(訳) KADOKAWA/アスキー・メディアワークス 3,740円 (3,400円+税) RDBに代わる高速なデータ管理システムであるRedisについて、基礎から、リアルタイムデータの前処理、インメモリ・データセットの管理、pub/sub(パブリッシュ/サブスクライブ)と設定まで解説。 関連サイト本書の関連ページが用意されています。 Redis入門Example code from the book内容紹介Redisとは「remote dictionary server」から名付けられたオープンソースのキーバリューストア(KVS)でNoSQLに分類されるものです。すべてのデータをメモリ上に保存するため処理が極めて高速です。VMwareがスポンサーに付き、Salvatore Sanfilipp

                                    Redis入門 インメモリKVSによる高速データ管理
                                  • 開発メモ: もし自営業の男子プログラマがKVSで「ブログサービス」を書いたら

                                    Webサービスの典型例でありCMSの典型例であるブログサービス。それを実装するための指針が示せれば、その他のサービスを開発する際にも大いに参考になることだろう。 データ構造 単純なブログサービスのデータノードとしてKyoto Tycoonのサーバ群を用いることを想定する。ブログの個々の記事は以下の属性を持つものとする。 著者のユーザID(uint32) 投稿日時(uint32) 題名(text) 本文(text) コメントリスト(シーケンス) 各コメントは、コメントした人のユーザIDと本文からなる データノードに対する問い合わせは、「あるユーザの最新記事を降順で5件くれ」というのが典型である。「降順で」という順序に対する要求があるのでB+木を選択し、連想配列のキーは、ユーザIDと投稿日時を連結したものとする。単純化のために、各々を10桁の10進数文字列をコロンで区切って並べて、全体で21バ

                                    • ジェミナイ、分散KVS「Cassandra」を使ったリアルタイムログ解析システムをOSS化

                                      ジェミナイ・モバイル・テクノロジーズは2011年3月3日、リアルタイムログ解析システム「Flume-Cassandra Log Processor」をオープンソースソフトウエア(OSS)として公開した(配布サイト)。大量のシステムログを瞬時に分析して、グラフィカルなレポートを作成できる。ログ保存には、OSSの分散キー・バリュー型データストア(KVS)「Cassandra」を使用する。 Flume-Cassandra Log Processorでは、監視対象のサーバーで発生したイベントのログを、1秒以内にストレージであるCassandraに保存する。Cassandraは書き込みが高速な分散KVSで、サーバーの台数に比例して、ストレージ容量とI/Oを拡張できる。そのため、クラスターのサーバー台数を増やすことで、数百Tバイトのログの格納が可能になるとしている。ログの分析機能やレポート作成機能のほ

                                        ジェミナイ、分散KVS「Cassandra」を使ったリアルタイムログ解析システムをOSS化
                                      • GoとgRPCでKVS的なものを作ってみた - 小野マトペの納豆ペペロンチーノ日記

                                        正月で時間があったので、以前から触ってみたかったgRPCをGo言語から使い、キー・バリュー・ストアのようなものを作ってみた。 KVSといっても、GoのmapへのGet/Put/Delete/ScanをgRPC経由で叩けるようにしただけのもの。それだけだとあまり面白く無いので、gRPCらしく、Watch機能をつけてmapへの更新を監視できるようにした。 github.com 個人的には、HTTP/1.1 + JSON APIと比べた時のgRPC(HTTP/2 + ProtoBuf)のメリットや違いが気になっていたので、そのあたりを気をつけながら書いた。 開発の手順 サービス定義 まずはProtocol Buffers 3でKVSのサービスを定義する。サンプルを見ながら適当に書いた。 grpc-kvs/grpc-kvs.proto at master · matope/grpc-kvs · G

                                          GoとgRPCでKVS的なものを作ってみた - 小野マトペの納豆ペペロンチーノ日記
                                        • NoSQLメモ(Hishidama's NoSQL(KVS) Memo)

                                          ちなみに、MySQL・PostgreSQLはRDBの名前、PL/SQLはOralceの独自言語、psqlはPostgreSQLの対話型ツール(SQL*PlusはOracleの対話型ツール)。 分散Key/Valueストアの特徴 キーバリューストア(key/value store・KVS)は、キー(key)を指定して値(value)を保持・取得できるデータベース。 って言うと、どのDBもそうじゃん!(爆) KVSもRDBも“どちらもDBだから”という理由で比較されるけれども、構造や出来る事を考える上では、KVSはマップ(連想配列)と対比して考える方が分かりやすいと思う。 乱暴に言うと、KVSは、ファイルシステム上に置かれているマップである。 (古くからこの業界にいる方は、「KVSはISAM・VSAMだ」とおっしゃっている模様。確かIBMの汎用機(メインフレーム)で使われていた用語だったかな)

                                          • インメモリKVSのRedisについて – Rest Term

                                            * wiki(Tech Note)のページ追加 このエントリーの内容を整理してwikiにもRedis関連のページを追加しました。 Redis – Tech Note Redis is an open source, advanced key-value store. It is often referred to as a data structure server since keys can contain strings, hashes, lists, sets and sorted sets. インメモリKVSのRedisを少し触ってみました。 さくらVPS(CentOS 5.6)にインストールしようと思ったのですが、yumのレポジトリだと今は古いバージョンしか入れられないようなのでソースからビルドしました。手順は公式の通りに。(参照: Download – Redis) また、/

                                              インメモリKVSのRedisについて – Rest Term
                                            • 高速データ管理!インメモリ KVS の Redis を使ってみた | DevelopersIO

                                              はじめに KVS (Key-Value Store) とは? KVS とは Key-Value Store の略で、ざっくり言うとキーと値の組み合わせでデータを管理するしくみのことです。 RDB (リレーショナル・データベース) に代わるデータ管理手法 (NoSQL) のひとつで、近年注目を浴びています。 Redis は インメモリ型の KVS です。インメモリ (オンメモリとも呼ばれる) とはデータをハードディスクなどには書き込まずメモリ上で管理するしくみのことで、RDB などに比べ非常に高速にデータを出し入れできるという特徴があります。ちなみに「remote dictionary server」の略らしいです。 今回は Redis をインストールして Ruby, Java, Node.js から使うまでの流れを超ざっくり紹介したいと思います。 Redis のインストール Mac OS

                                                高速データ管理!インメモリ KVS の Redis を使ってみた | DevelopersIO
                                              • KOSHIGOE学習帳 - [KVS][Redis] Redis 概要

                                                Key-Value Store の Redis について、公式サイトの README を参考に概要をつかむためのメモ(ほぼ、簡易な訳のみ)。 redis - Project Hosting on Google Code README に入る前に、プロジェクトサイトのトップページに書かれている特徴から、いくつか抜粋。 Posix システム向けに ANCI-C で書かれている 対応言語 Ruby (+) Rack::Session と Rack::Cache を Redis に対応させたものもある (+) DataMapper の Redis 用アダプタがある Python Twisted Python PHP Erlang Tcl Perl Lua JAVA Scala Clojure Redis はデータベース Redis はキーと値のペアからなる辞書を実装した非常にシンプルなデータベース

                                                • シンプルな構造で拡張性と可用性を保持するKVS「Riak」--Hadoopとも融合

                                                  印刷する メールで送る テキスト HTML 電子書籍 PDF ダウンロード テキスト 電子書籍 PDF クリップした記事をMyページから読むことができます 「Riak」はNoSQLの中でもキーバリューストア(KVS)に分類され、リレーショナルデータベース(RDB)のような複雑なデータの取り扱いやトランザクションの仕組みを持たない一方で、そのシンプルなデータ構造をベースにした高い拡張性と可用性を特徴としています。ここではRiakのメリットと技術的な概要を説明し、いくつか代表的なユースケースを取り上げてご紹介します。 コンシステントハッシュで分散させる Riakは米Basho Technologiesによって2008年に開発が始められ、オープンソースソフトウェア(OSS)として実装が進められてきました。Riakは基本的なアーキテクチャとしてAmazon Web Servicesの「Dynamo

                                                    シンプルな構造で拡張性と可用性を保持するKVS「Riak」--Hadoopとも融合
                                                  • Bigtableと分散KVS - スティルハウスの書庫の書庫

                                                    首藤さんがUNIX managineに「key-valueストアという名前には、キーと値のペア(key-value pair)を格納するデータ格納ソフトウェアというくらいの意味しかない」と書かれていたように、KVSにはRDBのようなベースとなるデータモデルとか定義があるわけじゃありません。むしろRDBへのアンチテーゼとして登場している様々な非リレーショナルなデータストアを象徴するキーワードとして使われるケースが多いと思います(そういった意味でNoSQLっていう表現は的を射てますね)。 なので「Bigtableが分散KVSなのかどうか」という問いは、KVSの定義が曖昧な以上あまり意味のある問いではありませんが、しかし様々なKVS実装とBigtableは何が違うのかを知るきっかけとして気になりました。 古橋さんの分散KVSの使い方より: ここで言うところの分散KVSには、BigTableやCa

                                                      Bigtableと分散KVS - スティルハウスの書庫の書庫
                                                    • 簡単にP2Pの分散型ストレージやKVSを試せる「Hypercore Protocol」を使ってみた

                                                      複数のコンピューター間で直接データを送受信するP2Pは、従来のクライアント・サーバー構造が抱える「サーバーへのアクセス集中」や「中央集権」などの問題を解決する技術として注目を集めてきました。P2Pはデータを分散して保存できる点が特徴であり、ビットコインなどの暗号通貨やBitTorrentなどで活用されています。オープンソースソフトウェアの「Hypercore Protocol」を使うと、そんなP2Pによる分散型ストレージやKVSを無料で簡単に利用できるとのことなので、実際に使ってみました。 Hypercore Protocol https://hypercore-protocol.org/ Hypercore Protocolは「Hypercore」と呼ばれる機能を基盤として、分散型ストレージの「Hyperdrive」やKVSとして使える「Hyperbee」などの機能を含むツール群です。基

                                                        簡単にP2Pの分散型ストレージやKVSを試せる「Hypercore Protocol」を使ってみた
                                                      • 分散KVSの「etcd」、Cloud Native Computing Foundationのインキュベーションプロジェクトに

                                                        分散KVSの「etcd」、Cloud Native Computing Foundationのインキュベーションプロジェクトに Kubernetesなどの開発をホストするCloud Native Computing Foundation(CNCF)は、オープンソースとして開発されている分散キーバリューストア「etcd」(読みはエトセディー)の開発がCNCFのインキュベーションプロジェクト(育成段階のプロジェクト)になったことを発表しました。 etcdはもともとCoreOS(現在はRed Hatが買収)がコンテナのクラスタの構成情報や状態などを管理するために開発した分散キーバリューストアです。 ネットワーク上に分散した多数のノードから構成されるクラスタでは、ノードの障害やネットワークの分断に対する強い耐性を持ちつつ、クラスタの情報を管理するために多数のノードからの書き込みや参照を高速に処理で

                                                          分散KVSの「etcd」、Cloud Native Computing Foundationのインキュベーションプロジェクトに
                                                        • 楽天、Rubyベースの分散KVS「ROMA」のソースを公開 | gihyo.jp

                                                          10月24日、楽天株式会社本社にて開催された楽天テクノロジーカンファレンス2009内にて、楽天が独自開発するRubyベースの分散Key Value Store「ROMA」の公開が発表された。 ROMAは、github上にてGPLv3のもとオープンソースにて公開されている。 ROMAはすでに楽天のサービス「楽天トラベル」の一部機能にて利用されており、今後はROMA自体のブラッシュアップなどを目的に、オープンソースとして公開された。 ROMAについて発表を行った楽天技術研究所シニアサイエンティスト西澤無我氏。同氏のプレゼンテーションは立ち見が出るほど満席だった。また、途中楽天技術研究所フェローまつもとゆきひろ氏が登場するなど、会場が盛り上がった。 ROMA URL:http://github.com/roma/roma/

                                                            楽天、Rubyベースの分散KVS「ROMA」のソースを公開 | gihyo.jp
                                                          • 開発メモ: KVSとシグナル機構でジョブキューを実現する

                                                            いわゆるkey-value storeを使っている際に、レコードの挿入もしくは更新を検知して即座に何らかの処理を行いたくなることはないだろうか。俺はあんまりないけど、結構そういう質問が来るので、きっと巷にはそういう要求があるのだろう。Kyoto Cabinetでそれを実現してみた。 ジョブキュー もうちょい具体的な例を挙げると、ジョブキューである。ここで、「foo」という名前のタスクを考えてみる。読み出し側(ワーカ)は、適当な名前をつけた条件変数を常に監視していて、そこにシグナルが飛んできたら即座にレコードを取得して処理を行いたい。しかし、「一定の間隔毎にレコードの検索を繰返して発見したら処理を行う」というポーリングスタイルにはしたくない。操作にどうしてもタイムラグが出るし、ポーリングのための無駄なトラフィックが発生するからだ。 シグナル待機処理と該当レコードの取得処理を行う擬似コードは以

                                                            • Community Blog - CDBを利用した簡易KVS - ログ処理編

                                                              大量のリクエストを捌くWebサイトを構築するには、さまざまなノウハウがあります。例えばオライリーの書籍『ハイパフォーマンスWebサイト』では、クライアントに配信するコンテンツを最適化することでパフォーマンスの向上を図っています。今回は、Pythonを使って月間10億を超える(!)リクエストを捌いている、株式会社クロスリスティングの方に、そのノウハウの一部を寄稿していただきました。 また、本記事の内容はPython Hack-a-thon 2010.07でのプレゼンテーションを元にしています 自己紹介 現在、私はクロスリスティングという会社で、広告配信システムとか、その周辺の新規商品関連の研究開発をやっています。メインのプログラミング言語はPythonです。自社でのシステム開発は基本的に全てPythonを使っています。自分は研究開発的なポジションですが、技術チームが開発しているプロダクション

                                                                Community Blog - CDBを利用した簡易KVS - ログ処理編
                                                              • 楽天が独自開発したRuby版分散KVS「ROMA」を実サービスに投入

                                                                楽天は2009年8月27日,同社が独自に開発した分散処理基盤ソフトウエア「ROMA(Rakuten On-Memory Architecture)」を実サービスに導入した。ROMAは,同社の研究開発部門である楽天技術研究所が開発した,分散キー・バリュー型データストア(KVS)と呼ばれるソフトウエア。Rubyで記述されている。 ROMAを導入したのは楽天トラベルの閲覧履歴機能「最近見た宿」。楽天では今回,同機能をモバイル機器に拡張。パソコンとモバイル機器両方のアクセス履歴を統合して表示させるために高速にデータを処理する必要があり,ROMAを利用したという。 分散KVSとは,複数のサーバーに分散してデータを保持するための基盤ソフトウエア。分散KVSにはmemcachedやAmazonのDynamoなどがあるが,ROMAはそのRuby版である。ひとつのデータを複数のマシンに複製して持つことで障害

                                                                  楽天が独自開発したRuby版分散KVS「ROMA」を実サービスに投入
                                                                • 高密度小池 / KVS を使って Web アプリケーションを作ることについて

                                                                  KVS を使って Web アプリケーションを作ることについて KVS を使って Web アプリケーションについて、一般論。 従来 KVS は、キャッシュや特に更新が激しいデータを保存することに主に用いられて、メインのストレージには RDBMS を使うことが多かったけど、 KVS をメインのストレージとするアプローチも最近いくつかある。 KVS にデータを保存するという場合、 Value にシリアライズしたデータをぶちこむというケースが多いのではなかろうか。そうすると、標準状態では、キーでしか検索出来ないので、インデックスを転置するということになる。 インデックスの転置先としては、 Facebook や SimpleResource でやっているように、 RDBMS に転置するというやり方や、 Cassandra 採用前の Twitter のように KVS に転置するというやり方があ

                                                                  • [次世代DB編]異なる分散KVS間でデータ移行してはいけない

                                                                    分散型のキーバリューストア(分散KVS)には、オープンソースソフトや商用のもの、サービスとして提供されるものなど、さまざまな種類がある。これらをすべて同じだと思ってはいけない。その構造や特徴はバラバラであり、ある分散KVSのデータは別の分散KVSに移行するのは困難だ。 既存のRDBMSの資産を分散KVSに移行するのが容易ではないことはよく知られている。同様に分散KVS間の移行もかなり難しい。安易に移行できると考えていると、苦労することになる。 大きく異なるテーブル構造 現在、分散KVSと呼ばれるデータベースには、以下のようなものがある。 ・Amazon SimpleDB(Amazon) ・Apache Cassandra(Apache) ・BigTable(Google) ・Flare(GREE) ・kumofs(えとらぼ) ・memcached(Danga Interactive) ・R

                                                                      [次世代DB編]異なる分散KVS間でデータ移行してはいけない
                                                                    • 分散KVS「kumofs」、元ミクシィCTO設立のえとらぼがOSSとして公開

                                                                      えとらぼは2010年1月18日、分散キー・バリュー型データストア(KVS)の「kumofs(クモエフエス)」をオープンソース・ソフトウエア(OSS)として公開した。えとらぼは、SNS(ソーシャル・ネットワーキング・サービス)mixiを開発した元ミクシィCTO(最高技術責任者)の衛藤バタラ氏(関連記事)が設立したベンチャー企業である。 分散KVSは、大量のデータを多数のサーバーに分散して保持するための基盤ソフトウエア。kumofsは、えとらぼが運営する写真ストレージサービス「Ficia」で使用している。また、InteropTokyo 2009 クラウドコンピューティングコンペティション(クラウドコン)で優勝したソフトウエアでもある(関連記事)。データの複製を複数サーバーで保持することで、一部のサーバーに障害が発生してもサービスを継続できる。またサービスを止めることなくサーバーの追加や交換もで

                                                                        分散KVS「kumofs」、元ミクシィCTO設立のえとらぼがOSSとして公開
                                                                      • 分散KVS設計の苦労ポイントTop 4 - レベルエンター山本大のブログ

                                                                        さて信じられないDB文化「固定長DB」でもあうんです。大規模コンシューマ向けサービスのRDB設計が、割とウケたので分散KVSの導入の話も書こう。 前エントリのブコメなどでもKVSでいいんじゃね?ってあった。 たしかに分散KVSは素晴らしい発明品だと思う。しかしながらRDBと同じように使ってはいけないしRDBの代替と考えてもいけない。 「KVSでいいんじゃね?」ってなノリで導入すると痛い目を見る。 RDBはよくできた製品である。RDBを正しく設計して使えば良いのだ。 RDBには人類がこの数十年で蓄積した沢山のノウハウがある。 KVSをやってみるとRDBの素晴らしさを改めて再認識することが多々あるだろう。 僕らは検討中、何度となく「RDBでいいんじゃね?」と口にした。 とは言えKVSも面白く、意義深い。要は使い分けである。 自分で言っていながらなんと多方面に気を使った回りくどいエントリだろう。

                                                                          分散KVS設計の苦労ポイントTop 4 - レベルエンター山本大のブログ
                                                                        • NOSQLの新顔、分散KVS「okuyama」の機能

                                                                          NOSQLについて解説した前回の記事は、いかがだったでしょうか。今後のアプリケーションでは、増え続けるデータを扱うことが非常に多くなると思います。前回の記事が、こうしたケースに適した新たなストレージの1つとして、NOSQLを理解するきっかけになっていたら幸いです。 連載2回目の今回は、NOSQLの1つである「okuyama」の全体概要と、機能的な特徴を紹介します。 1. 「okuyama」の概要 okuyamaは、まだ聞きなれない方も多いかと思いますが、筆者が開発している分散キー・バリュー・ストアです。2009年12月ごろから開発を始めました。現在はSourceforge.jpにて公開しています。もともとは学習を兼ねて作成したため、一部のログ・ライブラリなどを除き、すべて1から実装しました。2010年1月にファースト・リリースを行い、現在はバージョン0.8.6となっています。 以降は、ok

                                                                          • [D12] 日立だからこだわる ~一貫性を追求した日立のインメモリ分散KVS~ by Masakata Kawanishi

                                                                            [D12] 日立だからこだわる ~一貫性を追求した日立のインメモリ分散KVS~ by Masakata Kawanishi

                                                                              [D12] 日立だからこだわる ~一貫性を追求した日立のインメモリ分散KVS~ by Masakata Kawanishi
                                                                            • XilinxがIBM POWER8とFPGAをつなげてKVS作った話 - Qiita

                                                                              IBMのPOWER8が昨年8月に発表されたとき、ひときわ怪しかったのがCAPIなる機能。 From https://twitter.com/Daniel_Bowers/status/372101503936253952 CAPIはCoherence Attache Processor Interfaceの略で、外部ハードウェア上のメモリとCPUキャッシュ間のコヒーレンス(整合性)をものっすごい高帯域で維持してくれるインタフェース。そして注目すべきは、その外部ハードウェアとして左下にちらっと「FPGA or ASIC」と書かれていること。つまりIBMは、POWER8を外部のFPGAやASICとつないで、それをほとんどCPUの一部分のような速度で使うための仕組みを用意した、というわけだ。 これを見て、うーむ、こいつはPOWER8とFPGAの組み合わせで何か面白いもの出してくるな! とニラんでと

                                                                                XilinxがIBM POWER8とFPGAをつなげてKVS作った話 - Qiita
                                                                              • KVSアルファテストサービスシステム構成について

                                                                                マルチテナント化の実現 2010/9/27現在で、12ユーザのFlareインスタンス(テスト用も含む)がこの6台上で稼動しています。 同一のサーバ上で複数のユーザを収容するためには、データの分離やアクセス制御を適切に行う必要があります。これには、以前ご紹介したポート番号を分けて複数デーモンを起動する方式と、お客様に提供するポート番号毎に接続元のIPアドレスを制限する方式を組み合わせることで実現しています。詳しくは以下のブログをご覧ください。 ▽ Flareを使う(マルチテナント化編) https://research.sakura.ad.jp/2010/08/10/flare-multi/ Flareの設定 Flareのインデックスサーバ、ストレージサーバはそれぞれ以下のような設定を行っています。 インデックスサーバの設定例(flarei.conf) data-dir = /home/fl

                                                                                  KVSアルファテストサービスシステム構成について
                                                                                • dodaサイトで「KVS with Debezium導入」に挑戦!! - techtekt

                                                                                  みなさん、こんにちは。dodaのサイト開発をしているエンジニアの佐藤です。 今回、dodaサイトで「KVS with Debezium導入」に挑戦し、さまざまな知見を得られたので、その経験を記事にしました。 この記事のサマリー Debeziumを本番環境へ適用することに挑戦 本番適用するも問題が発生 Debeziumを断念し、独自のデータ転送を実装 結果的に知見を得ながらKVS導入を達成! <挑戦で得られた知見> なぜKVSを導入したのか? 数億のレコード数を持つテーブルからSQL発行でデータ取得していた機能に対し、以下2つの目的をもってKVSを導入しました。 画面表示の高速化 アクセス頻度の高いテーブル(RDB内)に対する負荷軽減 対象画面について イメージが湧きやすいようにKVS導入の対象画面について、簡単に説明します。 「企業からのオファー」という画面で、会員様向けに企業側からのオフ

                                                                                    dodaサイトで「KVS with Debezium導入」に挑戦!! - techtekt