Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Сравнение СУБД Новый топик    Ответить
Топик располагается на нескольких страницах: Ctrl  назад   1 .. 10 11 12 13 14 [15] 16 17 18 19 .. 25   вперед  Ctrl
 Re: Есть ли будущее у файл-сервера?  [new]
Yo!!
Guest
Urri
Но это повод всего лишь переформулировать задачу, а не отказываться от технологии.


так может все таки оставим ФС для телефоного справочника, а для субд возьмем то что умеет делать консистентное чтение, транзакции, acid, блокировки на уровне записи, 5 видов индексов, роли для защиты данных и еще много чего ?
на реальной задаче ваши кастыли 100% посыпятся, ради чего их водружать туда где есть гораздо более надежные и бесплатные продукты ?
11 май 05, 00:26    [1528125]     Ответить | Цитировать Сообщить модератору
 Re: Есть ли будущее у файл-сервера?  [new]
Geo
Member

Откуда:
Сообщений: 6883
Я прошу прощения за появление все большего числа ошибок в тексте - я уже не первую бутылку пива сел пить.
vadiminfo
(1)Да все так. И на этом диске лежит файл Аксцесса.
...
(2)Мы специально писали непонятный Аксцессу запрос, чтобы убедиться, что нигде не спрятан сам Аксцесс. Или нет?
...
(3)В случае обычного ФС Прога лезет к Аксцессу, например.
Мне кажется, мы с Вами одинаково понимаем ФС.

1. Не файл Акцесса, просто файл.
2. Хорошо. На всякий случай повторюсь, что акцесс совершенно не при чем.
3. И опять же, прога не лезет к акцессу. Прога лезет к... сетевой службе операционной системы, наверное... точнее сказать не смогу. Но уж точно не к акцессу или Джетту. Пример. С акцессовского файла БД легко и непринужденно можно "на горячую" попытаться снять копию простой командой "copy \\fileserv\a.mdb c:\". И вполне вероятно, что она окажется рабочей. Акцесс "на сервере" для работы с .mdb файлом не нужен ни в каком виде.
Прошу прощенья за тафтологию, но из ваших ответов создается стойкое впечатление, что он нужен. Умом я понимаю, что вы согласны, что это не так, а сердце подсказывает: проверь :)

[qout vadiminfo]Однако, кое-что Оракл провернет одним запросом[/qout]
Хорошо. Осталось оговорить термин "один запрос". Если это select, то многие и в акцессе можно обернуть в один. И при этом акцесс тоже вряд ли станет три раза подряд в пределах одного запроса тащить с сервера одни и те же данные. А коль скоро мы с этим согласимся, то придем к тому, что доказывает ЛП: одну и ту же операцию, по достижении ею какой-то сложности с учетом скорости последовательной пересылки по сети необходимых данных (если, конечно, они заранее не лежат на клиенте), 100 клиентов параллельно выполнят быстрее, чем один сервер 100 раз для каждого клиента. А для того, чтобы какая-то часть данных уже была на клиенте, и ее не приходилось туда-сюда гонять, об этом просто надо позаботиться. Но ведь мы знаем об этом с самого начала, мы же пишем на ФС? Или на КС? Тогда пойдем другим путем. :)
11 май 05, 00:43    [1528135]     Ответить | Цитировать Сообщить модератору
 Re: Есть ли будущее у файл-сервера?  [new]
Urri
Member

Откуда: Москва
Сообщений: 2693
Yo!!
Urri
Но это повод всего лишь переформулировать задачу, а не отказываться от технологии.


так может все таки оставим ФС для телефоного справочника, а для субд возьмем то что умеет делать консистентное чтение, транзакции, acid, блокировки на уровне записи, 5 видов индексов, роли для защиты данных и еще много чего ?
на реальной задаче ваши кастыли 100% посыпятся, ради чего их водружать туда где есть гораздо более надежные и бесплатные продукты ?

1. Я должен Вам еще раз сказать, что не теоретизирую, а как раз имею опыт реальной задачи. См. выше.
2. Нужно Вам попенять, что Вы предпочитаете не отвечать на мои вопросы. Вы спросили - я привел Вам варианты решений. И где вы увидели кастыли? Хотелось бы, чтобы с Вашей стороны критика была более предметной.

Я готов признать, что в некоторых случаях надо использовать КС, но Вы мне ответьте, наконец!
Консистентное чтение - вы так и не ответили, на кой оно надо (это я его намеренно не делаю, а ФС - умеет),
Транзакции (ФС умеет, доказано практически),
acid - что это такое? Если кислота, то наверное она и в КС не нужна.
Блокировки на уровне записи (ФС всегда это умел - по крайней мере, FoxPro блокирует именно на уровне записи - или файла целиком),
5 видов индексов - а на кой мне столько? объясните преимущества, которые предо мной открываются, если видов индексов будет пять. Мне и двух за глаза (А вообще, в ФоксПро их тоже 5: компаундный структурный, компаундный неструктурный, некомпаундный сжатый, некомпаундный несжатый и вот теперь еще и бинарный появился ;-))) ),
Роли для защиты данных - да сам создам сколько угодно ролей! Вы же не будете отрицать, что в приложении можно это реализовать!
И еще много чего - чего именно?
11 май 05, 01:10    [1528149]     Ответить | Цитировать Сообщить модератору
 Re: Есть ли будущее у файл-сервера?  [new]
vadiminfo
Member

Откуда: Обнинск
Сообщений: 4802
Geo

