News - Features - Downloads - Forum - Team - Support - Switch View: Screen
Login - Registrierung - Passwort vergessen

Antworten: 10
Seite [1]
hajo ClanSphere Team


VIP - Poster




Herkunft: Barsbüttel
Beiträge: 9411
# Thema - 31.08.2010 um 03:26 Uhr
Wie bzw. womit man ClanSphere die Sporen geben kann und vor allem, was dabei zu beachten ist und viele weitere hilfreiche Informationen jetzt in meinem neuesten Blog-Post. Fragen dazu können gern hier gestellt werden.

Anmerkung: Das neue Variablen-Cache Feature benötigt ClanSphere 2010.0 Final oder neuer, aber dies und weitere Anforderungen stehen auch im Blog-Eintrag detailiert.

Hier zum Lesen klicken: http://goo.gl/b/P6Ut


------------------
ClanSphere - professional clan care starts here

Zuletzt editiert von hajo ClanSphere Team am 31.08.2010 um 03:27 Uhr (1x Editiert)
Inaktiv
Mindcrime


Geekboy





Beiträge: 1155
# Antwort: 1 - 31.08.2010 um 13:09 Uhr
Was fehlt in das cache system sind selbst einstelbare TTL's pro cache datei und das loeschen von zb alle cache daten die nur mit ein bestimmten modul zu tun haben... Man kann entweder nur eine einzelne datei loesschen oder alles...

Deswegen verwende ich daneben auch mein eigenes fuer CS entwikkelte datacache system: Es hat einzelne TTL's, cache clearen kann da pro modul und/oder action auch.


Inaktiv
|
hajo ClanSphere Team
Thread-Ersteller


VIP - Poster




Herkunft: Barsbüttel
Beiträge: 9411
# Antwort: 2 - 31.08.2010 um 17:50 Uhr
wo ist die nutzung von TTL denn z.b. sinnvoll bei den derzeit gecachten sachen?

das mit dem löschen von bestimmten modulen könnte man über prefixes lösen, aber auch hier frage ich mich, wo das am ende sinnvoll sein soll?

dein datacache setzt zudem auf sql und setzt in der aktuellen version noch darauf, dass der standard-datacache von clansphere in jedem fall auf "file" steht. man kann also deinen datacache derzeit nicht mit der xcache oder apc funktionalität aus clansphere 2010.0 verwenden.

die funktion cs_subtemplate_exists ist echt praktisch, werde ich wohl noch im svn trunk einbauen minimal geändert. ansonsten frage ich mich, in wie weit man deinen datacache mit dem jetzigen kombinieren bzw. evtl. sogar beides vereinen könnte und die vorteile dabei auch aus beiden zieht. dürfte beiden seiten arbeit sparen, nur ich weiß nicht, was du darüber denken würdest.


------------------
ClanSphere - professional clan care starts here

Inaktiv
|
Mindcrime


Geekboy





Beiträge: 1155
# Antwort: 3 - 31.08.2010 um 21:23 Uhr
Ich benutze TTL:
- Fuer die daten die sehr oft befragt werden und deswegen ein derartige grosse belastung auf die datenbank geben (wegen die hohe anzahl queries) das es gecached werden muss
- Diese daten aber manchmal nur aendern, aber es nicht so schlimm ist das fuer eine bestimmte zeit (sag 15 minuten), die daten nicht 100% aktuell sind
- Es sehr viel aufwand kostet um ueberall wo die daten moeglicherweise geaendert werden den code anzupassen das der cache geloesscht werden soll (daten haenge von ganz viele module ab)


Ein beispiel ist zum beispiel die recent news liste auf eine sehr oft besuchte seite, man kann 2 dinge machen:
- Die recent news liste cachen und ueberall wo die moeglichkeit besteht das es die recent news aendert (news erstellen, news editieren, news loesschen, comments erstellen, comments editieren, comment loessche, clan bilder geaendert, nickname geaendert, etc) die cache loesschen lassen
- Davon ausgehen das es nicht so wichtig ist das eine news mal 15 minuten spaeter gezeigt wird oder 1 kommentar mehr angezeigt wird, aber noch immer dafuer sorgen, das nur 1 mal jede 15 minuten die datenbank belastet wird...

