Sono completamente confuso con ciò che avevo appena letto in queste due pagine:
http://www.scsifaq.org/scsifaq.html#_Hlk410546176 http://www.cse.scu.edu/~tschwarz/coen180/LN/scsi.html
Entrambi affermano che l'IO asincrono SCSI è più lento di quello sincrono. Come mai? Perché qualcuno dovrebbe preoccuparsi di scrivere la procedura asincrona solo per perdere le prestazioni?
Contraddice le mie aspettative!
Soprattutto che, nel caso di SSD, sto usando libaio per leggere in modo asincrono per ottenere prestazioni molto migliori.
Inoltre, il primo elenco sincrono come send send send wait wait wait ... Questo è esattamente ciò che è asincrono in caso di libaio.
Chiunque può far luce su di me, per favore ?!
Modifica 1
Vorrei chiarire il mio problema. Potrei avere un problema con la corretta comprensione di una differenza tra IO asincrono e sincrono.
- Sincrono : attende il completamento di ciascuna operazione
- Asincrono : non attende mai il completamento di ogni operazione
Ora, suppongo che se dovessi leggere in sequenza alcuni concerti di dati, leggendoli in un semplice ciclo sincrono:
while ( num_blocks-- > 0 )
read_block() ;
Avrebbe un tipo di query "richiesta, pausa, richiesta". Praticamente vedo che se lo cambio in una procedura multithread, si estendono su diversi thread (6-8) che richiederebbero "posizione successiva da leggere" e quindi lo richiedono, potrei ottenere quasi il massimo delle prestazioni di lettura.
Qualcosa come questo:
struct request
{
...
boost::mutex mutex ;
uint64_t block ;
uint64_t get_block_location()
{
boost::mutex::scoped_lock lock( mutex ) ;
return block++ ;
}
} ;
void readth( request* r )
{
try
{
for( ;; )
{
read_block( r->get_block_location()) ;
}
}
catch( const FinishedException& )
{}
}
Ho pensato, e ora, penso di iniziare a ottenerlo dopo aver ripensato quello che avevo appena letto con l'aiuto di @Robert Harvey che asincronizzare / sincronizzare è davvero solo una questione di "risparmio di tempo" nell'attesa del risultato ...
Lascio questa domanda nel caso in cui qualcuno abbia problemi cognitivi come il mio!