Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Потрепаться";
Текущий архив: 2002.07.08;
Скачать: [xml.tar.bz2];

Вниз

распределенная БД   Найти похожие ветки 

 
ev   (2002-06-01 20:17) [0]

Сегодня (на встрече мастеров) мне сказали, что сабж с IB сделать невозможно! Отсюда вопросы:
1. это действительно так (если Да, то как выйти из положения)?
2. как грамотно делать резервирование БД IB на другом компьютере?


 
Alexandr   (2002-06-03 06:59) [1]

1) все можно, только кода больше писать надо.
2) backup ?


 
ev   (2002-06-03 08:25) [2]

2 Alexandr © (03.06.02 06:59)

1. что Вы имеете ввиду? Мне надо, чтобы одна БД была на несколькик компьютерах. Как это можно реализовать (или где почитать).

2. т.е. я добавляю запись в таблицу, а она АВТОМАТИЧЕСКИ (средствами interbase) появляется и на другом компьютере (который выполняет роль резервной БД).


 
Alexandr   (2002-06-03 09:26) [3]

1. Ты скажи сначала нафига. Тебе такое? Ты знаешь, что IB это клиент-серверная БД, и считается нормальным иметь одну базу в сети и много клиентов, работающих с ней.
2. Вообще-то есть IBReplicator, с помощью которого такое можно проделать, но проще самому написать. А нафига тебе резервная база данных ( просто архив базы данных (снимок) не подойдет?)

ты уж определись конкретно, что тебе надо, тогда уж посмотрим, как это сделать.

А так, какие-то праздные рассуждения типа круто/не круто...


 
Praco   (2002-06-03 09:47) [4]

Alexandr ©
Распределенная БД нужна часто. Классический пример - общий склад и несколько удаленных магазинов.

ev © (01.06.02 20:17)
Отсутствие штатных средств репликации - большой минус IB. Но сабж это не только синхронизация. Это еще и поддержка распределенных транзакций. Так что реализовать сабж можно, но лучше подумать о MS SQL, Sybase и выше, ИМХО.

Мне рассказывал один дядька о крупной американской фирме, производящей ПО для торговых предприятий, они используют исключительно средства Borland. И реализовали множество систем с распределенными базами на IB.


 
Yuri K.   (2002-06-03 10:11) [5]

Насколько я понимаю, речь идет не о распределенной БД, а о репликации. У IB я репликацию не настраивал, но вроде там по описанию такая возможность есть.


 
Шамиль   (2002-06-03 10:55) [6]

Я несколько не въехал - если есть сетка, то зачем распределенные базы? А если сетки нет и синхронизация через дискеты и т.п. - какая ж тут автоматика? Всяко придется процедурку записи на дискету писать.


 
Alexandr   (2002-06-03 12:05) [7]

Нет Если общий склад и несколько магазинов, то в первую очередь стоит подумать о трехзвенке, а не репликации

Как это нет штатных средств? А IBReplicator в конце концов?

Любую базу все равно нельзя реплицировать сразу, ее надо спроектировать с возможностью репликации и от сервера это не зависит. А то, что в рекламных лозунгах пишут, это не более чем лозунги.

А репликацию не настраивают, ее делать надо.


 
ev   (2002-06-03 13:46) [8]

1. Распределить нагрузку по разным компьютерам (слишкомм много клиентов).

2. А резервная база данных нужна, если выйдет из строя основная. Т.е. 100% резервирование.


 
Alexandr   (2002-06-03 13:56) [9]

1) Поставь Firebird Classic Server на Unix (Linux)
2) Поставь Yaffil Classic Server на Windows
Эти две конфигурации поддерживают многопроцессорность.
Особенно если памяти побольше...
Это решит проблемы с нагрузкой :) Хотя все относительно.
Вот тебе и нагрузка.

А насчет резервирования... Дорогое это решение... Очень дорогое тут только самому делать и репликацию, и автоматическое переключение между серверами и учет данных на стыке переключения все это очень сложно.

