summaryrefslogtreecommitdiff
path: root/classes
AgeCommit message (Collapse)Author
2010-01-04Merge branch 'master' into 0.9.xEvan Prodromou
Conflicts: actions/publictagcloud.php classes/Memcached_DataObject.php
2010-01-04Exclude process-specific link & result cache references from serialized ↵Brion Vibber
Memcached_Data_Object instances. Should fix seemingly-random bugs due to destructor free()ing local resources by mistake. cherry-pick from 0.9.x
2010-01-04Revert "Take Memcached_DataObject destructor back out to check whether it ↵Brion Vibber
might be causing some under-the-hood problems." This reverts commit 89cca01259d71f3da961ef64def3647f86a01567.
2010-01-04cached id streams can be empty, compare against falseEvan Prodromou
2010-01-04carefully compare cached settings against false for ConfigEvan Prodromou
2010-01-04Memcached_DataObject stores empty values in the cacheEvan Prodromou
There's great value in knowing that something doesn't exist. We now cache this information, and carefully compare the results from cache as $results !== false instead of !empty($results), since some empty values (null, 0, empty array, empty string) are stored in the cache. Caching staticGet() and pkeyGet() now store DB misses in the cache, and cachedQuery() checks for empty results from the cache.
2010-01-04Stop caching unfindable keysEvan Prodromou
There were some problems with the automated cache/uncache system for data objects that made us cache unfindable keys (with null attributes and sometimes null names). Fixed those problems and refactored the encache() and decache() methods so they use a helper to find the cache keys to use.
2010-01-04user_id is a non-autoincrement pkey for user_location_prefsEvan Prodromou
2010-01-03Revert "use keys() instead of keyTypes() so plugin data object work"Evan Prodromou
This reverts commit ec380887f71a1eadc75bad0289f9a0dbee7f2913.
2010-01-03use keys() instead of keyTypes() so plugin data object workEvan Prodromou
2010-01-02Merge branch 'master' into 0.9.xEvan Prodromou
Conflicts: classes/Memcached_DataObject.php
2010-01-02return false from Memcached_DataObject::staticGet() on not found, like ↵Evan Prodromou
DB_DataObject
2010-01-02change harmless check of to check of in Memcached_DataObjectEvan Prodromou
2010-01-02incorrectly used empty() instead of isset() for a variable that could be 0Evan Prodromou
2010-01-01Merge branch 'master' of git@gitorious.org:statusnet/mainlineEvan Prodromou
2010-01-01Revert "add cleanup method to cleanup a single row"Evan Prodromou
This reverts commit b0527801d9c2b84408bbfdf82bbdc5b778f72cfc.
2010-01-01Merge branch 'master' into 0.9.xEvan Prodromou
Conflicts: classes/Memcached_DataObject.php
2010-01-01add cleanup method to cleanup a single rowEvan Prodromou
2010-01-01stop using DB_DataObject's staticGet() which cachesEvan Prodromou
2009-12-31Merge branch '0.9.x' of git@gitorious.org:statusnet/mainline into 0.9.xEvan Prodromou
2009-12-30Take Memcached_DataObject destructor back out to check whether it might be ↵Brion Vibber
causing some under-the-hood problems.
2009-12-30Revert debugging codeBrion Vibber
2009-12-30subbug debug info to check on free orderingBrion Vibber
2009-12-30Merge branch 'locshunt2' into 0.9.xEvan Prodromou
Conflicts: classes/User_location_prefs.php
2009-12-30Add magic formula to keep DB_DataObject from treating location prefs pkey as ↵Evan Prodromou
autoincrement
2009-12-29Add progress output and optional --sleep-time parameter to triminboxes.phpBrion Vibber
2009-12-29Add progress output and optional --sleep-time parameter to triminboxes.phpBrion Vibber
2009-12-29Fix for saving user location preferences -- user_id field was marked as an ↵Brion Vibber
auto-increment and wasn't getting saved with new inserts.
2009-12-29Merge branch '0.9.x' of git@gitorious.org:statusnet/mainline into 0.9.xEvan Prodromou
2009-12-29Merge branch 'master' into 0.9.xEvan Prodromou
2009-12-29Fix for saving user location preferences -- user_id field was marked as an ↵Brion Vibber
auto-increment and wasn't getting saved with new inserts.
2009-12-28notices are immutable, use created date for updatedEvan Prodromou
2009-12-28Move location-argument-handling code into a single functionEvan Prodromou
Moved the important parts of the location-argument-handling stuff to a single function. Handles defaults and overrides correctly, and easy to use. Changed Web and API channels to use it.
2009-12-28More configuration options for location sharingEvan Prodromou
2009-12-28user_id is primary key for user_location_prefsEvan Prodromou
2009-12-28remove namespace setting from location; it's unusedEvan Prodromou
2009-12-28turn off exe bitsEvan Prodromou
2009-12-28add user-location-prefs data objectsEvan Prodromou
2009-12-28Merge branch 'locshunt' into 0.9.xEvan Prodromou
2009-12-28Merge branch 'master' into 0.9.xEvan Prodromou
2009-12-28Move location-argument-handling code into a single functionEvan Prodromou
Moved the important parts of the location-argument-handling stuff to a single function. Handles defaults and overrides correctly, and easy to use. Changed Web and API channels to use it.
2009-12-28More configuration options for location sharingEvan Prodromou
2009-12-28user_id is primary key for user_location_prefsEvan Prodromou
2009-12-28remove namespace setting from location; it's unusedEvan Prodromou
2009-12-28turn off exe bitsEvan Prodromou
2009-12-28add user-location-prefs data objectsEvan Prodromou
2009-12-28check if other user exists before unsubEvan Prodromou
2009-12-23Merge branch '0.9.x' of git@gitorious.org:statusnet/mainline into 0.9.xEvan Prodromou
2009-12-22Fix for massively slow friends timeline query due to indexing bug introduced ↵Brion Vibber
with repeats. Sorting on notice.id when our primary selector was notice_inbox.user_id caused a filesort and table scan of the notice table. Switchng to notice_inbox's notice_id means we can use our index, and everything comes right up. Before: mysql> explain SELECT notice.id AS id FROM notice JOIN notice_inbox ON notice.id = notice_inbox.notice_id WHERE notice_inbox.user_id = 18574 AND notice.repeat_of IS NULL ORDER BY notice.id DESC LIMIT 61 OFFSET 0; +----+-------------+--------------+--------+------------------------------------+---------+---------+-------------------------------+--------+----------------------------------------------+ | id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra | +----+-------------+--------------+--------+------------------------------------+---------+---------+-------------------------------+--------+----------------------------------------------+ | 1 | SIMPLE | notice_inbox | ref | PRIMARY,notice_inbox_notice_id_idx | PRIMARY | 4 | const | 102600 | Using index; Using temporary; Using filesort | | 1 | SIMPLE | notice | eq_ref | PRIMARY | PRIMARY | 4 | stoica.notice_inbox.notice_id | 1 | Using index | +----+-------------+--------------+--------+------------------------------------+---------+---------+-------------------------------+--------+----------------------------------------------+ After: mysql> explain SELECT notice.id AS id FROM notice JOIN notice_inbox ON notice.id = notice_inbox.notice_id WHERE notice_inbox.user_id = 18574 AND notice.repeat_of IS NULL ORDER BY notice_id DESC LIMIT 61 OFFSET 0; +----+-------------+--------------+--------+------------------------------------+---------+---------+-------------------------------+--------+--------------------------+ | id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra | +----+-------------+--------------+--------+------------------------------------+---------+---------+-------------------------------+--------+--------------------------+ | 1 | SIMPLE | notice_inbox | ref | PRIMARY,notice_inbox_notice_id_idx | PRIMARY | 4 | const | 102816 | Using where; Using index | | 1 | SIMPLE | notice | eq_ref | PRIMARY,notice_repeatof_idx | PRIMARY | 4 | stoica.notice_inbox.notice_id | 1 | Using where | +----+-------------+--------------+--------+------------------------------------+---------+---------+-------------------------------+--------+--------------------------+
2009-12-22Fix for massively slow friends timeline query due to indexing bug introduced ↵Brion Vibber
with repeats. Sorting on notice.id when our primary selector was notice_inbox.user_id caused a filesort and table scan of the notice table. Switchng to notice_inbox's notice_id means we can use our index, and everything comes right up. Before: mysql> explain SELECT notice.id AS id FROM notice JOIN notice_inbox ON notice.id = notice_inbox.notice_id WHERE notice_inbox.user_id = 18574 AND notice.repeat_of IS NULL ORDER BY notice.id DESC LIMIT 61 OFFSET 0; +----+-------------+--------------+--------+------------------------------------+---------+---------+-------------------------------+--------+----------------------------------------------+ | id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra | +----+-------------+--------------+--------+------------------------------------+---------+---------+-------------------------------+--------+----------------------------------------------+ | 1 | SIMPLE | notice_inbox | ref | PRIMARY,notice_inbox_notice_id_idx | PRIMARY | 4 | const | 102600 | Using index; Using temporary; Using filesort | | 1 | SIMPLE | notice | eq_ref | PRIMARY | PRIMARY | 4 | stoica.notice_inbox.notice_id | 1 | Using index | +----+-------------+--------------+--------+------------------------------------+---------+---------+-------------------------------+--------+----------------------------------------------+ After: mysql> explain SELECT notice.id AS id FROM notice JOIN notice_inbox ON notice.id = notice_inbox.notice_id WHERE notice_inbox.user_id = 18574 AND notice.repeat_of IS NULL ORDER BY notice_id DESC LIMIT 61 OFFSET 0; +----+-------------+--------------+--------+------------------------------------+---------+---------+-------------------------------+--------+--------------------------+ | id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra | +----+-------------+--------------+--------+------------------------------------+---------+---------+-------------------------------+--------+--------------------------+ | 1 | SIMPLE | notice_inbox | ref | PRIMARY,notice_inbox_notice_id_idx | PRIMARY | 4 | const | 102816 | Using where; Using index | | 1 | SIMPLE | notice | eq_ref | PRIMARY,notice_repeatof_idx | PRIMARY | 4 | stoica.notice_inbox.notice_id | 1 | Using where | +----+-------------+--------------+--------+------------------------------------+---------+---------+-------------------------------+--------+--------------------------+