summaryrefslogtreecommitdiff
path: root/classes
AgeCommit message (Collapse)Author
2010-02-04Inbox::streamNotices() with deletion compensation: inbox paging should more ↵Brion Vibber
or less work with deleted items now. No change in efficiency for the common case where nothing's deleted: does the same bulk fetch of just the notices we think we'll need as before, then if we turned up short keeps checking one by one until we've filled up to our $limit. This can leave us with overlap between pages, but we already have that when new messages come in between clicks; seems to be the lesser of evils versus not getting a 'before' button. More permanent fix for that will be to switch timeline paging in the UI to use notice IDs.
2010-02-03clear cache for Profile::hasRepeated() at Notice::insert() timeEvan Prodromou
2010-02-03Merge branch 'master' of git@gitorious.org:statusnet/mainlineEvan Prodromou
2010-02-03add nickname as unique key for user_group tableEvan Prodromou
2010-02-02Fix regression breaking file attachments. This is what I get for rushing ↵Brion Vibber
fixes and not properly testing them. :P
2010-02-01Improve name validation checks on local File referencesBrion Vibber
2010-02-01restructuring of User::registerNew() lost password mungingEvan Prodromou
2010-01-31buggy fetch for site ownerEvan Prodromou
2010-01-30error clearing tags for profiles from memcachedEvan Prodromou
2010-01-29add hooks for user registrationEvan Prodromou
2010-01-29method to get the site ownerEvan Prodromou
2010-01-29define a constant for the 'owner' role of a siteEvan Prodromou
2010-01-29add simple cache getter/setter static functions to Memcached_DataObjectEvan Prodromou
2010-01-28Fixes for status_network db object .ini and tag setter scriptBrion Vibber
2010-01-28Last-chance distribution if enqueueing failsEvan Prodromou
2010-01-28hide most DB_DataObject errorsEvan Prodromou
2010-01-28Merge branch 'master' of git@gitorious.org:statusnet/mainlineEvan Prodromou
2010-01-28update mysqltimestamps on insert and updateEvan Prodromou
2010-01-28additional debugging data for SessionsEvan Prodromou
2010-01-27Don't preemptively close existing DB connections for web views (needed to ↵Brion Vibber
keep # of conns from going insane on multi-site queue daemons, so just doing for CLI) May, or may not, help with mystery session problems
2010-01-27fix notice -- drop unused return value of variable that isn't initialized :) ↵Brion Vibber
thx @ g0 for the catch
2010-01-27Adds an emergency switch so we can run inbox distribution at save time ↵Brion Vibber
(bypassing 'distrib' queue) Set $config['queue']['inboxes'] = false to do so
2010-01-26Control channel for queue daemons to request graceful shutdown, restart, or ↵Brion Vibber
update to listen to a newly added or reconfigured site. queuectl.php --update -s<site> queuectl.php --stop queuectl.php --restart Default control channel is /topic/statusnet-control. For external utilities to send a site update ping direct to the queue server, connect via Stomp and send a message formatted thus: update:<nickname> (Nickname here, *not* server hostname! The rest of the queues will be updated to use nicknames later.) Note that all currently-connected queue daemons will get these notifications, including both queuedaemon.php and xmppdaemon.php. (XMPP will ignore site update requests for sites that it's not handling.) Limitations: * only implemented for stomp queue manager so far * --update may not yet handle a changed server name properly * --restart won't reload PHP code files that were already loaded at startup. Still need to stop and restart the daemons from 'outside' when updating code base.
2010-01-26Site metadata tags in status_network: single 'tags' field, pipe-separated.Brion Vibber
$sn->tags() returns tag list as array; $sn->hasTag('blah') to check for a particular tag only Could be used to control things in config file: $sn = Status_network::setupSite($_server, $_path, $_wildcard); if (!$sn) { die("No such site"); } if ($sn->hasTag('individual')) { /* blah */ } Note memcached keys are unchanged; if tags are changed from an external tool clear: statusnet:<dbname>:status_network:<key>:<val> for <key>s 'nickname', 'hostname', and 'pathname'
2010-01-25Merge branch 'master' into testingEvan Prodromou
Conflicts: lib/queuemanager.php
2010-01-25Offload inbox updates to a queue handler to speed up posting onlineEvan Prodromou
Moved much of the writing that happens when posting a notice to a new queuehandler, distribqueuehandler. This updates tags, groups, replies and inboxes at queue time (or at Web time, if queues are disabled). To make this work well, I had to break up the monolithic Notice::blowCaches() and make cache blowing happen closer to where data is updated. Squashed commit of the following: commit 5257626c62750ac4ac1db0ce2b71410c5711cfa3 Author: Evan Prodromou <evan@status.net> Date: Mon Jan 25 14:56:41 2010 -0500 slightly better handling of blowing tag memory cache commit 8a22a3cdf6ec28685da129a0313e7b2a0837c9ef Author: Evan Prodromou <evan@status.net> Date: Mon Jan 25 01:42:56 2010 -0500 change 'distribute' to 'distrib' so not too long for dbqueue commit 7a063315b0f7fad27cb6fbd2bdd74e253af83e4f Author: Evan Prodromou <evan@status.net> Date: Mon Jan 25 01:39:15 2010 -0500 change handle_notice() to handle() in distributqueuehandler commit 1a39ccd28b9994137d7bfd21bb4f230546938e77 Author: Evan Prodromou <evan@status.net> Date: Mon Jan 25 16:05:25 2010 -0500 error with queuemanager commit e6b3bb93f305cfd2de71a6340b8aa6fb890049b7 Author: Evan Prodromou <evan@status.net> Date: Mon Jan 25 01:11:34 2010 -0500 Blow memcache at different point rather than one big function for Notice class commit 94d557cdc016187d1d0647ae1794cd94d6fb8ac8 Author: Evan Prodromou <evan@status.net> Date: Mon Jan 25 00:48:44 2010 -0500 Blow memcache at different point rather than one big function for Notice class commit 1c781dd08c88a35dafc5c01230b4872fd6b95182 Author: Evan Prodromou <evan@status.net> Date: Wed Jan 20 08:54:18 2010 -0500 move broadcasting and distributing to new queuehandler commit da3e46d26b84e4f028f34a13fd2ee373e4c1b954 Author: Evan Prodromou <evan@status.net> Date: Wed Jan 20 08:53:12 2010 -0500 Move distribution of notices to new distribute queue handler
2010-01-24Merge branch 'testing' of git@gitorious.org:statusnet/mainline into testingEvan Prodromou
2010-01-24Recover caching logic lost in bad mergeEvan Prodromou
I made a bad merge on Jan 10th from master to 0.9.x. This lost a number of memcache enhancements made on the 0.9.x branch. I've been able to re-do the manual merge, and this represents the changes. Most of them are related to caching on insert.
2010-01-24Add verifier and verified callback to token for OAuth 1.0aZach Copley
2010-01-24Remove verifier from Oauth_application_user (not needed there)Zach Copley
2010-01-24Revoke access token UIZach Copley
2010-01-24Can now edit/change application iconZach Copley
2010-01-24Better detial in connected OAuth applications listZach Copley
2010-01-24Decided we didn't need to keep the token secret in theZach Copley
Oauth_application_user record
2010-01-24Exchanging authorized request tokens for access tokens workingZach Copley
2010-01-24Associate request tokens with OAuth apps and app usersZach Copley
2010-01-24Add icons/icon upload to Oauth appsZach Copley
2010-01-24Workflow for registering new OAuth apps pretty much done.Zach Copley
2010-01-24It might help if I checkd in statusnet.ini.Zach Copley
2010-01-24Started work on interface for displaying connected OAuth appsZach Copley
2010-01-24Changed the OAuth app tables to refer to profiles instead of users.Zach Copley
Added an owner column to oauth_application.
2010-01-24Add new OAuth application tables and DataObjects. Also add a newZach Copley
column for consumer secret to consumer table.
2010-01-24save nickname and wildcard when setting up status networkEvan Prodromou
2010-01-24save nickname and wildcard when setting up status networkEvan Prodromou
2010-01-22XMPP 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. Conflicts: scripts/xmppdaemon.php
2010-01-22Merge branch 'testing' of git@gitorious.org:statusnet/mainline into testingEvan Prodromou
2010-01-22Memcached_DataObject unnecessarily require_once'd itselfEvan Prodromou
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-15Fix for background recalculation of groups; needs to get Group objects not ↵Brion Vibber
IDs; also don't list any groups for repeats to match saveGroups behavior todo: merge calculation portion with saveGroups so they don't get out of sync