問題タブ [membase]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - JerseyJax-RSを使用して単一サーバーで15Kリクエスト/秒を実行するTomcat
私はVPSでテストを試みましたが、1秒あたり10Kのリクエストに近づきました。それは、simple 'hello world' servlet
membaseへの呼び出しは言うまでもなくです。
私のVPSは、2 x Intel Xeon X5570、クアッドコア「Nehalem」アーキテクチャでした。
注:私はJavaの専門家でも、Tomcatの専門家でもありません。これは、デフォルト設定でした。
他の誰かが、光を当てる可能性のあるこのような大量のトラフィックに対処していますか?
私はapacheベンチを使用し、それをおそらく4〜5回実行して、サーバーに対して約100Kの要求を実行しました。
nosql - membase キーの大量のメモリ使用量と redis の比較
最近、membase を使用してテストを実行し、6,000 万個のキーを増やしました。各キーのサイズは 20 ~ 30 バイトで、値は整数の値よりも小さくなっています。このクラスターは 3 つの 16 GB ボックスにまたがり、15 GB は membase の単一のバケット (レプリケーション = 1) 専用でした。ビルドはmembase-server-community_x86_64_1.7.1.1
64 ビットの ubuntu lucid ボックス上にあります。
結果:
当初、1,000 万個のキーが 3 GB のメモリに常駐していました。(3mil キー/GB) @6000 万キーが 45 GB のメモリに常駐。(1.33mil キー/GB)
比較すると、redis は 900 万から 1000 万のキー/GB @ 6000 万のキーを処理します。この GB あたりのキーの比率は、データセットのサイズに関係なく一貫しています。
質問:
主要な重いデータセットに直面した場合、Membase は適切にスケーリングされないようです。このユース ケースで Membase に役立つチューニング/構成はありますか?
ありがとう。
PS私は redis から membase に移行しました。これは、後者の方がキャッシュ障害に対する信頼性が高いように思われたためです。ただし、大規模なデータセットでのこのパフォーマンスの低下は、少し苦痛です。
mongodb - Cassandra、Membase、Hadoop、MongoDB、RDBMS などから選択する方法は?
Cassandra、Membase、Hadoop、または単純な古いリレーショナル データベースをいつ使用するかについての論文/ブログ投稿はありますか? それぞれの長所と短所、およびこれらのテクノロジーのいずれかを選択する必要があるシナリオについて説明している論文はありますか?
私は、1 日あたり約 100 万件のヒットと、約数テラバイトにわたるデータを持つ新しい Web サービスを作成することを考えています。
c# - C# から tap_example.py を呼び出して Membase TAP ストリームを取得する
動的言語ランタイム/IronPython を使用して、コマンド引数を使用して .py スクリプトを実行し、std 出力を取得しようとしています。これは、C# ではまだ実装されていない membase TAP プロトコルを実行するためのものです。
ExecuteFile を使用してスクリプトを実行できると思いますが、可能であれば、このシナリオで引数を渡す方法がわかりません。
基本的に、コマンドラインからコマンドを実行していた場合、次のようになります。
これを C# から単純に実行することもできますが、それには Python をインストールする必要があります。これはフォールバック オプションの 1 つですが、DLR を使用することをお勧めします。
助言がありますか?
time - memcached のキャッシュ項目がいつ作成されたかを調べる方法は?
アプリケーションで、一部のキャッシュ項目が予想よりも早くフラッシュ/リフレッシュされているように見えます。アプリに論理エラーがある可能性があります。したがって、デバッグ中に、特定のキャッシュ コンテンツ (そのキーに基づいて) がいつ作成/更新/フラッシュされたかを確認できる方法があれば素晴らしいと思います。誰もこれを行う方法を知っていますか?
この membase Java ライブラリを使用しますhttp://code.google.com/p/spymemcached/downloads/detail?name=memcached-2.5.jar&can=2&q=
ありがとう
PS: 私は自分のサーバーにアクセスできるので、それらがどこかのログにある場合でも、それらを取得する権限があります。どこからそれらを取得するかを知る必要があるだけです:-)
membase - Membase - TAP を使用してすべてのキーのリストを取得する
私は、Membase インスタンス内のすべてのキーのリストを取得するために、 tap_example.pyを変更する方法を見つけようとしていますが、開始するのに問題があります。
TAP_FLAG_DUMP をどこかに設定する必要があると思いますが、どこにあるのかわからず、関連するドキュメントが見つかりません。何か案は?
installation - ソースからのMembaseのインストール
ソースtarballからmembaseをビルドしてインストールしようとしています。私が従った手順は次のとおりです。
- タールのアーカイブを解除する
membase-server_src-1.7.1.1.tar.gz
- 問題
make
(風袋引きされていないフォルダー内から)
完了したら、ディレクトリinstall / binに入り、スクリプトを呼び出しますmembase-server
。
これにより、サーバーが次のメッセージで起動します。
membaseユーザーの開いているファイルの最大数が少なすぎます。
少なくとも10240である必要があります。通常、これは/etc/security/limits.confに次の行を追加することで増やすことができます。
提案どおりに更新を試みlimits.conf
ましたが、運が悪ければ同じメッセージが表示され続け、起動し続けます
サーバーが起動しているので、ポート11211を介してmemcachedにアクセスしようとしましたが、接続拒否のメッセージが表示されます。次にnetstat
、memcachedが11210をリッスンしていることを確認し、ポート11210にtelnetしようとしましたが、残念ながら、次のコマンドを発行するとすぐに接続が閉じられます
注:上記のコマンドから出力が得られません{はい:stats
何も表示されませんでしたが、それでも発行しset
ました。}
誰かがソースからmembaseをビルドしてインストールするのを手伝ってもらえますか?また、memcachedが11211ではなく11210をリッスンしているのはなぜですか?
誰かが私にGitリポジトリからのソースからビルドするために私が従うことができるステップバイステップのガイドを私に与えることができれば素晴らしいでしょう(私はautoconf
以前に使用していません)。
PS:同じマシンにバイナリ(debianパッケージ)からインストールしようとしましたが、正常にインストールしてtelnetできます。したがって、ソースからのビルドが機能しない理由がわかりません。
php - Memcachedユーザーアカウントの保存
memcacheを使用してサイトを高速化することに興味があります。現在、キーと電子メールアドレスの列を含むmysqlテーブルがあり、ユーザーは自分のキーを使用してログインし、データベースにクエリを実行して、それが正しいかどうかを確認します。メールは、キーを忘れて再送したい場合に使用されます。
さて、明らかに各レコードは非常に小さいです(私が思うに約19B)。すべてのレコード(たとえば、100万レコード)をMemcachedにプリロードし、永続的なレコードを保持するためにMysqlのみを使用するのは良い考えだと思いますか?
membase - membase db のコンテンツをダンプして別のクラスターをシードする方法
私は 3 台のマシン (vbuckets のみ) の membase 1.7.1 サーバー クラスターを使用しており、クラスター全体がダウンした場合 (おそらくあり得ないことですが) に備えてコンテンツをバックアップできるようにしたいと考えています。
プロバイダーから定期的に新しいデータを取得します。古いデータを多かれ少なかれ無期限に保持し、新しいデータを追加したいと考えています。ワインの格付けアプリケーションを想像してみてください。新しいヴィンテージは常に入ってきますが、古いものは残しておく必要があります。
現在、次のことを行うプロセスがあります。
- サードパーティのプロバイダーからデータをダウンロードする
- vbucket にデータをプッシュします。一部の古いデータは上書きされる可能性があり、一部のデータは新しいものになります
- 次のデータ更新までたむろします。他のプロセスがデータを読み取ります
私がやりたいことは次のとおりです。
- バケットにデータがあるかどうかを確認する
- そうでない場合は、オフライン ストレージから読み込みます (手順 5 を参照)。
- サードパーティのプロバイダーからデータをダウンロードする
- vbucket にデータをプッシュします。一部の古いデータは上書きされる可能性があり、一部のデータは新しいものになります
- すべてのデータをオフライン ストレージにダンプする
- 次のデータ更新までたむろします。他のプロセスがデータを読み取ります
ステップ 1、2、5 は新規です。
質問はステップ 5 についてです。TAP プロトコルは、membase バケットのコンテンツをダンプする良い方法ですか? 読者の邪魔になりますか?
node.js - nodejs(membase)でのデータベースイベントまたはポーリング
私のアプリケーションでは、membase を介して異なるサーバー上の異なるノードに配布するグローバルな状態があります。
ノード自体には、グローバル状態が変更されたときに通知する必要があるクライアントがありますが、私が見る唯一の方法は、状態を membase からポーリングし、変更されたときにクライアントに送信することです。そのため、変更が発生したときにクライアントとサーバーの間でのみトラフィックが発生しますが、ノードの非ブロッキング IO の意味ではなく、サーバーと membase の間で一定のトラフィックが発生します。
より良い方法はありますか?