1
0
Fork 0
mirror of https://github.com/Kozea/Radicale.git synced 2025-06-26 16:45:52 +00:00

Merge pull request #1660 from pbiering/show-mtime-info-by-default

Show mtime info by default
This commit is contained in:
Peter Bieringer 2024-12-18 21:34:28 +00:00 committed by GitHub
commit b784f476b4
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -92,16 +92,7 @@ class Storage(
_collection_class: ClassVar[Type[Collection]] = Collection _collection_class: ClassVar[Type[Collection]] = Collection
def __init__(self, configuration: config.Configuration) -> None: def _analyse_mtime(self):
super().__init__(configuration)
logger.info("Storage location: %r", self._filesystem_folder)
self._makedirs_synced(self._filesystem_folder)
logger.info("Storage location subfolder: %r", self._get_collection_root_folder())
logger.info("Storage cache subfolder usage for 'item': %s", self._use_cache_subfolder_for_item)
logger.info("Storage cache subfolder usage for 'history': %s", self._use_cache_subfolder_for_history)
logger.info("Storage cache subfolder usage for 'sync-token': %s", self._use_cache_subfolder_for_synctoken)
logger.info("Storage cache use mtime and size for 'item': %s", self._use_mtime_and_size_for_item_cache)
if self._use_mtime_and_size_for_item_cache is True:
# calculate and display mtime resolution # calculate and display mtime resolution
path = os.path.join(self._filesystem_folder, ".Radicale.mtime_test") path = os.path.join(self._filesystem_folder, ".Radicale.mtime_test")
try: try:
@ -134,25 +125,39 @@ class Storage(
mtime_ns = int(mtime_ns / 10) mtime_ns = int(mtime_ns / 10)
mtime_ns_test = int(mtime_ns_test / 10) mtime_ns_test = int(mtime_ns_test / 10)
unit = "ns" unit = "ns"
precision_log = precision precision_unit = precision
if precision >= 1000000000: if precision >= 1000000000:
precision_log = int(precision / 1000000000) precision_unit = int(precision / 1000000000)
unit = "s" unit = "s"
elif precision >= 1000000: elif precision >= 1000000:
precision_log = int(precision / 1000000) precision_unit = int(precision / 1000000)
unit = "ms" unit = "ms"
elif precision >= 1000: elif precision >= 1000:
precision_log = int(precision / 1000) precision_unit = int(precision / 1000)
unit = "us" unit = "us"
os.remove(path) os.remove(path)
return (precision, precision_unit, unit)
def __init__(self, configuration: config.Configuration) -> None:
super().__init__(configuration)
logger.info("Storage location: %r", self._filesystem_folder)
self._makedirs_synced(self._filesystem_folder)
logger.info("Storage location subfolder: %r", self._get_collection_root_folder())
logger.info("Storage cache subfolder usage for 'item': %s", self._use_cache_subfolder_for_item)
logger.info("Storage cache subfolder usage for 'history': %s", self._use_cache_subfolder_for_history)
logger.info("Storage cache subfolder usage for 'sync-token': %s", self._use_cache_subfolder_for_synctoken)
logger.info("Storage cache use mtime and size for 'item': %s", self._use_mtime_and_size_for_item_cache)
(precision, precision_unit, unit) = self._analyse_mtime()
if precision >= 100000000: if precision >= 100000000:
# >= 100 ms # >= 100 ms
logger.warning("Storage item mtime resolution test result: %d %s (VERY RISKY ON PRODUCTION SYSTEMS)" % (precision_log, unit)) logger.warning("Storage item mtime resolution test result: %d %s (VERY RISKY ON PRODUCTION SYSTEMS)" % (precision_unit, unit))
elif precision >= 10000000: elif precision >= 10000000:
# >= 10 ms # >= 10 ms
logger.warning("Storage item mtime resolution test result: %d %s (RISKY ON PRODUCTION SYSTEMS)" % (precision_log, unit)) logger.warning("Storage item mtime resolution test result: %d %s (RISKY ON PRODUCTION SYSTEMS)" % (precision_unit, unit))
else: else:
logger.info("Storage item mtime resolution test result: %d %s" % (precision_log, unit)) logger.info("Storage item mtime resolution test result: %d %s" % (precision_unit, unit))
if self._use_mtime_and_size_for_item_cache is False:
logger.info("Storage cache using mtime and size for 'item' may be an option in case of performance issues")
logger.debug("Storage cache action logging: %s", self._debug_cache_actions) logger.debug("Storage cache action logging: %s", self._debug_cache_actions)
if self._use_cache_subfolder_for_item is True or self._use_cache_subfolder_for_history is True or self._use_cache_subfolder_for_synctoken is True: if self._use_cache_subfolder_for_item is True or self._use_cache_subfolder_for_history is True or self._use_cache_subfolder_for_synctoken is True:
logger.info("Storage cache subfolder: %r", self._get_collection_cache_folder()) logger.info("Storage cache subfolder: %r", self._get_collection_cache_folder())