У нашей системы загрузки данных есть особенности: наличие жесткого дедлайна и единомоментное массовое появление данных на ключевых источниках. То есть в теории мы пытаемся получать информацию в реальном времени, а на практике выходит, что бОльшую часть суточного объема мы получаем в конкретные часы ночью и должны полностью отпроцессить к началу
(
Read more... )
Comments 11
1. Входные датасеты (несколько тысяч) все пишутся на диск. Есть небольшой хак, что если в http хедерах gzip-сжатие, то вместо *.xml пишем *.xml.gz. Удобно для расследований. Парсинг и занесение в базу - отдельной задачей.
2. Исходящие датасеты для партнёров тоже предзаготавливаются на диске в сжатом виде по запросу, затем стримятся. Если повторные запрос в течение получаса - стримится тот же кэш, иначе пересоздаётся. Наличие последней отправленной версии в кэше - также удобно для расследований.
Reply
п2 не про енту систему. Ей только бы получить данные, извлечь от туда несколько полей и сохранить в базу. Отчего кроме прочего, я грешу как раз на БД, потому что в момент сохранения объем данных по сути удваивается и живет в таком виде до окончания транзакции с последующим выходом GC.
Reply
Reply
Точнее, план:
1. Составить описание - ты сделал в посте.
2. Составить техническое описание с применяемыми интерфейсами.
3. Составить техническое задание с деталями интерфейсов и пометками, что будет делаться скриптами.
4. Переписать всё к хуям.
Reply
Reply
2. Всю распаковку я выношу на диски и отдельные проверенные утилиты командной строки. Я потратил достаточно много времени чтобы протестировать вагон разных C#/C/C++ библиотек и пришел к выводу что победить на многоядерной машине на распаковке, например, тот же 7-zip хотя и можно, но трудозатраты большие и забил на это.
Reply
Reply
Reply
В далеком уже 2003-м году делал примерно то же самое для кода на C++, собранном с символами - но в оптимизированном режиме.
Собственно отлаживать в таком виде толком нельзя, но трассировать на уровне вызовов и анализировать содержимое памяти - вполне можно.
Reply
2. а вот уже потом! профайлить.
2.1. да, мемори профайлеры у джавы лучше :(
2.2. студия локально на серваке гораздо лучше всего удаленного, благо комьюнити кушать и активироваться не просит
если же зарплата 1 девелопера намного меньше, чем стоит сабжевый сервак, или поставить его нереально по другим причинам -- тогда все намного хуже, и не только с серваком.
в смысле, реально намного лучше один раз так сэкономить время, а потом либо забить вообще, либо оптимизировать, но имея запас "где развернуться" итд.
Reply
Reply
Leave a comment