Go Back   vb.org Archive > vBulletin 3 Discussion > vB3 General Discussions
  #1  
Old 07-21-2005, 04:08 PM
VBCoder VBCoder is offline
 
Join Date: Jun 2005
Posts: 65
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default 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?
Reply With Quote
  #2  
Old 07-21-2005, 07:31 PM
Marco van Herwaarden Marco van Herwaarden is offline
 
Join Date: Jul 2004
Posts: 25,415
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

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 The datastore is mostly used to store a serialized copy of the data from amy rows into a single datastore row.
Reply With Quote
  #3  
Old 07-21-2005, 10:46 PM
VBCoder VBCoder is offline
 
Join Date: Jun 2005
Posts: 65
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

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.
Reply With Quote
  #4  
Old 07-22-2005, 05:04 AM
Marco van Herwaarden Marco van Herwaarden is offline
 
Join Date: Jul 2004
Posts: 25,415
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Templates are already preparsed and stored like that.
Reply With Quote
  #5  
Old 07-22-2005, 05:52 AM
VBCoder VBCoder is offline
 
Join Date: Jun 2005
Posts: 65
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

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!
Reply With Quote
  #6  
Old 07-22-2005, 05:58 AM
Marco van Herwaarden Marco van Herwaarden is offline
 
Join Date: Jul 2004
Posts: 25,415
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

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.
Reply With Quote
  #7  
Old 08-04-2005, 02:56 PM
mvigod mvigod is offline
 
Join Date: Dec 2001
Location: Jersey
Posts: 159
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

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?
Reply With Quote
Reply

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT. The time now is 06:13 PM.


Powered by vBulletin® Version 3.8.12 by vBS
Copyright ©2000 - 2024, vBulletin Solutions Inc.
X vBulletin 3.8.12 by vBS Debug Information
  • Page Generation 0.03940 seconds
  • Memory Usage 2,213KB
  • Queries Executed 13 (?)
More Information
Template Usage:
  • (1)SHOWTHREAD
  • (1)ad_footer_end
  • (1)ad_footer_start
  • (1)ad_header_end
  • (1)ad_header_logo
  • (1)ad_navbar_below
  • (1)ad_showthread_beforeqr
  • (1)ad_showthread_firstpost
  • (1)ad_showthread_firstpost_sig
  • (1)ad_showthread_firstpost_start
  • (3)bbcode_quote
  • (1)footer
  • (1)forumjump
  • (1)forumrules
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (1)navbar
  • (3)navbar_link
  • (120)option
  • (7)post_thanks_box
  • (7)post_thanks_button
  • (1)post_thanks_javascript
  • (1)post_thanks_navbar_search
  • (7)post_thanks_postbit_info
  • (7)postbit
  • (7)postbit_onlinestatus
  • (7)postbit_wrapper
  • (1)spacer_close
  • (1)spacer_open
  • (1)tagbit_wrapper 

Phrase Groups Available:
  • global
  • inlinemod
  • postbit
  • posting
  • reputationlevel
  • showthread
Included Files:
  • ./showthread.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/functions_bigthree.php
  • ./includes/class_postbit.php
  • ./includes/class_bbcode.php
  • ./includes/functions_reputation.php
  • ./includes/functions_post_thanks.php 

Hooks Called:
  • init_startup
  • init_startup_session_setup_start
  • init_startup_session_setup_complete
  • cache_permissions
  • fetch_postinfo_query
  • fetch_postinfo
  • fetch_threadinfo_query
  • fetch_threadinfo
  • fetch_foruminfo
  • style_fetch
  • cache_templates
  • global_start
  • parse_templates
  • global_setup_complete
  • showthread_start
  • showthread_getinfo
  • forumjump
  • showthread_post_start
  • showthread_query_postids
  • showthread_query
  • bbcode_fetch_tags
  • bbcode_create
  • showthread_postbit_create
  • postbit_factory
  • postbit_display_start
  • post_thanks_function_post_thanks_off_start
  • post_thanks_function_post_thanks_off_end
  • post_thanks_function_fetch_thanks_start
  • post_thanks_function_fetch_thanks_end
  • post_thanks_function_thanked_already_start
  • post_thanks_function_thanked_already_end
  • fetch_musername
  • postbit_imicons
  • bbcode_parse_start
  • bbcode_parse_complete_precache
  • bbcode_parse_complete
  • postbit_display_complete
  • post_thanks_function_can_thank_this_post_start
  • tag_fetchbit_complete
  • forumrules
  • navbits
  • navbits_complete
  • showthread_complete