Autore Topic: DB in rete: quale?  (Letto 1352 volte)

Offline leo72

  • Amministratore
  • Senatore Gambero
  • *****
  • Post: 2.163
    • Mostra profilo
    • http://www.leonardomiliani.com
DB in rete: quale?
« il: 04 Maggio 2008, 09:46:39 »
L'applicazione che usiamo a lavoro, come più volte detto, si appoggia su un unico DB SQLite3.
Il DB risiede su un PC ed è disponibile per un altro PC tramite NFS.

Ora io non so se dipenda dalla latenza di NFS oppure da qualche altra cosa, ma l'accesso dal computer secondario tramite NFS a questo DB richiede inizialmente anche 10 sec. Poi, se eseguo una serie di operazioni, la latenza è quasi a zero. Ma se lascio l'applicazione senza far nulla per qualche minuto, sembra che la connessione al DB venga "persa" e poi devo riattendere altri 10 sec. perché si ricolleghi. La stessa latenza non ce l'ho, ad esempio, copiando i file, quindi non penso che sia un problema HW ma SW.

Siccome la cosa non mi piace (non è "professionale") stavo pensando di installare sul PC dove risiede il DB un server MySQL o PostGreSQL: In questo modo penso di poter ottimizzare i tempi: i 2 client del mio software si collegherebbero così ad un server a cui poi sarebbe lasciato l'onere di gestire il DB.

Ora la mia domanda è questa (dato che non ho mai usato nessuno dei 2 DB citati): meglio MySQL o POstGreSQL? Quale dei 2 ha la sintassi più vicina all'SQL standard o, per lo meno, quale dei 2 permette un passaggio da SQLite3 più semplice ed indolore?
Visita il mio sito personale: http://www.leonardomiliani.com

Offline md9327

  • Moderatore
  • Senatore Gambero
  • *****
  • Post: 2.840
    • Mostra profilo
Re: DB in rete: quale?
« Risposta #1 il: 05 Maggio 2008, 00:42:26 »
Bè, mi pare che una parte del discorso è stata fatta in qualche altra discussione, in cui qualcuno aveva già posto la tua domanda: quale db usare?

Da parte mia, dato che uso oracle per lavoro, e ora anche postgres, data la somiglianza di sintassi tra i due, mi sono buttato su postgres; devo anche dirti che ho sperimentato qualche cosa anche con mysql.
Dalla parte di postgres, sò per certo che mantiene sempre lo standard sql-92, è molto solido, e capace di sopportare carichi di lavoro eccezionali, e questo indipendentemente dal numero di connessioni o dalla quantità di dati.
Su mysql posso dirti che è molto veloce, ed è per questo che lo usano molto per i siti web, ma è anche vero che non ha tutte le caratteristiche di postgres, per cui... Due cose poco felici sono: poco sicuro se confrontato con altri db, e non completamente sql-92; inoltre non è completamente open-free e ora è stato acquisito dalla sun, e non si sà nulla del suo futuro nell'ambito open-source...
A parte la potenza, per la velocità non mi sono posto molto il problema, perchè alla fine si tratta di leggere differenze, che poi vengono compensate appunto dalla potenza su carichi importanti.

Certo, rispetto a sqlite, non c'è paragone...

Comunque, il problema con cui ti sei scontrato, e da come l'hai descritto, pare anche a me causato dal software e, con molte probabilità, dovuto alla brutta gestione della cache di windoz; poi, c'è pure il discorso sqlite, che non è un server db, ma solo un driver.

In quanto al passaggio, anche tra motori similari, non è mai completamente indolore. Ma, ad ogni modo, e da quanto letto nella doc di sqlite, il driver ha poche cose da tenere sotto controllo e/o da modificare, per cui il lavoro di passaggio credo sia relativamente semplice.

Secondo me, dovresti farti prima un giretto con tutte e due questi server (mysql e postgres), giocarci un pochino, e poi decidere. La decisione deve anche essere basata su quello che poi andrai a fare; analizza le caratteristiche di entrambi, analizza la quantità di dati che andrai a trattare, analizza le possibilità di collegamento e installazione...

Bye

Offline leo72

  • Amministratore
  • Senatore Gambero
  • *****
  • Post: 2.163
    • Mostra profilo
    • http://www.leonardomiliani.com
Re: DB in rete: quale?
« Risposta #2 il: 06 Maggio 2008, 17:39:47 »
Devo correggere una tua osservazione: su entrambi i PC gira Ubuntu per cui non è una questione di gestione di cache di Windows  :-P

Secondo me c'entra qualcosa l'utilizzo di NFS attraverso un router che funge da "ponte" fra i 2 PC.
Quando accedo al DB dal PC remoto devo attendere veramente 10 secondi prima che si instauri il collegamento! Poi, una volta "agganciato" il DB, la latenza è minima.... Se però lascio la mia applicazione ferma per un minutino, quando reinterrogo il DB ho di nuovo la latenza di cui sopra...
E' strano nonché curioso, proprio non capisco...

Per quanto concerne il DB, proverò PostGre...  :leggere:
Visita il mio sito personale: http://www.leonardomiliani.com

Offline md9327

  • Moderatore
  • Senatore Gambero
  • *****
  • Post: 2.840
    • Mostra profilo
Re: DB in rete: quale?
« Risposta #3 il: 07 Maggio 2008, 10:18:22 »
Pardon... mi era sfuggito il piccolo particolare...
E' probabile che il protocollo NFS sia in qualche modo causa del problemino, io personalmente non lo uso e al suo posto utilizzo samba, anche perchè, a parte il mio serverino casalingo, tutti gli altri pc sono, purtroppo windoz, a causa di problemi legati sia al figliolo (i giochi) che all'avere un sistema su cui lavoro per i miei clienti windoz.

Bye