Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: Tiedoston tallenus serverin välimuistiin?

Paulus M [02.02.2010 20:39:05]

#

Eli oon taas siirtynyt pelinteon puolelle ja väännän selainpohjaista nettipeliä, jossa kaksi pelaajaa taistelee toisiaan vastaan.

Tuli mieleen, että oisko mitään järkevämpää tapaa kuin MySQL, niin tallentamaan
serverille taistelussa tapahtuvat muutokset?
Ajattelin, että voisi tehdä niin, että taistelun lopputulos tallennettaisiin tietokantaa, kun taistelu on päättynyt. Taistelun aikana kaikki tiedot voitaisiin pitää koneiden kekseillä ja serverillä, jos mahdollista.

Onko siis mitään muuta tapaa tallentaa serverille kamaa, kuin MySQL, eli pystyisinkö jotenki hyväksi käyttämään serverin välimuistia siten, että tilapäiset muuttujat tallentuisi välimuistiin eikä kovalevylle, miten MySQL ei tee. Eli esim. elämäpisteiden muuttaminen jouduttaisiin MySQL:llä eka siirtämään serverin kovalevylle jostain HTTP pyyntönä vihollisen koneelle, joka vie aikaa. Kun se voitaisiin kenties jollain tekniikalla laittaa vain serverin välimuistiin josta suoraan vihollisen koneelle.

Käytän pelissä seuraavia tekniikoita: PHP, Javascript, MySQL

LaNu [03.02.2010 00:54:48]

#

MySQL:llä voi luoda taulun palvelimen RAMiin.

Lebe80 [03.02.2010 10:25:28]

#

Musta tuntuu, että palvelimella tehdyt toiminnot eivät tässä tapauksessa vie kuitenkaan niin paljon aikaa, että verkkoviiven ja käytettyjen tekniikoiden huomioon ottaen tapahtuisi mitään erityisen mullistavaa nopeuttavaa hyötyä.

Paulus M [03.02.2010 15:03:23]

#

Okei, kiitokset tiedoista. Verkkoviive voi olla vaikka 10 sekuntia, se ei haittaa koska peli on vahvasti vuoropohjainen ja ajattelupainotteinen. Sitä vaan mietin, että jos palvelinta rasittaa useat sadat moninpelaajat, niin olisko helpompi jos ei sen tarttis kokoajan surruttaa kovalevyä jokaisen taistelun tullessa.

Mutta tutkimpa nyt tuota Lanun ideaa kuitenkin, kuullostaa mielenkiitoiselta.

Metabolix [03.02.2010 16:27:46]

#

Tiedot eivät yleensä mene suoraan kovalevylle, vaan välimuistia saattaa automaattisestikin olla sekä MySQL:n että käyttöjärjestelmän tasolla. Mutta kyllä keskusmuistin käyttö itsekin on hyvä idea.

Grez [03.02.2010 16:44:53]

#

Suurin hyöty siitä muistin käytön käskemisestä on, että palvelin tietää ettei kyseistä taulua ole missään vaiheessa tarkoitus tallentaa levylle eikä näin ollen yritä missään vaiheessa kirjoittaa sitä kiintolevylle.

Ainakin ACID-testin läpäisevissä levylle tallentavissa kannoissa mielestäni kannan täytyy oikeasti kirjoittaa tieto jossain muodossa levylle ennen kuin kuittaa clientille että muutos on onnistunut. Voi toki olla että se on kirjoitettu vasta transaktiologiin ja palvelin merkkaa transaktiologin tapahtuman valmiiksi vasta kun se oikeasti on kantatiedostoissa. Toki jos on patterivarmennettu levyvälimuisti, niin saattaa olla ettei niitä ihan fyysisille levyille kirjoitetakaan heti. Tai tietty voi kai ne konffata silleenkin, että ne on hetken paristovarmentamattomassa levyvälimuistissa, jos tietoturva ei ole kovin tärkeää.

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta