Mi chiedo se esiste un modo per effettuare chiamate asincrone a un database?
Ad esempio, immagina di avere una grande richiesta che impiega molto tempo per l'elaborazione, voglio inviare la richiesta e ricevere una notifica quando la richiesta restituirà un valore (passando un Listener / callback o qualcosa del genere). Non voglio bloccare in attesa che il database risponda.
Non ritengo che l'uso di un pool di thread sia una soluzione perché non si adatta, nel caso di richieste simultanee pesanti ciò genererà un numero molto elevato di thread.
Stiamo affrontando questo tipo di problema con i server di rete e abbiamo trovato soluzioni usando la chiamata di sistema select / poll / epoll per evitare di avere un thread per connessione. Mi sto solo chiedendo come avere una funzione simile con la richiesta del database?
Nota: sono consapevole del fatto che l'utilizzo di FixedThreadPool può essere una buona soluzione, ma sono sorpreso che nessuno abbia sviluppato un sistema veramente asincrono (senza l'utilizzo di thread aggiuntivi).
** Aggiornamento **
A causa della mancanza di soluzioni pratiche concrete, ho deciso di creare una libreria (parte di finagle) da solo: finagle-mysql . Fondamentalmente decodifica / decodifica richiesta / risposta mysql e usa Finagle / Netty sotto il cofano. Ridimensiona estremamente bene anche con un numero enorme di connessioni.