Kom ihåg mig?
Home Menu

Menu


Fråga om AJAX

 
Ämnesverktyg Visningsalternativ
Oläst 2013-01-10, 10:49 #11
pelmereds avatar
pelmered pelmered är inte uppkopplad
Har WN som tidsfördriv
 
Reg.datum: May 2010
Inlägg: 1 342
pelmered pelmered är inte uppkopplad
Har WN som tidsfördriv
pelmereds avatar
 
Reg.datum: May 2010
Inlägg: 1 342
Citat:
Ursprungligen postat av ConnyWesth Visa inlägg
Om du tycker databasen är långsam så har du gjort något fel i designen. databaser är normalt mycket snabba och det är sällan man ens behöver fundera på att optimera med externa filer. jag har aldrig sett det behovet utom när du har stora bildfiler eller BLOBar som man ibland kan vinna på att lägga som lösa filer p ådisken i stället för i databasen, men det är extrema undantag. Som jag inte ser något nytta med i ditt fall.
Visst, men i det här fallet är det bara idiotiskt att inte ha någon form av cache om det är många som ska komma åt samma innehåll. Du vill inte gå ned till databasen varje gång och fråga för en sån här sak.

Citat:
Ursprungligen postat av Clarence Visa inlägg
Måste du tvunget använda pull så skulle jag dock göra mig av med text-filen, du får en fördröjning på upp till 1.99s om reload och text-fil är max out of sync. Och om du vill halvera den fördröjningen genom att skriva alla uppdateringar direkt till text-filen så finns en viss risk att du korrumperar text-filen. Istället för text-filen borde du isåfall fundera över antingen en cache (memcache, apc etc) eller byta till en mycket lättare databas-lösning (se t ex Redis, Membase). Om du gör detta så kommer ditt val av pull att ge dig en första bottleneck i CPU eller RAM vid ditt dynamiska språk som PHP/Ruby/vadsom (förutsatt att du använder en bra webbserver).
Problemet med att använda t.ex. memcached är att du då måste wrappa memcached med ett serverside språk, t.ex. PHP. En textfil kan man komma åt direkt med jQuery i AJAX-anropet utan att behöva leta sig ned till något skriptspråk som ska köras varje gång. När man cachar vill man ju göra det så nära klienten som möjligt och minimera antalet lager i arkitekturen som requesten måste gå igenom för att hämta datan.

Men som sagt är push en bättre lösning, men också betydligt svårare och jobbigare att implementera. Så gör det enkelt för dig och kör du på AJAX + textfil till att börja med om du känner dig osäker på det där med push. Det går ju alltid att byta till push senare om behovet skulle finnas.
pelmered är inte uppkopplad   Svara med citatSvara med citat
Oläst 2013-01-10, 11:55 #12
Conny Westh Conny Westh är inte uppkopplad
Klarade millennium-buggen
 
Reg.datum: Aug 2005
Inlägg: 5 166
Conny Westh Conny Westh är inte uppkopplad
Klarade millennium-buggen
 
Reg.datum: Aug 2005
Inlägg: 5 166
Citat:
Ursprungligen postat av ITisGood.se Visa inlägg
Visst, men i det här fallet är det bara idiotiskt att inte ha någon form av cache om det är många som ska komma åt samma innehåll. Du vill inte gå ned till databasen varje gång och fråga för en sån här sak.
Databaser brukar normalt ta hand om cachening så det är mest naturligt att låta databasen hantera detta och inte lägga utvecklingstid på sånt som hanteras automatiskt.
Conny Westh är inte uppkopplad   Svara med citatSvara med citat
Oläst 2013-01-10, 20:30 #13
pelmereds avatar
pelmered pelmered är inte uppkopplad
Har WN som tidsfördriv
 
Reg.datum: May 2010
Inlägg: 1 342
pelmered pelmered är inte uppkopplad
Har WN som tidsfördriv
pelmereds avatar
 
Reg.datum: May 2010
Inlägg: 1 342
Citat:
Ursprungligen postat av ConnyWesth Visa inlägg
Databaser brukar normalt ta hand om cachening så det är mest naturligt att låta databasen hantera detta och inte lägga utvecklingstid på sånt som hanteras automatiskt.
Visst, men det är väldigt stor skillnad i prestanda och resursåtgång mellan query cache i databasen och en vettig applikationscache. Är det dessutom tal om många förfrågningar av exakta samma data finns det ju ingen anledning till att inte cacha. Det blir sällan mer än 2-3 rader kod extra per query som ska cachas så utvecklingstiden blir ju inte något att tala om.
pelmered är inte uppkopplad   Svara med citatSvara med citat
Oläst 2013-01-10, 21:36 #14
Clarence Clarence är inte uppkopplad
Administratör
 
