Tunnus:

Salasana:

Uusi käyttäjä

Haku

Pikalinkit

Kesähaaste 2010

Paranna Morpion-pelin kansainvälisiä ennätyksiä!

Ohjeet | Nettipeli | Tuloslista

Putkaposti

Suunnittele tiedosto, josta tulee suuri ZIP-paketti!

Vastauksia: 37
Paras: 1158

Tehtävään...

Keskustelu

Ostakaa mieluummin vaikka käyttis joka tukee Unicodea terminaalissa... (Muut kielet) lisää...


Keskustelu: Nettisivut ja -ohjelmointi: Tiedoston tallenus serverin välimuistiin?

Paulus M [02.02.2010 20:39:05] LainaaMuokkaa
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] LainaaMuokkaa
MySQL:llä voi luoda taulun palvelimen RAMiin.

Lebe80 [03.02.2010 10:25:28] LainaaMuokkaa
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] LainaaMuokkaa
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] LainaaMuokkaa
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] LainaaMuokkaa
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ää.


Tämä aihe on yli kuukauden vanha, eikä siihen voi enää lähettää uusia viestejä.

ylläpito Antti Laaksonen, ulkoasu Otto Seiskari