slach
Новичок
Масштабирование LOAD DATA IN FILE
братцы, помогите разобраться с архитектурой
1) планируется система построенная по SOA принципу
основными компонентами системы будут
Linux Debian Etch + Xen - OS и паравиртуализатор в качестве инструментария развертывания виртуальных OS для облегчения дальнейшего переноса их на раздельное железо
веб-сервер и лоад-балансер = nginx
несколько apllication серверов = fcgi-php5.2.3+apc
mysql5.0.x - сервер БД
2) в данную систему множество GUI\WEB клиентов, делают много конкуретных (т.е. в одни и теже таблицы) LOAD DATA INFILE , плюс некоторое количество INSERT\UPDATE\DELETE
планируется примерно 1000-1500 одновременных коннектов, каждый делает примерно от 100 000 до 200 000 вставок через LOAD DATA INFILE предварительно почистив свои данные через DELETE, с периодичностью 1 раз в 4-6 часов - приемлимая длительность загрузки данных 20-30 минут
плюс еще 2000-3000 коннектов которые делают не очень большие селекты
3) в качестве протокола обмена выбран gziped XML over HTTPS, т.е. веб-сервис построенный на REST архитектуре
4) железо пока только такое - Dual Opteron 200 серии + 4Gb RAM + SATA, потом все будет разнесено на 3-4 сервера с 2G RAM + SCSI
прошу не пинать по поводу выбора программных продуктов и железячных параметров, а принять их как есть
вопросы у меня такие
1) как масштабировать LOAD DATA INFILE ??? и DELETE\INSERT\UPDATE??? мне кажется что Master\Slave репликация для MySQL тут не прокатит, NDB кластер, насколько я понимаю платное решение??? циклическая репликация??? а КАК ее сделать?? где про это прочитать?? и что делать с fail-over любой ноды в кольце?? использовать MySQL 5.1 и партионинг???
2) мне сразу похоронить идею с InnoDB ??? Или все таки попробовать использовать "длинные транзакции" вместо атомарных SQL STATEMENTS в MyISAM
что посоветуете почитать по поводу оптимизации InnoDB кроме презентаций Петра Зайцева на MySQLConf2007?
3) насколько я понимаю на указанном железе nginx такое количество HTTPS коннектов спокойно выдерживает, но как быть с трафиком??? где прочитать про оптимизацию nginx и стека TCP/IP под Linux Debian Etch, статьи и презентации Игоря Сысоева про FreeBSD и 100000 коннектов читал, хочется чтото такое же, но под Linux
4) идея с Xen для помощи развертывания кластера правильная??? или лучше всего для этой цели использовать что нибудь типа http://www.mosix.org/ (http://freshmeat.net/projects/mosix/?branch_id=68398&release_id=257876)?
5) каким инструментарием пользоваться в качестве мониторинга производительности и мониторинга ошибок??? пока я остановился на связке splunk, cacti, nagios, innotop, nginx_stat RRD
в общем господа, прошу, помогите собраться с мыслями, проекты подобные этому я к сожалению пока еще не делал, хотя опыт построения различных клиент-серверных приложений у меня достаточно богатый
-~{}~ 30.07.07 19:08:
в догонку, несколько ответов на мои вопросы
http://www.mysql.com/news-and-events/newsletter/2003-06/a0000000195.html
получается что поскольку у меня как раз используется PRIMARY KEY рандомный фактически, то мне InnoDB противопоказан
братцы, помогите разобраться с архитектурой
1) планируется система построенная по SOA принципу
основными компонентами системы будут
Linux Debian Etch + Xen - OS и паравиртуализатор в качестве инструментария развертывания виртуальных OS для облегчения дальнейшего переноса их на раздельное железо
веб-сервер и лоад-балансер = nginx
несколько apllication серверов = fcgi-php5.2.3+apc
mysql5.0.x - сервер БД
2) в данную систему множество GUI\WEB клиентов, делают много конкуретных (т.е. в одни и теже таблицы) LOAD DATA INFILE , плюс некоторое количество INSERT\UPDATE\DELETE
планируется примерно 1000-1500 одновременных коннектов, каждый делает примерно от 100 000 до 200 000 вставок через LOAD DATA INFILE предварительно почистив свои данные через DELETE, с периодичностью 1 раз в 4-6 часов - приемлимая длительность загрузки данных 20-30 минут
плюс еще 2000-3000 коннектов которые делают не очень большие селекты
3) в качестве протокола обмена выбран gziped XML over HTTPS, т.е. веб-сервис построенный на REST архитектуре
4) железо пока только такое - Dual Opteron 200 серии + 4Gb RAM + SATA, потом все будет разнесено на 3-4 сервера с 2G RAM + SCSI
прошу не пинать по поводу выбора программных продуктов и железячных параметров, а принять их как есть
вопросы у меня такие
1) как масштабировать LOAD DATA INFILE ??? и DELETE\INSERT\UPDATE??? мне кажется что Master\Slave репликация для MySQL тут не прокатит, NDB кластер, насколько я понимаю платное решение??? циклическая репликация??? а КАК ее сделать?? где про это прочитать?? и что делать с fail-over любой ноды в кольце?? использовать MySQL 5.1 и партионинг???
2) мне сразу похоронить идею с InnoDB ??? Или все таки попробовать использовать "длинные транзакции" вместо атомарных SQL STATEMENTS в MyISAM
что посоветуете почитать по поводу оптимизации InnoDB кроме презентаций Петра Зайцева на MySQLConf2007?
3) насколько я понимаю на указанном железе nginx такое количество HTTPS коннектов спокойно выдерживает, но как быть с трафиком??? где прочитать про оптимизацию nginx и стека TCP/IP под Linux Debian Etch, статьи и презентации Игоря Сысоева про FreeBSD и 100000 коннектов читал, хочется чтото такое же, но под Linux
4) идея с Xen для помощи развертывания кластера правильная??? или лучше всего для этой цели использовать что нибудь типа http://www.mosix.org/ (http://freshmeat.net/projects/mosix/?branch_id=68398&release_id=257876)?
5) каким инструментарием пользоваться в качестве мониторинга производительности и мониторинга ошибок??? пока я остановился на связке splunk, cacti, nagios, innotop, nginx_stat RRD
в общем господа, прошу, помогите собраться с мыслями, проекты подобные этому я к сожалению пока еще не делал, хотя опыт построения различных клиент-серверных приложений у меня достаточно богатый
-~{}~ 30.07.07 19:08:
в догонку, несколько ответов на мои вопросы
http://www.mysql.com/news-and-events/newsletter/2003-06/a0000000195.html
получается что поскольку у меня как раз используется PRIMARY KEY рандомный фактически, то мне InnoDB противопоказан