25 июл. 2011 г.

Google App Engine как быстрее хранить данные

Стал задумываться – как быстрее всего получать доступ к данным в пределах одного объекта при условии, что полей относительно много и поиск по ним не нужен, т.е. необходимости хранить каждое поле отдельно – нет.

К тому же в GAE в каждом объекте сохраняется название каждого поля + оно же хранится в каждом индексе, если индекс не отключается принудительно, т.е. в объем случае места может быть занято раз в 10 больше, чем сохраненно собственно данных.

Рассматриваемые варианты: поле объекта, десериализованный словарь. Для сериализации словаря есть два простых варианта – встроенный – Pickle и json. Тест выполнен следующим образом: каждая операция выполняется пока не будет получено исключение DeadlineExceededError, как только оно получено – выводится количество произведенных итераций и запрос завершается.  Каждый тест выполняется 4 раза. Первый тест идет для объего обзора и в усреднении не участвует, т.к. в этот момент запускается инстанс, собирается байт-код и т.п. Все запросы выполнялись по очереди, чтобы гарантировано обрабатываться на том же инстансе что и предыдущие
Получение свойства из объекта: 11581454, 15897754, 16719559, 15739328. Среднее: 16 118 880
Получение свойств из словаря: 117059883, 123362268, 171216019, 118629746. Среднее: 137 736 011
Сохранение в Json: 13637, 15078, 13947, 20607. Среднее: 49 632
Сохранение в Pickle: 70444, 60782, 71197, 70122. Среднее: 67 367
Загрузка в Json: 23493, 22166, 23793, 24599. Среднее: 23 519
Загрузка в Pickle: 122675, 123934, 122640, 112645. Среднее: 119 739

Общий вывод: для большого количества обращений к полям объекта лучше использовать словарь, к тому же это более гибкая структура, чем поле объекта. Для сериализации – Pickle. Пожалуй единственный минус pickle – результат получается человеко-нечитаемым, но в данном случае оно и не требуется.

23 июл. 2011 г.

Установка Ubuntu в Hyper-V: Ext3 vs Ext4

Делаю образ сервера для Ubuntu, изначально принял по файловую систему по умолчанию – Ext4, установил систему, смотрю размер vhd-файла – 900МБ.

Потом переставил ту же конфигурацию на Ext 3, размер vhd-файла 1700 МБ, причем до 300-400МБ файл вырос уже сразу после форматирования диска.

20 июл. 2011 г.

Неудачное обновление ubuntu 10.04 LTS

В процессе подгонки нового шаблона ubuntu сделал обновление apt-get upgrade, потом reboot.

После этого ubuntu уже не поднялась:

17 июл. 2011 г.

S3FS для FreeBSD

Озаботился сохранением резервной копии клиентских данных. Для малых объемов выгоднее всего оказался Amazon S3. Под FreeBSD доступна S3FS, позволяющая подключать S3 как файловую систему и не заморачиваться на деталях. По данным с сайта s3fs максимальный объем файла-64Гб (сам амазон накладывает ограничение 5Гб).

Попробовал закачать туда несколько мелких файлов – закачались на ура. Образ клиентской папки на 6Гб не закачивается вообще – даже не начинает.

При сохранении образа в S3 он сначала записывается в какой-то временный файл и всё – дальше дисковая/сетевая активность отсутствует.  На Amazon появляется файл с нужным именем и нулевым размером.

4 июл. 2011 г.

Новости Amazon

Amazon отменил оплату за входящий трафик и в связи с этим стал значительно выгоднее для резервного копирования, чем был.

При малых объемах (до 1ТБ, дальше - дешевле) 1Гб в S3 стоит примерно 2.80 рубля или 4.20 рубля в зависимости от уровня надежности  – надежно или очень надежно.

При этом считается только занятое место, без округлений, как получается в случае если место на каком-то обычном хостинге или арендовать сервер.

В случаях до нескольких сотен гигабайтов это получается дешевле, чем хранить копии где-то еще.