SQL-tietokanta – historia, nykytila ja tulevaisuus: tulevaisuus

Jani Savolainen

Blogisarjassani käsittelen tietokantojen kehittymistä 1960-luvulta tähän päivään sekä tulevaisuuden skenaarioihin. Tämä blogisarjan kolmas ja viimeinen osa hahmottelee sitä, millaisia haasteita tietokantojen nyyteknologioissa näen nyt ja tulevaisuudessa, sekä millaisia tietokantateknologioita tulevaisuus voisi tuoda tullessaan.

Esipuhe

Tulevaisuus. Mitä se on? Loppujen lopuksi tulevaisuus teknologian saralla on erilaisten resessiivisten ja näkyvien prosessien jatkumo, joka joskus ilmenee uusina innovaatioina ja yliopistollisen perustutkimuksen sekä soveltavista teknologioista tunnettujen puutteiden parannusinkrementteinä. Kaikki merkittävät uudistukset lähtevät ennakkoluulottomasta mitä jos -ajattelusta sekä naiivista unelmoinnista: ”Voisiko ehkä ollakin näin tai näin?” Tärkeintä on, että antaa tässä assosiatiivisessa horisontissa itselleen täyden vapauden ideoida, vaikka se onkin yleensä vain 2% koko aivotyöstä – ja loput 98% sitten sitä raakaa duunia.

SQL-tietokannat – mihin koskee?

Moderneissakin tietokannanhallintajärjestelmissä ajaudutaan melko usein erilaisiin suorituskyvyllisiin ongelmiin. Pullonkaulat voivat ilmetä esimerkiksi verkossa, tallennuskapasiteetissa, muistissa, prosessorikuormissa, tietokantataulujen lukituksissa, asetuksissa, indeksoinnissa ja statistiikassa – käytännössä miltei missä vaan. Kuitenkin, erinäisten tutkimusten sekä  kokemusperäisen tietoni pohjalta viimeisten 25 vuoden ajalta voin karkeasti arvioida, että keskimäärin 70% kaikista tietokantojen performanssiongelmista johtuu huonosta koodista ja 30% infra- sekä kapasiteettiongelmista.

Miksi sitten näin on? Syy on yhtälailla yksinkertainen kuin monimutkainenkin: Tietokannanhallintajärjestelmät ovat yksinkertaisesti kompleksisia kokonaisuuksia.

Data explosionin, tekoälyn ja julkipilvistymisen myötä tietokannanhallintajärjestelmille on syntynyt joukko uusia haasteita: Samalla kun kaikki pitää pakata pienempään, pitää pystyä yhtälailla lisäämään datan prosessointinopeutta sekä säilömään lähtökohtaisesti yhä toisarvoisemmalta tuntuvampi data talteen mahdollisia myöhempiä tietotarpeita varten: Juuri mitään dataa ei enää uskalleta heittää menemään – eikä toisaalta tarvitsekaan. Lisäksi kyberuhat ovat kasvaneet vihamielisten tahojen nostaessaan päätään maailmanpoliittisessa myllerryksessä – tiedon pitää olla samaan aikaan ”kaikkien ulottuvilla eikä kenenkään saatavilla”.

Tekoäly – sinne missä kipu on

Eräs kehityssuunta, johon olen itsekin kantanut korteni kekoon jo vuodesta 2011 lähtien kun ryhdyin yrittäjäksi, on tekoälyn nousu ja ylipäätään ihmisälyn kaltainen automaatio. Tästä on nähtävissä useita hyviä esimerkkejä esimerkiksi Microsoft-tietokantamaailmassa: SQL Server osaa ehdottaa käyttöstatistiikan perusteella sopivia tai ainakin osa-optimaalisia indeksejä, kyselyiden suoritussuunnitelmat vaihtelevat suotuisasti käyttötapauksista riippuen ja niihin voidaan tarpeen tullen vaikuttaa sekä edelleen konfiguroitaessa SQL-palvelininstanssia tietyt instanssikohtaiset asetukset sekä väliaikaistietokannan (tempdb) datatiedostomäärä optimoidaan automaattisesti installerin toimesta riippuen prosessoriytimistä jne jne.

