1. 25 Dec, 2009 2 commits
  2. 24 Dec, 2009 2 commits
  3. 23 Dec, 2009 21 commits
    • Evan Prodromou's avatar
      Merge branch 'geonamesxml' into 0.9.x · 0bb65f87
      Evan Prodromou authored
      0bb65f87
    • Evan Prodromou's avatar
      Merge branch 'master' into 0.9.x · 3e9cc76d
      Evan Prodromou authored
      3e9cc76d
    • Evan Prodromou's avatar
    • Sarven Capadisli's avatar
    • Sarven Capadisli's avatar
      05c1ad8b
    • Sarven Capadisli's avatar
      bc4f1824
    • Evan Prodromou's avatar
    • Evan Prodromou's avatar
      Convert Geonames plugin to use XML API instead of JSON · cdc50526
      Evan Prodromou authored
      The XML API for Geonames contains much more detailed error information
      than the JSON one. So, I've converted this plugin to use it instead.
      It seems to be the preferred format for Geonames, so biting the bullet
      on this makes sense.
      cdc50526
    • Evan Prodromou's avatar
    • Evan Prodromou's avatar
      15b9f618
    • Evan Prodromou's avatar
      6b5a334c
    • Evan Prodromou's avatar
      don't email replies to yourself · 1adce16d
      Evan Prodromou authored
      1adce16d
    • Evan Prodromou's avatar
      whitespace fixup · 71b7bdbc
      Evan Prodromou authored
      71b7bdbc
    • Evan Prodromou's avatar
      Merge branch 'master' into 0.9.x · 185e229f
      Evan Prodromou authored
      185e229f
    • Evan Prodromou's avatar
      save location at notice post time · 725b2d04
      Evan Prodromou authored
      725b2d04
    • Brion Vibber's avatar
      Fix for massively slow friends timeline query due to indexing bug introduced with repeats. · fa0fbd01
      Brion Vibber authored
      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              |
      +----+-------------+--------------+--------+------------------------------------+---------+---------+-------------------------------+--------+--------------------------+
      fa0fbd01
    • Brion Vibber's avatar
      Fix for massively slow friends timeline query due to indexing bug introduced with repeats. · eab6d1c9
      Brion Vibber authored
      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              |
      +----+-------------+--------------+--------+------------------------------------+---------+---------+-------------------------------+--------+--------------------------+
      eab6d1c9
    • Evan Prodromou's avatar
      Merge branch 'testing' · f6bf9529
      Evan Prodromou authored
      f6bf9529
    • Evan Prodromou's avatar
      update to rc2 · 30c2e2ce
      Evan Prodromou authored
      30c2e2ce
    • Evan Prodromou's avatar
      update README for 0.9.0rc2 · d708e40b
      Evan Prodromou authored
      d708e40b
    • Brion's avatar
      Skip DB_DataObject's in-process cache for static gets on CLI processes. · 38877a49
      Brion authored
      The local process cache would grow forever, keeping things stuck in memory and preventing GC.
      38877a49
  4. 22 Dec, 2009 7 commits
  5. 21 Dec, 2009 7 commits
  6. 20 Dec, 2009 1 commit