1. Не файл Акцесса, просто файл.
2. Хорошо. На всякий случай повторюсь, что акцесс совершенно не при чем.
3. И опять же, прога не лезет к акцессу. Прога лезет к... сетевой службе операционной системы, наверное... точнее сказать не смогу. Но уж точно не к акцессу или Джетту.

Все тоже в случае утрированной ситуации. Ничего другого чем в случае Аксцесса на файловом сервере нет. Или что-то есть? Вы скажите что есть в случае утрированной на файл сервере. А Вы говорите тока про обычную. Я с ней согласен в целом, но думаю, что все то же в принципе происходит и в утрированной на ФС.

Geo

Прошу прощенья за тафтологию, но из ваших ответов создается стойкое впечатление, что он нужен.

Нет он не нужен. Мы это проверяли левым для него запросом. То чта файл БД аксцесса, а не ворда имеет значение. А про саму СУБД Аксцесс или ее движек, я не грил. И это не играет роли для цели, поскольку он все равно ФС. А цель посмотреть как выглядят толстые СУБД на всех клиентах. (100 или более).


Geo

Если это select, то многие и в акцессе можно обернуть в один. И при этом акцесс тоже вряд ли станет три раза подряд в пределах одного запроса тащить с сервера одни и те же данные. А коль скоро мы с этим согласимся, то придем к тому, что доказывает ЛП: одну и ту же операцию, по достижении ею какой-то сложности с учетом скорости последовательной пересылки по сети необходимых данных (если, конечно, они заранее не лежат на клиенте), 100 клиентов параллельно выполнят быстрее, чем один сервер 100 раз для каждого клиента. А для того, чтобы какая-то часть данных уже была на клиенте, и ее не приходилось туда-сюда гонять,

Это немного про другой аспект п2. Если стоит мощный сервак, который делает за 1 сек запрос, который клиент (пусть средний - т.е. худший 15, лучший 5) делает за 10 мин, то скорее лучше на этом серваке выполнять запрос, чем на таких клиентах. У этого сервака и диски могут быть быстрей и процессор(ры) (их к примеру 64) и оператика больше. Кроме того, толстые КС СУБД работая с диском напрямую могут иметь преимущества непосредственного достпупа. Плюс на клиенте возможно СУБД должена будет это записывать на свой диск, потом читать перекаченное - не все запросы однопроходны. А 10 мин - это 600 - сек. Мало того, что в случае одного клиента разница значительная, так скокака надо клиентов, чтобы они сравнялись?
11 май 05, 01:32    [1528156]     Ответить | Цитировать Сообщить модератору
 Re: Есть ли будущее у файл-сервера?  [new]
Geo
Member

Откуда:
Сообщений: 6883
vadiminfo
Если стоит мощный сервак, который делает за 1 сек запрос, который клиент (пусть средний - т.е. худший 15, лучший 5) делает за 10 мин, то скорее лучше на этом серваке выполнять запрос, чем на таких клиентах. У этого сервака и диски могут быть быстрей и процессор(ры) (их к примеру 64) и оператика больше. Кроме того, толстые КС СУБД работая с диском напрямую могут иметь преимущества непосредственного достпупа. Плюс на клиенте возможно СУБД должена будет это записывать на свой диск, потом читать перекаченное - не все запросы однопроходны. А 10 мин - это 600 - сек. Мало того, что в случае одного клиента разница значительная, так скокака надо клиентов, чтобы они сравнялись?

Гм. Это надо либо проверять в цифрах, либо не говорить совсем. Я сомневаюсь, что мой домашний компьютер, системник которого, после того, как из него выкинуть все невлияющее на скорость выполнения запросов, стоит около 400-600 долларов, обработает какой-либо запрос в 600(!) раз медленнее, чем сервер, стоящий 40 000 долларов. И, если кому-нибудь будет не лень, за сколько времени такой сервер выполнит 100 подобных запросов, полученных сразу, а также последовательно, подряд.

Но допустим, в обоих случаях сервер при прочих равных "сделает" клиента. Но ведь мы же с самого начала знаем, на чем мы пишем. И запрос
select * from t1 where f1 not in (select f2 from t2)
можем переписать, скажем, как
select * from t1 left join t2 on t1.f1=t2.f2 where t2.f2 is null
Это пример из акцесса. Одинаковые с виду запросы будут выполняться с на порядок разной скоростью.
Заранее узнав :), что мы пишем в файл-серверной среде, мы можем реплицировать и хранить локально справочники, складские остатки, почти посчитанные оборотки и т.д. И гарантированно выполнять сложные запросы со скоростью, сравнимой со скоростью сервера, перед которым далеко не в последнюю очередь стоят другие задачи: неповисамость, невозможность падения рядом гранаты, защита данных на уровне сервера, а не доступа к клиентскому компьютеру и сети, и т.д., и т.д.
11 май 05, 02:08    [1528173]     Ответить | Цитировать Сообщить модератору
 Re: Есть ли будущее у файл-сервера?  [new]
ЛП
Guest
2 Cat2
Я прошу участников дискусии вести себя корректно

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

----------------------------------

2 vadiminfo и Geo
Слушайте, я что-то совсем перестал понимать о чем вы рассуждаете. Но, кажется мне, со своими экспериментами над ораклом и внешними хранилищами вы еще немного - и изобретете Oracle RAC :)

-----------------------------------

2 StalkerS
четкий признак того, что программеры не умели программировать.

