Re[62]: По поводу паттерна singleton и не только
От: WolfHound  
Дата: 23.10.07 13:05
Оценка:
Здравствуйте, adontz, Вы писали:

WH>>Или отключения электричества?

A>UPS'ом
Ты не понял. Электричество в половине города выключили.

A>Если бы у меня было такое, я бы на БД переехал не задумываясь.

Для того чтобы БД не дохли от нагрузки их приходится очень акуратно готовить.
Фактически создается своя БД которая использует готовые БД как отказоустойчивое хранилище индексированных табличек.
Еще очень распространен паттерн: write only master and read only slave(s).

A>Файлы должен писать кто-то один.

Наивный.
Кстати хранить файлы в БД это очень плохая идея...

A>Это бред, потому что через File Replication Service передаётся уйма настроек Active Directory. Если бы там были малейшие глюки AD была бы неработоспособна.

Вобще говоря DFS использует Remote Differential Compression

A>Не знаю откуда ты это взял, это не правда. У нас два сервера стоят рядышком, репликация небольших файлов занимает пару секунд. Для документов это более чем нормально.

А мне нужна кислотная (ACID) репликация.
Читай распределенные транзакции.

A>Если вышел из строя только один винт и его заменили до того как вышел из строя другой то никакой потери данных не будет. А твоё "может привести" называется "вышло из строя два винчестера".

Один вышел из строя. А второй заменил админ... по ошибке.
... << RSDN@Home 1.2.0 alpha rev. 745>>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Re[24]: По поводу паттерна singleton и не только
От: _FRED_ Черногория
Дата: 23.10.07 13:07
Оценка:
Здравствуйте, adontz, Вы писали:

_FR>>Так вот возвращаясь: вторая проблема
Автор: IB
Дата: 09.08.07
синглетона, не решаемая "создавателем" — глобальность. То есть, по-хорошему, "создаватель" надо подпихивать тому, кто им будет пользоваться. Не так ли?


A>Тут как бы надо разделить. Неглобальный создатель вполне может создать (точнее вернуть, откуда-то взяв) нечто глобальное.


Ты имеешь в виду что-то такое:
public class Singleton<T> where T : new()
{
  // Глобальные данные
  private static readonly T instance = new T();
  
  public T Instance {
    get { return instance; }
  }
}

//… где-то в коде
{
  // Неглобальный создатель
  Singleton<MyClass> s = new Singleton<MyClass>();
  s.Instance.SomeMember…
}

... << RSDN@Home 1.2.0 alpha rev. 717>>
Help will always be given at Hogwarts to those who ask for it.
Re[63]: По поводу паттерна singleton и не только
От: adontz Грузия http://adontz.wordpress.com/
Дата: 23.10.07 13:17
Оценка:
Здравствуйте, WolfHound, Вы писали:

WH>>>Или отключения электричества?

A>>UPS'ом
WH>Ты не понял. Электричество в половине города выключили.

А в чём проблема? UPS держит 30 минут свободно, спец-движок запускается секунд за 30 после отключения питания. Ну если ты ещё и бензин забыл залить, тогда едействительно ой. А бывают ещё UPSы на целое здание (в знакойо фирме есть) когда электричество вырубают люди туда бегают футбол смотреть. пол подвала — UPS.

WH>Для того чтобы БД не дохли от нагрузки их приходится очень акуратно готовить.

WH>Фактически создается своя БД которая использует готовые БД как отказоустойчивое хранилище индексированных табличек.
WH>Еще очень распространен паттерн: write only master and read only slave(s).

Что-то у меня стойкое впечатление, что SQL failover кластер порвёт этот велосипед и по производительности и по функциональности.

A>>Файлы должен писать кто-то один.

WH>Наивный.
WH>Кстати хранить файлы в БД это очень плохая идея...

Смотря как хранить. Хранить только пути более традиционно, но не всегда это лучшее решение.

A>>Это бред, потому что через File Replication Service передаётся уйма настроек Active Directory. Если бы там были малейшие глюки AD была бы неработоспособна.

WH>Вобще говоря DFS использует Remote Differential Compression

Я про codebase.

WH>А мне нужна кислотная (ACID) репликация.

WH>Читай распределенные транзакции.

Это к DTS серверу обращайся. Хотя сделать всё на БД явно на порядки проще.

A>>Если вышел из строя только один винт и его заменили до того как вышел из строя другой то никакой потери данных не будет. А твоё "может привести" называется "вышло из строя два винчестера".

WH>Один вышел из строя. А второй заменил админ... по ошибке.

