- MySQL
- кластеризація
Чи не саме як у них, а то, як це взагалі можна спроектувати, головні вимоги:
- Використання безкоштовних баз даних
- Прозора робота з базою (тобто скрипти не повинні знати як і що там влаштовано і підключатися або до одного сервера завжди або до випадкового в кластері)
- При виході з ладу одного сервера, щоб робота тривала і дані не були б втрачені
- Велика продуктивність (оброблялося дуже велика кількість запитів)
- Гарна розширюваність (без відключення системи можна було б додати або прибрати сервер)
При цьому обмеження наступні:
- База відносно не велика (максимум 8 гигов, хоча не факт що може стати більше)
- Майже всі таблиці пов'язані через зовнішні ключі
- Запити щодо прості (найбільшу кількість SELECT. Трохи менше Insert і дуже мало Update)
- Запити примітивні і найчастіше зачіпають 1-2 таблиці
Ось власне кажучи питання: Якими засобами краще це реалізувати?
Сам схиляюся до memcached + MySQL (InnoDB) + NDB, але ось з NDB щось не ясно, багато плюються але не пояснюючи що і як, але часто з'являється інформація що якщо база стане більше ніж ОЗУ на якомусь сервері, то все загнеться (до того ж так і не зрозумів як там реалізована система зберігання, тому що судячи з документації все зберігається в пам'яті), а також немає підтримки зовнішніх ключів, а без них буде досить складно жити. З репликацией теж справа не особливо зрозуміле (там є дублювання дані, але все одно звернення йдуть тільки на master).
Головне завдання: надійне зберігання + відмовостійкість і прийнятна швидкість при великому навантаженні (близько 10к запитів в секунду). Хто що може порадити або дати посилання на статтю або документацію.
До кластеризації адмін приходить з однією з двох проблем
1. Боттлнекі, які неможливо / недоцільно компенсувати нарощуванням потужності одного сервера
2. Побудова високодоступних сервісу (High-availability)
Відповідно, перше буде дуже дорого і гамірно. Я чес кажучи стикався з реально великими навантаженнями, але при правильній організації структури БД, залізо все тримало. Простіше реально оптимізувати структуру в цьому випадку, ніж пробивати всякі там NDB і майстер-майстер реплікації.
Друге зводиться до побудови master / slave кластера, який автоматом змінюється ролями в разі збою. Не рекомендую реплікацію. Можете глянути в бік DRBD || GFS || GPFS + Heartbeat || Pacemaker
Ваш відповідь на питання
Увійдіть, щоб написати відповідь
- MySQL
- MySQL
- Москва
- Повний робочий день
- від 150 000 до 600 000 руб.
- Москва
- Повний робочий день
- До 160 000 руб.
- Москва
- Повний робочий день
- До 160 000 руб.
- Нахабіно, смт
- Неповний робочий день
- від 50 000 до 80 000 руб.
70000 руб. / За проект
500 руб. / За проект
Увійдіть на сайт
Щоб задати питання та отримати на нього кваліфіковану відповідь.