Drizzle: lekka wersja MySQL dla webu

Brian Aker, jeden z dyrektorów MySQLa, odpowiedzialny za architekturę ogłosił powstanie projektu Drizzle — odchudzonej wersji MySQL przeznaczonej głównie dla aplikacji webowych, intensywnie wykorzystujących współbieżność.

Drizzle będzie działał w architekturze z mikro-jądrem. Kod odpowiedzialny za dodatkowe funkcje zostanie usunięty z rdzenia aplikacji i przeniesiony do modułów.

Akers już zdefiniował rzeczy do usunięcia: tryby (modes), widoki, wyzwalacze (triggers), przygotowane zapytania (prepared statements), procedury składowane (stored procedures), cache zapytań, inserty konwertujące dane (data conversion inserts), listy kontrolne (ACL) i niektóre typy danych.

W Drizzle znajdzie się za to najnowszy silnik InnoDB, którego premiera miała wcześniej odbyć się wraz z wydaniem MySQL 6.0.

Drizzle będzie dostępny tylko dla Linuksa i Mac OS X. Aker nie ma zamiaru wspierać systemu MS Windows czy innych platform bez stosownych narzędzi GNU.

Lista dyskusyjna projektu znajduje się na stronie launchpad.net/~drizzle-discuss, jest już też wiki, a sam kod będzie udostępniony — na licencji GPLv2 — na stronie launchpad.net/drizzle.

żadnych reklam, sama wiedza.

Zarejestruj się na BEZPŁATNY NEWSLETTER i raz w tygodniu otrzymuj najważniejsze wiadmości
ze świata IT, nowych technologii i kryptowalut.

