vb.org Archive

vb.org Archive (https://vborg.vbsupport.ru/index.php)
-   vBulletin 3.7 Add-ons (https://vborg.vbsupport.ru/forumdisplay.php?f=228)
-   -   Board Optimization - Dynamically Linked Source - Speed Up Your Multiple Site Network & Upgrades (https://vborg.vbsupport.ru/showthread.php?t=188108)

sockwater 08-27-2008 03:03 PM

I just tested with junctions as well. Apache reads them just fine. Use this command, after downloading junction.exe from Microsoft.

Code:

junction -s newvbdir oldvbdir
newvbdir will now be a symlink to oldvbdir, including all files and directories recursively. It seems to work the same way as a hard link, if you change the contents of either file it changes the other.

The bottom line is both junctions and hard links should be tested to see if the opcode caching only caches one copy of the file or multiple copies.

Jafo232 08-27-2008 03:34 PM

Don't forget what you have to do with the config files.

y2ksw 08-27-2008 04:14 PM

Quote:

Originally Posted by sockwater (Post 1608264)
I just tested with junctions as well. Apache reads them just fine. Use this command, after downloading junction.exe from Microsoft.

Code:

junction -s newvbdir oldvbdir
newvbdir will now be a symlink to oldvbdir, including all files and directories recursively. It seems to work the same way as a hard link, if you change the contents of either file it changes the other.

The bottom line is both junctions and hard links should be tested to see if the opcode caching only caches one copy of the file or multiple copies.

I tried this first. It seems as if the cache sees just one copy, thus theorically it would work. Practically however you can't use it for vBulletin because of the configuration file which can't be separated with junctions. junctions would make sense though if you had your board files in a different disk or folder - which may become handy when moving a site.

Now I'll try the fsutil solution.

Jafo232 08-27-2008 05:29 PM

Quote:

Originally Posted by y2ksw (Post 1608318)
I tried this first. It seems as if the cache sees just one copy, thus theorically it would work. Practically however you can't use it for vBulletin because of the configuration file which can't be separated with junctions. junctions would make sense though if you had your board files in a different disk or folder - which may become handy when moving a site.

Now I'll try the fsutil solution.

Well, you probably can if you follow the directions in this mod. You have to create a configs folder in the includes directory. Place your site configs in there and rename them uniquely. Then use the config file in this mod.

y2ksw 08-27-2008 06:39 PM

I've tried now both systems (junction, fsutil) on a clean test environment. Both systems are not cached once, but as if they were separate files. A clean 3.7.0 installation and copy produce each about 2.55 MB of uncompressed eAccelerator cached files on forum home (index.php).
  • The junction feature requires to rename the config.php files and is a one-liner.
  • The fsutil feature replaces the single files with a hardlink to the common files folder, and allows thus to keep some of the files in their original state. Thus, renaming of config.php and other files are not necessary. fsutil requires an utility to execute recursively. Please allow me to test it a little before releasing ;)
  • Both features require to repeat the junction/fsutil calls on each copy. It is not possible to copy and paste those links, and doing so, will just retrieve the original files.

Jafo232 08-27-2008 07:02 PM

Well, if they are not caching in your windows environment, I don't see much of a point other than speedier upgrades. Getting Linux of course would solve all of this for you. ;) (Couldn't resist)...

UaECasher 08-27-2008 07:14 PM

This mod is great :)

y2ksw 08-27-2008 08:28 PM

This utility automates the use if fsutil on Windows Servers. It has been tested on XP Pro and Windows Server 2003, and comes with the full source for Visual Basic 6.0.

Please try it first on a test environment and make a backup before linking the files.

I will not assume any responsibility for your test and/or production environment! Use on your own risk.

sockwater 08-27-2008 09:22 PM

Quote:

