summaryrefslogtreecommitdiff
path: root/lib/default.php
AgeCommit message (Collapse)Author
2010-01-21XMPP queued output & initial retooling of DB queue manager to support ↵Brion Vibber
non-Notice objects. Queue handlers for XMPP individual & firehose output now send their XML stanzas to another output queue instead of connecting directly to the chat server. This lets us have as many general processing threads as we need, while all actual XMPP input and output go through a single daemon with a single connection open. This avoids problems with multiple connected resources: * multiple windows shown in some chat clients (psi, gajim, kopete) * extra load on server * incoming message delivery forwarding issues Database changes: * queue_item drops 'notice_id' in favor of a 'frame' blob. This is based on Craig Andrews' work branch to generalize queues to take any object, but conservatively leaving out the serialization for now. Table updater (preserves any existing queued items) in db/rc3to09.sql Code changes to watch out for: * Queue handlers should now define a handle() method instead of handle_notice() * QueueDaemon and XmppDaemon now share common i/o (IoMaster) and respawning thread management (RespawningDaemon) infrastructure. * The polling XmppConfirmManager has been dropped, as the message is queued directly when saving IM settings. * Enable $config['queue']['debug_memory'] to output current memory usage at each run through the event loop to watch for memory leaks To do: * Adapt XMPP i/o to component connection mode for multi-site support. * XMPP input can also be broken out to a queue, which would allow the actual notice save etc to be handled by general queue threads. * Make sure there are no problems with simply pushing serialized Notice objects to queues. * Find a way to improve interactive performance of the database-backed queue handler; polling is pretty painful to XMPP. * Possibly redo the way QueueHandlers are injected into a QueueManager. The grouping used to split out the XMPP output queue is a bit awkward.
2010-01-21Option to log slow db queries or all db queriesBrion Vibber
$config['db']['log_queries'] = true; // all $config['db']['log_slow_queries'] = 10; // queries taking > 10 seconds
2010-01-19allow all rights reserved, private dataEvan Prodromou
2010-01-12Major refactoring of queue handlers to support running multiple sites in one ↵Brion Vibber
daemon. Key changes: * Initialization code moved from common.php to StatusNet class; can now switch configurations during runtime. * As a consequence, configuration files must now be idempotent... Be careful with constant, function or class definitions. * Control structure for daemons/QueueManager/QueueHandler has been refactored; the run loop is now managed by IoMaster run via scripts/queuedaemon.php IoManager subclasses are woken to handle socket input or polling, and may cover multiple sites. * Plugins can implement notice queue handlers more easily by registering a QueueHandler class; no more need to add a daemon. The new QueueDaemon runs from scripts/queuedaemon.php: * This replaces most of the old *handler.php scripts; they've been refactored to the bare handler classes. * Spawns multiple child processes to spread load; defaults to CPU count on Linux and Mac OS X systems, or override with --threads=N * When multithreaded, child processes are automatically respawned on failure. * Threads gracefully shut down and restart when passing a soft memory limit (defaults to 90% of memory_limit), limiting damage from memory leaks. * Support for UDP-based monitoring: http://www.gitorious.org/snqmon Rough control flow diagram: QueueDaemon -> IoMaster -> IoManager QueueManager [listen or poll] -> QueueHandler XmppManager [ping & keepalive] XmppConfirmManager [poll updates] Todo: * Respawning features not currently available running single-threaded. * When running single-site, configuration changes aren't picked up. * New sites or config changes affecting queue subscriptions are not yet handled without a daemon restart. * SNMP monitoring output to integrate with general tools (nagios, ganglia) * Convert XMPP confirmation message sends to use stomp queue instead of polling * Convert xmppdaemon.php to IoManager? * Convert Twitter status, friends import polling daemons to IoManager * Clean up some error reporting and failure modes * May need to adjust queue priorities for best perf in backlog/flood cases Detailed code history available in my daemon-work branch: http://www.gitorious.org/~brion/statusnet/brion-fixes/commits/daemon-work
2010-01-08let system administrators disallow certain admin panelsEvan Prodromou
2010-01-07ptiturl.com correct nameEvan Prodromou
2010-01-07add default plugins and load themEvan Prodromou
2010-01-05Require users to login to view attachments on private sitesCraig Andrews
Thank you jeff-themovie for this implementation!
2010-01-02First version of Memcache pluginEvan Prodromou
2009-12-28More configuration options for location sharingEvan Prodromou
2009-12-28remove namespace setting from location; it's unusedEvan Prodromou
2009-12-14default for login command is disabledEvan Prodromou
2009-12-08Make default & sample val for $config['queue']['queue_basename'] actually ↵Brion Vibber
work! Now matches the recommendation in README which is in fact correct. Must include the /queue/ prefix (unless somthing else actually makes sense)
2009-12-05Add configuration option to toggle the indenting of the output HTML. ↵Craig Andrews
Defaults to indent enabled.
2009-12-01Ticket 2048: make OMB posting HTTP timeout configurable as ↵Brion Vibber
$config['omb']['timeout']; defaults to 5 seconds instead of 20-second default in Yadis library
2009-11-14Revert "Ask users if they wish to send statistics to SNI, default is off."Evan Prodromou
This reverts commit 7efea1115f45b8880fe3161cc32b09510ddd2264. Conflicts: install.php
2009-11-11Ask users if they wish to send statistics to SNI, default is off.Eric Helgeson
Users may not know about this setting and are unaware they are sending stats. This allows them to make that decision.
2009-11-10Bringing Sphinx search support up to code: broken out to a plugin, now ↵Brion Vibber
supports multiple sites on a single server. Upgrade notes: * Index names have changed from hardcoded 'Identica_people' and 'Identica_notices' to use the database name and actual table names. Must reindex. New events: * GetSearchEngine to override default search engine class selection from plugins New scripts: * gen_config.php generates a sphinx.conf from database configuration (with theoretical support for status_network table, but it doesn't seem to be cleanly queriable right now without knowing the db setup info for that. Needs generalized support.) * Replaced old sphinx-indexer.sh and sphinx-cron.sh with index_update.php Other fixes: * sphinx.conf.sample better matches our live config, skipping unused stopword list and using a more realistic indexer memory limit Further notes: * Probably doesn't work right with PostgreSQL yet; Sphinx can pull from PG but the extraction queries currently look like they use some MySQL-specific functions.
2009-11-02Rebuilt HTTPClient class as an extension of PEAR HTTP_Request2 package, ↵Brion Vibber
adding redirect handling and convenience functions. Caching support will be added in future work after unit tests have been added. * extlib: add PEAR HTTP_Request2 0.4.1 alpha * extlib: update PEAR Net_URL2 to 0.3.0 beta for HTTP_Request2 compatibility * moved direct usage of CURL and file_get_contents to HTTPClient class, excluding external-sourced libraries * adapted GeonamesPlugin for new HTTPResponse interface Note some plugins haven't been fully tested yet.
2009-11-02Revert "Rebuilt HTTPClient class as an extension of PEAR HTTP_Request2 ↵Brion Vibber
package, adding redirect handling and convenience functions." Going to restructure a little more before finalizing this... This reverts commit fa37967858c3c29000797e510e5f98aca8ab558f.
2009-11-02Rebuilt HTTPClient class as an extension of PEAR HTTP_Request2 package, ↵Brion Vibber
adding redirect handling and convenience functions. Caching support will be added in future work after unit tests have been added. * extlib: add PEAR HTTP_Request2 0.4.1 alpha * extlib: update PEAR Net_URL2 to 0.3.0 beta for HTTP_Request2 compatibility * moved direct usage of CURL and file_get_contents to HTTPClient class, excluding external-sourced libraries Note some plugins haven't been tested yet.
2009-10-28Merge branch '0.9.x' into locationEvan Prodromou
2009-10-26Make email domain checking optional, as some statusnet installations (such ↵Craig Andrews
as those behind restrictive corporate firewalls, or on home systems on restrictive connections) cannot connect to any mail systems, and this check will always fail.
2009-10-21start getting locations from remote servicesEvan Prodromou
2009-10-21Merge branch '0.9.x' of git@gitorious.org:statusnet/mainline into 0.9.xEvan Prodromou
2009-10-21reformat default.phpEvan Prodromou
2009-10-17Changed config flag for importing friends' timeline and added some commentsZach Copley
2009-10-13remove inboxes optionEvan Prodromou
2009-10-11Merge remote branch 'statusnet/0.8.x' into 0.9.xCraig Andrews
Conflicts: lib/common.php
2009-10-01check the schemaEvan Prodromou
2009-09-24Move configuration defaults to new module and variableEvan Prodromou
Moved the default values of $config to $default. The code for setting up $default is moved to lib/default.php.