Mein datacache kann das wegen das setzen einer TTL, wenn die TTL zeit verstrichen ist, sagt er automatisch einfach das er kein cache mehr hat und muss ich den cache halt neu erstellen. So eine moeglichkeit ist btw eigentlich standard in fast alle cache programme:
Memcache: http://nl2.php.net/manual/en/memcache.add.php (hat expire)
Memcache: http://nl2.php.net/manual/en/memcached.add.php (hat expiration)
apc: http://nl2.php.net/manual/en/function.apc-add.php (hat ttl)

TTL in caching hat viele funktionen, aber das meiste profit hat man um viel befragten (und/oder schwer von zeit her zu ergattern) "semi-permanent data" viel schneller zu liefern...

Es hat bei mir hautpsache zu tun mit speedup der page...

Mein projekt derzeit:
Ohne datacache/ohne CS cache Homepage: Load: 1608ms / 70 queries
Ohne datacache/mit CS cache Homepage: Load: 1374ms / 47 queries
Mit datacache/mit CS cache Homepage: Load: 148ms / 29 queries


Twitter seite (verbindung zu twitter ist hauptproblem):
Ohne datacache/ohne CS cache Homepage: Load: 2108ms / 24
Ohne datacache/mit CS cache Homepage: Load: 1842ms / 15
Mit datacache/mit CS cache Homepage: Load: 82ms / 11



Zuletzt editiert von Mindcrime am 31.08.2010 um 23:09 Uhr (6x Editiert)
Inaktiv
|
hajo ClanSphere Team
Thread-Ersteller


VIP - Poster




Herkunft: Barsbüttel
Beiträge: 9411
# Antwort: 4 - 31.08.2010 um 22:03 Uhr
das apc und xcache einen optionalen ttl parameter haben ist mir klar, nur wird im clansphere cache nirgends dessen funktionalität benötigt, da die von dir genannten wohl durchaus sinnvollen inhalte wie z.b. die letzten news nicht zwischengespeichert werden. bei bedarf kann ich das optional gern noch nachreichen, dies zu verwenden, damit dein datacache darauf mit zugreift. allgemein wäre es gut, wenn dein datacache noch einmal aktualisiert wird, um clansphere caching auch mit apc und xcache wie in der 2010er final zu unterstützen. sollten dahingehend wünsche / vorschläge für änderungen vorhanden sein, dann her damit

mich würden auch mal die ladezeiten interessieren, wenn der standard-cache von clansphere auf xcache oder apc umgestellt ist, dies sollte deine webseite noch weiter beschleunigen. memcache / memcached sehe ich mir mal an, jedoch habe ich dort bisher keine windows binaries gefunden und da ich alles unter windows UND linux teste wäre dies schon ein KO-kriterium.


------------------
ClanSphere - professional clan care starts here

Inaktiv
|
Mindcrime


Geekboy





Beiträge: 1155
# Antwort: 5 - 31.08.2010 um 22:46 Uhr
die memcache und memcached waren nur vorbilder von cache libraries die ttl haben...


Inaktiv
|
hajo ClanSphere Team
Thread-Ersteller


VIP - Poster




Herkunft: Barsbüttel
Beiträge: 9411
# Antwort: 6 - 31.08.2010 um 23:00 Uhr
was mit meinen anderen fragen?


------------------
ClanSphere - professional clan care starts here

Inaktiv
|
Mindcrime


Geekboy





Beiträge: 1155
# Antwort: 7 - 31.08.2010 um 23:25 Uhr
Ich hab kein xcache, apc, eaccelerator oder was immer installiert...

XCache ist ein opcode accelerator der zufaellig auch ein caching system eingebaut hat.

Es gibt zur zeit wie gesagt einige dinge die ich brauche die nicht drin sind:
- Loesschen von bestimmte teile der cache (xcache_unset_by_prefix?)
- File cache hat ein problem im namen: was ist wenn da ein slash oder punkte drin sind (ordner)?
- Kein TTL

Somit koennte ich noch nichtmal XCache oder was immer benutzen...