Reg.datum: Jan 2003
Inlägg: 1 974
Clarence Clarence är inte uppkopplad
Administratör
 
Reg.datum: Jan 2003
Inlägg: 1 974
Citat:
Ursprungligen postat av ITisGood.se Visa inlägg
Problemet med att använda t.ex. memcached är att du då måste wrappa memcached med ett serverside språk, t.ex. PHP. En textfil kan man komma åt direkt med jQuery i AJAX-anropet utan att behöva leta sig ned till något skriptspråk som ska köras varje gång. När man cachar vill man ju göra det så nära klienten som möjligt och minimera antalet lager i arkitekturen som requesten måste gå igenom för att hämta datan.

Men som sagt är push en bättre lösning, men också betydligt svårare och jobbigare att implementera. Så gör det enkelt för dig och kör du på AJAX + textfil till att börja med om du känner dig osäker på det där med push. Det går ju alltid att byta till push senare om behovet skulle finnas.
Är serversidespråket problemet använder du C libbet direkt från webbservern (går alldeles utmärkt med lighttpd, apache, nginx och säkerligen många av ovanliga utmanarna). Om du kan skriva en textfil med jämna mellanrum kan du dock istället använda en cachande reverse proxy framför med samma expiry time istället och slippa gå mot webbservern alls.

Fördelen med memcache/http proxy är att de skalar utan problem från 1 server till 100, från 1 skrivning i sekunden till 100 skrivningar i sekunden och 100 anrop i sekunden till 10 000 anrop i sekunden. Ska du hantera detta med på ett bra sätt med 4234242 textfiler (när chatten även har privata konversationer en längre tid) i slutändan så har du nog skrivit en väldigt ineffektiv cachelösning som dessutom slukar serverns diskcache.

Och dessa fördelar får du med mindre jobb och krångel från första början... (förutsatt att du någonsin sett eller använt memcache kanske).
Clarence är inte uppkopplad   Svara med citatSvara med citat
Oläst 2013-01-11, 12:32 #15
pelmereds avatar
pelmered pelmered är inte uppkopplad
Har WN som tidsfördriv
 
Reg.datum: May 2010
Inlägg: 1 342
pelmered pelmered är inte uppkopplad
Har WN som tidsfördriv
pelmereds avatar
 
Reg.datum: May 2010
Inlägg: 1 342
Citat:
Ursprungligen postat av Clarence Visa inlägg
Är serversidespråket problemet använder du C libbet direkt från webbservern (går alldeles utmärkt med lighttpd, apache, nginx och säkerligen många av ovanliga utmanarna). Om du kan skriva en textfil med jämna mellanrum kan du dock istället använda en cachande reverse proxy framför med samma expiry time istället och slippa gå mot webbservern alls.

Fördelen med memcache/http proxy är att de skalar utan problem från 1 server till 100, från 1 skrivning i sekunden till 100 skrivningar i sekunden och 100 anrop i sekunden till 10 000 anrop i sekunden. Ska du hantera detta med på ett bra sätt med 4234242 textfiler (när chatten även har privata konversationer en längre tid) i slutändan så har du nog skrivit en väldigt ineffektiv cachelösning som dessutom slukar serverns diskcache.

Och dessa fördelar får du med mindre jobb och krångel från första början... (förutsatt att du någonsin sett eller använt memcache kanske).
Två tekniskt bra lösningar absolut. Men det känns verkligen inte nödvändigt att göra det så komplicerat i det här fallet. Att komplexiteten i en applikation ska hållas så låg som möjligt är en bra tumregel. Man bör givetvis vara medveten om vad man väljer bort och se till att det går att byta ut den delen senare om behovet skulle uppstå. Ser man till att göra ett modulärt system med lösa kopplingar är det oftast bättre att välja den enklaste lösningen med kortast utvecklingstid först för att sedan kunna byta ut den komponenten när behovet uppstår.
Utifrån TS frågeställning här känns det inte som det finns några behov av en extremt högpresterande och skalbar lösning och då bör man nog hålla det så enkelt som möjligt, så länge man är medveten om alternativen och beredd på att göra om när man får prestandaproblem.
Räknar man med ett stort antal besökare direkt är det såklart en helt annan sak, men jag fick uppfattningen om att det inte var fallet här.