Да, действительно не умели. Я с этим даже спорить не буду.
Но и программеры, которые ваяли ФС-систему - тоже не Эйнштейнами были.
Только в случае ФС кривизна программерских рук привела к тому, что всего лишь два аналитика раком стояли (как тут уже сказали, тормоза бабы Люды на других не распространяются), а в случае КС - к тому, что стоял раком сервак, и вся фирма впридачу, и стояли они так до тех пор пока пару десятков килобаксов на апгрейд сервера не забашляли.

Сервер обладает хорошим оптимизатором запросов, и сможет 192 одновременных запроса растусовать наиболее выгодным образом. Опять-же cash hit ratio там будет неслабый и прочая ботва.

Вы эта... хватит уже лапшу на уши вешать.
Цифры где? Цифры будут, или будет только восхищенное самолюбование "поглядели-бы вы на наш Ксеон"?

Я вот от нечего делать на домашнем компутере поиграл с одновременными запросами к сиквелу.
Табличка, 10000000 записей, два числовых поля. Базка маленькая, меньше 400 метров, судя по отсутсвию дисковой активности вообще в памяти лежала.
Хранимка - по одному полю фильтрует сотню тысяч записей, по другому суммирует. Позапускал эту хранимку асинхронно, до 10 запросов одновременно, каждый над своим диапазоном.
Чтобы жизнь малиной не казалась - снес индекс в базовой таблице. Получил так всеми любимый table scan (а тут ведь что ни оппонент - так обязательно вспомнит про table scan по сети).
В общем результаты меня удручили.
В первой колонке - количество одновременно исполняющихся запросов, во второй - время от запуска первого до отработки последнего.
кол-во запросов время
1 4.59375
2 12.71875
3 23.20313
4 20.46875
5 29.45313
6 35.625
7 34.42188
8 857.7969
9 1024.906
10 1103.7031

У меня конечно не навороченный сервак, процессор всего один, да и тот вовсе не ксеон... P4 2.4 (разогнанный до 3.6), гигабайт оперативки, винт медленный, но это пофиг, все равно к нему обращений не шло, основная нагрузка на проц.
Такое ощущение, что в какой-то момент MS SQL Server встал раком, да и не сумел разогнуться. Судя по этим результатам - начиная с восьми клиентов выгоднее было бы хоть все 400 мегабайт на клиентов закачать, да там их и обработать (хоть за 5 секунд, хоть за 50).
Ничего не оптимизировал, ничего не мониторил, как были результаты - так их и выложил.

Кому интересно - попробуйте повторить, если надо скрипты и VB-шный код выложу (хоть там и нет ничего интересного).
Кто считает данный пример некорректным (из-за специально убитого индекса) - придумайте свой, мне лень было просто. Основное требование - отработка одиночного запроса должна занимать несколько секунд, побольше всяких наворотов, и чем больше table scan'ов - тем лучше :)
Ну и собственно интересует - в какой момент, на скольки одновременно выполняющихся таких запросах, произойдет резкое падение производительности.

А вы, товарисч StalkerS - цифры все-таки приведите.
Иначе ваше утверждение о том, что "может и не 192, а все 200 компов не смогут обогнать" будет считаться утверждением смелым. Глупым, но смелым.

-----------------------------------

2 ASCRUS
IMHO
Централизованное управление и хранение данных будет всегда лучше и надежнее, чем "доверительное"

Так то оно так... Но ведь абыдна, да?
Как представишь - сколько на клиентских компутерах пропадает зазря мегагерц и гигабайт...
Хочется и централизованное управление иметь, и распределенные вычисления :)
11 май 05, 04:40    [1528219]     Ответить | Цитировать Сообщить модератору
 Re: Есть ли будущее у файл-сервера?  [new]
ASCRUS
Member

Откуда: МО Электросталь
Сообщений: 5994
ЛП
Так то оно так... Но ведь абыдна, да?
Как представишь - сколько на клиентских компутерах пропадает зазря мегагерц и гигабайт...
Хочется и централизованное управление иметь, и распределенные вычисления :)

Дык пишут же люди многозвенные приложения (тот же J2EE или DCOM) в связке с КС, я правда этого не понимаю, на моей памяти пока не было случаев, чтобы это в РСУБД впихнуть нельзя было, на крайний случай я бы какие то сложные вычисления в качестве внешней ХП сделал на Си или Java. А для удаленных работ (те же мобильные устройства), тот же КС ASA имеет Personal (облегченный, без поддержки сетевых протоколов) и UltraLite Edition (под КПК). Причем последний есть даже в виде ActiveX, чтобы сервер в приложение как компонент интегрировался и напрямую управлялся через интерфейсы этого ActiveX. Обе версии так же, как и Network version, поддерживают репликации, так что проблем синхронизации данных на другие уровни не имеют - можно хоть дискеткой туда сюда пакеты носить, помимо ноутбуков и КПК, это еще удобно, когда сети нет, а работать хочется :)

Кстати насчет ФС - раньше под них очень хорошо Novell сервера шли, которые не сказать, что были навороченными сильно. Многие до сих пор их крутят и не хотят менять. Однако и здесь КС неплохо приживается - у ASA вместе с Windows и Windows CE версиями, нога в ногу идет Novell версия. А вот версии под другие ОС (тот же Linux) где то на шаг по пакам отстают от развития, что в принципе и понятно - редко где можно увидеть Unix в SMB или мобильных секторах, а для больших БД ASA стала пригодной не так давно (последняя 9-ая версия).

