All streams
Search
Write a publication
Pull to refresh
69
0
Александр Календарев @akalend

Ламер с 20 летнем стажем

Send message
в принципе согл.
а в смысле размерности,
интересно сколько элементов пихали в мемкеш?
ты???
нормальное выступление, не переживай
про инклюды .c/.cpp тут уже говорили
согл
про чтение из сокета по 1 байту
другого выхода нет, мы не знаем длинну принимаемого сообщения. если прочесть более большой блок, то программа зависнет в ожидании данных.
обственный парсер инишников
а чем он плох,
меня он устраивает, находит ошибки на уровне чтения ini — файла с указание номера линии. в качестве генератора кода использован re2c.
про int вместо bool.
согл
ро собственный парсер URI
а что тут парсить-то. простой цикл… зачем тянуть посторонние либы.
спасибо за комменты учту
1. Мой код не идеален, уже двое заметили, за что им отдельная благодарнгсть
2. Задача часто встречаемая, может кому пригодится
3. Выложил исходники, может кто-то
а) сделает хорошие замечания/исправления
б) напишет плагин для другого стоража

Если плагигнов будет 2-3, то можно сделать фабрику и загружать их через конфиг. А пока что нет смысла городить огород, если это решение одного проекта.
помню это выступление на РИТе, где Лайвинтернет рассказывал, как на IV пне запустил свой подсчетчик кликов, написанный на си, который выдерживал несколько миллионов запросов.
не работал с нодой,
она проксирование допускает?
если да, то не проблема запустить и в ноде.
какой размер у клик-карты?
в настоящее время прохожу обкатку
доработку и останется время на рефакторинг!
можешь присоединиться, дам доступ в гит
спасибо что заглянули в исходники,

что верно, то верно…
рефакторить и рефакторить,
много кусков взято из более ранних проектов.
я комментировал выше.
у меня была идея хранить все в map/SLT но мне показалось что 3-5 млн это достаточно большой хеш. Хотя попробую написать сторадж и для map/STL, а в случае сбоя/перегрузки — весь хеш грузить из БД или файла.
Была идея использовать FastCGI, но с libevent был уже опыт работы по этому сделали данное решение.
во многих проектах все упирается в жесткий диск.
мои тесты показали что 1100 — 1200 HTTP запросов в сек — это норма.
Что за решение на php такое, что давало задержку 1.5-2с?

ну не 1,5-2 а 0.5-1 сек, все равно не приятно.
там достаточно кривостей было, это я согласен. Сервер был перегружен,
Было использовано решение — принимать PHP скриптом и ложить в лог.
По крону каждые 15 мин забирать из лога и класть в БД. Но, в новом проекте данное решение не устраивает.
хоть кто-то заглянул в исходники
спасибо за комментарий.
написать плагин для нового стоража 3-4 часа
так что, если будут какие предложения, то могу доработать.

у меня миллионы, по этому выбрали memcachedb
было бы меньше миллиона, вполне можно было замутить что-то своё
такая схема рассматривалась,
с РНР время отклика не устраивало.

при данной схеме, можно вполне обойтись и без PHP
напрямую класть из nginx в мемкешQ (есть такой модуль)
есть два необузданных коня: тарантул и кайот, которые могли бы занять место memcachedb.

1) проверенное решение в других проектах
2) key/value
3) занимает столько памяти, сколько выделим
4) достаточная производительность
5) устойчиво в случае сбоя или перегрузки, в отличие от memcache

можно было заморочиться с написанием собственного стораджа, но это имеет место если кол-во возможных переходов не столь велико (десятки тысяч)
Если их более 1 млн, то лучше использовать существующие решения

Information

Rating
Does not participate
Location
Санкт-Петербург, Санкт-Петербург и область, Россия
Date of birth
Registered
Activity

Specialization

Software Architect, Database Architect
Lead
From 325,000 ₽
PostgreSQL
Golang
C++
Python
Database
Designing application architecture
Creating project architecture
Database design
Object-oriented design
Code Optimization