[#7186] add artifact_feed index on project_id, -pubdate
diff --git a/Allura/allura/model/artifact.py b/Allura/allura/model/artifact.py
index 19071c7..d54a08e 100644
--- a/Allura/allura/model/artifact.py
+++ b/Allura/allura/model/artifact.py
@@ -763,6 +763,9 @@
              ('pubdate', pymongo.DESCENDING)),
             # used in ext/user_profile/user_main.py for user feeds
             'author_link',
+            # used in project feed
+            (('project_id', pymongo.ASCENDING),
+             ('pubdate', pymongo.DESCENDING)),
         ]
 
     _id = FieldProperty(S.ObjectId)
diff --git a/Allura/allura/model/auth.py b/Allura/allura/model/auth.py
index f9e3a4c..d9dd276 100644
--- a/Allura/allura/model/auth.py
+++ b/Allura/allura/model/auth.py
@@ -729,7 +729,11 @@
 
     @classmethod
     def anonymous(cls):
-        return User.query.get(_id=None)
+        # ming caches .get(_id=...) queries for the duration of a ming session
+        # but we don't even want to do this query once per request, it'll be the same always and forever
+        if not hasattr(cls, '_anonymous_user'):
+            cls._anonymous_user = User.query.get(_id=None)
+        return cls._anonymous_user
 
     def is_anonymous(self):
         return self._id is None or self.username == ''