Domanda

Ho una vasta raccolta di blocchi di dati di dimensioni pari a 1 kB (nell'ordine di diverse centinaia di milioni) e ho bisogno di un modo per archiviare e interrogare questi blocchi di dati. I blocchi di dati vengono aggiunti, ma mai eliminati o aggiornati. Il nostro servizio è distribuito sulla piattaforma S3, EC2.

So che esiste Amazon SimpleDB, ma voglio una soluzione indipendente dalla piattaforma (nel caso dovessimo uscire da AWS, ad esempio).

Quindi la mia domanda è: quali sono i pro e i contro di queste due opzioni per l'archiviazione e il recupero di blocchi di dati. Come si confronterebbero le prestazioni?

  • Memorizza i blocchi di dati come file su S3 e OTTIENI quando necessario
  • Conserva i blocchi di dati su un cluster di MySQL Server

Ci sarebbe molta differenza tra le prestazioni?

È stato utile?

Soluzione

Devi fornire l'accesso a questi blocchi di dati direttamente agli utenti della tua applicazione? In caso contrario, le richieste GET S3 e HTTP sono eccessive. Tenendo anche presente che S3 è un servizio sicuro, l'overhead per ogni richiesta GET (per solo 1 KB di dati) sarà considerevolmente grande.

Il cluster di server MySQL sarebbe un'idea migliore, ma per funzionare in EC2 è necessario utilizzare Elastic Block Storage. Infine, non escludere SimpleDB. È forse la soluzione migliore per il tuo problema. Progetta attentamente il tuo sistema e in futuro potresti migrare facilmente in altri sistemi di database (distribuiti o relazionali).

Altri suggerimenti

Ho provato a usare S3 come una sorta di "database" usando minuscoli file XML per contenere i miei oggetti di dati strutturati e basandomi sulle chiavi S3 "". per cercare questi oggetti.

Le prestazioni erano inaccettabili, anche da EC2 - la latenza a S3 è semplicemente troppo alta.

L'esecuzione di MySQL su un dispositivo EBS sarà un ordine di grandezza più veloce, anche con così tanti record.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top