Kuitenkin, hyvästä yrityksestä huolimatta, suurin osa aivotyöstä ja performanssiongelmien selvittelystä jää edelleen DBA: n ja tietokantakehittäjän päänvaivaksi. Miksei voisi esimerkiksi olla niin, että tietokanta osaisi edes raportoida siitä, että indeksistatistiikka ei ole kunnossa jonka seurauksena SQL Server arpoo sattumanvaraisesti erittäin hitaita suoritussuunnitelmia, välillä taas kunnollisia? Miksei tietokannanhallintajärjestelmä voisi itse havaita epäoptimaalisia konfiguraatioita ja tilastollisen päättelyn sekä anonyymin, telemetriikkapohjaisen parviälyn perusteella korjata, tai edes ehdottaa optimaalisempaa konfiguraatiota? Onko vika sitten liian modulaarisessa ajattelussa, kun tuhannet ja tuhannet sovelluskehittäjät koodaavat siiloissaan satoja uusia ominaisuuksia kuhunkin vallitsevaan tietokantateknologiaan joka vuosi? Onko visionäärisyys unohdettu? Minä ainakin tietokantaihmisenä olisin paljon tyytyväisempi kun nämä asiat olisivat kunnossa. Paljolti onkin keksintöjä kiittäminen tyytymättömyydestä: Eikö tätä voisi tehdä jotenkin järkevämmin?

Automaatio yleistyy – DBA-rooli polarisoituu

Eräs hallitsevien tietokannanhallintajärjestelmien automaatiota jarruttava osa-alue ovat pienemmät tietokantaohjelmistotalot, jotka ovat rakentaneet omaa IPR:ää tuotteidensa ympärille ja näin hidastaneet isoja softataloja tekemästä samankaltaisia automaatioita ja älykkäitä toiminnallisuuksia omiin tuotteisiinsa. DBA:t ottavat mielellään käyttöön juuri tällaisia työkaluja, jotka mahdollistavat tehokkaamman tietokannanhallinnan kokonaisuudessaan.

Kasvavan automaation seurauksena perinteinen tietokantojen hallinta tulee jäämään yhä vähemmälle tarpeelle: Oikeilla tietokantateknologioilla yksi DBA tekee viiden DBA:n duunit. Tämänsuuntaisesta teknologisesta kehityskulusta on erinomaisena esimerkkinä mm. Nutanixin NDB-tietokantatuote, joka abstrahoi monimutkaisen, eri tietokannanhallintajärjestelmien välillä erilaisen tavan tehdä versiopäivitykset, kloonaus, backupit sekä devops: Olkoon sitten tietokantasi SQL Server, Oracle, PostgreSQL tai vaikkapa MySql niin yhden helppokäyttöisen käyttöliittymän kautta voit hallinnoida kaikkia tietokantojasi samanmuotoisesti ja tehokkaasti. Tällöin aikaasi säästyy vaativammille tietokannanhallintatehtäville enemmän, kuten auditoinneille, kapasiteettisuunnittelulle, datamigraatioille ja performanssioptimoinnille. Toisaalta, näihinkin osa-alueisiin tulee koko ajan lisää automatisoivia tuotteita ja teknologioita, kuten open source-pohjainen, powershell-kirjastoihin perustuva dbatools sekä jo aiemmin mainitsemani SQL Governor-tuote.

Tämän kehityksen myötä DBA:n pitää ottaa haltuun yhä enemmän monimutkaisia asioita. Sellaisia asioista, joita on haastavaa tai miltei mahdotonta täysin automatisoida. Näitä ovat usein erilaiset DR-tilanteet, data-arkkitehtuurisuunnittelu, tietoturva ja tietomallinnus sekä monimutkaiset tietokantadiagnostiikat.

