All streams
Search
Write a publication
Pull to refresh
511
0
Слава Вишняков @yoihj

Нагруженные бэкэнды

Send message
И правда. Заодно решил проблему Persistence (частично, тоже сейчас добавлю).
1. Зачем архив? Там два файла, они полностью приведены :) Архивировать не обязательно, кстати.
2. Сбросится. Это то, что я и называю проблема «Persistence» см. 5 пункт в посте и тут предположения насчет решения: (инглиш) unitehowto.com/Persistence — если коротко, то скорее всего где-то в fileio и в более крутом случае — REST-совместимые key-value базы данных — Redis, CouchDB, Tokyo Tyrant.
Вот побольше бы таких статей, может в конце концов и прав будет Дон Тэпскотт насчет того, что университеты в том виде, что они сейчас — отомрут.
А двойные вложенные циклы — ну так pycurl устроен, вот чтобы не вспоминать каждый раз как это делать — я и сделал себе multi_get.
Большая часть тела функции — это модифицированный пример использования pycurl.CurlMulti, который, к сожалению, правильно не работал.

На самом деле, в саму функцию лезть особо не надо будет, практически все, что нужно для типичных задач покрывают параметры, передаваемые ей.
1. самое простое, как уже сказали выше — просто запустить 2 процесса и дать им разные части задачи (учитывая, что у вас никакой синхронизации в проекте не было) и не геммороиться с распараллеливанием

2. multiprocessing (стандартный модуль c 2.6)

from multiprocessing import Process
p = Process(target=f, args=('bob',))
p.start()
p.join()

3. решение sin/cos и т.п. лежит в cython+gcc(mingw32 под винду) (cython — модуль, гуглить при необходимости: «cython sin») — избавляет от dictionary lookup'ов для названий функций за счет компиляции слегка модифицированного Python кода в Си.
«Параллелить» веб-запросы лучше всего асинхронностью.
pycurl спасет, гуглить «pycurl.CurlMulti»
Забавный Вы человек, если присмотритесь, то обнаружите, что автору статьи Вы и отвечаете :)
А попробовать стоит. Я многое у Гугла не люблю, но Хром хорошо сделали.
Смеялся долго :) К счастью, Хром я не продаю, так что можете удалять. Хотя лично — пользуюсь, очень доволен.
окей, я все же задам очевидный вопрос — а какой у вас? :)
на всякий случай и второй очевидный — где взять? :)
Да никто не спорит, что C++ с оптимизациями или без выиграет с завязанными глазами у PHP, только вот разрабатывать это будем в 10 раз дольше.
Видимо это какой-то другой RAMDisk, у меня ничего такого даже близко нет.
С т.з. nazi math — согласен. :)

Суть тут правда в том, что сервер не должен лежать, если он ложиться постоянно — его надо лечить, а не ждать пол-минуты. :) Так что это время по идее можно игнорировать.
Ну как на такой вопрос ответить можно?

Ну е-мое, ну это ж в каждом случае надо решать отдельно. Если у вас пять человек и 10 гигов памяти — ну сохраните всех в память, если у вас 10 гигов человек и две памяти — ну используйте БД или распределенную БД или key-value storage или распределенный key-value.

Прям вопрос в духе: «Как сделать Гугл?»
На самом деле kenga прав(а?) — для больших систем гораздо лучше флаг is_deleted — по очень многим причинам (и фрагментированность файла, и потенциальная возможность восстановления, и последовательность чтения и т.п. т.п. т.п.). Ну и да что-то типа алгоритмов vacuum'а применяется тоже иногда.
Да, отличные мысли. Только у нас по поводу библиотек разные подходы. Я предпочту написать одну-две строки #include <my_webtoolkit.h> и дать этому работать пока оно не начнет доставлять мне проблемы, а когда реальные проблемы начнутся — тогда переселю на реальный «nginx» или что-то подобное. Но я не говорю что мой подход верный — просто другой.

nginx и lighttpd тоже вещи «самописные», не забывайте ;)
Просто фишка в том, что сдохнет окружение сначала, Memcached не является слабым звеном. А вот Apache+PHP+MySQL являются.
> в кеше типа Memcached/APC
Или уж в настоящей key-value базе типа Tokyo Cabinet (1 миллион запросов в секунду реально дает)
Во-первых, в C++ гораздо сложнее организовать утечки памяти, чем в С. Решение-то было на C++. Мне это утечки чаще удается в Python сделать, чем в C++.

Information

Rating
Does not participate
Location
Москва и Московская обл., Россия
Date of birth
Registered
Activity