Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Imported from: http://groups.google.com/group/in-portal-dev/browse_thread/thread/4ddcf57e2c5e33aa#

There are situation, when there is a need to process large amounts of data
in 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: to work: 

Code Block
languagesql
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
tables71 tables, that could be used (I'm not saying that all of them are used on each
runeach 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:

Jira Legacy
serverSystem Jira
serverId513b375f-8291-3313-9d9f-704c39b1f915
keyINP-786

<daemon_mode_feature.patch

Related Tasks

Jira Legacy
serverSystem Jira
serverId513b375f-8291-3313-9d9f-704c39b1f915
keyINP-786

...

--
Best Regards,

http://www.in-portal.com
http://www.alex-time.com

daemon_mode_feature.patch