FANDOM


Generale Modifica

Perchè Drizzle? Modifica

Brian Aker spiega:

Per molto tempo mi sono interrogato sulle modifiche introdotte con MySQL 4.1. Credo che ci sia una grande fetta di utenti che non li ha mai voluti e non si è mai interessata ad essi. Inoltre volevo esaminare le fondamenta di ciò che abbiamo costruito. Gli utenti vogliono dei dati sbagliati? Quanto spesso la cache delle query serve? Se tutti hanno un utente root con tutti i privilegi, perchè portarsi dietro tutto il codice dell'ACL? etc.

Qual è l'obiettivo? Modifica

Un microkernel che estenderemo per aggiungervi ciò di cui abbiamo bisogno. Tutte le aggiunte sono fornite tramite delle interfacce che possono essere compilate e caricate quando ce n'è bisogno. Lo scopo del progetto è una infrastruttura backend per il web e per i componenti cloud.

Vedi il blog di Monty

E' un prodotto di Sun/MySQL? Modifica

No, anche se molti degli autori lavorano efferrivamente per Sun/MySQL. Il modello dello sviluppo è basato sulla collaborazione aperta. La licenza di Drizzle è la GPL v2.

Quindi quali sono le differenze tra Drizzle e MySQL? Modifica

MySQL le seguenti caratteristiche che Drizzle non ha:

  • Modalità SQL
  • Viste
  • Trigger
  • Prepared statement
  • Stored procedure
  • Cache delle query
  • Conversione automatica dei dati inseriti
  • ACL

In confronto a MySQL, Drizzle ha:

  • Meno tipi di dati
  • Meno storage engine
  • Meno codice
  • Lo storage engine di default sarà transazionale (cosa ancora da fare)

Non assomiglia a SQLite? Modifica

No, SQLite non è in grado di gestire la concorrenza, tanto per fare un esempio. Drizzle sta a metà tra SQLite è MySQL.

Perchè ora? Modifica

Perchè no? :)

"Mi piace, ma ho bisogno che venga ripristinato..." Modifica

Scordatelo. Per ora non verrà ripristinata nessuna funzionalità. In futuro? Forse, ma al momento non rientra tra i nostri obiettivi. Se vuoi più funzionalità, usa MySQL.

"Sono un programmatore Java e ho assolutamente bisogno dei prepared statement."Modifica

I prepared statement lato server non hanno mai funzionato correttamente su MySQL e generalmente sono disabilitati. La maggior parte dei driver per MySQL, compresi i connettori JDBC, non usano i prepared statement lato server, ma piuttosto li emulano lato client.

In breve, non stai utilizzando i prepared statement nemmeno ora, anche se non lo sai, perciò non noterai la loro assenza in Drizzle.

Su quali piattaforme gira Drizzle? Girerà mai su Windows? Modifica

Gli sviluppatori di Drizzle lo compilano su Mac OS X, Linux (Fedora e Debian) e su Solaris Express.

Windows non è supportato e non lo sarà finchè non avrà un layer POSIX funzionante e un sistema di autoconf. Questo ne farebbe una piattaforma ragionevole da supportare.

Davvero, fate funzionare una catena GNU su Windows e potrete farvi funzionare Drizzle. Installando Strawberry Perl vi porterete avanti.

Drizzle utilizza un compilatore compatibile con C99. Non chiedetevi per favore di supportare macchine, compilatori o sistemi operativi più vecchi.

Cosa dobbiamo attenderci dal futuro? Modifica

(In generale è una bella domanda, ndt)

Meno codice, più modularità e più sviluppo attivo. Alcune cose ancora da fare:

  • Finire di passare a stdint
  • Rifare il codice della replica
  • Reimplementare l'Information Schema
  • Sistema di log modulare
  • Sistema ACL modulare
  • ...

"Ma questo non è un SQL RDBMS" Modifica

E' vero. Non miriamo ad esserlo.

Cosa avete kascuati fuori? Modifica

Dai un'occhiata alla mailing list o a IRC.

L'obiettivo finale? Modifica

Creare un microkernel che possa essere usato per costruire db che rispondano ai bisogni delle infrastrutture web/cloud. A questo scopo stiamo esplorando le interfacce HTTP, miglioramenti nella frammentazione, etc. Non aspettarti Oracle, MySQL, PostgreSQL o DB2.

Al momento non c'è una data prevista per una versione GA.

Ci siamo concentrando sull'architettura multicore. Non è progettato per funzionare in un lampo (suggerimento, usate SQLite). Supportiamo sia l'architettura a 32 bit che quella a 64 bit, ma la seconda è quella a cui puntiamo maggiormente. Stiamo facendo scelte di progettazione che presumono la presenza di molta RAM.

Posso già farci funzionare il mio sito web? Modifica

No. Stiamo facendo molte modifiche incompatibili e certamente non pensiamo che il codice sia pronto per ambienti di produzione. Per ora molte opzioni di configurazione sono impostate nel modo più comodo per il debug e certamente i binari non sono ottimizzati. Perciò, è inutile che si facciano benchmark. Stiamo facendo benchmark solo dove ha senso per noi determinare dove sono i colli di bottiglia.

Perchè si chiama "drizzle"? Modifica

Brian Aker spiega:

Io sono di Seattle. Drizzle è il nostro normale tipo di pioggia, che però non è "pioggia" (rain), ma "drizzle". E' un po' un progetto nato in un giorno di pioggia che finalmente ha trovato posto sulla mia agenda :)

Vedi anche Drizzle su Wikipedia (inglese)

Domande sul design Modifica

