Например, /dev/sda1 начинается с 64 сектора и заканчивается на 1024000 секторе. Мы хотим его выкинуть из массива, сохранив данные:
0) выкидываем из массива
1) записываем куда-нибудь в блокнот исходные его координаты
2) удаляем раздел
3) создаём на его месте новый раздел, смещая его старт на 2048 секторов, т.е. новый раздел будет начинаться с сектора 2112 и заканчиваться всё тем же 1024000 сектором.
4) всё, можно монтировать раздел как обычную ФС.
Само собой, сперва отмонтируйте раздел, иначе ФС не гарантирует свою консистентность.
Оговорка про раздел или диск относится к тому, что в массив можно отдать и напрямую весь диск, например массив /dev/md3 из /dev/sda2 и /dev/sdb
В этом случае в первых 2048 секторах как /dev/sda2, так и /dev/sdb будут метаданные mdadm, а после них — непрерывно данные до последнего сектора.
Бекапы всего нужного должны быть безусловно и это даже не обсуждается. А рейду5 потеря одно диска значения не имеет.
Так что, ИМХО, умрёт на тесте — и замечательно. Не утянет данные с собой, когда это будет действительно опасно.
На сколько наблюдал, при ресинхронизации mdadm читает со всех дисков массива и сравнивает значения.
А вот чего он делает, когда видит расхождения (кроме инкремента /sys/block/md*/md/mismatch_cnt ) и при этом все диски уверены, что их значения корректны — вопрос, не знаю.
Здесь один единственный PK на таблице, данных лишних вообще нет — такая работать будет быстро на весьма внушительных объёмах. 1 лям — это вообще ни о чём.
Потом запросто партицируется по user_id.
По спичкам:
добавлять столбец не нужно, зачем? Придётся индекс раздувать или иначе — вообще данные с диска поднимать, вместо работы только по PK. Совершенно бесполезные манипуляции.
Хранить же прочитанные или только непрочитанные — зависит от пользователей, какая их часть активно читает уведомления. Обычно активных пользователей меньше и тупо компактнее хранить прочитанные.
GamePad64, какие тормоза, о чём вы? Без разгона шины память вообще с головой упирается в FSB. Оттого на LGA775 и фактически никакой разницы между DDR2-800 и DDR3-1333.
Мизерная разница (5-10% даже от DDR3-1866) достигается только за счёт снижения латентности.
0) Аптайм по определению от количества ядер не зависит. И не является безразмерной величиной.
Вероятно, вы всё-таки про уровень LA. LA = 3 — вполне нормальное значение.
1) От того, то база на другой машине, совершенно не следует, что вы в неё не упираетесь.
2) не думать надо, а знать. Машина у вас под рукой, хоть банальные top и iostat можно посмотреть.
> для предотвращения возможного нанесения вреда железу
Железу пофиг. Может файловая система обидеться. Ну и потеря не сохранённой работы.
> есть же софт для ИБП, который автоматически выключает?
Если есть COM-порт или USB — то есть софтовая поддержка. Иначе в этих интерфейсах смысла нет, только дороже делают.
Другой вопрос, что софт может быть отвратным. Я для одного упса реверсил протокол обмена и писал нормальный автовыключатель, вместо предложенного поделия на яве.
Формально, я не достиг дао ООП и под объектом в контексте синглтона понимаю именно конструктор и деструктор.
Говоря конкретно о PHP, статичные классы, в отличии от синглтона, не умеют __get, __set, обращение к необъявленным членам приводит вовсе к fatal error, что может накладывать определённые неудобства, если захочется динамично обращаться к членам.
xel:
0) обнако, в случае необходимости активных действий с этим значением — весьма рационально сделать дополнительное поле. MySQL не умеет индексы по вычисляемым значениям.
1) триггер не может обновлять текущую таблицу
0) выкидываем из массива
1) записываем куда-нибудь в блокнот исходные его координаты
2) удаляем раздел
3) создаём на его месте новый раздел, смещая его старт на 2048 секторов, т.е. новый раздел будет начинаться с сектора 2112 и заканчиваться всё тем же 1024000 сектором.
4) всё, можно монтировать раздел как обычную ФС.
Само собой, сперва отмонтируйте раздел, иначе ФС не гарантирует свою консистентность.