Om man har en vettig webbserver(t.ex. Nginx) så blir vinsten med att köra en reverse proxy framför väldigt liten när man bara ska serva statiskt innehåll som i det här fallet. Nu skulle det ju bara vara en chatt, och då hanterar diskcachen detta tillräckligt bra.

Att blanda in C för detta känns väldigt avlägset. Då är det mycket bättre att satsa på en pushlösning direkt i så fall.
pelmered är inte uppkopplad   Svara med citatSvara med citat
Oläst 2013-01-11, 14:11 #16
danjel danjel är inte uppkopplad
Medlem
 
Reg.datum: Nov 2003
Inlägg: 214
danjel danjel är inte uppkopplad
Medlem
 
Reg.datum: Nov 2003
Inlägg: 214
Det går ju att använda memory table (mySQL)
På så vis undviker man skrivningar till disk vilket ofta är den största boven
SQLite kan vara ett alternativ det med, istället för textfiler
danjel är inte uppkopplad   Svara med citatSvara med citat
Oläst 2013-01-11, 14:38 #17
Clarence Clarence är inte uppkopplad
Administratör
 
Reg.datum: Jan 2003
Inlägg: 1 974
Clarence Clarence är inte uppkopplad
Administratör
 
Reg.datum: Jan 2003
Inlägg: 1 974
Citat:
Ursprungligen postat av ITisGood.se Visa inlägg
Två tekniskt bra lösningar absolut. Men det känns verkligen inte nödvändigt att göra det så komplicerat i det här fallet. Att komplexiteten i en applikation ska hållas så låg som möjligt är en bra tumregel.
Jag håller med. Och text-filer för datalagring blir väldigt snabbt väldigt komplicerat (utrensning av gammal data, expires av cachad data, simultan skrivning, diskcache-nivåer, hämta delar av data, bearbeta datan från en struktuerad form etc etc är sådant man själv får lösa).

Citat:
Om man har en vettig webbserver(t.ex. Nginx) så blir vinsten med att köra en reverse proxy framför väldigt liten när man bara ska serva statiskt innehåll som i det här fallet. Nu skulle det ju bara vara en chatt, och då hanterar diskcachen detta tillräckligt bra.
Nja, stor skillnad men små siffror (200%+).

Citat:
Att blanda in C för detta känns väldigt avlägset. Då är det mycket bättre att satsa på en pushlösning direkt i så fall.
Lite slarvigt uttryckt av mig. Du använder givetvis mod_cache/mod_memcache och dess ekvivalenter och behöver inte skriva en rad C utan har ett färdigt API att arbeta med i serverconfen.
Clarence är inte uppkopplad   Svara med citatSvara med citat
Oläst 2013-01-12, 14:47 #18
pelmereds avatar
pelmered pelmered är inte uppkopplad
Har WN som tidsfördriv
 
Reg.datum: May 2010
Inlägg: 1 342
pelmered pelmered är inte uppkopplad
Har WN som tidsfördriv
pelmereds avatar
 
Reg.datum: May 2010
Inlägg: 1 342
Citat:
Ursprungligen postat av Clarence Visa inlägg
Jag håller med. Och text-filer för datalagring blir väldigt snabbt väldigt komplicerat (utrensning av gammal data, expires av cachad data, simultan skrivning, diskcache-nivåer, hämta delar av data, bearbeta datan från en struktuerad form etc etc är sådant man själv får lösa).
Ja, fast inte i det här enkla användningsområdet.
Det är bara en fil så det är inte något stort behov av struktur. All skrivning hanteras ifrån ett ställe, annars är det bara läsningar. Diskcachen hanterar detta bra så länge det inte är några höga prestandakrav så borde det här vara fullt tillräckligt för TS, åtminstone till att börja med.
pelmered är inte uppkopplad   Svara med citatSvara med citat
Svara


Aktiva användare som för närvarande tittar på det här ämnet: 1 (0 medlemmar och 1 gäster)
 

Regler för att posta
Du får inte posta nya ämnen
Du får inte posta svar
Du får inte posta bifogade filer
Du får inte redigera dina inlägg

BB-kod är
Smilies är
[IMG]-kod är
HTML-kod är av

Forumhopp


Alla tider är GMT +2. Klockan är nu 17:35.

Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson
 
Copyright © 2017