Tales from the Machine Room |
Home Page | Comments | Articles | Faq | Documents | Search | Archive | Tales from the Machine Room | Contribute | Set language to:en it | Login/Register
Questa volta la volpe (o la gatta?) si e' cimentata in una fetecchia di web-applicazione che dovrebbe presentare una serie di informazioni relative ai dati di vendita di una serie di negozi per scopi statistici.
Tutto bello, se non che:
E qui gia' abbiamo una serie di problemi. In primo luogo, il famoso database sara' anche facile da usare ma quando gli scarichi sopra un paio di milioni di records entra in coma.
In secondo luogo, le informazioni che lei dovrebbe presentare sono totalmente diverse da quelle che si trovano nel database di origine.
Per ovviare al secondo problema ha deciso che la cosa migliore e' di mettere tutta la logica di ri-analisi dei dati nel front-end.
Arriviamo quindi al succo del problema: la famosa applicazione e' stata consegnata ed il cliente (che guardacaso e' anche cliente nostro) e' rimasto traumatizzato dalla lentezza abominevole della cosa. Dato che J non sa che pesci pigliare (non fate battute sui "pesci") siamo stati chiamati in causa noialtri.
Io ho dato un'occhiata alla cosa ed ho notato che:
Una volta visto cio', ho riportato le mie impressioni, che si possono riassumere in: dato che il problema e' la lentezza del front-end, facciamo fare la pre- elaborazione dei dati durante l'importazione (nottetempo) e togliamo la logica dal front-end. Anche se ci mette 8 ore lo fa di notte ed i dati sono pronti per essere presentati a richiesta.
Ovviamente la cosa non e' garbata molto, e ne e' scaturita la seguente discussione.
J - Se cambiamo la funzione di importazione l'applicativo diventa legato al
database!
IO - E chi se ne frega? Tanto e' un applicativo fatto appositamente per uno
scopo specifico.
J - Ma la regola e' di tenersi indipendenti dal database!
IO - Se ti interessa portare l'applicazione su una piattaforma diversa si'.
Ma in questo caso a nessuno interessa fare una roba simile.
J - E se un domani decidessero di cambiare il database?
IO - In tal caso ci sara' probabilmente da rifare l'applicazione o adattare
la funzione di importazione. Ma dovrai farlo comunque dato che l'applicazione
attuale e' scritta per una struttura di database specifica.
J - Ma la logica dell'applicazione dovrebbe essere nell'applicazione e non
nel database!
IO - Guarda, la logica puoi metterla in vari posti, dato che nell'utente non
ci entra (purtroppo), la puoi mettere nell'applicazione o la puoi mettere nel
database. Al momento e' nell'applicazione ed i risultati sono pessimi. Che
ne dici di metterla nel database e vedere che succede?
J - Ma quando ho fatto le prove sul mio laptop funzionava tutto perfettamente,
ci metteva un niente a visualizzare i dati.
IO - Con quanti dati hai fatto le prove?
J - Tanti.
IO - Tanti quanti?
J - Un paio di centinaia...
Ecco la differenza tra il fare delle prove e fare delle prove con dati reali o quantomeno realistici.
IO - Ottimo, e adesso che abbiamo un paio di milioni di records nel database ci rendiamo conto che con un volume di dati "normali" il sistema non regge. Quindi perche' non pensi a rielaborare quei dati in modo diverso?
Come al solito, quando si cerca di fare le cose con il principio di "one size fit all", si finisce con lo scoprire che "one size fit one". E qualche cosa mi dice che J non seguira' il mio consiglio.
Davide
01/03/2010 08:00
Comments are added when and more important if I have the time to review them and after removing Spam, Crap, Phishing and the like. So don't hold your breath. And if your comment doesn't appear, is probably becuase it wasn't worth it.
Niente pesci.... By Fearandil posted 01/03/2010 08:30
Jack By Anonymous coward posted 01/03/2010 09:21
Ciao! -- Anonymous coward
The real world By Fame posted 01/03/2010 09:59
Morale: sai bene che J. chiederà (e otterrà) un macchina più grossa per l'applicazione.
...e poi ci dicono che le dimensioni non contano!
--
--
@ Fame By Anonymous coward posted 01/03/2010 23:31
Ma... By Mikycol posted 01/03/2010 10:40
Un paio di perplessità... By Zaku posted 01/03/2010 11:20
Non era meglio orientarsi su OLAP a quel punto? Ci sono anche delle soluzioni free.
Salutoni! -- Zaku
@ Zaku By Davide Bianchi posted 01/03/2010 11:25
Si, si, perche' e' scema.
-- Davide Bianchi
Avrà capito la lezione precedente ? By Claiudio claiudio@libero.it posted 01/03/2010 15:21
Chiedo questo per intuire se in questa occasione ha prontamente cambiato idee sulla gestione del database oppure no. -- Claiudio claiudio@libero.it
@ Claiudio claiudio@libero.it By Davide Bianchi posted 01/03/2010 15:23
...secondo te?
-- Davide Bianchi
davvero...no non è possibile By Nicola posted 01/03/2010 17:48
Beh... By Alex posted 18/03/2010 10:05
-- Alex
This site is made by me with blood, sweat and gunpowder, if you want to republish or redistribute any part of it, please drop me (or the author of the article if is not me) a mail.
This site was composed with VIM, now is composed with VIM and the (in)famous CMS FdT.
This site isn't optimized for vision with any specific browser, nor
it requires special fonts or resolution.
You're free to see it as you wish.