В настоящее время я создаю систему ГИС с высоким трафиком, которая использует python на веб-интерфейсе. Система доступна только на 99%. В интересах производительности я рассматриваю возможность использования созданного снаружи кэша предварительно созданной информации GIS, оптимизированной для чтения, и хранения в базе данных SQLite на каждом отдельном веб-сервере. Короче говоря, он будет использоваться в качестве распределенного кеша только для чтения, который не должен перескакивать через сеть. Заднее хранилище OLTP будет postgreSQL, но оно будет обрабатывать менее 1% запросов.
Я рассмотрел использование Redis, но набор данных довольно велик, и поэтому он будет увеличивать стоимость административных расходов и памяти на виртуальных машинах, на которых он находится. Memcache не подходит, поскольку он не может выполнять запросы диапазона.
Я собираюсь ударить с помощью read- concurrency проблем с SQLite?
Является ли это разумным подходом?
Хорошо после много исследований и тестирования производительности, SQLite подходит для этого. Он имеет хороший запрос concurrency по статическим данным. SQLite становится проблемой только в том случае, если вы делаете записи так же, как и тяжелые чтения.
Дополнительная информация здесь:
если использование - это просто кеш, почему бы вам не использовать что-то вроде http://memcached.org/.
Вы можете найти привязки memcached для python в репозитории pypi.
Другими параметрами являются использование материализованных представлений в postgres, таким образом вы будете держать вещи простыми и иметь все в одном месте.
http://tech.jonathangardner.net/wiki/PostgreSQL/Materialized_Views