We are no longer offering accounts on this server. Consider https://gitlab.freedesktop.org/ as a place to host projects.

  1. 13 Jan, 2010 1 commit
    • Brion Vibber's avatar
      Major refactoring of queue handlers to support running multiple sites in one daemon. · ec145b73
      Brion Vibber authored
      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]
      * 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:
  2. 25 Aug, 2009 3 commits
  3. 04 Jul, 2009 2 commits
  4. 01 Jul, 2009 3 commits
  5. 28 Jun, 2009 1 commit