ДА не падает просто так Interbase он может годами без перезагрузки работать, а если еще и backUp делать почаше, то 100% резервирование может и не нужно?


 
Alexandr   (2002-06-03 13:57) [10]

а вообще-то это смахивает на универсальный решатель задач с речевым вводом


 
ev   (2002-06-03 14:31) [11]

2 Alexandr © (03.06.02 13:56)
А если сеть не позволяет большую нагрузку?

> ДА не падает просто так Interbase он может годами без
> перезагрузки работать
Это факт, или ИМХО?


 
Alexandr   (2002-06-03 14:55) [12]

если сеть не позволяет большую нагрузку, тогда легкая трехзвенка.

А насчет стабильности работы это факт, если у админа и разработчика руки не кривые.
У меня несколько месяцев без перезагрузки сервер win2000 Serv + IB5.6 работает. (потом приходится, но не из-за Interbase, а из-за Windows, установки нового ПО, глюков других программ и пр.)


 
ev   (2002-06-03 17:29) [13]

2 Alexandr © (03.06.02 14:55)
Что ты подразумеваешь " легкая трехзвенка".


 
shiva1   (2002-06-03 18:14) [14]

У меня IB более года на сервере без перезагрузки, и никаких глюков.


 
Alexandr   (2002-06-04 06:46) [15]

вообщем, просто трехзвенка. Которая траффик по сети зазря не гоняет.



 
Sergey13   (2002-06-04 09:25) [16]

2ev © (03.06.02 13:46)
>слишкомм много клиентов.
Это сколько?
2ev © (03.06.02 14:31)
>А если сеть не позволяет большую нагрузку?
А что за сеть такая и что за нагрузка?

2ev ©
А для начала, я бы посоветовал не западать на трехзвенки-распределенки, а просто проверить приложения на наличие запросов типа
Select * from Table
без условий. И поковырять планы запросов. И проверить частоту обновлений результатов запросов. И т.д. и т.п.
Где то я читал "адын умный вещь", что любая аппаратно-софтовая(имеется в виду что то типа смены драйверов, версий и т.п.) настройка производительности дает прирост, как правило, максимум 20~30%. Настройка и отладка приложения (в основном SQL-запросов и логики их применения) может повысить производительность в РАЗЫ. И в том и в другом сам убеждался не единожды. К тому же второй путь проще и интереснее с чисто программитской точки зрения.

В общем "Пилите, Шура, пилите. Они золотые."


 
ev   (2002-06-04 09:50) [17]

2 Alexandr © (04.06.02 06:46)
Т.е. серверов БД делать несколько, а сервер приложений - один.
А что будет, если сервер приложений не выдержит нагрузки.

p.s. предпологается одновременно более 10000 соеденений.


 
ev   (2002-06-04 09:55) [18]

От отдного пользователя поступает 1.5 млн записей в сутки (insert 50-100 байт ). А пользователей на один сервер я хочу минимум 1000.
Плюс множество пользавателей делают выборки (иногда и по 1-2 млн записей).
Или это не реально.


 
Praco   (2002-06-04 10:15) [19]

"предпологается одновременно более 10000 соеденений.
От отдного пользователя поступает 1.5 млн записей в сутки
пользователей на один сервер я хочу минимум 1000. "

1500000 * 1000 = 1 500 000 000 записей в сутки
"Плюс множество пользавателей делают выборки (иногда и по 1-2 млн записей)."

Что это? Американская национальная телефонная компания заказ дала? :)
IB не потянет. Oracle может и потянет на соответствующем железе.



 
Sergey13   (2002-06-04 10:15) [20]

2ev © (04.06.02 09:55)
Если не секрет, что за задача такая?
Если все это действительно нужно, то вам прямой путь на Oracle ЕЕ(или что то похожее)+ оптоволокно+многозвенка+распределенка+черт знает что. + Это будет стоить уйму зеленых американских президентов на бумажном носителе.
А вы хотели все это сделать на фришном IB? Ха-Ха-Ха. Такие проекты стоят миллионы, и не рублей.


 
Anatoly Podgoretsky   (2002-06-04 11:16) [21]