Perchè avete scelto InnoDB come motore di default? Modifica

Vogliamo che Drizzle sia ACID per default e InnoDB è un motore robustissimo di tipo ACID che ha funzionato con MySQL per anni.

Quali tipi di dati supportate? Modifica

Text, blob, varchar, varbinary, timestamp, datetime, date, time, enum, Set, (1,2,4,8 byte)INT, DOUBLE e Decimal.

Drizzle utilizza la stessa porta di MySQL? Modifica

No. La IANA ha assegnato a Drizzle la posta TCP 4427.

Contribuire Modifica

Posso essere d'aiuto? Modifica

Quasi sicuramente. C'è molto da fare, dal rifacimento del codice, alla progettazione delle interfacce, alla documentazione e i blueprints, etc. Il miglior modo di aiutare è unirsi alla mailing list:

https://launchpad.net/~drizzle-discuss/

Inoltre dai un'occhiata alla pagina Compiti per i quali c'è bisogno di aiuto.

Se vuoi suggerire di rifare un progetto o un'interfaccia manda una mail in lista e mantieni una mentalità aperta. Non aspettarti che chiunque lavori sulla tua idea però. Potresti convincere qualcuno a farlo, ma dovrai rimboccarti le maniche e scrivere tu la maggior parte del codice. Per parti molto semplici, puoi chiedere ad altri su #drizzle in Freenode, ma sappi che probabilmente ti chiederanno di mandare una mail in lista.

Mostrare un grosso blocco di codice probabilmente è il modo peggiore di cercare di far accettare il proprio lavoro. E' improbabile che funzioni, perchè è difficile unire il codice al trunk.

Per ora usiamo questo metodo per i commit. Ognuno può mandare una proposta di codice da unire, tramite Launchpad, ma le modifiche verranno prima esaminate da qualcuno che è in giro da molto abbastanza tempo per comprendere i requisiti del codice e quindi possa revisionare il tuo. Il sistema è basato interamente sulla fiducia e gli individui che mostrano di produrre buone patch hanno credibilità. Cominciare da cose piccole è meglio, le patch che sono formate solo da commenti o da due o tre linee di codice ripulite sono le benvenute e sono incoraggiate. Io raccomando che chiunque voglia lavorare a qualcosa prima cominci con qualcosa di questo tipo. Le patch così piccole possono avere il loro valore e ti insegnano a lavorare bene con questo sistema.

La regola generale è che sia il nuovo codice per il server, sia i cambiamenti nelle interfacce devono essere quantitativamente neutri. Cioè: se vuoi aggiungere un'interfaccia, devi poter rimuovere almeno tante righe quante ne aggiungi. Questa è una regola generica e non si applica alla pulizia del codice.

E' da notare che ci concentriamo più sullo stile del codice, sulle performance e soprattutto la manutenzione che non sull'aggiunta di nuove funzionalità.

I diritti sul mio codice sono assegnati a MySQL o a Sun? Modifica

Assolutamente no. Tu (o i tuoi dipendenti) detieni il copyright per il codice che scrivi. Noi ti chiediamo solo di documentare quando il codice che inserisci vieni da un altro progetto e non è stato scritto da te. Infatti quando ci accorgiamo che è così e non è stato inserito il credit opportuno, rimuoviamo il codice.

Come si fa a contribuire? Modifica

Vedi Scrivere del codice per sapere come utilizzare Bazaar e comprendere il nostro flusso di lavoro.

Qual è lo stile del codice? Modifica

Dai un'occhiata al branch di Bazaar: https://blueprints.launchpad.net/drizzle/+spec/style-cleanup Oppure dai un'occhiata alla pagina Stile del codice

Se hai domande, manda una mail in lista così che possiamo chiarire i tuoi dubbi. Quando avrai la risposta, per favore, aggiorna il documento :)

Devo mandare le patch in lista? Modifica

Oddio, no! Viviamo nell'era di Internet :)

Crea il tuo account su Launchpad.net. Crea il tuo branch in modo che ognuno di noi possa estrarre le tue modifiche da esso.

Usare DrizzleModifica

Ho ottenuto un errore come /usr/local/bin/drizzle: error while loading shared libraries: libdrizzle.so.16: cannot open shared object file: No such file or directory. Cosa devo fare? Modifica

Vedi la pagina Primi passi con Drizzle#libdrizzle.so.16 non trovato

Accesso alle informazioni Modifica

Posso guardare le vostre statistiche? Modifica

Si, anche se pubblicheremo tutte le informazioni di volta in volta, se vuoi davvero sapere cosa sta accadendo guarda drizzleproject.org e planetdrizzle.org, poi manda una mail a request_stats @ drizzleproject.org specificando il tuo nome e il nome di riferimento di un contributor di Drizzle o di una persona attiva nel progetto che può verificare che sei qualcuno realmente interessato a Drizzle.

Domande senza risposta Modifica

  • Potrà utilizzare Perl's DBD::MySQL (o qualunque altra libreria client) per connetermi a un database Drizzle? Basta semplicemente cambiare il numero di porta a 4427 perchè funzioni?
  • Cosa comporta la migrazione da MySQL a Drizzle?
  • Si può usare (e se si come) con PHP? Più specificatamente, cosa bisogna fare per migrare da MySQL a Drizzle e settare PHP per farlo connettere con Drizzle?

Ad blocker interference detected!


Wikia is a free-to-use site that makes money from advertising. We have a modified experience for viewers using ad blockers

Wikia is not accessible if you’ve made further modifications. Remove the custom ad blocker rule(s) and the page will load as expected.

Inoltre su FANDOM

Wiki casuale