Uskallankin väittää, että jo tänä päivänä perinteinen DBA-rooli on polarisoitunut kahteen eri ryhmittymään: Lähempänä infraa olevat tietokannanhallintatehtäviin keskittyvät DBA:t, jotka käyttävät vahvasti eri automatisoinnin työkaluja, sekä data-arkkitehtuureihin, HA/DR:ään ja diagnostiikkaan keskittyvät DBA:t, jotka ovat toimineet alalla jo hyvin pitkään.

Kvanttitietokoneet tulevat – onko vahvasti salattu tietokantasi turvassa?

Suurin osa tietokannoistamme sisältää bisneskriittistä tietoa ja sen tulisi näin ollen olla salattua. Tähän on esimerkiksi SQL Serverissä ollut tarjolla vahvaa data- ja lokitiedostojen kryptausta (TDE) sisäänrakennettuna ominaisuutena jo pitkän aikaa. Kryptograafikkona eräs huolenaiheeni onkin ollut viime vuosina kvanttiteknologian sisäinen kilpajuoksu: Mustahatut vastaan valkohatut, eli kumpi on vallalla ensin – kvanttiturvallinen kryptaus vai perinteisen tiedonsalauksen potentiaalisesti hetkessä murtava kvanttilaskenta? Toisin kuin symmetrinen kryptaus kuten AES ja TDES riittävällä avainkoolla , asymmetrinen kryptaus on haavoittuvainen kvanttitietokoneiden laskentatehon edessä: Kvanttitekniikassa Shorin algoritmi voi kertoa suuria lukuja eksponentiaalisesti paljon nopeammin kuin klassiset tietokoneet. Koska epäsymmetriset algoritmit luottavat täysin siihen, että tavalliset tietokoneet eivät löydä alkutekijöitä nopeasti, ne ovat pysyneet turvassa. Valitettavasti monet epäsymmetriset salausalgoritmit on jo matemaattisesti todistettu rikottavaksi kvanttitietokoneilla käyttämällä Shorin algoritmia mukaan lukien RSA, Diffie-Hellman ja ECC. Onneksi kuitenkin SQL Serverin TDE on toteutettu AES / TDES:llä. Monet isot IT-talot kuten IBM onkin valmistautunut kvanttiaikakauteen kehittämällä kvanttiturvallisen teknologiaratkaisun: Quantum Safe | IBM Quantum Computing

Yhteenveto

Uudet teknologiat kuten tekoäly, koneoppiminen ja kvanttilaskenta avaavat uusia sfäärejä valtavien datamassojen tehokkaalle käsittelylle ja sovellusalueille: Ihminen tulee pääsemään lähemmäksi Laplacen demonia, jonka kaltaisen tietoteorian itsekin tietämättäni joskus parikymppisenä kehitin: 1800-luvun alussa mekanistisen luonnonfilosofian mukaan maailmaa voitiin tarkastella deterministisenä koneistona, jonka kaikkien osasten tarkat paikat ja nopeudet voitiin täsmällisesti tietää ja määritellä. Teoksessaan ”Taivaan mekaniikka”, aika pelottavan osuvasti, ranskalainen matemaatikko ja tähtitieteilijä Pierre-Simon de Laplace (1749–1827)  lausui seuraavaa: ”Jos älylle, joka pystyy hallitsemaan kaikkia luonnossa vaikuttavia voimia ja joka on niin suuri, että se voi analysoida kaiken, annettaisiin tiedot maailmankaikkeuden suurimpien kappaleiden liikkeistä ja keveimpien atomien käyttäytymisestä, se järjestäisi ne yhdeksi liikelaiksi; mikään ei olisi epävarmaa, niin tulevaisuus kuin menneisyyskin olisivat nykyisyyttä sen silmien edessä.” Väitänkin, että tekoälyn kehittymisen myötä ajaudumme vääjäämättömästi lähemmäs maailmankuvaa, jossa ihmisistä tulee älyllisesti laiskoja, mutta tiedollisesti kaikkivoipia: Keskimääräinen älykkyys laskee, väestö polarisoituu.

Jani K. Savolainen

jani.savolainen@dbproservices.fi

0440353637

CEO & Chairman

DB Pro Services Oy

Ota yhteyttä