Zuletzt editiert von Mindcrime am 31.08.2010 um 23:26 Uhr (1x Editiert)
Inaktiv
|
hajo ClanSphere Team
Thread-Ersteller


VIP - Poster




Herkunft: Barsbüttel
Beiträge: 9411
# Antwort: 8 - 31.08.2010 um 23:30 Uhr
- Loesschen von bestimmte teile der cache (xcache_unset_by_prefix?)


ja, so etwas einzubauen wäre möglich. die frage ist dann, wie man diesen prefix jeweils am besten zusammensetzt. da hatte ich auf deine erfahrung gehofft. ansonsten grundansatz dafür hätte ich auch einen parat.

- File cache hat ein problem im namen: was ist wenn da ein slash oder punkte drin sind (ordner)?


wo könnte dies denn z.b. der fall sein? wäre es sonst besser, den file-cache auf sql umzusetzen? ist wohl alles eine sache der namensgebung, da kann man sicherlich relativ einfach auch ohne dateinamensfeindliche zeichen auskommen.

- Kein TTL


dies ließe sich in jedem fall realisieren ttl anzubieten, die oberen zwei von dir genannten probleme müsste man allerdings irgendwie aus der welt räumen. hier werde ich aber sonst einmal ansetzen und schon anfangen es einzusetzen.


------------------
ClanSphere - professional clan care starts here

Inaktiv
|
Mindcrime


Geekboy





Beiträge: 1155
# Antwort: 9 - 01.09.2010 um 09:24 Uhr
31.08.2010 um 23:30 Uhr - hajo:
- Loesschen von bestimmte teile der cache (xcache_unset_by_prefix?)


ja, so etwas einzubauen wäre möglich. die frage ist dann, wie man diesen prefix jeweils am besten zusammensetzt. da hatte ich auf deine erfahrung gehofft. ansonsten grundansatz dafür hätte ich auch einen parat.


naja, mein datacache hat 3 teile im namen: mod, action und key, die kann man ja im prinzip zusammen nehmen:

mod_action_key als cache key name

Theoretisch hab ich dann aber ein problem, weil wenn:
mod = 'mod_mod', action = 'action', key = 1: der name wird mod_mod_action_1
mod = 'mod', action = 'mod_action', key = 1: der name wird mod_mod_action_1
dasselbe, aber ich koennt natuerlich auch zb ein ":", "/" oder "|" nehmen fuer den namen.

Damit koennte ich dan anstatt die datenbank ein der cache mechanismen anrufen, weil die nur EINEN key benutzen, mein key ist die combi von alle drei.

Damit kann ich aber nur ein teil der funktionalitaet von cs_datacache_clear($mod = null, $action = null) benutzen:

Wenn $mod oder ($mod und $action) als argumente gegeben werden geht es ja, nicht wenn nur die $action als argument gegeben wird:
prefix ($mod) = mod_
prefix ($mod, $action) = mod_action_

- File cache hat ein problem im namen: was ist wenn da ein slash oder punkte drin sind (ordner)?


wo könnte dies denn z.b. der fall sein? wäre es sonst besser, den file-cache auf sql umzusetzen? ist wohl alles eine sache der namensgebung, da kann man sicherlich relativ einfach auch ohne dateinamensfeindliche zeichen auskommen.


Man koennte die datenbank benutzen als ein extra cache, neben zb file cache. Ein cs_cache tabelle mit diesselbe funktionalitaet ist ja nicht so schwer zu machen. Man braucht ja nur felder:
cache_id int(8): identifier
cache_key varchar(255): key muss lange genug sein
cache_md5 varchar(32): fuer schneller zugriff und index
cache_time int(14): zeitpunkt das es im cache kam
cache_timeout int(14): die TTL, 0 = unendlich
cache_content (longblob): inhalt

Wie gesagt koennte man ja auch den key auf teilen in 3 teile, wie bei mein datacache.

Kuck oben, wenn ich zb en "/" nemen anstatt "_" in meinen key namen, weil ich dan keine probleme habe, dan hat file cache ein problem.
Am besten immer ein MD5($name) benutzen und dan erst cache datei machen.
Hat aber das problem das man nicht mehr an die datei name sehen kann was da drin steht. Und dadurch wird die System -> Cache uebersicht nutzlos.
Btw, ich finde das die cache das namen problem loesen muss, nicht der benutzer die die cache anruft....

