2013-01-14 9 views

risposta

7

È possibile utilizzare un Guid per questo:

string blobName = Guid.NewGuid().ToString(); 
4

In aggiunta a quanto Sandrino detto (usando GUID che hanno bassissima probabilità di essere duplicato) si può prendere in considerazione alcune librerie di terze parti, che generare senza conflitti identificatori esempio: Flake ID Generator

EDIT

Herve ha rilevato una funzione BLOB di Azure molto valida che deve essere considerata con qualsiasi nome blob, ovvero, Bilanciamento del carico di Archiviazione Azure e partizionamento BLOB.

Azure mantiene tutti i BLOB nei server di partizione. Quale server di partizione deve essere utilizzato per memorizzare un particolare blob viene deciso sul contenitore BLOB e sul nome del file BLOB. Sfortunatamente non sono stato in grado di trovare e documentazione che descrivesse l'algoritmo utilizzato per il partizionamento dei BLOB.

Ulteriori informazioni sull'architettura Azure Blob sono disponibili nell'articolo Windows Azure Storage Architecture Overview.

4

Non c'è nulla che generi un nome univoco "nell'inserto"; devi venire con il nome prima del tempo.

Quando si sceglie il nome del blob, fare attenzione quando si utilizza un algoritmo che genera un numero sequenziale di qualche tipo (all'inizio o alla fine del nome di un blob). Archiviazione di Azure si basa sul nome per il bilanciamento del carico; l'utilizzo di valori sequenziali può creare contesa nell'accesso/scrittura in BLOB di Azure perché può impedire a Azure di bilanciare correttamente il carico della memoria. Ottieni 60 MB/sec su ciascun nodo (ovvero il server). Per garantire un corretto bilanciamento del carico e sfruttare 60MB/sec su più nodi di archiviazione, è necessario utilizzare nomi casuali per i propri BLOB. Di solito uso Guids per evitare questo problema, proprio come Sandrino sta raccomandando.

+0

questo è un punto molto valido (+1). A proposito, hai riferimenti ad un articolo che descrive l'algoritmo usato dal livello di partizione per distribuire * blob * attraverso i nodi di memorizzazione dei blob? Penso che sarebbe molto utile dal punto di vista della domanda. – Tom

+0

No, non lo faccio; c'era un articolo di MS sul fatto che questo stava succedendo (senza dettagli sottostanti), ma non riesco a trovarlo più ... Se trovo il link che posterò. Non è possibile controllare ciò che MS fa con il partizionamento, ed è probabile che sia dinamico in base all'utilizzo dei dati e di altri dati dei titolari. Quindi quello che faccio è che considero il livello di accesso sottostante come non deterministico. –

+0

questo è abbastanza giusto. Ho trovato solo un collegamento a un blog che descrive l'architettura di Archiviazione di Azure che è la seguente: http://blogs.msdn.com/b/windowsazurestorage/archive/2010/12/30/windows-azure-storage-architecture-overview.aspx – Tom