автор
У меня конечно не навороченный сервак, процессор всего один, да и тот вовсе не ксеон... P4 2.4 (разогнанный до 3.6), гигабайт оперативки, винт медленный, но это пофиг, все равно к нему обращений не шло, основная нагрузка на проц.
Такое ощущение, что в какой-то момент MS SQL Server встал раком, да и не сумел разогнуться. Судя по этим результатам - начиная с восьми клиентов выгоднее было бы хоть все 400 мегабайт на клиентов закачать, да там их и обработать (хоть за 5 секунд, хоть за 50).
Ничего не оптимизировал, ничего не мониторил, как были результаты - так их и выложил.

Можно тестик ради интереса. Помнится мне MSSQL достаточно аггресивно аггрегирующие запросы выполняет, что приводит к неравномерному распределению нагрузок при большом кол-ве подключений и проседанию сервера. Может конечно ошибаюсь, но по моему особо MSSQL не любит COUNT.

P.S. Сорри конечно что все сравнения ведутся с ASA, это коммерческий СУБД и денюшку стоит, наверное было бы правильнее сравнивать с Firebird или PostgreSQL, однако я их не настолько хорошо знаю, чтобы рассказать об их сильных сторонах. А тут родная для ASA стихия - мало ресурсов, отсутствие выделенного сервера в офисе или стоит Novell, требования к легкой инсталяции и отсутствию администрирования, как раз то, чем можно гордиться в этом сервере :)
11 май 05, 06:26    [1528237]     Ответить | Цитировать Сообщить модератору
 Re: Есть ли будущее у файл-сервера?  [new]
ЛП
Guest
2 ASCRUS
Можно тестик ради интереса.

Да можно конечно. Там все просто как два рубля. Я, не мудрствуя лукаво, придумал самый тупой тест на который был способен :)

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

На сервере:
собственно табличка
CREATE TABLE [t] (
	[id] [int] NOT NULL ,
	[f] [int] NOT NULL 
) ON [PRIMARY]
-- Не индексировано - специально
GO
заполнение
declare @i int
select @i = 1

while @i<10000000
begin
	insert into t (id, f) values (@i, @i)

	select @i=@i+1
end
тестовая процедурка:
CREATE  PROCEDURE dbo.sp_test(@prm1 int, @prm2 int)
AS SELECT SUM(f) AS Expr1
FROM  dbo.t
WHERE (id >= @prm1) AND (id < @prm2)

На "клиенте" (из под аксеса)
Public Function Test()
Open "c:\result.txt" For Output As #1

Dim colConnections As Collection
Dim colCommands As Collection
Dim colRecordsets As Collection
Dim sngStart As Single

Dim lngCommandCount As Long
For lngCommandCount = 1 To 20 
    
    Dim i As Long
    Dim cnn As ADODB.Connection
    Dim cmd As ADODB.Command
    Dim rst As ADODB.Recordset
    
    Set colConnections = New Collection
    Set colCommands = New Collection
    Set colRecordsets = New Collection
    ' Открываем соединения и подготавливаем рекордсеты
    For i = 1 To lngCommandCount
        Set cnn = New ADODB.Connection
        cnn.Open CurrentProject.BaseConnectionString
        colConnections.Add cnn
    
        Set cmd = New ADODB.Command
        cmd.CommandText = "sp_test " & (i - 1) * 1000 + 1 & ", " & i * 1000
        cmd.CommandType = adCmdText
        cmd.CommandTimeout = 15000
        Set cmd.ActiveConnection = colConnections(i)
        colCommands.Add cmd
        
        Set rst = New ADODB.Recordset
        Set rst.Source = colCommands(i)
        colRecordsets.Add rst
    Next i

    sngStart = Timer
    ' Все открыли
    For i = 1 To lngCommandCount
        colRecordsets(i).Open , , , , adAsyncExecute
    Next i
    
    ' Ждем пока оно выполнится.
    Dim blnComplete As Boolean
    blnComplete = False
    Do Until blnComplete
        blnComplete = True
        
    ' Здесь начало проблемного куска
        For i = 1 To lngCommandCount
            If colRecordsets(i).State <> adStateOpen Then
                blnComplete = False
            End If
        Next i
    ' Здесь конец проблемного куска.
    Loop

    Print #1, lngCommandCount, Timer - sngStart
    
Next lngCommandCount
Close #1

End Function

Т.к. языковые ограничения VB не позволяют мне ловить ActiveX-события от множества ADODB-рекордсетов, то вместо ожидания FetchComplete я тупо опрашивал их State. Как оказалось - был неправ. Почему-то плохо становится рекордсетам от такого издевательства. Не доходит до них, что они уже готовы и открыты.
Причем, что самое для меня странное - проявляется это только при нескольких открытых рекордсетах. До 7 - все ок, после 8 - начинаются непонятные тормоза. Следующая порция тормозов - после 16.
Проблемный кусок переписал следующим образом:
    Do Until blnComplete
        blnComplete = True

        ' Принудительно ждем секунду
        ' Точность измерений от этого снижается, 
        ' но хоть рекордсеты в кому не впадают.
        Dim tmp As Single
        tmp = Timer
        Do While Timer - tmp < 1
            DoEvents
        Loop

        For i = 1 To lngCommandCount
            If colRecordsets(i).State <> adStateOpen Then
                blnComplete = False
            End If
        Next i
    Loop
Ну и собственно как только я перестал рекордсеты слишком часто дергать - все тут же залетало. До поры до времени :)
Последние результаты:
кол-во запросов время
1 1.046875
2 2
3 3.140625
4 3.03125
5 5.25
6 4.09375
7 5.109375
8 13.25
9 14
10 16.09375
11 17
12 19
13 20.07813
14 22.07813
15 23.04688
16 325.2969
17 339.375
18 350.5938
19 344.375
20 340.3906

