2009-03-20 31 views
5

Recientemente refactoreé un poco de mi código para rellenar filas en un archivo db utilizando 'cargar datos' y funciona muy bien; sin embargo, para cada registro que tengo debo cargar 2 archivos a s3, esto destruye totalmente la magnífica actualización de velocidad que estaba obteniendo. Mientras que pude procesar más de 600 de estos documentos/segundo ahora están llegando a 1/segundo debido a s3.¿Cómo puedo realizar una carga masiva a s3?

¿Cuáles son sus soluciones para esto? Al observar la API, veo que es RESTful en su mayoría, así que no estoy seguro de qué hacer, tal vez debería incluir todo esto en la base de datos. Los archivos de texto generalmente no son más de 1.5k. (el otro archivo que tenemos allí es una representación xml del texto)

Ya guardo en caché estos archivos en las solicitudes HTTP a mi servidor web, ya que se usan bastante.

por cierto: nuestra implementación actual usa Java; Todavía no he probado los hilos pero podría ser una opción

¿Recomendaciones?

Respuesta

6

Puede usar la función [putObjects] [1] de JetS3t para cargar varios archivos a la vez.

De forma alternativa, podría usar una cadena de fondo para cargar en S3 desde una cola, y agregar archivos a la cola desde su código que carga los datos en la base de datos.

[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 mucho - Debería haber peinado a través de esa API primera vez de pensar api de que S3 sería final- todo es todo; esto es exactamente lo que necesitaba – eyberg

Cuestiones relacionadas