vb.org Archive

vb.org Archive (https://vborg.vbsupport.ru/index.php)
-   vB3 General Discussions (https://vborg.vbsupport.ru/forumdisplay.php?f=111)
-   -   Intro on caching & datastore (https://vborg.vbsupport.ru/showthread.php?t=92623)

VBCoder 07-21-2005 04:08 PM

Intro on caching & datastore
 
Anyone kind enough to write a quick intro on template caching and datastore? Basically:
  • If I create a new template, how do make sure it gets cached, and how do I call it from the cache?
  • How does vB know when the cache needs to be updated? Especially since the templates usually depend on the user's variables?
  • What exactly does the datastore do?

Marco van Herwaarden 07-21-2005 07:31 PM

Quote:

Originally Posted by VBCoder
If I create a new template, how do make sure it gets cached, and how do I call it from the cache?

By putting it in the $globaltemplates array, you don't need to call it from cache.
Quote:

Originally Posted by VBCoder
How does vB know when the cache needs to be updated? Especially since the templates usually depend on the user's variables?

Templates dont really get cached. They are just already read from database all at the same time in a single query when the script starts. If you use an 'uncached' (ie not read from database on script start) template, then for each template an additional query is needed when the template os first used.
Quote:

Originally Posted by VBCoder
What exactly does the datastore do?

Store data :D The datastore is mostly used to store a serialized copy of the data from amy rows into a single datastore row.

VBCoder 07-21-2005 10:46 PM

Got it - so the template "cache" is not really a cache, but an aggregator, on the queries.

I seem to get slowed performance the first time I load a page after modifying it's template - but I guess that must be do to MySQL or OS caching, not vB then, yes?

Too bad there is no "real" caching done, then. I would guess that 90% of the html could go into a cache (ie, is not personalized), and that a cache could get up to a 50% hit rate.

Think about it: Cache the html for forumbit, threadbit, and postbit - everyone's looking at the recent ones - you're talking a major speed up.

Marco van Herwaarden 07-22-2005 05:04 AM

Templates are already preparsed and stored like that.

VBCoder 07-22-2005 05:52 AM

I was referring to storing the actual rendering of the particular bit, not the generic template.

Example: This thread so far has 4 post bits. They could be cached, with full html (provided we don't mind if the post count under each user gets a bit old) - major performance increase!

Marco van Herwaarden 07-22-2005 05:58 AM

That would be extreme difficult to do i guess, for a few reasons:
- It is dynamic content
- Content can be different depending on the viewer (permissions, buddies, postdate/time/timezone,....)
- on a busy forum with a lot of posts, the cache would get so big that searching the cache would take so much time that it has a reverse effect.
And probably many more reasons.

mvigod 08-04-2005 02:56 PM

How would one place data into the datastore and pull it back out. For example if you wanted to do something easy like sum up all a forums views and output on the forumhome page and use the datastore to avoid querying on each page load?


All times are GMT. The time now is 04:51 PM.

Powered by vBulletin® Version 3.8.12 by vBS
Copyright ©2000 - 2025, vBulletin Solutions Inc.

X vBulletin 3.8.12 by vBS Debug Information
  • Page Generation 0.01186 seconds
  • Memory Usage 1,723KB
  • Queries Executed 10 (?)
More Information
Template Usage:
  • (1)ad_footer_end
  • (1)ad_footer_start
  • (1)ad_header_end
  • (1)ad_header_logo
  • (1)ad_navbar_below
  • (3)bbcode_quote_printable
  • (1)footer
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (6)option
  • (1)post_thanks_navbar_search
  • (1)printthread
  • (7)printthreadbit
  • (1)spacer_close
  • (1)spacer_open 

Phrase Groups Available:
  • global
  • postbit
  • showthread
Included Files:
  • ./printthread.php
  • ./global.php
  • ./includes/init.php
  • ./includes/class_core.php
  • ./includes/config.php
  • ./includes/functions.php
  • ./includes/class_hook.php
  • ./includes/modsystem_functions.php
  • ./includes/class_bbcode_alt.php
  • ./includes/class_bbcode.php
  • ./includes/functions_bigthree.php 

Hooks Called:
  • init_startup
  • init_startup_session_setup_start
  • init_startup_session_setup_complete
  • cache_permissions
  • fetch_threadinfo_query
  • fetch_threadinfo
  • fetch_foruminfo
  • style_fetch
  • cache_templates
  • global_start
  • parse_templates
  • global_setup_complete
  • printthread_start
  • bbcode_fetch_tags
  • bbcode_create
  • bbcode_parse_start
  • bbcode_parse_complete_precache
  • bbcode_parse_complete
  • printthread_post
  • printthread_complete