Опять наблюдаю странное "проседание" на 8 и на 16 подключениях. Цифры слишком круглые, чтобы быть случайными. Но кто виноват - сервер, клиентский кусочек кода, или же мои руки, растущие из жопы - я не знаю.
11 май 05, 07:37    [1528273]     Ответить | Цитировать Сообщить модератору
 Re: Есть ли будущее у файл-сервера?  [new]
mir
Member

Откуда: Томск
Сообщений: 1027
Еще одна копейка про перекачку данных по сети в случае ФС. Все согласны, что при select'ах современные ФС изо всех сил стараются не тянуть по сети лишнего, грамотно используя индексы.
Однако что же происходит при update'ах внутри транзакций? Тут ранее было четко сказано, что все изменения в БД до завершения транзакции хранятся на клиенте. То есть если я внутри транзакции выполняю какой-нибудь update table1 set field1 = field1*0.1, то вся table1 (или ее столбец field1, что не принципиально) обязана быть затянута по сети на клиента. Если она 10Кб, то 10Кб. А если она 100Гб, то все 100Гб. То есть получается, что в ФС сочетание транзакции с массовым update даст просто жирную ж...
Или нет?
11 май 05, 07:55    [1528286]     Ответить | Цитировать Сообщить модератору
 Re: Есть ли будущее у файл-сервера?  [new]
ЛП
Guest
2 mir
Еще одна копейка про перекачку данных по сети в случае ФС.

Эт не копейка, а целый рупь.

То есть получается, что в ФС сочетание транзакции с массовым update даст просто жирную ж...
Или нет?

Думаю что да.

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

В общем-то эта... Не нравятся мне разговоры про апдейты сотен гигабайт -применительно к файл-серверным системам :)
11 май 05, 08:15    [1528301]     Ответить | Цитировать Сообщить модератору
 Re: Есть ли будущее у файл-сервера?  [new]
Дюблю ФС
Guest
Yo!!
2Urri
>Что значит, убедил! Требую контраргументов ;-)

раз уж вы считаете деньги, то можно рассказать как вы боритесь:

1.
update bank1 set balance = balance - 2000000 where id=20 ;
update bank2 set balance = balance + 2000000 where id=21 ;

в bank1.dbf все коректно записалось, а вот пока открывался bank2.dbf клиент грузанулся, деньги достаются казино ?


Уважаемый Йо!! пишет прямо сходу в таблицы?
Молодец! В таком примере конечно все пойдет к чертям - и это правильно...

Кстати так ведь никто мне и не ответи.

я провел опыты с выдергиванием сети.. ничего не пропало, оппоненты утверждают "если выдернуть сеть как раз в тот момент, когда именно передача данных по сети = жопа.."
я волен согласиться, НО!!! опыт такой можно реально поставить? А то ведь теория-теорией, а практика - практикой....
И потом, на КС можно такой опыт провести? Дабы быть на 105% уверенным в том, что в КС ничего не произойдет?

Я понимаю (если я ошибаюсь будьте добры ПОПРАВЬТЕ!!!)
в случае с КС на сервер отправляется команда
Execute MyStoredProcedureNo125(par1, par2....parN)
а в самой этой процедуре уже будет описана модивикация таблиц, инсерты, апдейты и так далее....
Иными словами лабо на сервак пошла вся команда Execute MyStoredProcedureNo125(par1, par2....parN)
либо, если сеть ушла на небо не пошло ничего.. то есть если сеть ушла команда передаться так к примеру
Execute MyStoredP
тута оборвало провода (направленным взрывом :-))
и этот кусок rocedureNo125(par1, par2....parN) остался.. такого быть не может... Я верно понимаю???
СОГЛАСЕН если так, хотя опять-таки без практического опыта все это просто то, что бы мы хотели видеть...
А возможно ли, что в поем примере с 5-й страницы, в случае ФС все идет тоже так... то есть на Файл-Сервер подаются не построчно команды транзакции, а некий пакет? Я НЕ знаю.. а проверить как???
2-3 месяца дергать сетевой шнур, в надежде поймать тот самый момент???
или в КС так же дергать???
11 май 05, 09:40    [1528441]     Ответить | Цитировать Сообщить модератору
 Re: Есть ли будущее у файл-сервера?  [new]
AlexCzech
Member

Откуда:
Сообщений: 729
2ЛП: А вы не пробовали смотреть, какой процент процессорного времени съел MS SQL Server, а какой - ждущий ответа и привета Аксесс ? А то не совсем понятно, что мы тестируем :)
11 май 05, 09:48    [1528458]     Ответить | Цитировать Сообщить модератору
 Re: Есть ли будущее у файл-сервера?  [new]
AlexCzech
Member

Откуда:
Сообщений: 729
Дюблю ФС

А возможно ли, что в поем примере с 5-й страницы, в случае ФС все идет тоже так... то есть на Файл-Сервер подаются не построчно команды транзакции, а некий пакет? Я НЕ знаю.. а проверить как???
2-3 месяца дергать сетевой шнур, в надежде поймать тот самый момент???
или в КС так же дергать???


Пакет ЧЕГО подается на файл-сервер ? Вы ж с файлами работаете... если у вас ФС поддерживает транзакции на уровне файловых операций и ваше ПО, которое работает как ФС, об этом умеет узнавать и это юзать - может и есть смысл о пакетах чего-то говорить... а так вообще непонятно, о какой абстракции вы ведете речь
11 май 05, 09:54    [1528472]     Ответить | Цитировать Сообщить модератору
 Re: Есть ли будущее у файл-сервера?  [new]