ev © (04.06.02 09:55)
Да это же более 5000 Терабайт в год, тогда насчет нескольких миллионов зеленых тебя обманули, речь идет или л десятка или о сотнях мегабакс и особо производительные каналы


 
Alexandr   (2002-06-04 11:26) [22]

:)

жалко тут юмор не собирается...

Пора ветку перенести в "потрепаться"


 
ev   (2002-06-04 11:49) [23]

Можно посчитать:
(1.5 млн записей в сутки) * (50 байт ) = 75 Мегабайт
(75 Мегабайт от одного пользователя) * 1000 = 75 Гигабайт
Это в сутки. Если учитывать, что максимума не будет, то винт на 80 ГБ (что сейчас не редкость) будет уходить на 1-2 дня.

Информация хранится долго не будет! Устаревшая информация будет уничтожаться или сбрасываться в архив. Это надо просто для статистики.

Вопросы в слудующем:
1. потянет ли Interbase (если нет, то сколько потянет)
2. насколько по надежности хватит винтов

p.s. Сейчас у меня проект - винт 80 ГБ забивается за 5-6 дней, потом немного удаляется, опять забивается.... и так по циклу.
IBM вылетает за пару месяцев. Сейчас взял Баракуду4 - посмотрим...


 
Alexandr   (2002-06-04 11:52) [24]

а ты уверен, что тебе для первичную информацию надо в базе держать?
Может ее обрабатывать отдельно, а в базу только результирующую информацию заносить?

По-моему так правильнее...


 
ev   (2002-06-04 13:25) [25]

Статистическая информация актуальна несколько дней, потом стирается. Но если была бы возможность (винты по млн. ТераБайт), то я не стирал даже устаревшую на месяц, а то и на год.

То, что я писал от (04.06.02 11:49) - практический маскимум. Т.к. для разработки этот максимум надо учитывать. А так я надеюсь, что объем будет в 3-5 раз меньше.


 
Delirium   (2002-06-04 18:03) [26]

Эта та самая ситуация когда MSSQL однозначно сильнее IB :)


 
ev   (2002-06-04 19:48) [27]

А если мне надо unix (надежней, чем MS)?
Oracle - дорого.
Структурную схемку реализации репликации и резервирования (используя IB) я уже нарисовал.
Но остается 2 вопроса:
1. потянет ли Interbase такой поток данных (если нет, то сколько потянет)
2. насколько по надежности хватит винтов


Ну не потянет 1000 пользователей, можно и два компьютера поставить - это допустимо.


 
Delirium   (2002-06-04 19:54) [28]

Я бы предложил систему ветвления (с MSSQL так можно):
ставятся промежуточные сервера - один на 50 клиентов (например), это сервера-подписчики у них один сервер-дистрибьютор. Далее все дистрибьюторы являются подписчиками следующего уровня (можно опять по 50 объединить), для них свой дистрибьютор и так до бесконечности.


 
Delirium   (2002-06-04 19:58) [29]

Надо только уровни репликации грамотно распределить, дабы каналы не перегружались.


 
ev   (2002-06-04 20:16) [30]

Упростим задачу (не так часто статистику собитать).
(50 байт) * (15000 запросов) = 750 КБайт
(750 КБайт) * (1000 пользователей) = 750 МБайт

Это статистика за сутки (для 1000 пользователей).
Ну такое-то потянет сервер?

Мне для отчета надо выяснить максисальную "пропускную способность" сервера. Исходя из этих значений будет уже строится ТЗ.

p.s. как бы ни хотелось 1.5 млн запросов - это не реально.


 
Delirium   (2002-06-04 20:23) [31]

Хм, проблема на мой взгяд не в сервере, а в связи - наращивать базу на 1 гигобайт каждый день это не проблема, можно и на 10 наращивать - как прокачать этот гигобайт? Или речь идёт о локалке ?


 
ev   (2002-06-04 20:37) [32]

