Siirry sisältöön
News

grommunio parantaa postilaatikon suorituskykyä

· by grommunio
grommunio parantaa postilaatikon suorituskykyä

Se on jo mukana yhteisöversiossa, ja se paketoidaan pian ja asetetaan kaikkien grommunio-asiakkaiden saataville: Grommunio käsittelee sähköpostipostilaatikkotietokantoja, minkä ansiosta tiimit hyötyvät huomattavasti parantuneesta postilaatikoiden suorituskyvystä.

Ongelma on monimutkainen, mutta laajalle levinnyt: Aiemmin saattoi käydä niin, että käyttäjät kokivat pidempiä odotusaikoja, kun monet asiakkaat käyttivät yksittäisiä postilaatikoita samanaikaisesti, esimerkiksi kun useat käyttäjät tekivät samaan aikaan pidempiä hakukyselyjä postilaatikossa, esimerkiksi valmistautuessaan kokoukseen. Syynä tähän on pyrkimys tietojen yhdenmukaisuuteen: vain yksi asiakas kerrallaan voi käyttää postilaatikon tietoja ja tehdä muutoksia, minkä jälkeen on seuraavan asiakkaan vuoro - muutoin on olemassa epäjohdonmukaisuuksien riski. Tämä “sarjakäyttö” (eli yksi toisensa jälkeen) voi kestää kauan, varsinkin kun kyseessä ovat suuremmat tietokokonaisuudet (ja useat asiakkaat haluavat käyttää tietoja samaan aikaan). Ongelma ei rajoitu grommunioon, vaan koskee periaatteessa kaikkia verkko- ja sähköpostipalveluja: Jos halutaan johdonmukaista dataa, käyttöoikeudet on käsiteltävä peräkkäin; jos halutaan suurta suorituskykyä, käyttöoikeudet on rinnastettava. On kuitenkin olemassa älykkäitä ratkaisuja, jotka voivat auttaa tässä dilemmassa. grommunio on ottanut käyttöön yhden niistä ja saavuttanut näin huomattavan suorituskyvyn kasvun.

Kirjoita ja lue vain: sarja- vai rinnakkaiskäyttö?

Ratkaisu ongelmaan: tehdään ero kirjoitus- ja lukukäyttöön. Palvelin voi sallia vain lukuoikeudet (esim. sähköpostiohjelma päivittää jaettua kansiota) rinnakkain useille asiakkaille samanaikaisesti, ja myös välimuistiin tallentaminen on mahdollista. “Yksi ainoa totuuden lähde” tarvitaan vain kirjoitusta varten, eli yhden asiakkaan yksinomaisen käyttöoikeuden saamiseksi - muutoin voi syntyä epäjohdonmukaista tietoa tai yksi asiakas voi korvata toisen tekemät muutokset.

Tämän teknisen toteutuksen toteuttaminen edellyttää jonkin verran ymmärrystä siitä, miten grommunio (tai mikä tahansa muu sähköposti- ja tietokantapalvelin) toimii. Grommuniossa on keskitetty MySQL-tietokanta metatietoja varten ja välimuistit käyttäjän metatietoja varten, eli suuri taulukko, jossa on kaikki tiedot, mukaan lukien esimerkiksi sisällysluettelo käyttäjiä koskeville tiedoille ja osoitus siitä, mistä käyttäjän postilaatikko tarkalleen ottaen löytyy.

Kullekin käyttäjälle on myös SQLite-tietokanta, joka sisältää nimenomaan käyttäjän tiedot, mukaan lukien kaikki sähköpostit. Yksittäisen käyttäjän kannalta se on myös postilaatikon keskeinen osa, mutta se voi myös olla pullonkaula, jos pyyntöjä tulee useita samanaikaisesti. Järjestelmä on kuitenkin joustava ja hyväksi todettu, se voidaan skaalata tarpeen mukaan ja se on tärkeä osa grommunion korkeaa postilaatikon suorituskykyä.

Jos asiakas kuitenkin suorittaa haun esimerkiksi suuremmassa postilaatikossa, tämä estyy muiden pyyntöjen osalta, kunnes hakupyyntö on käsitelty kokonaan. Palvelinpuolella tämä on toteutettu Mutex:n avulla, muut asiakkaat joutuvat odottamaan ja pahimmassa tapauksessa törmäävät aikakatkaisuun, mikä tarkoittaa käyttäjälle virheilmoitusta.

Postilaatikon käyttövirta - tyypillinen palvelin
Ongelma tyypillisen exmdb-palvelimen mutexin kanssa: Säie 1 lukitsee mutexin ja työskentelee jaetulla resurssilla, kun taas säie 2 on mutexin estämä ja joutuu odottamaan.

Parempi postilaatikon suorituskyky tilannekohtaisia päätöksiä tekevän hallintapalvelimen ansiosta

Koska Mutex ei ole oikein järkevä hakukyselyissä tai vastaavissa vain lukemiseen perustuvissa käyttöoikeuksissa, koska tietokantaa ei muuteta, grommunion kehittäjät ovat toteuttaneet ratkaisun, joka poistaa tämän pullonkaulan. Kehittäjät ovat mukauttaneet hallintapalvelimen (exmdb) tähän tarkoitukseen. Se on monimutkainen ja on jo koordinoinut pääsyä yli 120 toiminnollaan. Rinnakkaistamisen sisällyttämiseksi vain lukukäyttöön kehittäjien oli mukautettava yli 18 000 riviä koodia. Siinä missä aiemmin yksi Mutex postilaatikkoa kohti esti ristiriidat mutta aiheutti toisinaan myös ruuhkia, uusi järjestelmä pärjää ilman “suurta” Mutexia, sen sijaan se tarkastaa jokaisen pyynnön ja päättää tilannekohtaisesti, voidaanko se rinnakkaistaa turvallisesti.

Postilaatikon käyttövirta - mukautettu palvelin
Parannus mukautetulla exmdb-palvelimella: Säikeet 1 ja 2 saavat nopeamman vastauksen jaetusta resurssista.

“Tämä lähestymistapa osoittautui huomattavasti nopeammaksi ja joustavammaksi, ja se on havaittavissa jokaisessa tiimissä, joka työskentelee jaettujen postilaatikoiden kanssa, erityisesti päivittäisessä työssä. Tyypillinen esimerkki on tiimikokouksen yhteinen valmistelu, jossa kaikki osallistujat haluavat päivittää toisensa nopeasti tunteja ennen kokousta. Mutta tämä on vain yksi esimerkki, käyttäjät kertovat meille innostuneina muitakin tilanteita, joita muutos on nyt nopeuttanut merkittävästi. ”, sanoo grommunion teknologiajohtaja Michael Kromer.

Tutustu muihin grommunion ominaisuuksiin.