Storage Controller
Storage Controller
class WeightedPoolItem:
def __init__(self, value):
self.value = value
self._sum = 1
self._count = 1
self._lastRefresh = time()
def getWeight(self):
return self._sum/self._count
self._sum+= stat
self._count+= 1
class WeightedPool:
def __init__(self, items):
self._items = []
for item in items:
self._items.append(WeightedPoolItem(item))
class KeepAliveManager:
def __init__(self, storageController, interval=KEEPALIVE_INTERVAL,
query=KEEPALIVE_QUERY):
self.storageController = storageController
self.interval = interval
self.query = query
def start(self):
reactor.callLater(self.interval, self._keepAlive)
def _keepAlive(self):
log.debug(
'DEBUG: KeepAliveManager:: keep-alive query: %s' % self.query)
for item in self.storageController.readPool._items:
item.value.runQuery(self.query)
if self.storageController.writePool is not \
self.storageController.readPool:
for item in self.storageController.writePool._items:
item.value.runQuery(self.query)
self.start()
class StorageController:
name = 'StorageController'