1. 30 Sep, 2011 1 commit
  2. 29 Sep, 2011 2 commits
    • Brion Vibber's avatar
      Further fixes to Managed_DataObject::_allCacheKeys(): now uses... · 1d15037d
      Brion Vibber authored
      Further fixes to Managed_DataObject::_allCacheKeys(): now uses self::multicacheKey() to generate the (possibly compound) keys, which makes it match the order of the keys used when calling pkeyGet().
      
      This should resolve the issues darkip was reporting with user_im_prefs entries returning null immediately after insertion (seen with memcached off, so it was happening even with the built-in in-process cache in the Cache base class).
      
      What was happening was that the initial pkeyGet() would end up saving a negative cache entry under the form with the fields sorted in the key, as via multicacheKey():
      
          'statusnet:blaguette:user_im_prefs:screenname,transport:brionv,sms' => 'N;'
      
      then we'd do an insert() on the new entry, saving cache entries for the non-sorted key names returned by _allCacheKeys():
      
          'statusnet:blaguette:user_im_prefs:transport,screenname:sms,brionv' => 'O...'
          'statusnet:blaguette:user_im_prefs:user_id,transport:1234,sms' => 'O...'
      
      but the next query via pkeyGet() still saw the negative lookup cache from before, and came back with null.
      
      Now, _allCacheKeys() sorts the fields in the keys by using the same key-builder function, and queries pick up the same thing you just inserted. :)
      1d15037d
    • Brion Vibber's avatar
      Fix for caching with compound keys: add Managed_DataObject::_allCacheKeys() to... · 69765a05
      Brion Vibber authored
      Fix for caching with compound keys: add Managed_DataObject::_allCacheKeys() to override the one in Memcached_DataObject.
      
      Memcached_DataObject doesn't quite fully understand unique indexes, and can't properly build cache keys for compound unique or primary keys.
      Managed_DataObject has more information in its schema data, so we can build a proper list.
      69765a05
  3. 28 Sep, 2011 4 commits
  4. 27 Sep, 2011 18 commits
  5. 26 Sep, 2011 15 commits