sql >> データベース >  >> RDS >> PostgreSQL

ストレージバックエンドはDatomicにどのように影響しますか?

    ストレージサービスの要件

    Datomicのストレージサービスは、通常、次の3つの要件を満たす必要があります。

    1. キー値ストアのセマンティクスを実装する :インデックス付きキーの値を使用した効率的な読み取り/書き込みアクセス
    2. 一貫した読み取りのサポート 。例えばあなた自身の書き込みを読んでください。理想的には、競合なし/ロックフリーの読み取りです。
    3. サポート条件付きプット 。例えば楽観的ロック+スナップショットアイソレーション。

    Datomicは、ストレージサービスを使用して、並べ替えられた圧縮されたdatomのブロックを格納します。これは、従来のデータベースシステムがファイルシステムを使用する方法と同様であり、上記の要件は、基盤となるストレージサービスとDatomicの間のAPIです。したがって、選択 ストレージサービスでは、これら3つの要件をどの程度サポートしているかに依存します 。

    書き込みスケーラビリティ

    Datomicに書き込むコンポーネントは、Transactorだけなので、通常、Datomicは基盤となるストレージサービスに大きな書き込み圧力をかけません。また、Datomicは、バックグラウンドインデックス作成ジョブを使用して、ノベルティが十分に蓄積されると(デフォルトでは最大32MBですが、構成可能)、ノベルティをストレージに統合します。これにより、一定の書き込み負荷がさらに軽減されます。 Datomicがすぐに書き込むのはトランザクションログだけです。

    読み取りスケーラビリティ

    Datomicは、キャッシュの複数のレイヤー、つまりmemcachedとpeers cacheを使用するため、理想的な状況、つまりワーキングセットがメモリに収まる場合、システムは読み取り圧力をあまりかけません。

    システムロード

    システムが巨大なを必要としない場合 書き込みのスケーラビリティとアプリケーションデータがメモリに収まる傾向がある場合、特定のストレージサービスの選択は無関係 もちろん、Datomicとは関係のない運用機能(バックアップ、管理ツールなど)を除きます。

    一方、システムに巨大なが必要な場合 スケーラビリティを書き込むか、多数のピアがあり、それぞれがメモリに収まらないほど多くのデータを処理している場合(多くのデータセグメントをストレージから取得する必要があります)、水平方向に拡張できるストレージシステムが必要になります。 DynamoDB。コメントの1つで述べたように、任意の書き込みスケーラビリティが必要な場合、Datomicはとにかく適切なシステムではありません。




    1. 複数のチェックボックス値をデータベースに挿入する方法

    2. file_get_html();を使用する-> plaintextを使用している場合でも、特別な文字を含むHTMLを返します

    3. brew servicesリストはmysqlが実行されていることを示していますが、接続できません

    4. Gitlab OmibusバージョンによってインストールされたpostgreSQLのデフォルトのパスワードは何ですか?