Вопросы \ предложения по коннектору


Вопросы \ предложения по коннектору
Atom
9/13/2011


Начинаю заниматься плазой2, возникли следующие вопросы:

1) Правильно ли я понимаю, что в настоящий момент не поддерживается несколько логинов к Plaza2?
У нас PlazaStreamRegistry - static класс, тогда как, насколько я понял логику реализации, для каждого подключения PlazaStreamRegistry должен быть свой...

2) У нас сейчас невозможно сразу запустить экспорт по отдельным таблицам? Можно только по всем, затем просто вызывая StopStream останавливать неинтересующие...?

3) Как задаётся количество транзакционных подключений?

Tags:


Thanks:


1 2  >
Alexander

Avatar
Date: 9/13/2011
Reply


По 1) вопросу - предложение сделать класс PlazaStreamRegistry не статичным, соответственно и поля тоже.
С такими изменениями мне удалось получить данные по 2м подключениям-логинам.


Возник новый вопрос\баг:
4) При вызове Disconnect загрузка ЦП повышается до 100% - висит постоянно в PlazaStreamManager, на
Code
				if (this.Streams.Count == 0)
					_sleepInterval.Sleep();
Thanks:

Mikhail Sukhov

Avatar
Date: 9/13/2011
Reply


Alexander Go to
Начинаю заниматься плазой2, возникли следующие вопросы:

1) Правильно ли я понимаю, что в настоящий момент не поддерживается несколько логинов к Plaza2?
У нас PlazaStreamRegistry - static класс, тогда как, насколько я понял логику реализации, для каждого подключения PlazaStreamRegistry должен быть свой...

2) У нас сейчас невозможно сразу запустить экспорт по отдельным таблицам? Можно только по всем, затем просто вызывая StopStream останавливать неинтересующие...?

3) Как задаётся количество транзакционных подключений?


1. Да, все правильно. Видимо нужно его сделать или по аналогии с колонками, или сделать instance.
2. PlazaTrader.StartStream
3. Никак. PlazaConnectionPool создаем подключения для транзакций и для потока данных. Вроде еще есть одно.
Thanks:

aspirant

Avatar
Date: 9/14/2011
Reply


Alexander Go to
1) Правильно ли я понимаю, что в настоящий момент не поддерживается несколько логинов к Plaza2?
У нас PlazaStreamRegistry - static класс, тогда как, насколько я понял логику реализации, для каждого подключения PlazaStreamRegistry должен быть свой...

Наверное, действительно, имеет смылсл убрать static у PlazaStreamRegistry, иначе все логины будут использовать один и тот же набор табличных колонок.


Alexander Go to
Начинаю заниматься плазой2, возникли следующие вопросы:
2) У нас сейчас невозможно сразу запустить экспорт по отдельным таблицам? Можно только по всем, затем просто вызывая StopStream останавливать неинтересующие...?

Сейчас архитектура такова, что запускаются таблицы, которые нужны, чтобы данные мапились в объекты, причем, насколько я помню, Михаил оставил колонок в таблицах по минимуму.


Alexander Go to
Начинаю заниматься плазой2, возникли следующие вопросы:
3) Как задаётся количество транзакционных подключений?

PlazaConnectionPool создает два подключения: одно для экспорта данных из таблиц (SS_0), одно для отправки транзакций (SS_1). Менять количество подключений пока не возможно.
Thanks:

aspirant

Avatar
Date: 9/14/2011
Reply


Alexander Go to
Возник новый вопрос\баг:
4) При вызове Disconnect загрузка ЦП повышается до 100% - висит постоянно в PlazaStreamManager, на
Code
				if (this.Streams.Count == 0)
					_sleepInterval.Sleep();


Я немножко подправил это место. Ты замерял, сколько примерно код висит при отключении? У меня на тестовом полигоне отключение в среднем происходит за 5-30 секунд. Если это долго, нужно будет что-то думать.
Thanks:

Alexander

Avatar
Date: 9/14/2011
Reply


