Подходит ли SQLite для использования в качестве кэша только для чтения на веб-сервере? - PullRequest
11 голосов
/ 24 июля 2011

В настоящее время я создаю ГИС-систему с высоким трафиком, которая использует python в веб-интерфейсе. Система на 99% только для чтения. В целях повышения производительности я рассматриваю возможность использования внешнего сгенерированного кэша предварительно сгенерированной оптимизированной для чтения информации ГИС и хранения в базе данных SQLite на каждом отдельном веб-сервере. Короче говоря, он будет использоваться как распределенный кэш только для чтения, который не должен перепрыгивать через сеть. Внутренним хранилищем OLTP будет postgreSQL, но он будет обрабатывать менее 1% запросов.

Я рассмотрел вопрос об использовании Redis, но набор данных довольно большой, и поэтому он увеличит административные затраты и стоимость памяти на виртуальных машинах, на которых он размещен. Memcache не подходит, так как он не может выполнять запросы диапазона.

Собираюсь ли я столкнуться с проблемами параллелизма чтения при использовании SQLite?

Это разумный подход?

Ответы [ 2 ]

5 голосов
/ 01 августа 2011

Хорошо, после долгих исследований и тестирования производительности, SQLite подходит для этого.Имеет хороший параллелизм запросов к статическим данным.SQLite становится проблемой только в том случае, если вы выполняете записи, а также интенсивное чтение.

Дополнительная информация здесь:

http://www.sqlite.org/lockingv3.html

0 голосов
/ 24 июля 2011

, если регистр использования - это просто кеш, почему бы вам не использовать что-то вроде http://memcached.org/.

Вы можете найти привязки memcached для python в репозитории pypi.

Другой вариант - использоватьматериализованные представления в postgres, таким образом, вы будете держать вещи простыми и иметь все в одном месте.

http://tech.jonathangardner.net/wiki/PostgreSQL/Materialized_Views

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...