Люблю ФС
Guest
AlexCzech
Дюблю ФС

А возможно ли, что в поем примере с 5-й страницы, в случае ФС все идет тоже так... то есть на Файл-Сервер подаются не построчно команды транзакции, а некий пакет? Я НЕ знаю.. а проверить как???
2-3 месяца дергать сетевой шнур, в надежде поймать тот самый момент???
или в КС так же дергать???


Пакет ЧЕГО подается на файл-сервер ? Вы ж с файлами работаете... если у вас ФС поддерживает транзакции на уровне файловых операций и ваше ПО, которое работает как ФС, об этом умеет узнавать и это юзать - может и есть смысл о пакетах чего-то говорить... а так вообще непонятно, о какой абстракции вы ведете речь


так я же только предполагаю!!!
ведь что-то же остановило и откатило мою транзакцию.. что это было я не знаю увы.....
11 май 05, 10:07    [1528522]     Ответить | Цитировать Сообщить модератору
 Re: Есть ли будущее у файл-сервера?  [new]
ASCRUS
Member

Откуда: МО Электросталь
Сообщений: 5994
Дюблю ФС
я провел опыты с выдергиванием сети.. ничего не пропало, оппоненты утверждают "если выдернуть сеть как раз в тот момент, когда именно передача данных по сети = жопа.."
я волен согласиться, НО!!! опыт такой можно реально поставить? А то ведь теория-теорией, а практика - практикой....
И потом, на КС можно такой опыт провести? Дабы быть на 105% уверенным в том, что в КС ничего не произойдет?

Я понимаю (если я ошибаюсь будьте добры ПОПРАВЬТЕ!!!)
в случае с КС на сервер отправляется команда
Execute MyStoredProcedureNo125(par1, par2....parN)
а в самой этой процедуре уже будет описана модивикация таблиц, инсерты, апдейты и так далее....
Иными словами лабо на сервак пошла вся команда Execute MyStoredProcedureNo125(par1, par2....parN)
либо, если сеть ушла на небо не пошло ничего.. то есть если сеть ушла команда передаться так к примеру
Execute MyStoredP
тута оборвало провода (направленным взрывом :-))
и этот кусок rocedureNo125(par1, par2....parN) остался.. такого быть не может... Я верно понимаю???
СОГЛАСЕН если так, хотя опять-таки без практического опыта все это просто то, что бы мы хотели видеть...
А возможно ли, что в поем примере с 5-й страницы, в случае ФС все идет тоже так... то есть на Файл-Сервер подаются не построчно команды транзакции, а некий пакет? Я НЕ знаю.. а проверить как???
2-3 месяца дергать сетевой шнур, в надежде поймать тот самый момент???
или в КС так же дергать???

Вот стоит у Вас КС РСУБД, к ней подцеплено определенное кол-во клиентов. Плюс сервер выполняет штатные задачи (например бакуп по расписанию, закачку курсов с сайта ЦБ или еще чего). Выдергиваете Вы сетевой шнур. Что происходит ? Коннекты отваливаются, сервер естественно останавливает выполнение батчей или ХП, откатывает незавершенные транзакции (т.е. возвращает данные к состоянию, которое было до начала модификации, чем и хорошо пакетное обновление данных, которое Вы отвергаете, предлагая после каждой записи делать COMMIT и таким образом рискуя в середине пути получить в таблице неизвестную половину обновленных и неизвестную половину необновленных записей в случае отката транзакции, в т.ч. и во время выдергивания сети). Однако несмотря на то, что коннекты отвалились, сервер продолжает работать, обсуживать выживших клиентов например с другой подсети, выполнять свои штатные задачи и т.д., что вполне естественно - ведь сервер, это отдельный процесс (программа), который работает несмотря на то, есть ли клиенты, есть ли сеть.

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

P.S. Чтобы "такое" не писать, очередной раз предлагаю все таки выучить матчасть по КС, у меня такое чувство возникает, что Вы даже в слабых чертах плохо себе представляете, что же такое КС.
11 май 05, 10:13    [1528545]     Ответить | Цитировать Сообщить модератору
 Re: Есть ли будущее у файл-сервера?  [new]
AlexCzech
Member

Откуда:
Сообщений: 729
Люблю ФС
так я же только предполагаю!!!
ведь что-то же остановило и откатило мою транзакцию.. что это было я не знаю увы.....


Так я ж вот и пытаюсь понять, что именно вы предполагаете... очевидно, добрую фею :)
11 май 05, 10:14    [1528549]     Ответить | Цитировать Сообщить модератору
 Re: Есть ли будущее у файл-сервера?  [new]
Люблю ФС
Guest
я разсе скрывал то, что имею очень слабое понятие о КС????
я спорю с теми, кто имея понятие о КС не имеет оного о ФС... :-)
11 май 05, 10:18    [1528567]     Ответить | Цитировать Сообщить модератору
 Re: Есть ли будущее у файл-сервера?  [new]
ASCRUS
Member

Откуда: МО Электросталь
Сообщений: 5994
Люблю ФС
я разсе скрывал то, что имею очень слабое понятие о КС????
я спорю с теми, кто имея понятие о КС не имеет оного о ФС... :-)