aspirant Go to
Alexander Go to
1) Правильно ли я понимаю, что в настоящий момент не поддерживается несколько логинов к Plaza2?
У нас PlazaStreamRegistry - static класс, тогда как, насколько я понял логику реализации, для каждого подключения PlazaStreamRegistry должен быть свой...

Наверное, действительно, имеет смылсл убрать static у PlazaStreamRegistry, иначе все логины будут использовать один и тот же набор табличных колонок.


Alexander Go to
Начинаю заниматься плазой2, возникли следующие вопросы:
2) У нас сейчас невозможно сразу запустить экспорт по отдельным таблицам? Можно только по всем, затем просто вызывая StopStream останавливать неинтересующие...?

Сейчас архитектура такова, что запускаются таблицы, которые нужны, чтобы данные мапились в объекты, причем, насколько я помню, Михаил оставил колонок в таблицах по минимуму.


Alexander Go to
Начинаю заниматься плазой2, возникли следующие вопросы:
3) Как задаётся количество транзакционных подключений?

PlazaConnectionPool создает два подключения: одно для экспорта данных из таблиц (SS_0), одно для отправки транзакций (SS_1). Менять количество подключений пока не возможно.



1) Не поможет. У нас далее static есть у PlazaTableRegistry, PlazaColumnRegistry... Вообще возникает сильная перегрузка с классами - PlazaTableRegistry, PlazaColumnRegistry выглядят лишними. Для чего они?
2) У нас сейчас по дефолту запускаются сразу все потоки - а не все они всегда нужны.
4) Код висит много, больше минуты. Но вспомнил - происходит это при 2х подключениях. Учитывая что они работают сейчас неправильно - можно пока не думать. Надо править пункт 1). :)
Thanks:

aspirant

Avatar
Date: 9/14/2011
Reply


Alexander Go to
1) Не поможет. У нас далее static есть у PlazaTableRegistry, PlazaColumnRegistry... Вообще возникает сильная перегрузка с классами - PlazaTableRegistry, PlazaColumnRegistry выглядят лишними. Для чего они?


PlazaTableRegistry, PlazaColumnRegistry - это метаданные, поэтому они могут остаться static. PlazaStreamRegistry нужно рефакторить, чтобы была возможность одновременного подключения нескольких логинов.

Alexander Go to
2) У нас сейчас по дефолту запускаются сразу все потоки - а не все они всегда нужны.


Из 44 потоков сейчас по дефолту запускается только 13. Можно, наверное, дать юзеру возможность указывать, какие потоки запускать по дефолту, но тогда не все объекты фреймворка будут мапиться. Это приемлемо?
Набор потоков по умолчанию создавал Михаил, может быть он тоже что-нибудь прокомментируют.

Thanks:

Alexander

Avatar
Date: 9/14/2011
Reply


aspirant Go to
Alexander Go to
1) Не поможет. У нас далее static есть у PlazaTableRegistry, PlazaColumnRegistry... Вообще возникает сильная перегрузка с классами - PlazaTableRegistry, PlazaColumnRegistry выглядят лишними. Для чего они?


PlazaTableRegistry, PlazaColumnRegistry - это метаданные, поэтому они могут остаться static. PlazaStreamRegistry нужно рефакторить, чтобы была возможность одновременного подключения нескольких логинов.

Alexander Go to
2) У нас сейчас по дефолту запускаются сразу все потоки - а не все они всегда нужны.


Из 44 потоков сейчас по дефолту запускается только 13. Можно, наверное, дать юзеру возможность указывать, какие потоки запускать по дефолту, но тогда не все объекты фреймворка будут мапиться. Это приемлемо?
Набор потоков по умолчанию создавал Михаил, может быть он тоже что-нибудь прокомментируют.



По поводу PlazaTableRegistry,PlazaColumnRegistry,PlazaStreamRegistry - надо рефакторить всё, на мой взгляд, есть некий излишек.
По поводу потоков теперь понятно, согласен.

Вчера эти вопросы с Мишей как раз обсуждали, будут идеи как сделать лучше - залью, тут отпишусь.


Кстати, после Мишиного фикса ночного загрузка ЦП теперь и после коннекта 70-90% всегда . После дисконнекта - столько же. стабильность - это уже хорошо :)))
Наблюдается и с 1 подключением, и с 2мя.
Thanks:

