mercoledì, maggio 13, 2009

Scalabilità Infinita: elastic map reduce

Amazon ha inserito nella sua offerta di servizi Elastic MapReduce.

Per chi non conoscesse MapReduce, si tratta di un paradigma di programmazione, sviluppato da Google, per applicazioni di calcolo distribuito. Esempio semplice: dobbiamo applicare un algoritmo di clusterizzazione a 30 Miliardi di dati, che sul tuo pc impiega solamente 100 giorni a essere calcolato. Come fare? Semplice, dividiamo il problema in 100 sottoproblemi, lo diamo in pasto a 100 nodi del nostra server farm general-purpose, e alla fine ricomponiamo i risultati ottenuti in un unico output, in 1 giorno.

Piccolo problema, nessuno di quelli che conosco ha una server farm general-purpose con 100 nodi.

A questo punto arriva Amazon, che offre Elastic MapReduce, ovvero ti affitta 100 nodi per 1 giorno, e implementa già il framework hadoop, ovvero il framework che implementa MapReduce.

A questo punto non avrà più senso dire che i tempi di elaborazione sono troppo lunghi. Semmai l'algoritmo è inefficiente. Oppure non si è stati sufficientemente smart da trovare un algoritmo che permette di suddividere il problema in sottoproblemi. In questo caso, i tempi di elaborazione dipendono solo dalla fretta del cliente: lo vuoi in un 1 giorno, affitta 100 nodi. Lo vuoi in un'ora? Affita 2400 nodi.

Il pensiero lineare è finito. Se pensate ancora con i cicli for e while, siete alle schede perforate.

lunedì, marzo 16, 2009

iPod touch jailbreak: il mio unix tascabile hacker-friendly


Un po' di tempo fa dicevo che iPhone e Android erano roba da pivelli, e guardavo con interesse il Neo Freerunner, un cellulare touchscreen con hardware e software open source che era per me l'unico dispositivo che un vero hacker avrebbe voluto avere tra le mani.


Ma visto che sono pigro e parsimonioso mi sono comprato un iPod touch 2g, che fino a una settimana fa era per me un aggeggio tecnologico incredibile, ma troppo chiuso.

Finché non è uscito il jailbreak per l'iPod touch 2g, che OVVIAMENTE ho installato non appena possibile. Il jailbreak è un crack che permette di accedere al sistema operativo interno di iPod e iPhone e di far girare software non approvato da Apple.

Fare ssh VERSO l'iPod touch è stata una vera emozione. Trovare installato apt, ovvero il package manager ereditato da Debian/GNU Linux, è stato ancora più bello.

L'ipoddino così diventa lo strumento definitivo, d'altronde se hai uno Unix, un'interfaccia seriale e il wifi, puoi farci veramente tutto quello che vuoi. Come ad esempio il team di xgps, che ha sviluppato un modulino hardware GPS da agganciare all'ipoddino e il software di navigazione.

D'altronde, se non puoi modificare il tuo device per controllare l'accensione del microonde via webservice, che device inutile è?! :-)

venerdì, novembre 07, 2008

Amazon EC2 news

Amazon annuncia importanti novità per gli AWS:
  • gli SLA su EC2: finalmente si potranno usare le macchine EC2 per offerte su servizi che richiedono un livello di disponibilità
  • la disponibilità di macchine sul servizio EC2 con Windows Server 2003, e volendo anche con Microsoft SQL Server preinstallato
E i server chi se li compra più?

giovedì, ottobre 09, 2008

Oracle Cloud Computing

Le risposte alle mie domande circa Oracle e Cloud Computing.

giovedì, ottobre 02, 2008

Oracle Open World 2008


Ho avuto la possibilità di partecipare ad Oracle Open World 2008 a San Francisco. E' stata un'esperienza entusiasmante.

La città è fantastica, non ci ero mai stato, ed è stata un'occasione unica per fare anche un po' di turismo. Ospita una varietà di persone incredibile, ha il clima perfetto, ha dei bei parchi e vanno tutti in bici nonostante le ripide colline. Insomma, un posto dove varrebbe la pena viverci, almeno per un po'. L'unica cosa deprimente sono gli homeless: mi ha fatto molto effetto vedere così tanta povertà in una nazione così ricca.

E poi c'era l'Open World. Un evento grandioso, con 40.000 visitatori, organizzato alla perfezione. Sembrava quasi di stare nel periodo delle olimpiadi di Torino.

Le principali novità presentate da Oracle sono state Beehive ed Exadata. Beehive è uno strumento collaborativo, che si integra con altri strumenti sia lato server (es. Microsoft Exchange) sia client (es. Outlook). Rispetto agli strumenti nativi offre funzionalità ulteriori, come la condivisione di file, un sistema di gestione della sicurezza dei contenuti, una webconference e altro. Sinceramente non mi ha molto impressionato. Ho ancora in mente Oracle Collaboration Suite e Beehive sembra un remake. Inoltre temo che non abbia detto nessuno ad Oracle chi erano i Beehive in Italia.

Exadata invece è la Database Machine sviluppata da Oracle e HP. Hardware dedicato e un database Oracle dedicato per avere performance strabilianti. Un sistema interessante, ma poco probabile presso la maggior parte delle realtà in cui ho avuto modo di lavorare. Il database, sebbene sia Oracle, credo che avrà delle particolarità: credo che le applicazioni dovranno essere appositamente customizzate per questa piattaforma. Inoltre il costo di ingresso non è indifferente (2M $), anche se le promesse sono veramente eccezionali in termini di aumento delle performance e di riduzione dei costi.

