Domanda

Supponiamo di avere due script. Il primo inserisce (con il comando MV) alcuni file in una directory, il secondo controlla la directory di tanto in tanto ed elabora i file. La situazione di cui sono preoccupato è quando il secondo script inizia l'elaborazione del file che viene spostato solo in parte al momento. Può accadere nella vita reale sul file system XFS?

È stato utile?

Soluzione

Dipende da dove stai spostando i file. MV all'interno di un singolo filesystem è atomico, altrimenti deve fare una copia che non è atomica (seguita da una eliminazione del file originale) ed è soggetta al tipo di condizione di gara che menzionate.

FWIW, questa è normale semantica posix, niente di particolare per XFS.

Altri suggerimenti

La condizione di gara non si verificherebbe nel tuo caso nel file system XFS. Tuttavia, XFS consente a più processi di leggere e scrivere un file contemporaneamente utilizzando uno schema di bloccaggio flessibile in contrasto con il blocco ade thread singolo file system unix. XFS Tack Care di serializzare le scritture sulla stessa regione con più processi.

XFS utilizza I/O diretto per l'accesso a File.Direct I/O consente a un'applicazione di specificare che i suoi dati non vengano memorizzati nella cache nella cache del buffer.

Quando si utilizzano I/O normali e bufferi, più lettori possono accedere al file contemporaneamente, ma un solo scrittore è consentito l'accesso al file alla volta. Quando si utilizzano I/O diretti, più lettori e scrittori possono accedere al file contemporaneamente.

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