Skip to content

Commit e5807c4

Browse files
committed
Make cassandra connection lazy
1 parent 1b122ad commit e5807c4

File tree

1 file changed

+18
-10
lines changed

1 file changed

+18
-10
lines changed

src/sentry/nodestore/cassandra/backend.py

Lines changed: 18 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
import casscache
1212

1313
from sentry.nodestore.base import NodeStorage
14+
from sentry.utils.cache import memoize
1415

1516

1617
class CassandraNodeStorage(NodeStorage):
@@ -25,22 +26,29 @@ class CassandraNodeStorage(NodeStorage):
2526
"""
2627
def __init__(self, servers, keyspace='sentry',
2728
columnfamily='nodestore', **kwargs):
28-
self.conn = casscache.Client(
29-
servers=servers,
30-
keyspace=keyspace,
31-
columnfamily=columnfamily,
32-
**kwargs
29+
self.servers = servers
30+
self.keyspace = keyspace
31+
self.columnfamily = columnfamily
32+
self.options = kwargs
33+
super(CassandraNodeStorage, self).__init__()
34+
35+
@memoize
36+
def connection(self):
37+
return casscache.Client(
38+
servers=self.servers,
39+
keyspace=self.keyspace,
40+
columnfamily=self.columnfamily,
41+
**self.options
3342
)
34-
super(CassandraNodeStorage, self).__init__(**kwargs)
3543

3644
def delete(self, id):
37-
self.conn.delete(id)
45+
self.connection.delete(id)
3846

3947
def get(self, id):
40-
return self.conn.get(id)
48+
return self.connection.get(id)
4149

4250
def get_multi(self, id_list):
43-
return self.conn.get_multi(id_list)
51+
return self.connection.get_multi(id_list)
4452

4553
def set(self, id, data):
46-
self.conn.set(id, data)
54+
self.connection.set(id, data)

0 commit comments

Comments
 (0)