Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Unsuccessful metadata update при удалении данных / 23 сообщений из 23, страница 1 из 1
28.04.2021, 15:47
    #40066784
nekoriu
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Unsuccessful metadata update при удалении данных
Добрый день.

Пишу тест производительности Firebird. Запускаю 1000 потоков. Каждый поток выполняет удаление своей порции данных в БД.

Использую компонент FirebirdSql.Data.FirebirdClient на C#.

Firebird 2.5. Режим Superserver.

Возникает много ошибок:
unsuccessful metadata update request depth exceeded. (Recursive definition?)

На 100 потоках нет ошибок.

В режиме Classic server проблем нет.
...
Рейтинг: 0 / 0
28.04.2021, 15:58
    #40066790
hvlad
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Unsuccessful metadata update при удалении данных
nekoriu
unsuccessful metadata update request depth exceeded. (Recursive definition?)
1000 активных клонов одного и того же запроса. Процедура ?
...
Рейтинг: 0 / 0
28.04.2021, 17:49
    #40066856
nekoriu
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Unsuccessful metadata update при удалении данных
В потоке выполняются такие команды:
EXECUTE BLOCK
AS
DECLARE VARIABLE id integer;
...

BEGIN
-- пользователь, от имени которого удаляется
emp_id = 0;
flag = 1; -- по умолчанию 1, чтобы хотя бы раз запрос выполнился
while (flag = 1) do
begin
flag = 0; -- в каждой итерации сбросить на 0, чтобы выйти из цикла, когда записи кончатся
in autonomous transaction -- автономная транзакция - для commit посaле обработки каждых 2000 удалений
do
begin
for select first 2000 ecd_id from table1 cd where cd.uso_id = Auso_id
into :id
do
begin
flag = 1; -- в этой итерации записи есть, значит нужна как минимум следующая
delete from table1session where ecd_id = :id;
execute procedure del_something(:id, :emp_id) returning_values :res;
end
end
end

flag = 1; -- по умолчанию 1, чтобы хотя бы раз запрос выполнился
while (flag = 1) do
begin
flag = 0; -- в каждой итерации сбросить на 0, чтобы выйти из цикла, когда записи кончатся
in autonomous transaction -- автономная транзакция - для commit после обработки каждых 2000 удалений
do
begin
for select first 2000 s.mss_id from table2 s where s.uso_id = Auso_id
into :mss_id do
begin
flag = 1;
update table3 set mss_id = null where mss_id = :mss_id;
delete from table4 where mss_id = :mss_id;
...
end
end
end

END
...
Рейтинг: 0 / 0
28.04.2021, 18:13
    #40066870
nekoriu
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Unsuccessful metadata update при удалении данных
Предыдущее сообщение в более понятном виде.
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
EXECUTE BLOCK
AS
DECLARE VARIABLE id integer;
...

BEGIN
    -- пользователь, от имени которого удаляется
    emp_id = 0;
    flag = 1; -- по умолчанию 1, чтобы хотя бы раз запрос выполнился
    while (flag = 1) do
    begin
        flag = 0; -- в каждой итерации сбросить на 0, чтобы выйти из цикла, когда записи кончатся
        in autonomous transaction -- автономная транзакция - для commit посaле обработки каждых 2000 удалений
        do
        begin
            for select first 2000 ecd_id from table1 cd where cd.uso_id = Auso_id
                into :id
            do
            begin
                flag = 1; -- в этой итерации записи есть, значит нужна как минимум следующая
                delete from table1session where ecd_id = :id;
                execute procedure del_something(:id, :emp_id) returning_values :res;
            end
        end
    end

    flag = 1; -- по умолчанию 1, чтобы хотя бы раз запрос выполнился
    while (flag = 1) do
    begin
        flag = 0; -- в каждой итерации сбросить на 0, чтобы выйти из цикла, когда записи кончатся
        in autonomous transaction -- автономная транзакция - для commit после обработки каждых 2000 удалений
        do
        begin
            for select first 2000 s.mss_id from table2 s where s.uso_id = Auso_id
                into :mss_id do
            begin
                flag = 1;
                update table3 set mss_id = null where mss_id = :mss_id;
                delete from table4 where mss_id = :mss_id;
            ...
            end
        end
    end

END
...
Рейтинг: 0 / 0
28.04.2021, 18:37
    #40066894
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Unsuccessful metadata update при удалении данных
Какой сильный способ отстрелить себе ногу! Так вот для кого вакансии со словом "ниндзя"...
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
28.04.2021, 19:18
    #40066940
hvlad
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Unsuccessful metadata update при удалении данных
nekoriu,

ты всё ещё не видишь процедуру ?
...
Рейтинг: 0 / 0
28.04.2021, 19:50
    #40066958
kdv
kdv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Unsuccessful metadata update при удалении данных
nekoriu,

