Frage

Vor kurzem hat ich einige meinen Code zu stopfen Zeilen in eine db mit ‚Belastungsdaten‘ Refactoring und es funktioniert super - aber für jeden Datensatz I Ich habe 2 Dateien auf s3 laden muß - dies zerstört völlig die großartige Geschwindigkeit Upgrade, ich war zu erhalten. Während ich in der Lage war 600+ dieser Dokumente zu verarbeiten / Sekunde nun an sie tröpfeln 1 / Sekunde wegen s3.

Was sind Ihre Abhilfen für das? Mit Blick auf die API Ich sehe, dass es meistens RESTful ist so bin ich nicht sicher, was zu tun - vielleicht sollte ich nur Stick dies alles in die Datenbank. Die Textdateien sind in der Regel nicht mehr als 1,5k. (Die andere Datei, die wir dort stopfen ist eine XML-Darstellung des Textes)

I-Cache bereits diese Dateien in HTTP-Anfragen auf meinen Web-Server, da sie sehr viel verwendet werden.

btw: unsere aktuelle Implementierung verwendet Java; Ich habe noch nicht Threads versucht, aber das könnte eine Option sein

Empfehlungen?

War es hilfreich?

Lösung

Sie können die [putObjects] [1] Funktion von Jets3t , um mehrere Dateien auf einmal zu .

Alternativ können Sie einen Hintergrund-Thread verwenden, um S3 aus einer Warteschlange zu laden, und fügen Sie Dateien in der Warteschlange aus dem Code, der die Daten in die Datenbank geladen wird.

[1]: http://jets3t.s3.amazonaws.com/api/org/jets3t/service/multithread/S3ServiceMulti.html#putObjects (org.jets3t.service.model.S3Bucket , org. jets3t.service.model.S3Object [])

Andere Tipps

Ich habe gerade eine nette Lösung ein ganzes Verzeichnis mit PHP laden:

$client->uploadDirectory(
  SOURCE_FOLDER,
  YOUR_BUCKET_NAME,
  DESTINATION,
  array(
    'concurrency' => 5,
    'debug'          => TRUE,
    'force'            => FALSE,
    'params'        => array(
      'ServerSideEncryption' => 'AES256',
    ),
  )
);
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top