Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Посоветуйте настройки сервера для работы с потоком данных  [new]
Alexander_fx
Member

Откуда:
Сообщений: 658
привет
пишется поток реалтайм данных с биржи
поток до 500 транзакций в сек ( в среднем 50)
общий объем данных за день - 5 гигов
задача - получать выборки данных из этих данных не нагружая сервер

как сделано - два сервера
под каждый день создается своя бд с нужными таблицами - так же легче бекапить и переносить. выборок больше дня не производится.

первый сервер пишет все в текущую базу - в конце дня все перекидывается на второй сервер
все данные за прошлое хранятся на втором сервере и работа ведется там
задача - обращаться к данным текущего дня
проблемма - при выборке данных машина тупит несколько секунд и запись данных в бд идет с задержкой - а одно из полей - локальное время
есть идея - обьединить сервера в кластер чтобы один сервер записывал без нагрузки и зеркалил все на второй- а второй отдавал данные клиенту
вопрос - что и как курить
5 май 16, 17:30    [19139484]     Ответить | Цитировать Сообщить модератору
 Re: Посоветуйте настройки сервера для работы с потоком данных  [new]
пьяный тюлень
Member

Откуда:
Сообщений: 100
Можно использовать селекты с with (nolock), они не будут лочить таблицу, но будет грязное чтение.

Можно сделать копию таблицы и писать в нее, а раз например в 10 минут перекидывать в основную, тогда время будут верное, но в селектах не будет данных за последние несколько минут.
5 май 16, 17:50    [19139547]     Ответить | Цитировать Сообщить модератору
 Re: Посоветуйте настройки сервера для работы с потоком данных  [new]
AlanDenton
Member [скрыт]

Откуда:
Сообщений: 1004
Транзакции короткие у Вас? Какая версия SQL Server? Какая редакция?
5 май 16, 17:51    [19139551]     Ответить | Цитировать Сообщить модератору
 Re: Посоветуйте настройки сервера для работы с потоком данных  [new]
AlanDenton
Member [скрыт]

Откуда:
Сообщений: 1004
Также покажите какая статистика ожиданий у Вас на сервере.
5 май 16, 17:53    [19139553]     Ответить | Цитировать Сообщить модератору
 Re: Посоветуйте настройки сервера для работы с потоком данных  [new]
Alexander_fx
Member

Откуда:
Сообщений: 658
AlanDenton,

транзакции короткие - тех что много - вставка строки из 20-30 полей
без триггеров и завязок на другие таблици

2014 enterprise

статистику ожиданий смогу позднее
5 май 16, 19:27    [19139775]     Ответить | Цитировать Сообщить модератору
 Re: Посоветуйте настройки сервера для работы с потоком данных  [new]
Alexander_fx
Member

Откуда:
Сообщений: 658
пьяный тюлень
Можно использовать селекты с with (nolock), они не будут лочить таблицу, но будет грязное чтение.

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



сейчас по сути так и сделано - все селекты Nolock
и таблица скидывается раз в день
хотелось бы как то более красиво - типа alwais on для выбранных талиц
вот и прошу совета куда копать
5 май 16, 19:30    [19139792]     Ответить | Цитировать Сообщить модератору
 Re: Посоветуйте настройки сервера для работы с потоком данных  [new]
AlanDenton
Member [скрыт]

Откуда:
Сообщений: 1004
Alexander_fx
вот и прошу совета куда копать

Чтобы знать куда копать :) нужно понимать суть проблемы. Вангую, что у Вас высокие задержки WRITELOG.
5 май 16, 19:42    [19139842]     Ответить | Цитировать Сообщить модератору
 Re: Посоветуйте настройки сервера для работы с потоком данных  [new]
Alexander_fx
Member

Откуда:
Сообщений: 658
AlanDenton
Alexander_fx
вот и прошу совета куда копать

Чтобы знать куда копать :) нужно понимать суть проблемы. Вангую, что у Вас высокие задержки WRITELOG.


да вроде запись справляется
но например - делаю селект из сегодняшней таблици в 17 часов - в текущей таблице уже 20 000 000 строк
селект простой - date between where x=y
но данных в кеше уже нет - и сервер начинает считывать данные с диска - полюбому пробежаться по 2-3 гигам нужно время
а машина выступает приемником данных из нескольких источников и проставляет локальное время для последующей сортировки по времени поступления
получается что машина замирает на секунды и потом порядок событий нарушается так как хз какой поток раздуплится первым - а разнести источники по разным машинам - придется синхронизировать время до микросекунд что само по себе нетривиально
вот если бы на 2-3 машинах использовать один таймер - хз вот и прошу совета
5 май 16, 19:49    [19139873]     Ответить | Цитировать Сообщить модератору
 Re: Посоветуйте настройки сервера для работы с потоком данных  [new]
