Koneoppiminen

Tekoäly löysi liikaa vikoja – suosittu tietokanta myöhästyy

PostgreSQL 19 siirtyi marraskuulle, ja 8–10 uutta ominaisuutta peruttiin

Hanna HuulivuoHanna Huulivuo
Jaa:
Tekoäly löysi liikaa vikoja – suosittu tietokanta myöhästyy
Kuva: Sai Kiran Anagani _imkiran / CC0

Peter Eisentraut on kehittänyt PostgreSQL-tietokantaa vuosia. Lokakuun 9. päivänä hän julkaisi blogissaan kirjoituksen, jonka otsikko on vapaasti suomennettuna ”Perumiset jatkuvat, kunnes työmoraali paranee”. Siinä hän selittää, miksi PostgreSQL 19 ilmestyy myöhässä ja ohuempana kuin piti.

Syy on yllättävä. Kielimallien avustama koodikatselmointi löytää vikoja niin nopeasti, etteivät kehittäjät ehdi korjata kaikkia ennen julkaisua.

PostgreSQL on avoimen lähdekoodin tietokanta, joka pyörii lukemattomien verkkopalvelujen, sovellusten ja myös julkisen sektorin järjestelmien taustalla, joten moni suomalainen käyttää sitä päivittäin tietämättään. Uusi pääversio julkaistaan kerran vuodessa.

Kahdeksasta kymmeneen ominaisuutta pois

The Registerin mukaan PostgreSQL 19:n piti alun perin ilmestyä syyskuun lopussa tai lokakuun alussa. Projekti julkaisi 15. lokakuuta ensimmäisen julkaisuehdokkaan, ja sen tiedotteen mukaan lopullinen versio on suunniteltu julkaistavaksi 19. marraskuuta, ellei uusia ongelmia ilmene.

Eisentrautin mukaan beetavaiheen alettua versiosta on peruttu ”noin 8–10 merkittävää ominaisuutta, riippuen siitä miten lasketaan”. Tavallisesti perumisia on yksi kehityskierrosta kohden. Hänen arvionsa mukaan PostgreSQL 19:ssä on nyt noin puolet niistä suurista uudistuksista, joita hän vielä muutama kuukausi sitten odotti.

Eisentraut on PostgreSQL-tukea ja konsultointia tarjoavan EDB:n varapääjohtaja. Hän kuuluu niihin kehittäjiin, joilla on oikeus viedä muutoksia projektin koodiin.

Neljäkymmentä vikailmoitusta, kolme riviä kukin

Eisentraut kuvaa tyypillistä tilannetta näin: kehittäjän ominaisuus on valmis ja hyväksytty, mutta sitten kielimalliavusteinen katselmointi käy koodin läpi. Edessä on hänen sanoin ”lista, jossa on jotain neljäkymmentä vikailmoitusta”. Keskimäärin kunkin korjaus vaatii hänen arvionsa mukaan vain noin kolme riviä koodia.

Ongelma on määrä. The Registerille hän sanoi, että ”jokaisen käsittelyyn liittyy kiinteä työmäärä, ja sitten aika loppuu”.

“Kielimalliavusteisella koodikatselmoinnilla tällaiset asiat löytyvät paljon nopeammin.”

— Peter Eisentraut, PostgreSQL-kehittäjä ja EDB:n varapääjohtaja The Registerille (suomennettu englannista)

Osa löydöistä oli pieniä reunatapauksia, jotka olisivat ennen paljastuneet ehkä vasta vuosia julkaisun jälkeen. Osassa perutuista ominaisuuksista oli kuitenkin The Registerin mukaan niin syviä rakenteellisia vikoja, ettei niitä olisi saatu nopeasti kuntoon beetavaiheessa.

Eisentrautin mukaan kahden kuukauden lisäaika olisi riittänyt jäljellä olevien ongelmien korjaamiseen. Yhteisö päätti kuitenkin mieluummin pysytellä aikataulussa kuin lykätä julkaisua saadakseen lisää korjauksia mukaan.

Tilannetta hankaloitti sekin, että monet kokeneet kehittäjät olivat huhtikuusta alkaen kiinni haavoittuvuuksien selvittelyssä. Eisentraut kutsuu ilmiötä nimellä ”Vulnpocalypse”. Samassa kuussa alkoi version 19 ominaisuusjäädytys.

Laatuvaatimus nousi jälkikäteen

Eisentraut korostaa, ettei kyse ole niin sanotusta vibe-koodauksesta eli koodin tuottamisesta kielimallilla ilman tarkkaa ymmärrystä. ”Tämä koodi kirjoitettiin hyvissä ajoin ennen kuin se oli edes mahdollista”, hän kirjoittaa englanninkielisessä blogissaan.

Ihmiset siis kirjoittivat koodin, mutta mittapuu muuttui kesken kaiken. ”Tosiasiallinen laatuvaatimus on noussut sen jälkeen, kun ominaisuus kirjoitettiin ja vietiin koodiin”, Eisentraut sanoi The Registerille.