Ну Вы же говорите - мне КС не нужно, ФС для меня лучше. А я удивляюсь, чем лучше, если Вы не знаете КС. Это тоже самое, что заявить, что лошадь гораздо выгоднее, чем трактор, ни разу в жизни даже его не увидев :)
11 май 05, 10:23    [1528590]     Ответить | Цитировать Сообщить модератору
 Re: Есть ли будущее у файл-сервера?  [new]
AlexCzech
Member

Откуда:
Сообщений: 729
Люблю ФС
я разсе скрывал то, что имею очень слабое понятие о КС????
я спорю с теми, кто имея понятие о КС не имеет оного о ФС... :-)


Я дико извиняюсь, но мне кажется вы о ФС имеете не очень четкое представление (если ведете речь о каких-то пакетах обновлений)
11 май 05, 10:24    [1528595]     Ответить | Цитировать Сообщить модератору
 Re: Есть ли будущее у файл-сервера?  [new]
ЛП
Guest
AlexCzech
2ЛП: А вы не пробовали смотреть, какой процент процессорного времени съел MS SQL Server, а какой - ждущий ответа и привета Аксесс ? А то не совсем понятно, что мы тестируем :)

Не пробовал. Но очевидно, что довольно таки большую часть времени сожрал именно аксес. Это видно по резкому убыстрению выполнения запросов - стоило только заставить аксес выполнять холостой DoEvents вместо обращения к (еще не открытым) рекордсетам.

Так что для чистоты эксперимента необходимо разносить "клиентский" код и сервер по разным машинам.
Но я этим заниматься уже не буду.
Потому как решил перед уходом на работу запустить свой код для проверки от 1 до 256 одновременных запросов (в надежде обнаружить закономерности в скачкообразных "проседаниях").
И что бы вы думали? На 31 коннекте отсервиспаченый по самое нехочу MS SQL Server сказал мне "Access Violation" и отправил привет дяде Биллу.
Тьфу билят. И эти люди запрещают мне ковыряться пальцем в носу? Чтоб у них файл-серверы начали GPF вызывать при 30 подключениях.
11 май 05, 10:36    [1528651]     Ответить | Цитировать Сообщить модератору
 Re: Есть ли будущее у файл-сервера?  [new]
Yo!!
Guest
Urri

1. Я должен Вам еще раз сказать, что не теоретизирую, а как раз имею опыт реальной задачи. См. выше.

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

Urri

2. Нужно Вам попенять, что Вы предпочитаете не отвечать на мои вопросы. Вы спросили - я привел Вам варианты решений. И где вы увидели кастыли? Хотелось бы, чтобы с Вашей стороны критика была более предметной.

Мне просто показалось что тут все очевидно, если нет прокоментирую:

Urri

Ну, вообще говоря, легко. Первый способ - без сервера приложений, второй - с.
1. Оформляется транзакция (уж какая ни есть, но это транзакция), во время которой выполняются вышеперечисленные два запроса, но раньше них - для избыточности - такой:
insert into trbank (bank_from,bank_to,delta) values (20,21,2000000) ;
Эта таблица используется при разборе полетов, если что-то пошло не так.

ну в реальной жизни у нас не 2 таблички, в них не одно поле, а в транзакции не 2 сочетания операторов. и где у вас SCN number, где предыдущее значение ? как вы собираетесь вычислять какие транзакции прошли а какие нет ? тут профилонить не удастся прийдется делать полноценный лог транзакций, но при этом вы всех юзеров поставите в очередь писать в лог, т.е. о конкурентном доступе можно забыть. это что то типа экселя, один поработал, закрыл, другой поработал ...
и вопрос никак не могу добится ответа - как вычислить сбой ?? в лог записалось, в 1й дбф записалось, а во второй ничего не записалось, но все файлы целы. никто никогда и не узнает что деньги ушли казино.


Urri

2. Вся эта трехэтажная конструкция заменяется только записью в
insert into trbank (bank_from,bank_to,delta) values (20,21,2000000) ;
, а собственно разноску по bank1 и bank2 выполняет отдельный, выделенный процесс. Который работает с сервера приложений.

если вы клиентский комп назавете сервером суть не изменится.

Urri

- не устраивает, то я в ответ спрошу: А что в итоге легче: сломать такую защиту, подобрать пароль президента или подкупить администратора?

как защита от дурочка может и сработает, но зачем кого-то подкупать или что-то подбирать? любой снифер все покажет. в 21 веке людей взламывают угадывая числа rand() и подделывая tpc пакеты.

Urri

Консистентное чтение - вы так и не ответили, на кой оно надо (это я его намеренно не делаю, а ФС - умеет),

нет не умеет, select * from table union all select * from table2 вы не получите консистентное чтение. если речь идет о деньгах то думаю мне не нужно обхяснять дя чего, но если у вас цифры в отчетах могут гулять, то мне возразить нечем :)

Urri

Транзакции (ФС умеет, доказано практически),

покажите хоть одну реальзацию лога транзакция для dbf, нет таких.

Urri
acid - что это такое? Если кислота, то наверное она и в КС не нужна.

ACID (Atomic, Consistent, Isolation, Durable) transactions.

Urri
Блокировки на уровне записи (ФС всегда это умел - по крайней мере, FoxPro блокирует именно на уровне записи - или файла целиком),

фокспро работает с файлом а не записями и блокирует страницы.

Urri

5 видов индексов - а на кой мне столько? объясните преимущества, которые предо мной открываются, если видов индексов будет пять

еще есть кластерный индекс, IOT( Index-Organazed Table ) в терминах оракла, Обычный B-tree c разным порядком сортировки столбцов, Function-base index в том числе по функциям создаваемым пользователем, Кластерные индексы ( B-Tree , HASH), BITMAP индекс, JOIN BITMAP индексы ( используются для соединения таблиц).

