There are situation, when there is a need to process large amounts of data
in short time.
To do that I propose to minimize action count, that In-Portal performs
during it's initialization including:
- doing database queries that won't help to perform requested action
(e.g. loading phrase cache, when phrase are not used at all)
- performing initialization of system parts that are not used (e.g.
session initialization, when no login is made)
In total In-Portal is temporarily converted to sort of unix-like daemon
(standalone service), that quickly performs given requests. That's why I
called such operation mode as "*daemon mode*".
Usage (one of following):
- add $_CONFIG['Misc']['DaemonMode'] = '1'; to "system/config.php" file when
system-wide daemon mode is required
- add define('DAEMON', 1); in PHP file, where daemon mode is required (e.g.
cron.php, run_event.php, index.php, etc.); it should happen before FULL_PATH
constant definition
Tables never used in daemon mode:
- CachedUrls (mod-rewrite caching won't work)
- PhraseCache (phrase and configuration variable caching won't work)
- Counters (counters, like member count won't work)
- ThemeFiles (for mod-rewrite url parsing)
- CustomField (no custom field data can be accessible)
- Forms (new forms are not added to admin tree for their submission
reviewing)
Proposed database table permissions that should be at least for this to
work:
GRANT SELECT ON `inportal_database`.`inp_Phrase` TO 'inportal_user'@
'localhost';
GRANT SELECT ON `inportal_database`.`inp_ConfigurationValues` TO
'inportal_user'@'localhost';
GRANT SELECT ON `inportal_database`.`inp_Language` TO 'inportal_user'@
'localhost';
GRANT SELECT ON `inportal_database`.`inp_Modules` TO 'inportal_user'@
'localhost';
GRANT SELECT ON `inportal_database`.`inp_Theme` TO 'inportal_user'@
'localhost';
GRANT SELECT ON `inportal_database`.`inp_Skins` TO 'inportal_user'@
'localhost';
GRANT SELECT ON `inportal_database`.`inp_SiteDomains` TO 'inportal_user'@
'localhost';
As you can clearly see there is only 7 database table needed, instead of 71
tables, that could be used (I'm not saying that all of them are used on each
run).
What won't be working:
- building links using "use_section" parameter of "m_Link" tag
- new agents are not added based on found "RegularEvents" unit config option
(already existing agents will work of course)
- new records in Category table are not added based theme file scanning (so
you should do "Rebuild Theme Files" while daemon mode is off)
- importing language pack
- new theme file discovery (for mod-rewrite url detection)
For all this to work you need to enable memcache caching.
Task:
<
>Ready for testing.
--
Best Regards,
http://www.in-portal.com
http://www.alex-time.com