2009-03-20 6 views
5

Recentemente ho rielaborato parte del mio codice per inserire file in un db usando 'load data' e funziona alla perfezione - tuttavia per ogni record devo caricare 2 file su s3 - questo distrugge totalmente il magnifico aggiornamento di velocità che ho stava ottenendo. Considerando che sono stato in grado di elaborare 600+ di questi documenti/secondo, ora stanno arrivando a 1/secondo a causa di s3.Come caricare in serie su s3?

Quali sono i tuoi workaround per questo? Guardando l'API vedo che è per lo più RESTful quindi non sono sicuro di cosa fare - forse dovrei semplicemente inserire tutto questo nel database. I file di testo non sono in genere più di 1,5k. (l'altro file in cui ci troviamo è una rappresentazione xml del testo)

Ho già messo in cache questi file nelle richieste HTTP sul mio server web poiché vengono utilizzati parecchio.

btw: la nostra attuale implementazione utilizza java; Non ho ancora provato le discussioni ma quella potrebbe essere un'opzione

Raccomandazioni?

risposta

6

È possibile utilizzare la funzione [putObjects] [1] di JetS3t per caricare più file contemporaneamente.

In alternativa è possibile utilizzare un thread in background per caricare su S3 da una coda e aggiungere file alla coda dal codice che carica i dati nel database.

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

+0

thnx molto - Avrei dovuto pettinato attraverso tale API prima invece di pensare API di S3 sarebbe il finale tutto essere tutto; questo è esattamente ciò di cui avevo bisogno – eyberg