Забавные у тебя админы Вот у меня, например, сейчас дома комп на матернке ASUS M2N-E SLI. Она держит SATA RAID 0, 1, 5, JBOD и некоторые комбинации. Я это к тому описываю чтоб просто было понятно что это явно не супер-пупер оборудование. Эта штукенция поддерживает Hot-Swap винтов в рейде (зачем мне это дома не спрашивать!), у часов появляется значок Safely Remove Hardware и прочие прибамбасы. Так вот, я просто не могу вытащить неповреждённый винт. Мне его не дают отключить. Совсем. Учитывая что у продвинутых моделей светодиодная индикация около штекера, надо быть попросту бухим чтобы вытащить не тот винт. Ну и возвращаясь к уже написанному — RAID5 это бюджетный вариант, реально используется 0+1.
A journey of a thousand miles must begin with a single step © Lau Tsu
Re[25]: По поводу паттерна singleton и не только
От: adontz Грузия http://adontz.wordpress.com/
Дата: 23.10.07 13:20
Оценка:
Здравствуйте, _FRED_, Вы писали:

A>>Тут как бы надо разделить. Неглобальный создатель вполне может создать (точнее вернуть, откуда-то взяв) нечто глобальное.

_FR>Ты имеешь в виду что-то такое:

В принципе да, только не так примитивно. Вместо
  public T Instance {
    get { return instance; }
  }

может быть что-то посложнее, например, какое-нибудь межпроцессное взаимодействие, или создание Remoting-объекта, или ещё что-то.
A journey of a thousand miles must begin with a single step © Lau Tsu
Re[64]: По поводу паттерна singleton и не только
От: WolfHound  
Дата: 23.10.07 13:42
Оценка:
Здравствуйте, adontz, Вы писали:

A>А в чём проблема? UPS держит 30 минут свободно, спец-движок запускается секунд за 30 после отключения питания. Ну если ты ещё и бензин забыл залить, тогда едействительно ой. А бывают ещё UPSы на целое здание (в знакойо фирме есть) когда электричество вырубают люди туда бегают футбол смотреть. пол подвала — UPS.

Смешной ты.
Я говорю про вебсервер. Те нужно не только обеспечить электричеством датацентр (что само по себе не просто... ну очень много упсов понадобится) так еще и обеспецить работоспособность каналов которые тоже без электричества не работают.
В этом случае гораздо дешевле и надежнее обеспечить реполикацию в реальном времени между датацентрами.
И при выходе из строя одного датацентра данные будет отдавать другой.

A>Что-то у меня стойкое впечатление, что SQL failover кластер порвёт этот велосипед и по производительности и по функциональности.

Порвался SQL failover кластер... Проверяли.

A>Это к DTS серверу обращайся. Хотя сделать всё на БД явно на порядки проще.

Сдохнет от нагрузки.

A>Ну и возвращаясь к уже написанному — RAID5 это бюджетный вариант, реально используется 0+1.

Те кому дороги данные аппаратные рейды вобще не используют.

Короче ты тут расказываешь про всякие там чудодейственные технологие использование которых типа ведет к вселенскому счастью.
Но реально чудес не бывает.
И алгоритмические заморочки и главное человеческий фактор никто не отменял.
... << RSDN@Home 1.2.0 alpha rev. 745>>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Re[64]: По поводу паттерна singleton и не только
От: akasoft Россия  
Дата: 23.10.07 17:20
Оценка:
Здравствуйте, adontz, Вы писали:

A>Забавные у тебя админы


WolfHound тебе походу намекает, что в его самописном решении типа исключён "человеческий фактор".

Эдак мы скоро придём к Вселескому разуму и истреблению человечества за паразитизм.
... << RSDN@Home 1.2.0 alpha rev. 717>> SQL Express 2005
Re[65]: По поводу паттерна singleton и не только
От: WolfHound  
Дата: 23.10.07 18:12
Оценка:
Здравствуйте, akasoft, Вы писали:

A>WolfHound тебе походу намекает, что в его самописном решении типа исключён "человеческий фактор".

Полностью его конечно не исключить но сделать его сильно меньше чем в случае с тупыми рейдами можно.
В моем случае нужно поломать 2 машины стоящие в разных датацентрах. (при жилании колличество зеркал можно увеличить)
Думаю ты сам понимаешь что это сильно труднее чем случайно передернуть не тот винт.
... << RSDN@Home 1.2.0 alpha rev. 745>>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Re[65]: По поводу паттерна singleton и не только
От: adontz Грузия http://adontz.wordpress.com/
Дата: 23.10.07 20:42
Оценка:
Здравствуйте, WolfHound, Вы писали:

