問題タブ [dynamo-local]

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.

0 投票する
1 に答える
1603 参照

amazon-dynamodb-streams - DynamoDB ローカル: Streams.getRecords が TrimmedDataAccessException を返す

DynamoDB ローカルを使用して、nodejs (Javascript SDK) から統合テストを実行しています。getRecords を呼び出すと、「TrimmedDataAccessException」が発生します。AWS (ローカルではない) で DynamoDB に対して同じコードを実行すると、正常に動作します。手順は次のとおりです。

  • DynamoDB を実行する
  • createTable "イベントストア"
  • createTable "音楽"
  • describeTable "EventStore" (LatestStreamArn を取得します)
  • 「LatestStreamArn」として返される describeStream (ShardId を取得します)
  • getShardIterator with ShardIteratorType "LATEST"
  • 「ミュージック」テーブルにレコードを入れる
  • 「EventStore」テーブルにレコードを入れる
  • 「EventStore」ストリームからの getRecords

「put」コマンドの順序は重要です。最初に "EventStore" に配置するとすべて正常に動作しますが、最初に "Music" に配置すると失敗します。ただし、順序を変更するとアプリケーションロジックが間違っているため、順序を変更するだけで問題になります。

DynamoDB を実行する

createTable

createTable (応答)

describeTable(イベントストア)

describeTable(EventStore) レスポンス

記述Steam

describeStream レスポンス

getShardIterator

getShardIterator の応答

put(テーブル名:音楽)

put(テーブル名: イベントストア)

getRecords (イベントストア)

getRecords (EventStore) 応答

0 投票する
1 に答える
1919 参照

node.js - DynamoDBLocal : DB を開始および停止するにはどうすればよいですか?

「dynamodb_helper.js」があり、local-dynamoを使用して DynamoDB をローカルでエミュレートします。テストの前にサーバーを起動して正常に実行できましたが、stopDB() が機能していないようです。どんな助け/提案も大歓迎です。したがって、サーバーの子プロセスは、テストが終了した後も引き続き実行されます。

以下の私のコードを見つけてください。

0 投票する
1 に答える
88 参照

titan - 頂点/エッジが追加されると、titan + dynamoDB (ローカル) でグラフ処理がますます遅くなる

AWS dynamoDB ローカル実装を 16GB マシンのストレージ バックエンドとして使用して、titan 1.0 を使用しています。私の使用例では、頂点とエッジを 120K のオーダーで定期的に含むグラフを生成します。メモリ内に新しいグラフを生成するたびに、DB に保存されているグラフをチェックし、(i) 存在しない頂点/エッジを追加するか、(ii) 既に存在する場合はプロパティを更新します (存在は「ラベル」によって決定されます)。および「値」属性)。'Value' プロパティがインデックス化されていることに注意してください。トランザクションは 500 個の頂点のバッチでコミットされます。

問題:新しいグラフを処理するたびに、このプロセスが遅くなることがわかりました (最初のグラフは最初に空のデータベースで 45 分で終了し、2 番目は 2.5 時間、3 番目は 3.5 時間、4 番目は 6 時間、5 番目は 10 時間など) )。実際、特定のグラフを処理するとき、開始時はかなり高速ですが、徐々に遅くなります (最初のバッチは 2 ~ 4 秒かかり、その後、500 ノードの同じバッチ サイズで数百秒に増加します。バッチには 1000 ~ 2000 秒かかります)。これは処理時間だけです (以下のアプローチを参照)。コミットには常に 8 ~ 10 秒かかります。jvm ヒープ サイズを 10G に設定しましたが、アプリが実行されているときに、最終的にすべてを使い果たしていることに気付きました。

質問:この動作は予期されたものですか? ここで何かが間違っているようです(私の設定/アプローチのどちらかですか?)。どんな助けや提案も大歓迎です。

アプローチ:

  • インメモリ グラフのルート ノードから開始して、すべての子ノードを取得し、キューを維持します。
  • 子ノードごとに、DB に存在するかどうかを確認し、存在しない場合は新しいノードを作成し、いくつかのプロパティを更新します。

    /li>

関数の作成:

スキーマ定義: (いくつかのインデックスを表示)
注:
"EdgeLabel" = Constants.EdgeLabels.Uses
"EdgeProperty1" = Constants.EdgePropertyKeys.EndpointId
"EdgeProperty2" = Constants.EdgePropertyKeys.Timestamp

0 投票する
0 に答える
4579 参照

javascript - Node.js 接続 ECONNREFUSED 127.0.0.1:8000 DynamoDB ローカル エラー

このNPM プラグインを使用して、Node アプリ内のローカル DynamoDB ローカル サーバーの作成を処理しています。何らかの理由で、次のエラーが表示されることがあります。理由はわかりませんが、テストの特定のセクションでテストを実行すると、常に発生するようです。

それは間違いなく毎回起こるわけではありません。たぶん50%くらい。非常に奇妙な。

このエラーは、DynamoDB ローカル サーバーの起動に失敗したことを意味することを読みました。しかし、それ以上の詳細を提供していないため、理由はわかりません。

ああ、これがサーバーを作成するための私のコードです。

何か案は?

0 投票する
1 に答える
232 参照

junit - 単体テスト クラスまたはシングルトンのインスタンス化ごとに DynamoDbLocal の複数のインスタンス

単体テスト ケースに DynamoDbLocal サーバーを使用しようとしています。そして2つの選択肢を思いついた、

クラスの前にローカルサーバーを開始し、クラスの後に停止するjunitクラスルールを定義します。したがって、基本的には、単体テスト クラスごとにサーバーを起動および停止します。

また

シングルトン インスタンス:

どちらをお勧めしますか?これを行う方が良いですか? Guice依存性注入フレームワークで使用できるはずです。

0 投票する
1 に答える
452 参照

java - プログラムで dynamodblocal を使用して http://localhost:{port} に到達できない

com.amazonaws の dynamodblocal (maven の v 1.10.5.1) を使用して、inMemory dynamoDB をローカルに作成しています。

ローカル サーバーを起動する Java コードは次のとおりです。

これは、ローカル dynamodb を正常に開始したことを確認するログです。

http://localhost:60677/shellここではポート 60677 が使用されており、Web ブラウザーから手動で開くことができます。しかし、プログラムでアクセスしようとすると機能しません。私は取得し続けHTTP/1.1 500 Server Errorます。

これにより、500エラーが発生します(ポートはの出力になりますgetAvailablePort()):

また、コマンドラインから次のコマンドを起動すると、次のようになります。

プログラムで接続しようとすると、正常に動作します。すべての CRUD 操作をプログラムで実行できます。

私は何を間違っていますか?