Код: sql
1.
2.
  update table3 set mss_id = null where mss_id = :mss_id;
  delete from table4 where mss_id = :mss_id;


на какой-то бред похоже.
a:=5;
if a = 6 then ... // т.е. кусок кода который всегда даст false. А выше - не удалит ни одной записи.
...
Рейтинг: 0 / 0
28.04.2021, 20:20
    #40066969
hvlad
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Unsuccessful metadata update при удалении данных
kdv,

table3 это не table4
...
Рейтинг: 0 / 0
28.04.2021, 20:22
    #40066970
kdv
kdv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Unsuccessful metadata update при удалении данных
hvlad,

а, проглядел
...
Рейтинг: 0 / 0
29.04.2021, 09:54
    #40067082
nekoriu
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Unsuccessful metadata update при удалении данных
Dimitry Sibiryakov, чего плохого в коде?
...
Рейтинг: 0 / 0
29.04.2021, 09:58
    #40067085
nekoriu
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Unsuccessful metadata update при удалении данных
авторты всё ещё не видишь процедуру ?

Вижу. Какие проблемы возникают из-за процедуры?
...
Рейтинг: 0 / 0
29.04.2021, 10:00
    #40067087
Симонов Денис
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Unsuccessful metadata update при удалении данных
nekoriu,

а что в ней в этой процедуре?
...
Рейтинг: 0 / 0
29.04.2021, 10:28
    #40067099
nekoriu
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Unsuccessful metadata update при удалении данных
В процедуре выполняются команды select, много команд delete, update, suspend, insert в лог,
много вызовов других процедур. Код не мой, побродил немного по нему.
...
Рейтинг: 0 / 0
29.04.2021, 11:06
    #40067121
hvlad
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Unsuccessful metadata update при удалении данных
nekoriu
Какие проблемы возникают из-за процедуры?
Нет проблем ? Тогда всё хорошо :)

Выше всё написано:
nekoriu
request depth exceeded. (Recursive definition?)
hvlad
1000 активных клонов одного и того же запроса
...
Рейтинг: 0 / 0
29.04.2021, 11:07
    #40067122
hvlad
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Unsuccessful metadata update при удалении данных
nekoriu
Запускаю 1000 потоков.
Плохая идея.

А сочетании с
nekoriu
Firebird 2.5. Режим Superserver.
- очень плохая идея.
...
Рейтинг: 0 / 0
29.04.2021, 11:10
    #40067125
Мимопроходящий
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Unsuccessful metadata update при удалении данных
nekoriu
В процедуре выполняются команды select, много команд delete, update, suspend, insert в лог,
много вызовов других процедур. Код не мой, побродил немного по нему.

...
Рейтинг: 0 / 0
29.04.2021, 12:04
    #40067156
Дегтярев Евгений
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Unsuccessful metadata update при удалении данных
с тыщами коннектов только классик... но и там щастя нет
...
Рейтинг: 0 / 0
29.04.2021, 12:10
    #40067160
nekoriu
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Unsuccessful metadata update при удалении данных
автор1000 активных клонов одного и того же запроса.
У каждого потока свое значение Auso_id.
...
Рейтинг: 0 / 0
29.04.2021, 12:13
    #40067162
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Unsuccessful metadata update при удалении данных
nekoriuчего плохого в коде?

Всё, начиная с идеи отрезать кошке хвост по частям.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
29.04.2021, 12:26
    #40067168
hvlad
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Unsuccessful metadata update при удалении данных
nekoriu
автор1000 активных клонов одного и того же запроса.

У каждого потока свое значение Auso_id.И шо ?
Может прочитать внимательно то, что было уже дважды написано ?
Может задуматься - а зачем мне это пишут, а почему именно это мне пишут ?
...
Рейтинг: 0 / 0
29.04.2021, 12:38
    #40067176
Симонов Денис
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Unsuccessful metadata update при удалении данных
да ладно вам. Человек тест производительности пишет, а не реальную прогу.

Правда тестирование многопоточного удаления весьма странное занятие.

nekoriu,

я тебе и без твоего теста скажу Superserver 2.5 ничего хорошего в многопоточном тесте не покажет. Хочешь тестировать многопоточность SS тестируй в 3.0 и 4.0.
...
Рейтинг: 0 / 0
29.04.2021, 12:48
    #40067185
Мимопроходящий
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Unsuccessful metadata update при удалении данных
Симонов Денис
Человек тест производительности пишет,
для этого есть TPC
http://www.tpc.org/

а человек занимается программистским онанизмом в особо извращенной форме.
...
Рейтинг: 0 / 0
29.04.2021, 14:11
    #40067252
nekoriu
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Unsuccessful metadata update при удалении данных
Всем спасибо.
...
Рейтинг: 0 / 0
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Unsuccessful metadata update при удалении данных / 23 сообщений из 23, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]