Size: a a a

2020 March 14

EG

Egor Gruzdev in Laravel Pro
Yushkevich Vitaly
да вот встала потребность. Прямо сейчас пишу. Витесс чего-то не завелся нормально
Разве это уровень приложения, а не драйвер ли базы должен этим заниматья, или некий раундкуб или что то в этом духе, а приложение как стреляло в одну точку так и стреляет.
источник

YV

Yushkevich Vitaly in Laravel Pro
Egor Gruzdev
Нет проэты не доросли до такого объема когда надо распределять хранение по разным базам.
Мой посыл в другом.

- Если на старте проекта при работе с фреймворком не использовать эффективные возможности языка и БД лишь потому, что возможно когда-нибудт потребуется поменять бд - значит проблема с архтиектурой и прочими прелестями, типа KISS, YAGNI и тд. Я привел более утрированный пример - а вдруг вы завтра захотите переписать на другом языке (такое кстати встречалось в моей практике, последний раз 2 недели назад, когда один сервис вытащили в питон и дергаем его из пыхи)
источник

YV

Yushkevich Vitaly in Laravel Pro
Egor Gruzdev
Разве это уровень приложения, а не драйвер ли базы должен этим заниматья, или некий раундкуб или что то в этом духе, а приложение как стреляло в одну точку так и стреляет.
горизонтальный шардинг MySQL не умеет из коробки. И драйвера не умеют. Это его отдельная боль. Особенно когда нужно решардиться. Поэтому стараются решить эту проблему так, чтобы не шардить.
источник

YV

Yushkevich Vitaly in Laravel Pro
А когда иначе никак, то почти все крупные компании используют собственные решения, которые работают по схожим принципам. Есть попытка создать волшебную таблетку на go - продукт vitess. Но он накладывает доп ограничения и несколько подключивает. В РФ его использует всего несколько компаний, одна из них ситимобил
источник

YV

Yushkevich Vitaly in Laravel Pro
https://vitess.io/  вдруг кому-то будет интересно.  Но там есть побочка. Как я писал выше, бесплатно ничего не бывает
источник

YV

Yushkevich Vitaly in Laravel Pro
Так вот, я это все к тому, что в ларавел нет метода MyModel::Reshard(), но это не значит, что на ларавел этого нельзя сделать
источник

YV

Yushkevich Vitaly in Laravel Pro
Просто архитектура решения и код лежит на разработчике. Но скорее всего даже хватит АПИ фреймворка
источник

EG

Egor Gruzdev in Laravel Pro
т.е. вопрос в экономии средств на коммерческую лицензию mysql
Ведь есть кластер за деньги от oracle mysql
источник

YV

Yushkevich Vitaly in Laravel Pro
мм... Ну для начала, горизонтальный шардинг и кластер - это разные слова
источник

YV

Yushkevich Vitaly in Laravel Pro
Во-вторых, если имеется вот такая штука ввиду https://www.mysql.com/products/cluster/scalability.html
источник

YV

Yushkevich Vitaly in Laravel Pro
то можно примеры компаний посмотреть, где это стабильно работает
источник

YV

Yushkevich Vitaly in Laravel Pro
Я не думаю, что в компаниях уровня Яндекса, Баду, Авито, Mail.ru будут экономить на лицензии и тратить еще больше денег на разработчиков
источник

EG

Egor Gruzdev in Laravel Pro
Освежил про "горизонтальное" (https://www.google.com/amp/s/ruhighload.com/%25D0%25A8%25D0%25B0%25D1%2580%25D0%25B4%25D0%25B8%25D0%25BD%25D0%25B3%2b%25D0%25B8%2b%25D1%2580%25D0%25B5%25D0%25BF%25D0%25BB%25D0%25B8%25D0%25BA%25D0%25B0%25D1%2586%25D0%25B8%25D1%258F%3famp=1), спутал с вертикальным, мощно действительно на первый взглят и не понятно как с eloquent это делать.
Но возможно для это стоит использовать другую базу данных, которая позволяет это делать из коробки.
источник

YV

Yushkevich Vitaly in Laravel Pro
ну мой план ближайший:
- создание маппера бакетов с нужными мне данными в мастер базе
- создание маппера бакет-шард
- подмена коннектов на моделях в репозитории по условию шарда / бакета
источник

YV

Yushkevich Vitaly in Laravel Pro
решард будет между инфраструктурой и двумя таблицами в мастер базе решаться.  Задача вполне решаемое. Но не методом Artisan:sharding(enabled)
источник

IH

Ihor Hnatchuk in Laravel Pro
Привет, У меня вопрос. Есть рабочие время учителей  и есть расписание груп . Как мне для новой групы получить сводобных учителей? Я не могу придумать механизм определение свободного времени учителей
источник

IH

Ihor Hnatchuk in Laravel Pro
так я храню расписание груп
источник

IH

Ihor Hnatchuk in Laravel Pro
а так учителя
источник

NT

Nikolay Turskyi in Laravel Pro
Ihor Hnatchuk
а так учителя
Какой минимальный длины может быть урок? 15 минут? Относительно него делаешь массив свободного времени учителя. Из этого массива убираешь все промежутки, которые уже зарезервированы у этого учителя. Так же если между группами должен быть перерыв у учителя, тоже это добавляешь в логику отсеивания времени.
источник

IH

Ihor Hnatchuk in Laravel Pro
время будет разное от 90 минут до 180
источник