Urri

Роли для защиты данных - да сам создам сколько угодно ролей! Вы же не будете отрицать, что в приложении можно это реализовать!

буду, зачем приложение если злоумышленик будет напрямую в файл писать, ваши правила это типа прятанья конфет от ребенка когда он остается один дома, т.е. не серьозно когда речь идет о деньгах, но для телефоного справочника вполне годится.
11 май 05, 10:43    [1528688]     Ответить | Цитировать Сообщить модератору
 Re: Есть ли будущее у файл-сервера?  [new]
Люблю ФС
Guest
AlexCzech
Люблю ФС
я разсе скрывал то, что имею очень слабое понятие о КС????
я спорю с теми, кто имея понятие о КС не имеет оного о ФС... :-)


Я дико извиняюсь, но мне кажется вы о ФС имеете не очень четкое представление (если ведете речь о каких-то пакетах обновлений)


ну.. не надо меня укорять незнанием... конечно всю подноготную ФС я не знаю... пишу исключительно в ВФП.... глюков нету, жалоб тоже, возможно не хватает знаний с вашей точки зрения.. но ведь повар, который готовит не обязан знать химический состав ингридиентов на уровне молекулярной химии?
11 май 05, 11:13    [1528833]     Ответить | Цитировать Сообщить модератору
 Re: Есть ли будущее у файл-сервера?  [new]
tygra
Member

Откуда: Тверь (Иркутск, Край)
Сообщений: 9997
Я предлагаю пообсуждать вопрос топика лет через 5-10.

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

-- Tygra's --
11 май 05, 11:41    [1528998]     Ответить | Цитировать Сообщить модератору
 Re: Есть ли будущее у файл-сервера?  [new]
ASCRUS
Member

Откуда: МО Электросталь
Сообщений: 5994
ЛП
Так как Ваш код не очень у меня с ASA захотел работать, я малость его подправил, в меру своих скромных познаний в VBA:
Public Function Test()
Open "c:\result.txt" For Output As #1

Dim colConnections As Collection
Dim colCommands As Collection
Dim colRecordsets As Collection
Dim sngStart As Single

Dim lngCommandCount As Long
lngCommandCount = 20
    
Dim i As Long
Dim cnn As ADODB.Connection
Dim cmd As ADODB.Command
Dim rst As ADODB.Recordset
    
Set colConnections = New Collection
Set colCommands = New Collection
Set colRecordsets = New Collection
For i = 1 To lngCommandCount
    Set cnn = New ADODB.Connection
    cnn.Provider = "ASAProv.90"
    cnn.Open "eng=Test;CON=Test_" & i & ";UID=dba"
    colConnections.Add cnn
    
    Set cmd = New ADODB.Command
    cmd.CommandText = "CALL sp_test (" & (i - 1) * 1000 + 1 & ", " & i * 1000 & ");"
    cmd.CommandType = adCmdText
    cmd.CommandTimeout = 15000
    Set cmd.ActiveConnection = colConnections(i)
    colCommands.Add cmd
        
    Set rst = New ADODB.Recordset
    Set rst.Source = colCommands(i)
    rst.CursorType = adOpenStatic
    
    colRecordsets.Add rst
Next i

sngStart = Timer
For i = 1 To lngCommandCount
    colRecordsets(i).Open , , , , adAsyncExecute
Next i

Dim Comp As Integer
Dim CompA(20) As Boolean
For i = 1 To lngCommandCount
    CompA(i) = False
Next i

Comp = 0
Do While Comp < lngCommandCount
        
    For i = 1 To lngCommandCount
        If Not CompA(i) Then
            If colRecordsets(i).State <> (adStateExecuting) Then
                colRecordsets(i).MoveLast
                CompA(i) = True
                Comp = Comp + 1
                Print #1, i, Timer - sngStart
            End If
        End If
    Next i
Loop
    
Close #1

For i = 1 To lngCommandCount
    colRecordsets(i).Close
Next i

End Function
Я не очень разобрался, почему в Вашем коде по 20 раз открывается 20 соединений, поэтому переписал, что вначале открывается 20 соединений, потом они одновременно запускаются, потом в коде идет перехват окончания статуса Execute, на всякий пожарный вызывается Fetch и потом соединение считается отработанным.

Вот результаты тестов на ASA 9, для P4 2600, 1гб RAM, под сервер выделен кэш от 300 до 700 метров, код был написан на Access 2000:
#Time
15,34375
210,96875
316,14063
421,03125
526,875
632,21875
736,92188
841,78125
946,42188
1051,04688
1155,73438
1260,3125
1364,85938
1469,73438
1574,60938
1680,70313
1785,46875
1890,48438
1997,70313
20102,8594

Монитор сервера я не смотрел, Task manager показал примерно стабильную нагрузку на процессор порядка 50%, для кэша сервер обошелся минимальной планкой (300 мб), попыток выделить память не предпринималось.
11 май 05, 11:44    [1529017]     Ответить | Цитировать Сообщить модератору
 Re: Есть ли будущее у файл-сервера?  [new]
Urri
Member

Откуда: Москва
Сообщений: 2693
2ASCRUS:
И очень похоже, что у Вас запросы выполнялись последовательно - зависимость близка к линейной.
11 май 05, 11:56    [1529076]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: Ctrl  назад   1 .. 10 11 12 13 14 [15] 16 17 18 19 .. 25   вперед  Ctrl
Все форумы / Сравнение СУБД Ответить