локалка


 
Alexandr   (2002-06-05 07:04) [33]

в связи с игнорированием моих последних постов в эту ветку, а прекращаю писать в нее.


 
ev   (2002-06-05 07:11) [34]

2 Alexandr © (05.06.02 07:04)
Почему игнорирование? Я же написал, что это статистическая информация.
А статистика не может обрабатываться сразу. Или я не прав?


 
Alexandr   (2002-06-05 07:36) [35]

ладно.

Прав - не прав.
Откуда я знаю, я же ТЗ не видел.
Тебе транзакции и прочие прелести Interbase нужны?
Или может MYSQL или даже dbf можно в этом месте обойтись?
А в Interbase хранить уже обработанные данные.
Ну не знаю я твоего ТЗ: я просто варианты предлагаю.
И помни, что бызвыходных ситуаций не бывает. Все можно сделать.

Ненормально это: Большим потоком в реальном времени вгонять данные в SQL сервер. Что-тут не так в проектировании.

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

Вообщем привел бы ты тут, какие у тебя входные данные, что хранить надо, какие отчеты получать и прочее, а то сдается мне, что ничего не понятно из твоих обравочных сведений.

А вообще-то сдается мне, что ты биллинг делаешь для телефонной станции. Угадал?


 
Anatoly Podgoretsky   (2002-06-05 07:52) [36]

ev © (04.06.02 19:48)
Начинать надо с постановки техзадания, может и окажется, что Оракл в этом случае просто задаром, или даже просто не потянет.
Одно надо сразу учесть, зависимость физических размеров базы от операционной системы.


 
ev   (2002-06-05 08:01) [37]

> Тебе транзакции и прочие прелести Interbase нужны?
Да.

> А вообще-то сдается мне, что ты биллинг делаешь для телефонной
> станции. Угадал?
Нет. Это просто статистическая информация о работе некоторых компьютеров в сети (не троян!).

Задача примерно такая:
В локальной сети есть несколько шлюзов с которых приходят данные. На это шлюзы информация поступаеи из интернет от удаленных клиентов. Удаленных клиентов может быть очень много (в ТЗ числа еще нет, да и не может быть - система должна расширяться).

Все делло в том, что размерность добавляемых данных от 50 до 100 байт. Но количество запросов на добавление данных (от одного клиента) может быть очень много.

Вот, что планирую: на 1000 пользователей приходится 3 сервера:
- на первый происходит запись
- на второй происходит периодическая репликация с первого сервера (нужен для разгрузки первого сервера, с него происходит только чтение)
- третий служит для резерва

И собственно встают вопросы:
1. что реально можно реализовать, что прописать в ТЗ (будут мифические числа, а потом мучайся).
2. Как лучше производить периодическую репликацию с первого сервера на второй?


 
ev   (2002-06-05 08:02) [38]

2 модератору

странные у тебя понятия о соответствии веткам и темам форумов :(


 
Alexandr   (2002-06-05 08:27) [39]

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

Практика тебе нужна. Так-что пробуй...


 
ev   (2002-06-05 08:33) [40]

2 Alexandr © (05.06.02 08:27)
Был бы опыт, тогда не задавал бы здесь вопросы :)



Страницы: 1 2 вся ветка

Форум: "Потрепаться";
Текущий архив: 2002.07.08;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.55 MB
Время: 0.006 c
7-23805
JohnKorsh
2002-04-10 08:10
2002.07.08
Работа с последовательными портами.


14-23765
Китаец Ла Ме
2002-06-07 15:11
2002.07.08
Торможу... Нужна помощь в 1с.


3-23451
PTE
2002-06-14 13:57
2002.07.08
DBgrid что-то не понимаю. Может кто поделится исходником?


1-23549
Gerakul
2002-06-26 16:52
2002.07.08
Даже не знаю как и спросить...


1-23551
will
2002-06-26 18:17
2002.07.08
needhelp





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский