Visualizzazione dei risultati da 1 a 10 su 11

Hybrid View

  1. #1
    Moderatore di Javascript L'avatar di ciro78
    Registrato dal
    Sep 2000
    residenza
    Napoli
    Messaggi
    8,514
    Ma infatti mi hai frainteso e io mi sono espresso troppo sinteticamente.

    Anzitutto la mia versione dell ORM era semplificata e riferita alla gestione delle connessioni. Ovvio che serve per mappare il DB etc etc. É noto anche che il driver gestisce il pool ma appunto sono connessioni aperte a monte e disponibili a tutti. Sarà poi lo stesso driver a chiudere la connessione una volta fatto il commit.

    Quello che volevo far emergere è che, considerando i sistemi attuali, tecnicamente si tende ad avere un qualcosa di centralizzato che gestisce le connessioni e le rende disponibili o le chiude su richiesta (commit o timeout).

    Sicuramente è vero che avere un pool di connessioni occupa risorse ma oggi giorno è preferibile, per un discorso di performance sui tempi, averle a disposizione per eliminare appunto la latenza dovuta alla connessione.

    Su un progetto a cui ho lavortato, ci veniva richiesto che la chiamata E2E fosse intorno agli 1.5s. É facile intuire come, fare rientrare in questo tempo anche l'apertura delle connessioni possa avere impatti importanti.
    Ciro Marotta - Programmatore JAVA - PHP
    Preferisco un fallimento alle mie condizioni che un successo alle condizioni altrui.


  2. #2
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,487
    Quote Originariamente inviata da ciro78 Visualizza il messaggio
    Sicuramente è vero che avere un pool di connessioni occupa risorse ma oggi giorno è preferibile, per un discorso di performance sui tempi, averle a disposizione per eliminare appunto la latenza dovuta alla connessione.
    Non ho detto nulla contro l'uso di un pool di connessioni, anzi.

    Quello che volevo sottolineare è che il pool è gestito a basso livello, quindi aprire e chiudere connessioni nel codice non comporta alcun tempo di ritardo, in quanto la chiamata a Open() - se ottiene una connessione recuperata dal pool a livello di driver/client - sarà pressoché istantanea.

    Il pool non deve gestirlo il software o l'ORM, che si occupano solo di aprire e chiudere: è il layer sottostante che assegna connessioni nuove e/o recuperate da un pool, in base alla configurazione.

    Nell'ottica di risparmio e uso corretto delle risorse, in termini di programmazione, la connessione ai dati va chiusa (in senso di chiamata a Close() o Dispose() il prima possibile. Poi, che la connessione torni a un pool o venga chiusa effettivamente in modo fisico dal driver, sono dinamiche a discrezione dello strato più basso e fisico che gestisce il medesimo pool.

    Questo è quello che intendevo dire.

    Ciao!
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2026 vBulletin Solutions, Inc. All rights reserved.