Nir Soffer has posted comments on this change.

Change subject: cache: Add caching decorator with invalidation
......................................................................


Patch Set 5:

(6 comments)

http://gerrit.ovirt.org/#/c/34709/5/lib/vdsm/cache.py
File lib/vdsm/cache.py:

Line 44:     Return a caching decorator supporting invalidation.
Line 45: 
Line 46:     The decorator accepts an optional "update" callable, called each 
time the
Line 47:     memoized function is called. If update() returns True, the 
memoized cache
Line 48:     is invalidated. If the update is not set, the cache is never 
invalidated.
Wearing my reviewer hat, I see that "If the update is not set" should be "If 
update is not set".
Line 49: 
Line 50:     The memoized function may accept multiple positional arguments. The
Line 51:     cache stores the result for each combination of arguments. 
Functions with
Line 52:     kwargs are not supported.


Line 88: 
Line 89: class file_modified(object):
Line 90:     """
Line 91:     A memoized validator returning True when a file has changed since 
the
Line 92:     last validation.
Maybe add here that this validator assumes that the file system report that 
file size and mtime has changed when file contents changed.
Line 93:     """
Line 94: 
Line 95:     def __init__(self, path):
Line 96:         self.path = path


Line 115:     """
Line 116:     A memoized validator returning True when the contents of a small 
file have
Line 117:     changed since the last validation. Used, for example, to monitor 
files in
Line 118:     /sys which do not properly expose status like regular files.
Line 119:     """
I assume that by reading the contents of a small file, you save expensive 
computation or reading some other bigger files - right?
Line 120: 
Line 121:     def __init__(self, path):
Line 122:         self.path = path
Line 123:         self.contents = None


http://gerrit.ovirt.org/#/c/34709/5/tests/cacheTests.py
File tests/cacheTests.py:

Line 216:     def test_update_when_file_modified(self):
Line 217:         self._update_file_content_and_verify(file_modified)
Line 218: 
Line 219:     def test_update_when_file_content_changed(self):
Line 220:         self._update_file_content_and_verify(file_content_changed)
I like having tests at the top, and private helpers at the bottom.
Line 221: 
Line 222: 
Line 223: @tools.nottest
Line 224: class FilePresenceTests(VdsmTestCase):


Line 219:     def test_update_when_file_content_changed(self):
Line 220:         self._update_file_content_and_verify(file_content_changed)
Line 221: 
Line 222: 
Line 223: @tools.nottest
I don't follow, what does this do on a class?
Line 224: class FilePresenceTests(VdsmTestCase):
Line 225: 
Line 226:     validator_class = None
Line 227: 


Line 275:             # No change in stats
Line 276:             self.assertFalse(validator())
Line 277: 
Line 278: 
Line 279: @tools.istest
I don't follow, what does this do on a class?
Line 280: class FileModifiedTests(FilePresenceTests):
Line 281: 
Line 282:     validator_class = file_modified
Line 283: 


-- 
To view, visit http://gerrit.ovirt.org/34709
To unsubscribe, visit http://gerrit.ovirt.org/settings

Gerrit-MessageType: comment
Gerrit-Change-Id: I6dd8fb29d94286e3e3a3e29b8218501cbdc5c018
Gerrit-PatchSet: 5
Gerrit-Project: vdsm
Gerrit-Branch: master
Gerrit-Owner: Nir Soffer <nsof...@redhat.com>
Gerrit-Reviewer: Adam Litke <ali...@redhat.com>
Gerrit-Reviewer: Antoni Segura Puimedon <asegu...@redhat.com>
Gerrit-Reviewer: Dan Kenigsberg <dan...@redhat.com>
Gerrit-Reviewer: Federico Simoncelli <fsimo...@redhat.com>
Gerrit-Reviewer: Francesco Romani <from...@redhat.com>
Gerrit-Reviewer: Martin Sivák <msi...@redhat.com>
Gerrit-Reviewer: Nir Soffer <nsof...@redhat.com>
Gerrit-Reviewer: Saggi Mizrahi <smizr...@redhat.com>
Gerrit-Reviewer: Vitor de Lima <vdel...@redhat.com>
Gerrit-Reviewer: automat...@ovirt.org
Gerrit-Reviewer: oVirt Jenkins CI Server
Gerrit-HasComments: Yes
_______________________________________________
vdsm-patches mailing list
vdsm-patches@lists.fedorahosted.org
https://lists.fedorahosted.org/mailman/listinfo/vdsm-patches

Reply via email to