Bez reklam.

  1. Awatar Skoruppa
    Skoruppa

    sweet xD

  2. Awatar halish
    halish

    z listy usuniętych rzeczy widać, że tylko do prostszych zastoswań sieciowych. do bloga może i się nada, ale sklep internetowy? dziękuję, wolę już zwykłego MySQL-a

    1. Awatar nie_sTrasz (Dee)
      nie_sTrasz (Dee)

      "Kod odpowiedzialny za dodatkowe funkcje zostanie usunięty z rdzenia aplikacji i przeniesiony do modułów."

    2. Awatar soda2
      soda2

      no bo z założenia ten projekt ma być mniejszy i lżejszy, np. na takiego bloga czy malutki system newsów – potrafisz czytać? Poza tym reszta ma być przeniesiona jako moduły.

      1. Awatar riklaunim
        riklaunim

        SQLite 🙂 do mniejszych jak znalazł 🙂

        1. Awatar S
          S

          Przy zachowaniu odpowiednich proporcji odczytów do zapisów…

    3. Awatar Mik
      Mik

      Hmm, czemu? Wg. mnie sklep można zrobić bez tych rzeczy… Jaka funkcja byłaby Ci tak życiowo potrzebna? Rozumiem, że jakby transakcji zabrakło, to byłaby porażka, ale chyba tylko tego.

      1. Awatar perk
        perk

        generalnie funkcje maja tendencje do wykonywania sie szybciej w bazie niz w warstwie aplikacji (jak php). i po co pobierac "kilo" danych, jak potrzebny mi jest tylko wynik obliczen?

      2. Awatar MichalK
        MichalK

        widoki triggery i funkcje wbudowane, bez tego jak bez reki

  3. Awatar Sadysta
    Sadysta

    Brawo za brak wsparcia dla produktów MS. Mam respekt dla firmy Billa G. i dla tego co osiągnęła w końcówce ubiegłego stulecia, ale moim nieskromnym zdaniem ich czas na rynku systemów operacyjnych powoli zaczyna się kończyć. Wygoda niskopoziomowych API oferowanych przez Linuxa jest tak dalece wyższa w stosunku do sztucznych i topornych rozwiązań w Windzie, że aż dziw mnie bierze, że jakiekolwiek serwerowe aplikacje powstają dla Windowsów o_O

    1. Awatar korowiow
      korowiow

      Czy możesz podać konkretniejsze info nt. temat?

    2. Awatar lipa
      lipa

      Ale fachowe porównanie. Nie wiem czy wiesz ale 95 % kodu takiego Oracle to nie zależy od systemu operacyjnego.

      1. Awatar jellonek
        jellonek

        offtop: a jak sie sypie, a jakie memleaki ma 😉

        najfajniejsze w oracle sa bledy ora-00600, z ktorych czesc oznaczona jest jako "problemy, ktore zostaly rozwiazane przez patch _tu_jakas_wersja_", pojawiajace sie w alertlogu bazy opaczowanej do tej wersji 😉

    3. Awatar S
      S

      Respekt to możesz mieć przed warczacym dobermanem chłopaku. Po polsku pisze sie SZACUNEK.

      1. Awatar jellonek
        jellonek

        taaa… http://www.sjp.pl/respekt
        inna sprawa ze nie "mam respekt", a "czuje respekt wzgledem".

        w przypadku szacunku zarowno "mam" jak i "czuje .. do" jest oczywiscie na miejscu…

        S: a kim to ty jestes ze do nieznanej Ci osoby odnosisz sie per "chlopaku"?

  4. Awatar krzy
    krzy

    Czyli, wyrób bazodanopodobny przestał udawać że chce dorosnąć i zostać bazą danych.

    Osobiście proponuję zlikwidować jeszcze klucze obce.

    1. Awatar korowiow
      korowiow

      "I’ve managed to get my PostgreSQL installation tuned to very high speeds simply by switching the database disk over to /dev/null. It runs fast as hell, and the data integrity is basically the same as MyISAM."

      Że tak zacytuję komentarz ze slashdota. 😉

      1. Awatar piter
        piter

        Jeśli ktoś jest głąbem i nie wie co zrobić z własnymi "pomysłami" to tylko przykro…

      2. Awatar pudlo
        pudlo

        Dobry dżołk, uśmiałem się po pachy. 🙂

        1. Awatar pudlo
          pudlo

          tzn. ten ze slashdota

  5. Awatar http://dr.boczek.ope
    http://dr.boczek.ope

    hmm, ja myślę że chcę skomercjalizować całkowicie mysql, widzą ze zdobywa coraz większą popularność, jest stabilny, powoli dogania konkurencję. Zrobią darmową "lekką" wersję a pełna będzie płatna pewnie.

    Na szczęście do prostych witryn mamy sqlite, który sam coraz częściej wykorzystuję i muszę przyznać że jest naprawdę dobry i szybki. Wszystkim gorąco polecam, do sklepu internetowego się to nei nadaje, ale do prostej witryny z newsami czy bloga nadaje się idealnie.

    1. Awatar batwing
      batwing

      To się raczej nie uda. MySQL jest chyba w rękach SUNa, a ta firma otworzyła ostatnio Solarisa (zfs chyba również – poprawcie mnie, proszę), więc pochyla się w stronę FLOSS. Poza tym jest darmowy postgres, do którego MySQLowi brakuje choćby obsługi transakcji, co go dyskwalifikuje w poważnych zastosowaniach finansowych.

      1. Awatar pinki
        pinki

        MySQL nie ma transakcji?

        Dziwne… u mnie działają!

        1. Awatar jellonek
          jellonek

          w "ich" silniku (myisam) – chyba nadal nie maja.

          w innodb (silniku stworzonym przez firme wykupiona przez oracle) – a i owszem, sa…

        2. Awatar DeBill
          DeBill

          Nie "chyba" a "na pewno". W ogóle MyISAM to tylko wyszukiwanie ma ciekawe 🙂

      2. Awatar Magnes
        Magnes

        A Google chyba na głowę upadł, że używa MySQL. :>

      3. Awatar soft
        soft

        fajny wortal…

        newsy o apple komentuja glownie linuksowi fanboje.

        newsy o silniku baz danych komentuja ludzie, ktorzy nie tylko nie widzieli tego silnika na oczy, ale nawet nie maja pojecia o bazach danych.

        co go dyskwalifikuje w poważnych zastosowaniach finansowych

        takim stwierdzeniem przyczepiasz sobie oczojebna etykiete "zastrzelcie mnie, nie mam pojecia o czym gadam"…

        1. Awatar krzy
          krzy

          Sorry, ale produkt który:

          – nie zapewnia ACID

          – "po cichu" obcina dane wejściowe jeśli są za długie w stosunku do długości pola (poprawili to już?)

          – nie posiada obsługi subselectów, skutkiem czego wiele aplikacji zamiast nich musi wykonywać wielkie joiny

          – nie posiada obsługi stored procedures i prepared statements skutkiem czego mamy trwającą do dzisiaj epidemię bugów SQL injection na stronach WWW

          nie nadaje się absolutnie do niczego. Owszem, większość tych rzeczy zaimplementowano w MySQL 5.0 i ta seria już się do czegoś nadaje. Tylko, że właśnie ogłoszono, że te właśnie ficzery – które powodują że MySQL zaczyna wreszcie przypominać bazę danych – mają być opcjonalne, czyli praktycznie wyrzucone. Inaczej mówiąc, to jest powrót do MySQL 3.x. Jak mawiał Lenin – "jeden krok w przód, dwa kroki w tył".

        2. Awatar jellonek
          jellonek

          o ile w pierszej czesci (wypunktowanej) jest to, co sam chcialem napisac, o tyle w drugiej zapomniales, ze te elementy:

          – beda dostepne w modulach

          – wywalone zostana tylko w wersji "embedded", o ktorej jest news, a nie w wersji "mainstream"

        3. Awatar krzy
          krzy

          Ja o tym wiem. Ale to wcale nie jest dobre.

          Jeśli (np.) integralność jest opcjonalna, to deweloper ją sobie wyłączy, bo będzie mu się wydawać, że jest niepotrzebna. Potem wytworzy aplikację która z załączoną integralnością działać nie będzie. Więc użytkownik też będzie sobie musiał to dla kompatybilności wyłączyć. Efekt jest taki sam jak wyrzucenie ficzera.

          Jest wystarczająco za dużo złego kodu PHP/MySQL i wystarczająco dużo niedouczonych programistów tego środowiska żeby jeszcze zwiększać w tych narzędziach możliwości zrobienia sobie krzywdy.

          To się nie powinno nazywać Drizzle, tylko Retro 🙂

        4. Awatar macbirdie
          macbirdie

          Choć i mnie denerwowało zawsze że MySQL tylko bazę danych przypomina, to czy tak naprawdę do aplikacji webowych, szczególnie prostszych, jest potrzebna Relacyjna Baza Danych z Prawdziwego Zdarzenia? Często jest to tylko nieco wygodniejszy niż pliki sposób przechowywania danych.

          Drizzle może się sprawdzić jako szybki cache dla właściwej bazy, który trzymałby np. jej zdenormalizowaną postać, a przynajmniej najczęściej używanych joinów (ręcznie zmaterializowane perspektywy na przykład).

          I tak w kodzie aplikacji trzeba obsługiwać zwracane przez bazę błędy dotyczące naruszenia integralności, więc w zasadzie ona sama musi w pewnym sensie o ową integralność dbać.

          Czy datastore w takim Google App Engine ma integralność? Nie! Nawet joinów brak.

          Mimo wszystko akurat trzymanie integralności powinno być zachowane w core, a sprawdzanie kluczy obcych wyłączalne chwilowo tylko w sytuacji wypełniania bazy początkowymi danymi lub kompletnym jej czyszczeniu, "resetowaniu" aplikacji (jak w django sqlreset).

        5. Awatar krzy
          krzy

          Choć i mnie denerwowało zawsze że MySQL tylko bazę danych przypomina, to czy tak naprawdę do aplikacji webowych, szczególnie prostszych, jest potrzebna Relacyjna Baza Danych z Prawdziwego Zdarzenia?

          Mnie uczono, że powinno się jak największą ilość przetwarzania danych przerzucać na bazę, aby (1) zmniejszyć ilość przesyłanych danych do i z bazy i (2) dać pole do popisu optymalizatorowi zapytań.

          Nieszczęście pt. MySQL polega na tym, że powstała duża grupa ludzi, którzy uważają, że "zaawansowane" ficzery nie są potrzebne, bo oni nauczyli się przez lata radzić sobie bez nich. Problem polega na tym, że bez tych "zaawansowanych" ficzerów to prościej i szybciej byłoby użyć SQLite, BerkeleyDB czy nawet plików tekstowych.

        6. Awatar jellonek
          jellonek

          krzy: widac ze uczono ciebie wedlug starych regul 😉

          chodzi o to ze wpierdzielanie do bazy jak najwiekszej ilosci funkcjonalnosci "bo blizej danych" to stare podejscie, ktore utrudnia skalowanie rozwiazania i przywiazuje do jednego dostawcy rozwiazania bazodanowego (naklepiesz cos w pl/sql oracle – przykujesz sie na lata do tego, podobnie z postgre, podobnie z db2). od wieeelu lat tolkuje sie nowe podejscie:

          – baza danych jako kontener przechowujacy dane/pilnujacy ich spojnosci

          – posredniczaca logika biznesowa przetwarzajaca dane

          – jeden, lub wiecej frontend

          kazdy z tych elementow lepiej skalowac odrebnie – jak masz aplikacje w kodzie pl/sql oraclowym – umarles w butach…

          .

          czyli w skrocie – model troj warstwowy, w miejsce tolkowanego dawniej modelu dwu warstwowego…

          .

          btw. "zaawansowane" rozwiazania opieraja sie o bazy dedykowane, a nie o mechanizmy sql, dajace pole do popisu np. optymalizatorom. bazy sqlowe sa poprostu do takich zastosowan "zaogolne". "zaawansowane rozwiazania" opieraja sie o konkretne "szczegolne" rozwiazania.

        7. Awatar krzy
          krzy

          – baza danych jako kontener przechowujacy dane/pilnujacy ich spojnosci

          Ba, tylko że MySQL nawet spójności danych pilnować nie potrafi.

          Ogólnie, to nawet jestem w stanie się z takim podejściem zgodzić. Natomiast nawet ono nie jest dla mnie w stanie usprawiedliwić stosowania czegoś w stylu MySQL 3.x.

        8. Awatar jellonek
          jellonek

          nic dodac, nic ujac 😉

      4. Awatar jarek
        jarek

        > MySQLowi brakuje choćby obsługi transakcji

        Inne z moich ulubionych to:

        "qt nie jest na gpl, jest zamknieta"

        "w systemie plikow w windows nie mozna ustawic praw dostepu"

        "java jest potwornie wolna a C zajebiscie szybkie"

        1. Awatar puppy
          puppy

          @Magnes: A google nie używa czasem własnego systemu BigTable? Pierwsze słyszę by używało MySQL.

        2. Awatar macbirdie
          macbirdie

          Używa, używa. Nawet poprawki podrzuca.

          http://www.informationweek.com/news/internet/show…

      5. Awatar Mik
        Mik

        powtarzasz komentarze z onetu z zeszłego wieku?

        1. Awatar Mik
          Mik

          hmm to powyższe dotyczyło informacji o braku obsługi transakcji.. chyba źle kliknąłem w "Odpowiedz". Transakcje są,ale nie w domyślnym silniku MyISAM, tylko innoDB (pozostałych tak naprawdę nie znam, nie używam). Niestety osobiście stwierdzam, że mają słabą obsługę lock – używałem i tak uważam. Podobno istnieją bazy danych, które potrafią podać jaki użytkownik zablokował daną komórkę, lecz nie wiem jakie:)

          To by się przydało, przez to muszę robić dodatkowe pola w tabeli z datą i nazwą użytkownika – tego naprawdę mi brakuje:(

  6. Awatar http://dr.boczek.ope
    http://dr.boczek.ope

    hmm, ja myślę że chcę skomercjalizować całkowicie mysql, widzą ze zdobywa coraz większą popularność, jest stabilny, powoli dogania konkurencję. Zrobią darmową "lekką" wersję a pełna będzie płatna pewnie.

    Na szczęście do prostych witryn mamy sqlite, który sam coraz częściej wykorzystuję i muszę przyznać że jest naprawdę dobry i szybki. Wszystkim gorąco polecam, do sklepu internetowego się to nei nadaje, ale do prostej witryny z newsami czy bloga nadaje się idealnie.

    dodam jeszcze że zrobiłem sobie katalog płyt CD/DVD na sqlite i PHP5 – jestem zadodolony, choć plik ma aktualnie 25MB wyszukiwanie trwa błyskawicznie.

    1. Awatar korowiow
      korowiow

      No cóż, nawet jeżeli masz rację, to został jeszcze Postgres (który swoją drogą jest lepszy od mysql chyba pod każdym względem). :>

      1. Awatar Arkadiusz
        Arkadiusz

        true, poza prędkością oczywiście 🙂

        1. Awatar jellonek
          jellonek

          ze niby mysql jest szybszy od postgre?

          moze w domyslnej konfiguracji i w rekach "webmastera" postgres rzeczywiscie przegrywa…

        2. Awatar MichalK
          MichalK

          rozwin swa mysl, czyli jak przyspieszyc postgresa

        3. Awatar jellonek
          jellonek

          chociazby zwiekszajac ilosc dostepnej dla niego pamieci…

    2. Awatar manwe
      manwe

      Nie zrobią tego. Jeżeli spróbują zamknąć MySQL'a, z ostatniej GPLowej wersji ludzie zrobią fork ( OurSQL 😉 i w ten sposób Sun nic nie zyska, a straci kontrolę nad kodem.

  7. Awatar sprae
    sprae

    Ja natomiast uważam, że to może być bazodanowy czarny koń na miare firefoxa 0.1 w czasach swietności kobyły mozilli.

    1. Awatar soft
      soft

      gdyby nie bylo z jednej strony sqlite, z drugie postgresa. gdyby nie bylo frameworkow w typie ror, czy symfony, to pewnie taki "pomysl" mial by racje bytu. ale nie ma…

      1. Awatar clondike
        clondike

        Ale RoR (a dokładniej ActiveRecord) nie używa wspomnianej funkcjonalności, ba, nawet kluczy obcych nie używa… Właśnie pod RoR taka baza jak znalazł 🙂

  8. Awatar http://dr.boczek.ope
    http://dr.boczek.ope

    mi tam mysql do szczęścia nie jest potrzebny, tak jak mówicie – mam postgresa, no i lekkiego sqlite'a.

    i zastanówcie sie jak piszecie że mysqli nie nadaje się do poważnych zastosowań. Nie nadawał się, ale już się nadaje. Dodam że istnieje również firebird

    jakby ktoś zapomniał – tego również używałem, naprawde fajna baza i zdecydowanie nadaje się do zastosowań komercyjnych – dla tych co marudzą na mysql.

  9. Awatar mutant
    mutant

    A ja mam SQL Server Express Edition 2008 CTP, co prawda kod jest zamknięty ale poza tym bije wszystko na głowe co do tej pory się ukazało. Zresztą co mi po kodzie, analizować bym to jeszcze miał czy co.

  10. Awatar fgjnfgjfg
    fgjnfgjfg

    a bedzie szybszy?

    bo pewnie jak znam zycie bedzie szybszy o 2% albo i 2.0001 😉

  11. Awatar norbert_ramzes
    norbert_ramzes

    Akers już zdefiniował rzeczy do usunięcia: … cache zapytań,

    Wsio fajnie ale cache zapytań???

    Ja bym tego nie wywalał bo to dodaje "mocnego kopa" bazie, a swoją drogą można to wyłączyć w konfigu (tzn. obecnie).

    1. Awatar michuk
      michuk

      Aż tak strasznie dużo nie daje. Lepiej sprawdza się z doświadczenia memcached. Kontrolujesz dokładnie co cachować. Ale oczywiście cache po stronie bazy równie przydatny może być — zależy w dużej mierze od rodzaju apikacji i dostępu do danych.

  12. Awatar wiktorw
    wiktorw

    W takim tempie po dokładnym doborze modułów (czytaj: usunięciu zbędnych) będzie można MySQL dodawać jako prywatny backend do nawet niewielkich aplikacji typu desktop – no i oczywiście webowych.

    [na_wesoło]

    Już widzę: Amarok na Embedded MySQL (baza multimediów), Portage na Embedded MySQL (baza ebuildów), [wstaw coś] na Embedded MySQL… Wprost euforia na świecie! 😉 😛

    [/na_wesoło]

    A na poważnie: niech zrobią, potestujemy, zobaczymy co z tym da się zrobić.

    PS. Dla Javy istnieją podobne rozwiązania, jak choćby HSQLDB (m.in. schowany w pakiecie OpenOffice – chyba przez swoje możliwości). Mały, szybki, może pracować jako samodzielny serwer (do 10 baz), w kontenerze webowym i w procesie aplikacji (embedded). Czyli SOA #1.

    1. Awatar jellonek
      jellonek

      [na_wesoło]

      Już widzę: Amarok na Embedded MySQL (baza multimediów), Portage na Embedded MySQL (baza ebuildów), [wstaw coś] na Embedded MySQL… Wprost euforia na świecie! 😉 😛

      [/na_wesoło]

      czyli wszystkie te zadania, do ktorych obecnie najlepiej nadaje sie sqlite.

      ps. dla wszystkich innych srodowisk niz java istniej do tego celu sqlite i sprawdza sie wysmienicie.

      1. Awatar jarek
        jarek

        Nie bardzo rozumiem to ujadanie na MySQL. Placa wam za to?

        Jak pojawia sie news o kolejnym bzdecie w stylu windowmanager

        czy szebernasty odtwarzac mp3 to rozlega sie cmokanie

        "ah, oh, mnogosc opcji to sila floss", a tu, jakby wscieklizy

        macicy podostawali. MySQL wywalczyl swoja nisze i juz, czyli

        najwyrazniej jest popyt/potrzeba na niego, chcecie tego czy nie.

        1. Awatar jellonek
          jellonek

          ja nie ujadam na mysql

          martwi mnie tylko wciskanie go gdzie popadnie, podczas gdy sa juz do tego lepsze rozwiazania

          niestety tak jak w przypadku ms – wygrywa marketing, dlatego tez "stada" uzywaja…

      2. Awatar norbert_ramzes
        norbert_ramzes

        Hmmm może pliki tekstowe?

        W mniejszych rzeczach najlepsze są pliki tekstowe.

        Np. Całkiem niedawno robiłem komuś bardzo mały i bardzo prosty panel administracyjny w którym login (tylko jeden) był wpisany na stałe w skrypcie php a zaszyfrowane hasło jest przechowywane w pliku tekstowym.

        Mniej więcej wyglądało to tak

        if(md5($_POST['password']) === file_get_contents('haslo.txt'))…

        if($_POST['password_1'] === $_POST['password_1']){file_put_contents('haslo.txt', md5($_POST['password_1'])); echo 'hasełko zostało zmienione';}

        a reszta (zgodnie z założeniami projektu) była trzymana w xml'u.

        Więc ograniczenie ilości featur'ów może przyśpieszyć pisanie/działanie aplikacji.

        Ale nadal nie rozumiem czemu cache zapytań jest w tej liście…

        1. Awatar Holden
          Holden

          > a reszta (zgodnie z założeniami projektu) była trzymana w xml’u.

          Myślałem że wcześniej wspomniałeś, że ma to działać szybko…

        2. Awatar norbert_ramzes
          norbert_ramzes

          …to miało być do sterowania flashem co czyta konfigurację z xml'a.

          Przeczytaj jeszcze raz to co jest w nawiasie.

      3. Awatar ucho
        ucho

        Amarok już chodzi chyba na SQlite, podobnie choćby SCons – jeden z pretendentów do tytułu "następca Make". Firefox 3 też na SQlite – wszystko co potrzebowało nieskomplikowanej bazy już jej używa, mysql ma małe szanse zgarnąć tą nisze dla siebie 😉

  13. Awatar tremor
    tremor

    Co to jest 'webu'?

    1. Awatar jellonek
      jellonek

      siec www dla ubogich…

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *