Обновить
37

Пользователь

0,8
Рейтинг
22
Подписчики
Отправить сообщение
>Вчера, во время обсуждения www.i-gorod.com, возникла мысль собрать команду с целью создания социально-значимого и эффективного ресурса.

Можно понимать не однозначно. Хотите, по примеру i-gorod, поучаствовать в роспиле, или же хотите показать что i-gorod ничего за деньги не смогли сделать, а вы сделаете кое-что абсолютно бесплатно?
Мне во всем подошел GAE. Даже полнотекстовый поиск по 100 Мб. текста сделать удалось.

А вот понадобился HTTPS с красивым сертификатом — и приехали. У GAE пока нет такой возможности. Когда будет — не известно. Приходится в спешном порядке все переносить на Amazon BeansTalk.

Разбирался пол дня. Самое сложное было — установить этот самый SSL-сертификат. К серверу по SSH не подключался — нет необходимости.

Главные недостаток Amazon — это их база данных SimpleDB. Google BigTable — намного более продвинутая. Второй недостаток — долго деплоится по сравнению с GAE.
Тема не раскрыта. Дыра в чем?
Насколько я понимаю, кросс-доменные запросы поддерживают далеко не все браузеры. А вот включение JSON — поддерживают все.

Т.е. с помощью jQuery получиться обратиться только к своему домену, а вот к домену Google только через JSON-прокси (либо их либо свой).
А чем GAE не устроил?
Я разобрался почему это. Гугл выдает JSON при отправке запроса на адрес www.google.com/fusiontables/gvizdata?tq= Так вот, если в заголовке запроса не указан Accept-Charset — то возвращается белиберда. А IE почему-то не указывает Accept-Charset. Может и есть способ заставить его указать этот Accept-Charset?

А вы как хотите делать? Свой JSON-прокси на сервере поднимать?
Кстати, недавно сам начал использовать FusionTables и нашел 2 бага:

1. Выборка по Marged-таблицам с кол-вом записей более 0.5 млн. происходит оооочень медленно. Уже отписал Google, они даже ответили и занесли в баг-треккер. А вот выборка по обычным таблицам происходит довольно шустро.

2. При использовании JS Visualization Api из IE вместо русских букв возвращаются знаки вопроса ?????????? ????.. Оказывается в заголовке запроса должен быть Accept-Charset: utf-8. В IE его почему-то нету… У вас русского текста в выдаче нет? Если есть русский текст — проверьте открыть в IE. Я сначала был доволен — потом облом. Не работает в IE. Эту проблему до сих пор не решил. Вы не сталкивались с этой проблемой?
А там он по смыслу не очень подходит. Файл рисунка ведь не всегда называется так же как символ, который на этом рисунке изображен. Оказывается в GAE нельзя чтобы файл назывался ( или ). А вот цифрами можно.
Оно стоит примерно так же как и запись.
А вы с ним пообщайтесь. Говорит, что узнал об этом лично от Михаила Айзацкого (из команды Google App Engine).

Склонен считать что это соответствует действительности.
Отменили уже.
Спасибо за статью. Жаль раньше ее не увидел.
>>Можно ссылку на описание где и как GAE «ограничивает приложения как неэффективные»?

Лично я об этом узнал из статьи: habrahabr.ru/blogs/gae/94640/ абзац «Одна секунда». В официальной документации не припомню чтобы такое встречалось. Но, с учетом моего опыта, похоже на правду.
>>Скорее всего, утекает память или её потребляется слишком много.

Скорее всего да — в библиотеке org.toyz.litetext что-то не оптимизировали.
>>А по какой причине там у Вас в коде длинная колбаса из ифов вместо switch|case?

Хороший вопрос. Раньше было String, потом модифицировал и забыл изменить. Нужно будет исправить…
>>Что в логах медленных запросов — присутствует ли «loading_request=1»?

Как то не подумал посмотреть ранее. Действительно в 90% этих запросов есть loading_request=1. Но как так получилось что они присутствуют по 5 штук на каждой странице лога???

Смотрю лог нового счетчика. Просмотрел 10 страниц лога — НИ ОДНОГО запроса красным или оранжевым нет. В среднем выполняется за 64ms 175cpu_ms 128api_cpu_ms.

Сейчас трафик — 6 запросов в секунду. Было 8.

На 42 тыс. показов 8 ошибок «Concurrent Modification» — получается 1 ошибка на 6000 запросов (нужно было добавить несколько счетчиков с рандомным доступом).

>>Уже по 500мс на обычный запрос видно, что приложение тяжеловато.

Это все org.toyz.litetext. Счетчик, который используется сейчас, работает где-то за 40 ms.
Вот здесь в самом низу: code.google.com/appengine/docs/java/datastore/entities.html абзац «Batch Operations».

Если используете JDO — то PersistentManager метод persistAll.
Это не картинка, а счетчик. Он тянет в 500 раз больше процессорного времени. Выше развернуто написал в чем причина.
Это просто не картинка. Это счетчик. Картинка тянет в 500 раз меньше процессорного времени — хватило бы бесплатного лимита с головой.

Информация

В рейтинге
2 262-й
Зарегистрирован
Активность