In-Portal Issue Tracker - In-Portal CMS
Viewing Issue Advanced Details
973 [In-Portal CMS] Data Management feature request N/A 2011-01-25 04:20 2011-10-03 03:19
alex  
!COMMUNITY  
minor  
needs work 5.1.2-B1  
open  
 
none  
https://groups.google.com/d/topic/in-portal-dev/Tdz1fixeM6o/discussion
Adding Daemon mode
0
0000973: Daemon mode
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.
related to 0000953closed  (5.1.2)alex Incorrect database query error reporting 
patch daemon_mode_feature.patch (7,270) 2011-01-25 04:20
http://tracker.in-portal.org/file_download.php?file_id=916&type=bug
Issue History
2011-10-03 03:19 alex Target Version 5.2.0 => Icebox
2011-09-27 05:01 alex Time Estimate Added 1
2011-09-27 05:01 alex Note Added: 0003920
2011-09-24 11:44 Dmitry Priority normal => minor
2011-09-24 11:44 Dmitry Status needs testing => needs work
2011-09-24 11:44 Dmitry Target Version Icebox => 5.2.0
2011-01-25 04:24 alex Assigned To => !COMMUNITY
2011-01-25 04:24 alex Developer => alex
2011-01-25 04:24 alex Status active => needs testing
2011-01-25 04:24 alex Reference => https://groups.google.com/d/topic/in-portal-dev/Tdz1fixeM6o/discussion
2011-01-25 04:23 alex Additional Information Updated bug_revision_view_page.php?rev_id=668#r668
2011-01-25 04:22 alex Relationship added related to 0000953
2011-01-25 04:20 alex New Issue
2011-01-25 04:20 alex File Added: daemon_mode_feature.patch
2011-01-25 04:20 alex Change Log Message => Adding Daemon mode

Notes
(0003920)
alex   
2011-09-27 05:01   
I won't be hurrying with this patch applying.