Oltre a questo si è parlato delle centinaia di applicazioni che fanno ormai parte del catalogo Oracle a seguito delle svariate acquisizioni. La sensazione è che ci sia un po' di confusione. Molte applicazioni si sovrappongono e le roadmap di integrazione sono proiettate nei prossimi anni!

Ha stimolato la mia curiosità invece tutto il mondo ereditato da BEA. Non si tratta solo di un middleware nuovo, ma probabilmente anche di un nuovo approccio. Tecnologicamente le novità sembrano riguardare soprattutto l'ambito dei servizi, dell'orchestrazione e di tutto quanto è a corollario. Mi piacerebbe avere il tempo di studiare tutte queste novità.

Infine ho prestato particolare attenzione alle sessioni che riguardavano il Cloud Computing e MDM.

Del Cloud Computing (Amazon Web Service) ne parlano un po' tutti, ma spesso senza sapere bene di cosa si tratti. L'impressione è che il mercato non è ancora pronto, forse ancora complice il fatto che Amazon non garantisce SLA su nessun servizio (tranne S3). L'attuale posizione di Oracle è che Oracle DB è supportato su Amazon EC2 (e ovviamente sono contenti di chiedervi i soldi delle licenze). Inoltre stanno pianificando la possibilità di offrire dei servizi preconfezionati ai clienti, ma per ora è solo fuffa. L'unica cosa concreta è la libreria di integrazione con RMAN per fare i backup dei database su S3. E anche per questo c'è un costo di licenza non indifferente, in piena tradizione Oracle :-)

Infine Master Data Management (che è il mio pane da un paio d'anni). Anche qui, se ne parla veramente tanto. Le sessioni sull'argomento erano moltissime, ma l'impressione è che sia veramente un tema troppo complesso e articolato, tale da richiedere implementazioni molto customizzate per ciascuna realtà. Gli elementi di base sono sempre comuni (strumenti di data quality, data enrichment, normalizzazione, data integration, omogeneizzazione delle interfacce), ma soprattutto è un territorio in cui è fondamentale avere una approfondita conoscenza ed esperienza delle molteplici tematiche che si andranno ad affrontare. MDM è veramente un mondo complicato.

giovedì, settembre 18, 2008

ORA-03297: file contains used data beyond requested RESIZE value

A volte i tablespace crescono a dismisura, e quando bisogna ridimensionarli può succedere che siano troppo frammentati e per questo si verifica l'errore ORA-03297.

In questo caso la soluzione è quella di spostare tutti gli oggetti su un altro tablespace, ridimensionare i datafile alla dimensione opportuna e quindi rispostare gli oggetti.
Oppure una soluzione sub-optimale è quella di ricostruire gli oggetti sul medesimo tablespace (senza quindi la necessità di creare un tablespace d'appoggio temporaneo).
Al termine di tutto questo trasloco è bene ricompilare tutti gli oggetti invalidi.

Ad ogni modo, per spostare tra un tablespace e un altro i vari oggetti, io uso le seguenti meta-query.

Spostare gli indici
select 'alter index '||owner||'.'||segment_name||' rebuild tablespace miotablespace;'
from dba_segments where tablespace_name = 'miotablespace' and segment_type='INDEX' order by segment_name;

Spostare le partizioni degli indici partizionati
select 'alter index '||owner||'.'||segment_name||' rebuild partition '||partition_name||' tablespace miotablespace;' from dba_segments where tablespace_name = 'miotablespace' and segment_type='INDEX PARTITION' order by segment_name;

Spostare le tabelle
select 'alter table '||owner||'.'||segment_name||' move tablespace miotablespace;' from dba_segments where tablespace_name = 'miotablespace' and segment_type='TABLE' order by segment_name;

Spostare le partizioni delle tabelle partizionate
select 'alter table '||owner||'.'||segment_name||' move partition '||partition_name||' tablespace miotablespace;'
from dba_segments where tablespace_name = 'miotablespace' and segment_type='TABLE PARTITION' order by segment_name;

martedì, settembre 02, 2008

Rivoluzione: Google Chrome

Ops, Google ha pronto un browser strafigo, che funziona come il resto di Google (semplice, veloce, completo, perfettamente funzionante, etc.).

Ma soprattutto, fino a stamattina, nessuno poteva nemmeno pensare che esistesse uno strumento del genere.

Ok, allora vediamo cosa Google non ha ancora fatto e che (a questo punto) potrebbe essere quasi pronto:
  • Google Search Prefetch: quando apri la pagina di Google, trovi già la risposta a quello per cui avevi pensato di aprire Google
  • Google Energy: un software che mentre pigi i tasti sulla tastiera ricarica la batteria del notebook. Di qualcun altro. Se la tua è già carica.
  • Google Question: dopo aver scoperto la risposta alla domanda definitiva sulla vita, l'universo e tutto quanto, un progetto che fornirà la domanda definitiva. Occhio ai Vogon.
  • Google Last Judgement: una risposta auterovole per risolvere le vostre diatribe.
  • Google Next News: uno sguardo sul futuro sulle principali testate giornalistiche dei prossimi secoli.
  • Google Parallel Universe Chat: per chattare con le possibili variazioni dei vostri amici (e di voi stessi), in fino a 24 universi paralleli contemporaneamente!
E meno male che c'è crisi.