- 各チャネルの在庫更新を管理するキュー。
これは必ずしもデータベースの問題ではありません。あなたは(例えば。RabbitMQの)各チャネルの割り当ての正確なスナップショットを持っている
- Inventoryテーブルメッセージングシステムを見たほうが良いかもしれません。
- セッションIDとその他の高速アクセスデータをキャッシュに保持する。
セッションデータは、おそらく(など、Redisの、例えばmemcachedの)複数のタスクに適した別のデータベースに配置する必要があります
DB
何フリーサイズありません
- ダッシュボード(XMPP)のようなfacebookを提供して、売り手をできるだけ早く更新し続ける。
私の制約は、 です。1.インベントリの更新は失われません。お使いのアプリケーションによって
この機能を提供する必要があります。
は、この質問に答えるための3つの方法があります。データベースは、不良レコードが拒否され、ロールバックされることを保証できますが、すべてのクエリが入力されることを保証するものではありません。 エラーが発生したときにアプリケーションを認識し、もう一度やり直す必要があります。メモリ内
いくつかのDBストアのレコードと、ディスクへのフラッシュメモリperidocally、これが停電した場合のデータの損失につながる可能性があります。 CouchDBは常にレコードに追加されます(たとえ削除がレコードに追加されたフラグなので、データの損失は非常に困難です))
一部のデータベースは極端に設計されています地震、ハリケーンなどの自然災害が発生した場合でも、耐久性があります。
あなたが参照している耐久性のタイプはどれですか?
- ジョブキューは順番に実行する必要がありますが、決して失われることはありません。
ほとんどのSQLソリューションでは、並列実行が優先されます。ここには2つのオプションがあります。 1.使用のすべてのクエリのために、テーブル全体をロックDB(遅い) 2.賢くやイベント化(クライアント側シーケンシャルキューイング)
- 簡単/迅速な開発と今後のメンテナンスするアプリケーションを構築します。
一般的に、あなたは、SQLが最初に開発するより高速であることがわかりますが、変更はNoSQLのはもう少し計画を必要とするかもしれ 実装が困難になることができますが、アドホッククエリやスキーマ変更を行うことが容易です。
あなたはおそらく自問する必要がある質問は、より多くのようです:
は、「私はマップ/削減がに適していることを強烈なクエリや深い分析を持っている必要がありますか?」
は、「私は頻繁に私の変化に私のスキーマが必要になります?
」私のデータは非常に関係ありますか? ?どのような方法で「
『私の選ばれたDBの背後にあるベンダーは、私はそれを必要とするとき、私を助けるために十分な経験を持っているのですか?』
は、」私は、そのような地理空間のインデックス付け、全文検索などの特別な機能が必要になります等」?
「私のデータがどれくらいリアルタイムに近いでしょうか? 1秒後まで私のクエリに最新のレコードが表示されていないと怪我をしますか?許容レイテンシーのどのレベルですか?「
『私は本当にフェイルオーバーの面で何が必要なのか』
」私のデータの大きさとは?それは記憶に収まるでしょうか?それは1台のコンピュータに収まるでしょうか?個々のレコードは大小ですか?
「データはどのくらいの頻度で変更されますか?これはアーカイブですか?」
独自のインベントリスキーマを持つ複数の顧客(チャネル?)を持つ場合、ドキュメントベースのDBには利点があります。私は在庫を持つeコマースシステムを見て、それはほぼ235のテーブルを持っていた1回覚えています! また、特定のリレーショナルデータがある場合は、SQLソリューションにもいくつかの利点があります。
mongo、couch、riak、またはorientdbを使用して、指定された制約を使ってソリューションを構築する方法を確かに確認できます。しかし、どれが最高ですか?私は直接DBベンダーと話してみると、おそらくnosqlテープを見てください
thats私は今(リレーショナル+ nosql)に傾いているが、どこに境界を配置するのですか?私のリレーショナル・ビジネス・ロジックのいくつかをNoSQLドメインに移行して、スケーラビリティを組み込むことはできますか?私は開発モードになっているので、変更はその価値がある場合に受け入れることができるものです。 – gladiator
待ち時間 - スケーラビリティのためNoSQLを試していますか?それはそれを使う間違った理由です! SQLとNoSQLの両方をスケールすることができます。 SQLからNoSQLへの移行は非常に困難です。逆は簡単です。 – Ariel
それは技術ではない、それは機能です:巨大なテーブルで複雑な結合を実行しようとするなら、それは十分に速くはありません。この仕事をするための銀色の弾丸はありません。 – mnemosyn