WH>так еще и обеспецить работоспособность каналов которые тоже без электричества не работают.


То есть свитчам тоже поставить UPS'ы? Да, трудно конечно....

WH>Порвался SQL failover кластер... Проверяли.




A>>Это к DTS серверу обращайся. Хотя сделать всё на БД явно на порядки проще.

WH>Сдохнет от нагрузки.

Ну да, велосипеды рулят. Интересно, times ten тоже сдохнет? Ты им напиши письмо, так мол и так, сдыхает...

A>>Ну и возвращаясь к уже написанному — RAID5 это бюджетный вариант, реально используется 0+1.

WH>Те кому дороги данные аппаратные рейды вобще не используют.

Да нет, они просто не жмотяться запасной контроллёр купить

WH>Короче ты тут расказываешь про всякие там чудодейственные технологие использование которых типа ведет к вселенскому счастью.

WH>Но реально чудес не бывает.
WH>И алгоритмические заморочки и главное человеческий фактор никто не отменял.

Это ты предлагаешь во всех сложных задачах использовать лисапеды, потому что никто ещё не смог написать ни приличного DFS, ни приличной БД, ни рейд-контроллёр нормальный спаять и только WolfHound рулит
A journey of a thousand miles must begin with a single step © Lau Tsu
Re[66]: По поводу паттерна singleton и не только
От: WolfHound  
Дата: 24.10.07 11:30
Оценка:
Здравствуйте, adontz, Вы писали:

A>То есть свитчам тоже поставить UPS'ы? Да, трудно конечно....

Электричество выключили в половине города.
Сдохли все каналы.

A>Ну да, велосипеды рулят. Интересно, times ten тоже сдохнет? Ты им напиши письмо, так мол и так, сдыхает...

NDA

A>Да нет, они просто не жмотяться запасной контроллёр купить

Бесполезно.
Например наднях у нас на одной машине в разнос пошли все винты разом. Сами винты живы но какимто образом на них разнесло файловую систему.
Если бы там был рейд то все. Хана данным. Ну или долгое и нудное соберание файлухи из кусочков.
А так мы просто переналили машину и перелили данные с зеркала.
Пользователи об этом даже не узнали. Ибо они получали ответы с живого зеркала.

A>Это ты предлагаешь во всех сложных задачах использовать лисапеды, потому что никто ещё не смог написать ни приличного DFS, ни приличной БД, ни рейд-контроллёр нормальный спаять и только WolfHound рулит

Я использую сторонние решения если они работают.
Например с удовольствием использую лайти. Работает очень хорошо и ниразу небыл узким местом.
Но если готовые решения не работают, а сделать нужно...
... << RSDN@Home 1.2.0 alpha rev. 745>>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Re: По поводу паттерна singleton и не только
От: DeZhavi Россия  
Дата: 26.10.07 16:12
Оценка:
Здравствуйте, Kazna4ey, Вы писали:

K>Здравствуйте!

K> Есть несколько вопросов по поводу subj'а.

K>1) В чем преимущество этого паттерна перед классом со статическими методами?

K>2) Приведите хотя бы пару примеров где РЕАЛЬНО помогает реализация данного паттерна?
K>3) Почему у некоторых программистов такое отрицательное отношение к глобальным/статическим переменным/классам/методам и паттерну singleton?

K>Спасибо.

Все топики не осилил.
Но возникли вопросы, правильно ли я поступаю.
Например я сделал синглтон для запись статитики в систему(приложение ASP.NET, ошибки, переход по ссылкам и прочие действия пользователя)
Я получил глобальный объект, который всегда в одном экземпляре и пишет мне в базу необходимые данные связанные со статисткой сайта.
Все работает, никаких минусов я не заметил.
Я для себя решил, что бы не создавать каждый раз объект статистики, я лучше сделаю синглтон, что бы сразу вызывать метод, а там уж сам синглтон пусть определяет, создавать объект статисктики или возвращать существующий.
Это является примером правильной реализации синглтона или нет? Может надо было сделать по другому?
Re[2]: По поводу паттерна singleton и не только
От: adontz Грузия http://adontz.wordpress.com/
Дата: 26.10.07 16:23
Оценка:
Здравствуйте, DeZhavi, Вы писали:

ИМХО журналирование прочти всегда выгодно реализовать как синглтон. Wolfhound не согласен.
A journey of a thousand miles must begin with a single step © Lau Tsu
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.