Cosa rende le risorse "costose"?

10

Sto leggendo ibernazione e ho trovato dichiarazioni come "Le connessioni JDBC aperte su più richieste non sono una buona cosa perché è una risorsa costosa".

Che cosa si intende per risorsa costosa?

Modifica: aggiungo ciò che l'utente sconosciuto ha aggiunto come commento sotto.

Se stabilire una connessione al database è costoso, perché non utilizzare la stessa cosa più e più volte (non la memorizzazione nella cache), invece di chiuderla e aprirla ogni volta?

    
posta Vinoth Kumar C M 04.04.2011 - 14:24
fonte

4 risposte

20

Una risorsa costosa è una che:

  • Ci vuole molto tempo per creare / inizializzare. Qualsiasi connessione al database può richiedere fino a 1-2 secondi per completare l'handshake.
  • Utilizza molta memoria. Leggere un caricamento di file completo in una matrice di byte in memoria prima di memorizzarlo consumerà una notevole quantità di memoria per un breve periodo di tempo.
  • Utilizza molti cicli della CPU. I calcoli su una vasta raccolta di dati possono tassare la tua CPU mentre sta eseguendo i calcoli.

Ciascuna delle costose risorse può fornire problemi di scalabilità . In breve, non è possibile che si verifichino troppe operazioni costose nello stesso momento o non sarà in grado di rispondere ai propri utenti abbastanza rapidamente.

    
risposta data 04.04.2011 - 14:34
fonte
5

Può essere una varietà di cose dipendenti dalla risorsa specifica. Quindi potresti avere il seguente:

  • Quanta memoria richiede per funzionare.
  • Il tempo impiegato per stabilire la connessione.
  • Il sovraccarico nel mantenimento di quella connessione.

e così via.

Altre cose che possono rendere qualcosa di costoso potrebbero essere se richiede l'accesso al disco rigido o alla rete durante l'operazione, ecc.

    
risposta data 04.04.2011 - 14:32
fonte
2

I costi dovrebbero essere preceduti da "computazionalmente". Spese computazionali viene utilizzato per fare riferimento alla quantità di tempo o risorse (CPU, memoria, disco, banda di rete) richiesta per completare un'operazione, un algoritmo o un programma.

    
risposta data 04.04.2011 - 14:32
fonte
2

Le spese per le connessioni al database provengono da una serie di fattori.

  • Le connessioni al database sono lente da configurare e richiedono risorse sul lato client e server. Questo è il motivo per cui le connessioni sono raggruppate.
  • Le transazioni aperte hanno un sovraccarico che richiede la gestione sia dal client che dal server.
  • Le transazioni aperte potrebbero bloccare altri aggiornamenti. Questo rallenterà le prestazioni generali.

Detto questo, è necessario mantenere la connessione (o almeno la transazione) aperta abbastanza a lungo da garantire che la transazione passi ACID test. (Durevolezza coerente coerente atomica)

    
risposta data 04.04.2011 - 14:33
fonte

Leggi altre domande sui tag