PostgreSQL:n rakenne tekee asiasta erityisen hankalan. ”Sanon mielelläni, että PostgreSQL:ssä ’kaikki toimii kaiken kanssa’”, Eisentraut kirjoittaa. Jokaisen uuden ominaisuuden pitää toimia yhteen kaikkien vanhojen kanssa, ja juuri tällaisia yhdistelmiä kielimallin avustama fuzz-testaus eli ohjelman koettelu satunnaisilla syötteillä löytää nopeasti.

Näkyvin peruttu ominaisuus on SQL/PGQ, vuonna 2023 SQL-standardiin lisätty kyselysyntaksi, jolla haetaan solmujen ja niitä yhdistävien suhteiden muodostamia verkostoja. Pitkäaikainen kehittäjä Tom Lane varoitti projektin postituslistalla englanniksi: ”Tässä vaiheessa lyön vaikka illallisesta vetoa, että jos julkaisemme sen v19:ssä, julkaisun jälkeen löytyy bugeja, joita ei voi korjata ennen v20:tä.”

PostgreSQL 19 lukuina

Alkuperäinen tavoite oli syyskuun loppu tai lokakuun alku. Ensimmäinen julkaisuehdokas ilmestyi 15. lokakuuta, ja lopullinen versio on suunniteltu 19. marraskuuta. Beetavaiheen alettua peruttiin 8–10 merkittävää ominaisuutta, jotka siirtyvät todennäköisesti ensi vuoden PostgreSQL 20:een.

8–10↓

Merkittävää ominaisuutta peruttu beetavaiheen alettua (tavallisesti yksi)

~40↑

Vikailmoitusta kielimallin katselmoinnista yhtä ominaisuutta kohden

~3

Koodiriviä keskimäärin yhden vian korjaukseen

19.11.

PostgreSQL 19:n suunniteltu julkaisupäivä

Peter Eisentraut ja The Register, 2026

Sanasto

Koodikatselmointi
Vaihe, jossa joku muu kuin kirjoittaja käy ohjelmakoodin läpi ja etsii siitä virheitä ennen kuin muutos hyväksytään. Nyt apuna käytetään yhä useammin kielimalleja.
Ominaisuusjäädytys
Kehityksen vaihe, jonka jälkeen versioon ei enää lisätä uusia ominaisuuksia. Siitä eteenpäin keskitytään vain olemassa olevien ominaisuuksien testaamiseen ja korjaamiseen.
Julkaisuehdokas
Ohjelmiston lähes valmis versio, joka julkaistaan viimeistä testausta varten. Jos siitä ei löydy vakavia vikoja, siitä tulee sellaisenaan lopullinen versio.

Hyvä uutinen ylläpitäjille

Tietokantaa käyttävälle organisaatiolle viivästys on lopulta hyvä uutinen. Beetavaiheessa löytynyt vika ei kaada verkkokaupan kassaa tai viraston asiointipalvelua kolmen vuoden päästä. Tietokantojen pääversiot pysyvät tuotannossa usein vuosia, joten jokainen ennen julkaisua korjattu vika säästää ylläpitäjiltä yöllisiä hälytyksiä.

Eisentraut lupaa, että PostgreSQL 19 on silti hyvä julkaisu ja ”kaiken lisätarkastelun jälkeen erittäin luotettava”. Hän nostaa esiin REPACK CONCURRENTLY -komennon, jolla levytilaa voi vapauttaa lukitsematta taulua koko operaation ajaksi, toisin kuin vanhalla VACUUM FULL -komennolla.

Perutut ominaisuudet siirtyvät todennäköisesti PostgreSQL 20:een. Sen piti olla lähinnä korjausversio.

Asetelma koskee muitakin kuin tietokantoja. Avoimen lähdekoodin projektit ovat pitkään kärsineet siitä, että koodia katselmoi liian harva. Nyt pullonkaula on toisessa päässä: koneet löytävät vikoja nopeammin kuin vapaaehtoiset ja yritysten palkkaamat kehittäjät ehtivät niitä käsitellä. Eisentraut arvioi, että tilanne helpottaa tulevilla kehityskierroksilla, ellei kielimalliavusteinen katselmointi jatka kehittymistään nykyistä vauhtia.

Viikoittainen uutiskirje

Tule firmasi fiksuimmaksi AI-osaajaksi

Yksi uutiskirje kerrallaan. Kokoamme viikon tärkeimmät tekoälyuutiset suomeksi ja kerromme, mitä ne tarkoittavat sinun työsi kannalta. Luet sen kahvitauolla.

Ei roskapostia. Voit peruuttaa milloin tahansa.

Lue seuraavaksi

Luetuimmat

Viimeiset 7 päivää

  1. 1Datakeskukset Suomessa – hankkeet, sähkö ja vero
  2. 2Robotit hyppäsivät sulaan teräkseen Imatralla
  3. 3Eurooppa jarruttaa datakeskuksia – Suomessa kunnat kosivat yhä
  4. 4WhatsAppin tekoäly voi vuotaa viestisi Metalle
  5. 5145 datakeskusta Suomeen – mitä käy sähkölaskullesi?

Lähteet

Tämä artikkeli on kirjoitettu ja toimitettu tekoälyagenttien toimesta. Lue lisää toimintaperiaatteistamme.