You are on page 1of 12

Samspel mellan fretag och

community bttre programvaror till lgre kostnad


Anders Karlsson
MySQL AB

Copyright 2007 MySQL AB

The Worlds Most Popular Open Source Database

Agenda
r MySQL verkligen Open Source?
Olika licenser fr samma product
Community
Enterprise
Kommersiell

Arkitekturen och dess betydelse fr att frmja bidrag


frn vr community
Hur och vad kan man gra fr att bidra till MySQL
Ngra exempel p bidrag frn vr community

Copyright 2007 MySQL AB

The Worlds Most Popular Open Source Database

MySQL som Open Source


MySQL r Open Source och anvnder licensen GPL
version 2
MySQL kan ocks levereras med kommersiell licens
Detta r i praktiken samma MySQL som den som r Open
Source
Detta kan gras, eftersom MySQL har rttigheterna

Att samma programvara licensieras under olika


licenser blir mer och mer vanligt: SleepyCat, Zk, Qt
etc.
Vi ser utveckling med Open Source som ett effektivt
och enkelt stt att utveckla bra programvaror och
stdjer Open Source filosofin
Copyright 2007 MySQL AB

The Worlds Most Popular Open Source Database

GPL = GNU General Public License


Fr mer information om GPL v2 se
http://www.gnu.org/licenses/old-licenses/gpl-2.0-faq.html
SleepyCat r ett Open Source databasprojekt, Zk r ett Ajax-ramverk och Qt r
ett norskt Plattformsoberoende GUI-ramverk, och r anvnd till exempel i Linux
KDE.

MySQL Community och Enterprise edition


Dessa versioner hrstammar frn samma kllkod

Kllkod

Skillnaden ligger mest i hur ofta en binr version finns tillgnglig

Copyright 2007 MySQL AB

The Worlds Most Popular Open Source Database

Som synes i den andra bilden ovan s r tanken att Community Edition kommer
att sammanfras tillbaka med MySQL Enterprise med jmna mellanrum. Detta
behver inte betyda att allt frn MySQL Enterprise och MySQL Community
Edittion finns i den releasen, olika skl kan medfra att olika delar av produkten
fortfarande inte inkluderas i MySQL Enterprise, eller att specifika delar
exkluderas frn bgge releaserna.

MySQL Community och Enterprise edition


Nya funktioner i Community Edition
Nya funktioner kan komma att lggas till i Community Edition
Men detta r en kompromiss
ena sidan s mste Community edition vara s stabil som
mjligt
andra sidan s tar det lng tid innan ett bidrag frn MySQL
Community inkluderas i en produktionsrelease MySQL

Alternativet r att nya funktioner lggs in a kommande alphareleaser

Med andra ord


MySQL Enterprise har fokus p stabilitet
Community Edition har fokus p stabilitet, men kan f nya
funktioner

Copyright 2007 MySQL AB

The Worlds Most Popular Open Source Database

MySQL Community Edition och MySQL Enterprise r allts bgge GPL


licensierade. Men fortfarande lite olika. Kllkoden r i princip densamma, men
olika flaggor styr vad som inkluderas och vad som inte inkluderas.
MySQL Enterprise inkluderar inte bara MySQL produkten, dr ingr ocks
tekniskt kundstd, skydd fr IP rttigheter, monitoreringsprogram fr MySQL och
ett antal andra tjnster.

MySQL Hur var det nu med kllkoden


Skillnaden mellan MySQL Enterprise och Community
Edition hanteras till stor del i samband med att
produkten byggs till en binr version
Kllkoden till Community Edition
Finns tillgngig fr alla
Finns tillgnglig p bitkeeper

Kllkoden till Enterprise edition


Finns tillgnglig fr MySQL Enterprise kunder
Finns tillgnglig p bitkeeper

Copyright 2007 MySQL AB

The Worlds Most Popular Open Source Database

Notera att en MySQL Enterprise-kund inte r bunden av andra avtal n det som
rr GPL vad avser programvaran MySQL. Med andra ord kan en kund begra
kllkoden och behandla den som vilken anna GPL licensierad produkt som helst
efter det, inklusive distribuera den som kllkod och som binr
Att bygga MySQL handlar om att specificera ett antal olika val infr kompilering
och lnkning. Om man laddar ner MySQL i kllkodsform frn
http://dev.mysql.com s kan man se p configure processen att det finns mnga
alternativ. Till detta kommer alternativ som kopplas till de generiska alternativen,
allts t.ex. Olika CFLAGS, LIBS och LDFLAGS.
Kllkoden till MySQL Community Edition finns p http://dev.mysql.com och p
ftp.mysql.com samt olika speglar runt om i vrlden.

Bidrag frn Community


Alla OpenSource projekt r ppna fr alla att bidra
och delta i communityn
Att bidra kan gras p mnga olika stt, men det som
man frst tnker p r bidrag till programvaran i form
av:

Nya funktioner
Bugfixar
Porteringar till olika plattformar
Frbttringar av existerande kod

Copyright 2007 MySQL AB

The Worlds Most Popular Open Source Database

Mnga andra stt att bidra p finns, frutom de som nmns ovan. Det skrivs
bcker och artiklar om MySQL, bde i tryckt form och p ntet och det skrivs
kringprogram och applikationer fr MySQL.

Projekt med std fr bidrag frn en Community

Ett projekt som stdjer samarbete och bidrag frn community kan
till exempel innehlla dessa komponenter :

En ppet dokumenterad arkitektur


Utveckling i distribuerad form ven inom projektets krna
Utvecklare deltar i diskussioner p mail-listor med externa utvecklare
Buggar finns dokumenterade, r lsbara, hanterbara och kan lggas in
av alla
Olika program fr bidrag kan drivas
Mtesplatser p ntet fr externa och interna utvecklare och fr bidrag
Pluggable architecture

Copyright 2007 MySQL AB

The Worlds Most Popular Open Source Database

Prenumerera p MySQL mailinglistor p http://lists.mysql.com. Framfr allt r


Internal intressant fr ngon som vill bidra till MySQL kllkod.
Ls mer om MySQL Quality Contribution Program p
http://dev.mysql.com/qualitycontribution.html dr det ven finns lnkar tll
information om hur man bidrar till buggfixar, tillgg och annat.
MySQL Forge finns p http://forge.mysql.com

MySQL bidrag frn Community SHOW PROFILE


Jeremy Coles SHOW PROFILE
Ger mjlighet att se prestandaprofil fr MySQL frgor
Finns i MySQL 5.0 Community Edition
Inkluderas senare i 5.1 eller 5.2
mysql> set profiling = 1;
Query OK, 0 rows affected (0.00 sec)
mysql> select * from t2;
+----+------+
| c1 | c2
|
+----+------+
| 1 |
1 |
| 2 |
2 |
| 3 |
3 |
| 4 |
4 |
+----+------+
4 rows in set (0.00 sec)
mysql> show profile;
+--------------------------------+-----------+
| Status
| Duration |
+--------------------------------+-----------+
| (initialization)
| 0.000006 |
| checking query cache for query | 0.000007 |
| checking privileges on cached | 0.0000072 |
| sending cached result to clien | 0.000018 |
| logging slow query
| 0.0000032 |
+--------------------------------+-----------+
Copyright 2007 MySQL AB

The Worlds Most Popular Open Source Database

Ls Jeremy Coles hemsida p http://jcole.us/ dr bland annat hans lsvrda


blogg ocks finns.
Jeremy Cole has ocks sett till att SHOW PROFILE informationen finns i en
tabell i INFORMATION_SCHEMA ocks: PROFILING
Ls om SHOW PROFILE kommandot i MySQL dokumentationen hr:
http://dev.mysql.com/doc/refman/5.0/en/show-profiles.html
En artikel om SHOW PROFILE finns hr ocks:
http://dev.mysql.com/tech-resources/articles/using-new-query-profiler.html
Filmer med Jeremy Cole om MySQL finns t.ex. hr:
http://www.youtube.com/watch?v=utIQik8I3Xg
http://video.google.com/videoplay?docid=4156084382152425556
http://video.google.com/videoplay?docid=4308059139324799095
Jeremy Cole arbetar till vardags p konsultfretaget Proven Scaling
INFORMATION_SCHEMA r en databas i MySQL med metadata om de olika
objekten i MySQL, som tabeller, kolumner och procedurer.
INFORMATION_SCHEMA r standardiserat och anvnds i flera olika
databashanterare.

Bidrag frn Community - PBXT


PBXT / PrimeBase XT r en MySQL Storage Engine
PBXT r Open Source och finns p SourceForge
PBXT r en intressant Storage Engine med flera
unika egenskaper. Den har fullt transaktionsstd, kan
hantera mycket stora databaser och har mycket bra
prestanda
En intressant egenskap r, till exempel, att alla data
lagras i transaktionsloggen

Copyright 2007 MySQL AB

The Worlds Most Popular Open Source Database

10

En Storage Engine r den del av MySQL dr lgnivhantering av data i en tabell


sker, som till exempel skrivning p och lsning frn disk (om det grs),
transaktionshantering och rad och/eller sidlsning. Mer information finns hr:
http://solutions.mysql.com/engines.html
Primebase hemsida r http://www.primebase.com
En interview med Paul McCullagh som r hjrnan bakom PrimeBase XT, finns
hr: http://dev.mysql.com/tech-resources/interviews/paul-mccullagh-pbxt.html
Ett White paper om PrimeBase XT, om dess intressanta arkitektur och ngra av
de ovanliga ideer som den baseras p, finns hr:
http://www.primebase.com/xt/download/pbxt_white_paper.pdf

10

Bidrag frn Community - Bugrapporter


Alla kan rapportera och lsa buggar. Att rapportera
buggar i MySQL, oberoende av version och
releasestatus (Alpha, Beta, Produktion) r ett av de
vikigaste bidragen frn vr Community. Bland de
mnga som rapporterar buggar finns till exempel
Martin Friebe 189 stycken
Jared Sullivan 104 stycken
Heinz Schweitzer 76 stycken

Copyright 2007 MySQL AB

The Worlds Most Popular Open Source Database

11

MySQLs bugsystem finns tillgngligt p http://bugs.mysql.com


Fr att rapportera buggar br man beskriva problemet med s mycket detaljer
som mjligt, och ocks, om mjligt och relevant, ha med ett reproducerbart fall.
Se mera om buggrapportering och bidrag till MySQL i allmnhet hr:
http://dev.mysql.com/qualitycontribution.html
Fr testing av MySQL anvnder vi ett ramverk. Nr en bugg upptcks och lses,
skapas ocks ett testcase buggen i frga. Se mer om detta ramverk
hr:http://dev.mysql.com/doc/mysqltest/en/index.html

11

Frgor?

Copyright 2007 MySQL AB

The Worlds Most Popular Open Source Database

12

12

You might also like