Entry tags:
Special Olympics - айсед в рантайме
скриншот
Полудневное (поверхностное) вздрючивание айседного приложения как средствами собственно веб-морды, так и wget и редактированием конфига нашло только несколько мелких багов, типа "приложение показывает 500 Server error если указать кривой url".
Еще один мелкий баг был - редактирование конфига отчетов привело к незапускаемости rails s вообще, с диким стек-трейсом.
После исправления практически все кривые запросы напрямую к json-сервис показывали 403.
Ошибки в конфиге отчетов пишутся в лог сервиса.
Еще один крайне спорный момент: обработка параметров запроса:
theiced не использует препаред статементы,а вместо этого заменяет параметры регэкспом, а их значения обрабатывает ActiveRecord::Base.sanitize. Т.е. если мы верим либе - то у нас sql-injection не будет. Айсед утверждает, что у них так принято, хотя я всегда считал что единственно кошерный вариант - это препаред статементы и обработка переменных-параметров сервером.
Это решение, кстати, делает невалидными(не грузит их) такого рода sql-запросы:
select *,'?somestring' from test where stringval like ?stringval and boolval=?boolval
т.к. ?somestring оно считает параметром, хотя он очевидно не параметр, а литерал
Полудневное (поверхностное) вздрючивание айседного приложения как средствами собственно веб-морды, так и wget и редактированием конфига нашло только несколько мелких багов, типа "приложение показывает 500 Server error если указать кривой url".
Еще один мелкий баг был - редактирование конфига отчетов привело к незапускаемости rails s вообще, с диким стек-трейсом.
После исправления практически все кривые запросы напрямую к json-сервис показывали 403.
Ошибки в конфиге отчетов пишутся в лог сервиса.
Еще один крайне спорный момент: обработка параметров запроса:
@sql.scan(/\?\w+/).each do |name| real_name = name[1 .. -1].downcase parameter = @parameters.find { |p| p.name == real_name } value = ActiveRecord::Base.sanitize(parameters[@parameters.index(parameter)]) expanded_sql.sub!(name, value) end
![[livejournal.com profile]](https://www.dreamwidth.org/img/external/lj-userinfo.gif)
Это решение, кстати, делает невалидными(не грузит их) такого рода sql-запросы:
select *,'?somestring' from test where stringval like ?stringval and boolval=?boolval
т.к. ?somestring оно считает параметром, хотя он очевидно не параметр, а литерал
no subject
no subject
Всегда знал, что Rails — это такой PHP-переросток.
no subject
no subject
отчёты - их посмотреть хочется. иногда. побыстрее начать это делать. хоть на бейсике, хоть на фортране. ну это наверное я так понимаю задачу.
в этом смысле рулить будут именно бейсики и руби и пхп. что угодно кроме низкоуровневых ЯП.
no subject
no subject
no subject
no subject
ви ничего не понимаете, prepared statements - анальный кал, и используют его только нищеброды с xml-ем головного мозга
(/iced_mode)
no subject
no subject
no subject
no subject
no subject
no subject
- мы видим сикль в логах. целый запрос а не анальное говно с вопросиками и вагоном параметров в жопе.
минусы:
- ну есть метаклассы захотят формат параметров использовать с скобках
- чуууууть больше нагрузка на базу. умные люди меряли, она незначительна.
------
теперь пусть дурачки пизданувшие про закаты солнца вручную (artureg, sorhed, veter_r_r, falcrum) приведут воспроизводимые замеры где препаред стэйтменты дают более 10% перфоманса или возьмут мой мозолистый хуец в свой нежный ротик и начнут сосать причмокивая.
ещё раз - можно были спокойно взять ruby-dbi и использовать те самые преп стэйтменты (код даже было бы на пару строк меньше), но оно плохо, см. выше.
no subject
no subject
охуенно практично. "я покупаю ВАЗ, потому что его легко чинить"
"- чуууууть больше нагрузка на базу. умные люди меряли, она незначительна."
какие люди? Где они?
no subject
no subject
бугага, тебе это мама сказала? :)))))))))))))))
no subject
no subject
no subject
no subject
no subject
http://www.simple-talk.com/community/blogs/philfactor/archive/2009/08/03/74227.aspx
http://www.codeproject.com/Articles/16994/Use-SQL-Parameters-to-Overcome-Ad-Hoc-Performance
вот какие-то тесты. adhoc не использую, по причине нахуй ненужности. Что такое сбор запроса из строк забыл лет 5 назад.
no subject
no subject
ещё раз - я мог просто убрать эти 5 строк и заменить .execute на .exec_query которая понимает бинды (ака параметры). но зачем если это плохо?
no subject
э... как вообще логирование происходит???
у рубёвых либ отсутствует возможность делать callback на уровне курсора/коннекшена???
no subject
no subject
«Как видите, включение параметризованных запросов повысило пропускную способность базы данных на 30-40% и даже обеспечило 15-25%-ное повышение по сравнению с режимом Statement Concentrator.»
Отсосать у себя не дам: ты и зубы, поди, не чистишь.
no subject
no subject
Соглашусь, что РЕАЛЬНО надо смотреть. Это да. Но... :)
no subject
no subject
no subject
Но соскакиваешь ты интересно. :)
no subject
http://www.engineyard.com/blog/2011/sql-server-10xs-faster-with-rails-3-1/
no subject
no subject
У меня - самый большой :)
no subject
no subject
no subject
no subject
no subject
no subject
no subject
no subject
Не, понятно, что если ормы использовать в индо-ортуро-стайле:
то ничего хорошего из этого не выйдет.
no subject
no subject
аргументы или присоединяйтесь к весёлой групке уже сосущей мой хуй.
как меня бесит школота типа тебя которая прочитала одну говнокнижку по говножабе, свято ей верит и думать не умеет.
no subject
А что касается производительности - тут я с ребе айседом согласен. Нужно сначала мерять, а потом уже тюнить.
no subject