Alexander

Avatar
Date: 9/14/2011
Reply


aspirant Go to
Alexander Go to
Возник новый вопрос\баг:
4) При вызове Disconnect загрузка ЦП повышается до 100% - висит постоянно в PlazaStreamManager, на
Code
				if (this.Streams.Count == 0)
					_sleepInterval.Sleep();


Я немножко подправил это место. Ты замерял, сколько примерно код висит при отключении? У меня на тестовом полигоне отключение в среднем происходит за 5-30 секунд. Если это долго, нужно будет что-то думать.



Не помогло совсем.

Я положил изменения, модифицировал немного методы старта \ остановки экспорта.
Thanks:

Alexander

Avatar
Date: 9/14/2011
Reply


Хочется полностью понять для чего создавался каждый из классов.
Сейчас возникает сомнения в необходимости столь сложной структуры. Кажется, перемудрили мы.

1) Зачем создания PlazaStream в конструкторе PlazaStreamRegistry? А если нам не все из этих PlazaStream понадобятся?
2) Для чего нужен как PlazaStreamRegistry, так и PlazaStreamManager. По сути PlazaStreamRegistry - enum, в котором собраны потоки. Если их создавать не сразу, а по мере необходимо - данный класс будет вообще не нужен.
3) PlazaTableRegistry - зачем? Внешне похож на PlazaStreamRegistry.
4) PlazaColums - зачем тут Table?
5) PlazaColumnRegistry - аналогично, зачем данный класс? Тут аналогично пунктам 1-2.
6) PlazaColumns, PlazaColumnList - какой смысл в создании и того, и того?


P.S. Миша вчера в разговоре высказал предположение что мы перемудрили, т.к. когда возникают баги, как со статическим конструктором PlazaColumnRegistry - это не спроста. Надо что-то менять. :)
Thanks:

aspirant

Avatar
Date: 9/14/2011
Reply


Alexander Go to
Хочется полностью понять для чего создавался каждый из классов.
Сейчас возникает сомнения в необходимости столь сложной структуры. Кажется, перемудрили мы.

1) Зачем создания PlazaStream в конструкторе PlazaStreamRegistry? А если нам не все из этих PlazaStream понадобятся?
2) Для чего нужен как PlazaStreamRegistry, так и PlazaStreamManager. По сути PlazaStreamRegistry - enum, в котором собраны потоки. Если их создавать не сразу, а по мере необходимо - данный класс будет вообще не нужен.
3) PlazaTableRegistry - зачем? Внешне похож на PlazaStreamRegistry.
4) PlazaColums - зачем тут Table?
5) PlazaColumnRegistry - аналогично, зачем данный класс? Тут аналогично пунктам 1-2.
6) PlazaColumns, PlazaColumnList - какой смысл в создании и того, и того?


P.S. Миша вчера в разговоре высказал предположение что мы перемудрили, т.к. когда возникают баги, как со статическим конструктором PlazaColumnRegistry - это не спроста. Надо что-то менять. :)


PlazaStreamManager управляет запущенным PlazaStream'ами. Наверное, его код можно перенести в PlazaTrader, но мне кажется, это слишком много для PlazaTrader.

PlazaColumns - это базовый класс для всех метаданных - таблиц потоков репликации. Table - это неубранный остаток предыдущей реализации.

PlazaColumnList, наскольку я понимаю, потому что писал Миша, - это такой custom вариант SynchronizedCollection<PlazaColumn>, который имеет представление о бизнес-логике работы с колонками таблиц потоков репликации.

PlazaStreamRegistry/PlazaTableRegistry/PlazaColumnRegistry - их лучше прокомментировать Мише.

2Alexander: может быть ты предложишь что-то другое по организации метаданных, посмотрев свежим глазом? Стоит честно признать, что бета получилась очень сырая. Наверное, сработало желание поскорее хоть что-то зарелизить[huh]
Thanks:
1 2  >

Attach files by dragging & dropping, , or pasting from the clipboard.

loading
clippy