Originally Posted by y2ksw (Post 1608398)
I've tried now both systems (junction, fsutil) on a clean test environment. Both systems are not cached once, but as if they were separate files. A clean 3.7.0 installation and copy produce each about 2.55 MB of uncompressed eAccelerator cached files on forum home (index.php).
  • The junction feature requires to rename the config.php files and is a one-liner.
  • The fsutil feature replaces the single files with a hardlink to the common files folder, and allows thus to keep some of the files in their original state. Thus, renaming of config.php and other files are not necessary. fsutil requires an utility to execute recursively. Please allow me to test it a little before releasing ;)
  • Both features require to repeat the junction/fsutil calls on each copy. It is not possible to copy and paste those links, and doing so, will just retrieve the original files.

I wonder if APC handles junctions/hardlinks on Windows the same way eAccelerator seems to-- seeing the files as the same or different files. On the other hand, maybe this could be a feature request for eAccelerator/APC, maybe something can be tweaked in their code to make them recognize that hardlinks and junctions actually refer to the same file.

thompson 08-28-2008 08:34 AM

very interesting. will try it.

Amenadiel 09-04-2008 04:21 AM

this seems amazing, I'm just starting to understand its full extents.

By the way, I'm studying the integration of two boards. They are on separate webservers and I plan to have independents database servers for each of them. It seems this mod can help me combine both webservers so both boards can use one logical webserver which is the load balancing between the current ones, but won't help me integrate users and passwords since DBs will still be on separate machines, am I right?

Jafo232 09-04-2008 10:08 PM

Yes, that is correct. This will really do nothing as far as integration goes.

993ti 09-05-2008 03:13 PM

Quote:

Originally Posted by Jafo232 (Post 1598585)
You can link any file just by adding it to the DLS source and running the php-clone.php script.

So if 2 forums have the same products that required uploads, it's best to include those files?

Jafo232 09-08-2008 11:42 AM

Yes, you can add them.

sdsvtdriver 09-10-2008 03:12 AM

When referring to Windows, are we referring to Windows running IIS or Apache (or is it not relevant)? If Apache, would using the alias command work?

Alias "/site1/forums" "C:/htdocs/forums"
Alias "/site2/forums" "C:/htdocs/forums"
Alias "/site3/forums" "C:/htdocs/forums"

Has anyone tried NtFS link? http://sourceforge.net/project/platf...roup_id=161885

linkd? http://support.microsoft.com/kb/205524

sockwater 09-10-2008 07:39 PM

NTFS Link creates hardlinks and junctions and linkd creates junctions. Both of these have been confirmed to not work. Well, they work but they are cached as if they were separate files.

Jafo232 09-11-2008 05:02 AM

Yeah, I doubt there is a Windows solution that will offer any cache relief. Of course, you could always go Linux, but who wants to start that discussion!

sockwater 09-18-2008 04:54 PM

Quote:

Originally Posted by Jafo232 (Post 1619642)
Yeah, I doubt there is a Windows solution that will offer any cache relief. Of course, you could always go Linux, but who wants to start that discussion!

This might actually be a bug in the caching code that is not recoginzing Windows hardlinks/junctions in the same way it recognizes Linux symlinks. Since I use linux, I won't be pursuing this, but for those who have Windows servers, it might be worthwhile to submit this as a bug/feature request to APC/Xcache or whatever you're using.

Jafo232 09-23-2008 01:55 AM

If it happens with the big three opcode cache methods, I would then think it was something native with Windows. I dunno, not a .dll head here.. :)

ManagerJosh 09-23-2008 07:43 AM

Just wondering, are users/members of each forum independent? Or are they linked?

Jafo232 09-23-2008 02:05 PM

Quote:

Originally Posted by ManagerJosh (Post 1628372)
Just wondering, are users/members of each forum independent? Or are they linked?

Independent. This does not share any information between forums. It only uses the same SOURCE code, not data..

azn_romeo_4u 09-25-2008 12:10 AM

So you have to use windows to get this to work? Does it work apache? Or litespeedtech?

Jafo232 09-25-2008 12:19 PM

Quote:

Originally Posted by azn_romeo_4u (Post 1629648)
So you have to use windows to get this to work? Does it work apache? Or litespeedtech?

It does NOT work with Windows.

sockwater 10-02-2008 04:05 PM

Quote:

Originally Posted by Jafo232 (Post 1628146)
If it happens with the big three opcode cache methods, I would then think it was something native with Windows. I dunno, not a .dll head here.. :)

