У меня есть прототип сервера [0], который выполняет os.walk()
[1] для каждого запроса, который делает клиент [0].
В настоящее время я ищу способы:
- кэширование этих данных в памяти,
- ускорение запросов и
- , что, возможно, позволит в дальнейшем расширить хранение метаданных и сохранение данных.
Iнайти SQL сложный для древовидных структур, поэтому я подумал, что получу несколько советов, прежде чем приступить к фиксации SQLite
Существуют ли какие-либо кроссплатформенные, встраиваемые или связываемые базы данных, отличные от SQL,быть в состоянии обрабатывать такие данные?
- У меня небольшой список (файлы 10k-100k).
- У меня очень небольшое количество подключений (возможно, 10-20).
- Я хочу иметь возможность масштабировать и обработку метаданных.
[0] сервер и клиент - это одно и то же программное обеспечение, это приложение P2P, этопредназначен для обмена файлами через локальную доверенную сеть с основным сервером, используя zeroconf
для обнаружения, и искаженный для почти всего остального
[1] время запроса в настоящее время составляет 1,2 с при os.walk()
на 10 000files
Вот моя функция в моем коде Python, которая выполняет прогулки:
def populate(self, string):
for name, sharedir in self.sharedirs.items():
for root, dirs, files, in os.walk(sharedir):
for dir in dirs:
if fnmatch.fnmatch(dir, string):
yield os.path.join(name, *os.path.join(root, dir)[len(sharedir):].split("/"))
for file in files:
if fnmatch.fnmatch(file, string):
yield os.path.join(name, *os.path.join(root, ile)[len(sharedir):].split("/"))