Multiprocessi di memoria condivisa

1

Sto costruendo un'applicazione multi-processo e ho bisogno di salvare l'ID di sessione, l'ID di sessione è a 32 bit, e ovviamente non può essere usato due volte nella sua vita, attualmente sto usando DB che salva tutto ID in una tabella e faccio quanto segue,

La tabella ID è (int key, char used (1)) // 1 è usato, 0 no 1. tabella di blocco 2. Ottieni una chiave per una sessione 3. aggiornare il campo usato in esso per l'uso 4. sblocca

Al termine della sessione, il processo utilizza di seguito la chiave gratuita, 1. tabella di blocco 2. aggiornare il campo utilizzato in esso per non utilizzato 4. sblocca

Mi sto davvero chiedendo se questa sia un'implementazione buona / veloce. e si prega di notare che è un'applicazione multi-processi.

    
posta poly 03.04.2012 - 00:04
fonte

2 risposte

1

Hai provato memcached ? È veloce, ha aggiornamenti atomici, non ha tutto il resto del sovraccarico del database. Non veloce come la memoria condivisa, ma probabilmente la registrazione della sessione non è il collo di bottiglia in ogni caso?

    
risposta data 03.04.2012 - 06:07
fonte
0

Per definizione l'accesso al database non è il repository più veloce. Ho bisogno di maggiori dettagli sul processo per dirti qualcosa di più utile, ma tieni presente che l'uso di un database per fare ciò che vuoi è il modo più semplice ma non il più veloce. Questo link mostra come Voltdb genera il suo ID transazione univoco in un ambiente distribuito: link .

    
risposta data 03.04.2012 - 02:54
fonte

Leggi altre domande sui tag