Or all 3 of those opcode caching methods were designed for *nix operating systems.

lkn 10-03-2008 12:28 PM

can you it's for single forum on my VPS?
is it can use for 3.6.x ?
will it speed up 4room?

sorry my bad english

sockwater 10-07-2008 08:05 PM

Quote:

Originally Posted by lkn (Post 1636427)
can you it's for single forum on my VPS?
is it can use for 3.6.x ?
will it speed up 4room?

sorry my bad english

If you're only running one forum, there's no reason to use this.

Jafo232 10-08-2008 02:59 PM

Quote:

Originally Posted by sockwater (Post 1639715)
If you're only running one forum, there's no reason to use this.

Precisely!

BamaStangGuy 03-02-2009 05:27 AM

So if all your sites don't use photoplog for example, you would just leave photoplog files in the original forums directory?

Edit: Just went through with it. Doesn't seem to work with 3.8. It doesn't like including the config.php or something. I always get this error: Configuration: includes/config.php exists, but is not in the 3.6+ format. Please convert your config file via the new config.php.new.

If I rename config_me.php (which is in configs folder) and put it in the includes folder as config.php it works. It's a 3.8 config file anyways. Not sure why $config = 0 and it's spitting that error.

I'd be willing to pay you for your time to get this to work with 3.8. I was looking forward to streamlining all my vbulletin installs into one set of files, along with some of my mods. I'm not sure if Andy is moving to 3.8 anytime soon or not, so I don't know what your game plan is with that.

Jafo232 03-03-2009 02:32 AM

I am not having any issue with it on 3.8.. Are you sure you have modified config.php correctly (as per the readme)? That is the only time I have ever seen that error is when config.php is incorrect.

BamaStangGuy 03-03-2009 04:57 AM

Here is what I did:

Uploaded vBulletin into /home/vbcore/ (fresh files from vBulletin.com. 3.8.1)
Created a folder called configs inside the includes which is inside /home/vbcore/
Copied my config.php from /home/evo/public_html/forum/includes/ into /home/vbcore/includes/configs/ and renamed it to config_me.php
Uploaded config.php from your zip file to /home/vbcore/config.php and edited it as follows:

PHP Code:

## Change me
require_once(CORE_PATH 'configs/config_me.php'); 

Along with changing my license info and putting my domain name in.

I then ran your php script and it created all the links.

I then opened my site up and got that error.

I know the config_me.php is fine, because its the same one I am using on my site right now. Plus, I renamed config_me.php to config.php and then placed it in /home/vbcore/includes/ overwriting your config.php. I then was able to get the site to load fine, using the DLS.

It's just when I use your config.php to include the file do I get that error.

BamaStangGuy 03-03-2009 05:17 AM

I just tried this on another one of my vBulletin installs and got the exact same results. :(

1up_dave 11-15-2009 09:20 PM

Just in case anyone was wondering, I just successfully set this up under 3.8.4, and it runs perfectly fine. I'm still tweaking some things, but yeah, I'm good to go.

azn_romeo_4u 12-02-2009 08:05 PM

I wonder if this will work with my single sign on system. Got 4 forums right now and it's a pain to update all 4 forums even though all of them share the same DB.

They are all on different domains. I'm confused on how this works...but I will be testing it probably tomorrow.

Awesome idea and mod BTW

Jafo232 12-04-2009 02:15 AM

If they are on the same physical server (or cluster) then yes it will work.


All times are GMT. The time now is 12:53 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.01359 seconds
  • Memory Usage 1,820KB
  • 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
  • (2)bbcode_code_printable
  • (1)bbcode_php_printable
  • (10)bbcode_quote_printable
  • (1)footer
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (6)option
  • (1)pagenav
  • (1)pagenav_curpage
  • (1)pagenav_pagelink
  • (1)post_thanks_navbar_search
  • (1)printthread
  • (34)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
  • pagenav_page
  • pagenav_complete
  • bbcode_fetch_tags
  • bbcode_create
  • bbcode_parse_start
  • bbcode_parse_complete_precache
  • bbcode_parse_complete
  • printthread_post
  • printthread_complete