A writeback=True
полка имеет кеш, в котором хранятся объекты, извлеченные из кеша. Элементы, извлеченные дважды, извлекаются из кэша, и этот кэш используется для записи изменений обратно в файл, когда полка закрыта или синхронизирована.
Shelf.sync()
записывает все записи кэша обратно в файл на диске, и очищает кеш . Полка забывает обо всех найденных предметах. Дальнейшие изменения в d
не будут отражены на полке, и если вы попытаетесь получить d["example"]
снова после syn c, вы получите новый диктант, восстановленный с полки, вместо того, чтобы получить d
.
Не похоже, что существует интерфейс c для синхронизации c изменений без очистки кэша.
Кроме того, sync
перебирает каждую запись в кэш, независимо от того, что изменилось или не изменилось (он понятия не имеет), и записывает новые соленья обратно на диск. Однако это занимает много времени.