Contact: fumanchu@aminus.org

Log in as guest/dejavu to create tickets

Changeset 578

Show
Ignore:
Timestamp:
11/06/07 13:10:51
Author:
fumanchu
Message:

Crazycache: I shouldn't have promoted IndexSet?.indices. The order is too important.

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • branches/crazycache/dejavu/storage/storememcached.py

    r577 r578  
    198198             
    199199            if not unit.sequencer.valid_id(unit.identity()): 
    200                 if () in indexset.indices
     200                if () in indexset
    201201                    # Try to generate an identifier by looking 
    202202                    # up all units in the global index. 
     
    261261         
    262262        indexset = self.indexsets[cls] 
    263         if () in indexset.indices
     263        if () in indexset
    264264            try: 
    265265                self.client.add(indexset.key({}), []) 
     
    295295         
    296296        indexset = self.indexsets[cls] 
    297         if () in indexset.indices
     297        if () in indexset
    298298            # TODO: recalculate if primary_keys changed 
    299299            ci = self.client.get(indexset.key({})) or [] 
     
    309309        """If storage structures exist for the given property, return True.""" 
    310310        indexset = self.indexsets[cls] 
    311         if () in indexset.indices
     311        if () in indexset
    312312            clsname = cls.__name__ 
    313313            ci = self.client.get(indexset.key({})) 
     
    337337         
    338338        indexset = self.indexsets[cls] 
    339         if () in indexset.indices
     339        if () in indexset
    340340            ci = self.client.get(indexset.key({})) or [] 
    341341            for id in ci: 
     
    358358         
    359359        indexset = self.indexsets[cls] 
    360         if () in indexset.indices
     360        if () in indexset
    361361            ci = self.client.get(indexset.key({})) or [] 
    362362            for id in ci: 
     
    374374    def cachelen(self, cls): 
    375375        indexset = self.indexsets[cls] 
    376         if () in indexset.indices
     376        if () in indexset
    377377            return len(self.client.get(indexset.key({}))) 
    378378        else: 
     
    382382        units = [] 
    383383        indexset = self.indexsets[cls] 
    384         if () in indexset.indices
     384        if () in indexset
    385385            for key in self.client.get(indexset.key({})): 
    386386                unit = self.client.get(key) 
     
    395395         
    396396        indexset = self.indexsets[cls] 
    397         if () in indexset.indices
     397        if () in indexset
    398398            gi_key = indexset.key({}) 
    399399            # Delete all units in the global index. 
     
    589589        self.cls = cls 
    590590        self._key_template = '%s:%s:index(%%s)' % (store.name, cls.__name__) 
    591         self.indices = [] 
     591        self._indices = [] 
    592592     
    593593    def add_index(self, *attributes): 
    594594        """Add an index over the given attributes.""" 
    595595        # Sort them from most-specific (most properties) to least. 
    596         if attributes not in self.indices: 
    597             self.indices.append(attributes) 
    598             self.indices.sort(lambda x, y: cmp(len(y), len(x))) 
     596        if attributes not in self._indices: 
     597            self._indices.append(attributes) 
     598            self._indices.sort(lambda x, y: cmp(len(y), len(x))) 
    599599     
    600600    def __iter__(self): 
    601         return iter(self.indices) 
     601        return iter(self._indices) 
    602602     
    603603    def key(self, criteria): 
     
    764764        ident = tuple([getattr(unit, name) 
    765765                       for name in self.store.primary_keys[self.cls]]) 
    766         for index in self.indices: 
     766        for index in self._indices: 
    767767            criteria = [(k, getattr(unit, k)) for k in index] 
    768768            indexnode = self.get(criteria) or [] 
     
    775775        ident = tuple([getattr(unit, name) 
    776776                       for name in self.store.primary_keys[self.cls]]) 
    777         for index in self.indices: 
     777        for index in self._indices: 
    778778            criteria = [(k, getattr(unit, k)) for k in index] 
    779779            indexnode = self.get(criteria) or []