notifications heavy writes - really slow views

1 view
Skip to first unread message

paul jobs

unread,
Jan 10, 2009, 6:01:03 PM1/10/09
to us...@couchdb.apache.org
schema
class Notification(Document):
unread = BooleanField(default=True)
activity = TextField()
appname = TextField()
image = TextField()
type = TextField(default='notification')
fromuser = TextField()
touser = TextField()
link = TextField()
message = TextField()
created = DateTimeField(default=datetime.datetime.now())
time =TimeField(default=datetime.datetime.now())
date = DateField(default=datetime.date.today()

def savenotifications(fromuser, tousers, link, message, activity, image,
appname, *args, **kwargs):
for touser in tousers:
if fromuser == touser:continue
notidoc = Notification( fromuser = fromuser,touser=touser,
link=link, message=message, activity=activity, image = image, appname =
appname)
notidoc.store(fbcouchdb)
for touser in tousers:
r=fbcouchdb.view('_view/pop/unread',key=str(touser), count=1)
for i in r:i

I ever try to prepare the views when some one gets a new notifications by
precalling the view unread

but whenever i do getnotification it is really slow.. And the page doesnt
open forever. Anyways to make couchdb usable with this db? the situation is
that notifications are constantly inserted into the db all the time as
things happen to the user in real time. is this not a good use case for
couchdb

def getnotifications(self, all=False):
try:
from couchmodel import fbcouchdb
if not all:
return [ (x.id, x.value) for x in
fbcouchdb.view('_view/pop/unre
ad',key=str(self.uid), count=5) ]
else:
return [ (x.id, x.value) for x in
fbcouchdb.view('_view/pop/noti
fications',key=str(self.uid)) ]
except:return[]

Reply all
Reply to author
Forward
0 new messages