- Kein TTL


dies ließe sich in jedem fall realisieren ttl anzubieten, die oberen zwei von dir genannten probleme müsste man allerdings irgendwie aus der welt räumen. hier werde ich aber sonst einmal ansetzen und schon anfangen es einzusetzen.


Ich muss mein datacache noch ein bissel ueberarbeiten um es algemein nutzlich zu machen, nicht nur fuer was html content.

Wenn du willst kann ich ein system/cache/database.php cache erstellen. Dann kann man anstatt file auch standard ein datenbank cache machen
Update:
Ich entwickle gerade, brauch aber: http://trac.csphere.eu/csp/ticket/966
Und in system/core/functions.php in cs_init():
 
1.
2.
1. / 2. / ... 
 if(!in_array($cs_main['cache_mode'], array('file','database')) AND !extension_loaded($cs_main['cache_mode']))

Update2: Ich habe es am laufen, die dateien (system/cache/database.php und die updates/addon/cache_(un)install.sql) findest du in mein SVN in general. zufuegen von tabelle 'cache' in clansphere/info.php waehre vielleicht gut.

Mein projekt derzeit:
Ohne datacache/ohne CS cache (file) Homepage: Load: 1608ms / 70 queries
Ohne datacache/ohne CS cache (database) Homepage: Load: 1530ms / 201 queries
Ohne datacache/mit CS cache (file) Homepage: Load: 1374ms / 47 queries
Ohne datacache/mit CS cache (database) Homepage: Load: 1337ms / 95 queries
Mit datacache/mit CS cache (file) Homepage: Load: 148ms / 29 queries
Mit datacache/mit CS cache (database) Homepage: Load: 124ms / 68 queries


Update 3:
Es sieht aus das database cache nur etwas schneller ist wie file cache, aber die datenbank viel mehr belastet.
Das ist natuerlich logisch weil er alle daten (templates, options, etc) aus die datenbank holen muss.
Das es schneller ist hat vielleicht damit zu tun das es indexing auf die key im datenbank gibt und das eine datei aus ein ordner auf das filesystem mehr lineair geordnet ist...


PS: Wieso ist der test fuer die UCI unicode library im cache drin. Die wird doch ueberhaupt weiter nirgendwo im code benutzt?


Zuletzt editiert von Mindcrime am 01.09.2010 um 16:04 Uhr (13x Editiert)
Inaktiv
|
hajo ClanSphere Team
Thread-Ersteller


VIP - Poster




Herkunft: Barsbüttel
Beiträge: 9411
# Antwort: 10 - 02.09.2010 um 01:07 Uhr
ok nach ein paar stunden herumprobieren habe ich mein vorhaben verworfen. was die sql funktionen in clansphere angeht sowie beim system/cache bleibt vorerst alles wie es ist und wird sich wohl nur bei bugs noch durch fixes ändern.

sobald ich die kompexität steigere geht auch die fehler und problem kette los, derzeit geht alles bugfrei und so soll es bleiben. ich hoffe dich damit nicht zu stark zu enttäuschen.

betreffend unicode: php 5.4 bzw. 6.0 erscheinen voraussichtlich mit dieser als bundle. damit es dann beim upgrade keine probleme gibt stellt clansphere sich beim wechsel automatisch darauf um. diese codestelle ist vor jahren mit viel voraussicht und optimismus aufgrund des php svn trunks eingepflegt worden. diesen habe ich bis vor etwa einem jahr stehts beobachtet, inzwischen lohnt es sich kaum noch, da dort stillstand herscht und keine aktuellen windows snapshots mehr verfügbar sind. unter linux ist das updaten von snapshots mir auf dauer zu zeitintensiv.

damit all dies hier nicht umsonst gewesen ist habe ich mir für coresphere natürlich entsprechende notizen gemacht


------------------
ClanSphere - professional clan care starts here

Inaktiv
|
Antworten: 10
Seite [1]


Sie müssen sich registrieren, um zu antworten.


ClanSphere Project - Mailus - Imprint - Disclaimer - Scriptinfo