2016-03-29 15 views
1

Wir verwenden Couchbase seit etwa zwei Jahren, aber wir haben uns aus vielen Gründen entschieden, zu Amazon DynamoDB zu wechseln.
Jetzt begann ich die Migration von Daten zu Dynamodb. Zuerst war alles in Ordnung und lief wie erwartet, aber nach einiger Zeit wird die Reaktionszeit von Dynamo immer höher und der Migrationsprozess wird mit der Zeit langsamer.
Ich habe versucht, meine Strategien zu ändern, aber ohne Glück.
Was kann ich tun, um die Antwortzeit zu erhöhen?Verbessern Sie die Reaktionszeit von AWS Dynamodb

Grundsätzlich scanne ich eine SQL-Tabelle, die 100 Elemente pro Abfrage erhält, und dann Couchbase anfordert, die Daten, die ich über diese 100 Elemente haben möchte, abzurufen. Zuerst bekam ich hohe Antwortzeiten (wie in der Abbildung unten gezeigt).

Die folgenden Informationen helfen können:

  • ich auf einem EC2 Micro-Server die Migration Code leite Ubuntu 14.04 mit Knoten v 4.4.1.
  • Nach dem Betrachten der Graphen habe ich angefangen, die Zeit für jede Dynamodb-Anfrage zu messen (also weiß ich nicht, wie der Durchschnitt zuerst war), die durchschnittliche Reaktionszeit beträgt 800 ms für ungefähr 150.000 Anfragen (get & nur setzen, keine Batch - Befehle oder Abfragen)
  • Ich speichere die Elemente in zwei Tabellen eine mit ganzzahligen Hash - Schlüssel und die andere ist mit Ganzzahl - Hash - und Sortierschlüssel
  • Die zweite Tabelle ist eine riesige (mit etwa 4,4 Millionen Artikel und Zählen)

An image shows how the consumed capacity decreased overtime

+0

Sie "scannen eine SQL-Tabelle"? Sie listen jedoch nur Couchbase und DynamoDB auf, bei denen es sich nicht um SQL-Datenbanken handelt. Soll das heißen, dass Sie einen vollständigen Tabellenscan einer DynamoDB-Tabelle durchführen? Es scheint mir, dass Ihr gesamtes Problem einfach darauf zurückzuführen ist, dass der bereitgestellte Durchsatz in der DynamoDB-Tabelle zu niedrig ist. Die bereitgestellten Durchsatzeinstellungen sind wahrscheinlich die wichtigsten Informationen zu dieser Frage, und Sie haben diese Informationen nicht angegeben. –

+0

Aufgrund der Art und Weise, wie unser System entworfen wurde, verwenden wir Mysql und Couchbase kombiniert, in Mysql speichern wir einfache Daten, aber in Couchbase speichern wir das gesamte Json-Objekt. Jetzt wollen wir Couchbase loswerden und zu Dynamodb wechseln. Und wie es im angehängten Bild zeigt, ist der bereitgestellte Durchsatz für diese Tabelle 125 (die rote horizontale Linie) und der konsumierte Durchsatz wird immer niedriger (er begann um 100 und dann auf 20 und dann auf weniger als 5) – Sami

+0

Wenn Sie was haben Wenn Sie einen "Hot Partition Key" kennen, ist Ihre bereitgestellte Kapazität nicht von Bedeutung, da ein einzelner Shard nur N Anfragen verarbeiten kann. – Vor

Antwort

0

Dank @Vor für die Erwähnung der "Hot Partition Keys" habe ich weitere Lesungen gemacht und in Bezug auf die Guidelines for Working with Tables habe ich gefolgt, was sie empfehlen und auch meine Anfragen in Batch-Anfragen verteilt habe den Unterschied gemacht.
Vielen Dank für Ihre Hilfe.