Crimean
Member

Откуда:
Сообщений: 13147
ну совсем пальцем в небо - AlwaysOn асинхронно и с readable зеркалом, естественно. оно и писать не помешает и читать будете вполне себе актуальные данные на втором сервере. только вот лицензий надо будет в 2 раза больше. зато надежность поднимется. собственно и бакапить сможете зеркало
5 май 16, 20:01    [19139907]     Ответить | Цитировать Сообщить модератору
 Re: Посоветуйте настройки сервера для работы с потоком данных  [new]
iljy
Member

Откуда:
Сообщений: 8711
Alexander_fx
но данных в кеше уже нет - и сервер начинает считывать данные с диска - полюбому пробежаться по 2-3 гигам нужно время

так у вас проблема не с записью, а с данными, не помещающимися в память. Соответственно, надо эту самую память увеличивать, ну или диски ускорять (а лучше и то, и то).

Далее. При анализе данных насколько критично запаздывание? Вам нужно при чтении выбирать данные прям вот до последних секунд, или допустим лаг? Если допустим, то делайте промежуточный легкий сервер для двойной буферизации:

1. Таблица, в которую сейчас пишутся данные, просто их накапливает.
2. Раз в минуту - две - пять на главном сервере запускается задача, которая:
2.1 Копирует данные на промежуточном сервере в другую таблицу, банально ренеймом, и подсовывает под запись новую, пустую.
2.2 Забирает данные из копии на главный сервер, оптом.
2.3 Очищает копию транкейтом.
5 май 16, 21:14    [19140114]     Ответить | Цитировать Сообщить модератору
 Re: Посоветуйте настройки сервера для работы с потоком данных  [new]
Alexander_fx
Member

Откуда:
Сообщений: 658
iljy,

лаг в минуту допускается

собственно как сделать скриптами понятно - работает пару лет уже
хотелось перейти на готовое решение
вот слышал про always on - подумалось что неплохое решение - один пишет, второй автоматом получает и работа по чтению ведется только со вторым - велосипеды и костыли порядком надоели - их же надо документировать и обьяснять что и где запущено и в каокм порядке должно работать.
5 май 16, 22:07    [19140299]     Ответить | Цитировать Сообщить модератору
 Re: Посоветуйте настройки сервера для работы с потоком данных  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31816
Alexander_fx
хотелось перейти на готовое решение
вот слышал про always on - подумалось что неплохое решение - один пишет, второй автоматом получает и работа по чтению ведется только со вторым - велосипеды и костыли порядком надоели - их же надо документировать и обьяснять что и где запущено и в каокм порядке должно работать.
Ну да, можно always on, можно просто старую добрую транзакционную репликацию (асинхронную, конечно)
6 май 16, 15:26    [19143099]     Ответить | Цитировать Сообщить модератору
 Re: Посоветуйте настройки сервера для работы с потоком данных  [new]
Crimean
Member

Откуда:
Сообщений: 13147
alexeyvg
старую добрую транзакционную репликацию


ой, не надо им это! даже перечислять не буду почему :)
7 май 16, 13:26    [19145465]     Ответить | Цитировать Сообщить модератору
 Re: Посоветуйте настройки сервера для работы с потоком данных  [new]
aleks2
Guest
Надо брать пример с решений производителя.
ISA 2006 пишет лог в базу так:

1. Создает таблицу1 в tempdb
2. BULK INSERT в эту таблицу некоторое время.
3. Создает другую таблицу2 в tempdb и BULK INSERTв новую
4. Insert Постоянная_таблица select * from таблица1_в_tempdb
5. DROP TABLE таблица1_в_tempdb.
6. Продолжаем с п.3
7 май 16, 15:30    [19145713]     Ответить | Цитировать Сообщить модератору
 Re: Посоветуйте настройки сервера для работы с потоком данных  [new]
Crimean
Member

Откуда:
Сообщений: 13147
aleks2,

другими словами, реалтайм писать в файлы. а файлы - балкать в базу. я верно понял?
а tempdb тут не обязательно, можно уже и InMemory для этого пользовать.
8 май 16, 01:16    [19147214]     Ответить | Цитировать Сообщить модератору
 Re: Посоветуйте настройки сервера для работы с потоком данных  [new]
aleks2
Guest
Crimean
aleks2,

другими словами, реалтайм писать в файлы. а файлы - балкать в базу. я верно понял?
а tempdb тут не обязательно, можно уже и InMemory для этого пользовать.


1. Не, ISA bulk-ает прямо в таблицу tempdb, без файлов.
2. InMemory - не надо.
8 май 16, 11:04    [19147533]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить