Dmitri Kuzmenko [EMAIL PROTECTED] ÓÏÏÂÝÉÌ/ÓÏÏÂÝÉÌÁ ×
ÎÏ×ÏÓÔÑÈ ÓÌÅÄÕÀÝÅÅ: news:[EMAIL PROTECTED]
ÓÏÂÓÔ×ÅÎÎÏ, ÒÁÓÓËÁÚ ÍÏÖÎÏ ÞÉÔÁÔØ Ó ÐÏÓÌÅÄÎÅÇÏ ÐÁÒÁÇÒÁÆÁ,
ÎÁÞÉÎÁÀÝÅÇÏÓÑ ÓÌÏ×ÁÍÉ
é ×ÏÔ ÎÁÓÔÕÐÉÌ ÓÌÁ×ÎÙÊ ÄÅÎØ, ËÏÇÄÁ ×ÅÓØ ôÉÌÌÉÎÇÅÎ ...
Ó ÔÒÕÄÏÍ ÕÄÅÒÖÉ×ÁÀÓØ ÞÔÏÂÙ ÎÅ ×ÚÑÔØ Ó ÓÏÂÏÊ Â. ÂÉÔÕ.
sw wrote:
Собственно про то, что теоретически в RC может вернутся неконсистентный набор
известно.
И как оказалось это в принципе не противоречит определению RC (на сколько я
понял).
Так точно.
в чем сложность реализации консистентных результатов агрегатных функций.
В загрузке другими
Eugene [EMAIL PROTECTED] ñîîáùèë/ñîîáùèëà â
íîâîñòÿõ ñëåäóþùåå: news:[EMAIL PROTECTED]
Ïàñêàëü - ÿçûê äëÿ [EMAIL PROTECTED]
Äëÿ êîãî, äëÿ êîãî?
Î!.. Îòêëþ÷åííûé ïðèø¸ë!.. %)
Всем привет.
Все наверное знают, что для сереализации неких процедур (или потоков)
используются мютексы, семафоры, критические секции и т.д.
Не секрет, что таковые действия иногда бывают необходимы и в СУБД при много
пользовательских обработках. С блокировочниками всё
понятно (у них
в чем сложность реализации консистентных результатов агрегатных функций.
В загрузке другими задачами
Спасибо. (Так я и думал)
PS. Просто хочется иногда сделать сверку взглядов по некоторым вопросам. :)
Что-то типа такого подойдет?
while Gen_Id(LockGen,0) = 1 do
begin
end;
Select Gen_Id(LockGen,1) from rdb$database
Тута работаем...
...
Select Gen_Id(LockGen,-1) from rdb$database
when any
Select Gen_Id(LockGen,-Gen_Id(LockGen,0)) from rdb$database
Что-то типа такого подойдет?
Спасибо, примерно что-то вроде этого (только с квадратными колёсами) недавно
изобретал.:)
А насколько часто приходится использовать такие вещи в реальных задачах?
Какие минусы проявляются при подобных подходах?
(Например ясно, что любой может безнаказанно сделать
sw wrote:
понятно (у них по-другому если и получается, то не очень). В версионной
архитектуре не минусов блокирующего подхода.
Но для реализации например псевдо-SERIALIZEBLE изоляции (например хотябы для
агрегатов) наверное был бы полезен мютексы
поддерживаемые на уровне СУБД.
sw wrote:
Поэтому хотел разобраться, в чем сложность реализации (или нецелесобразность)
консистентных результатов агрегатных функций.
Что то я не понял, что тебе мешает снапшот запустить?
--
--- Home Page http://ok.novgorod.net/ap ---
Oleg LOA wrote:
И какой толк от таких криптеров? Запускаем процесс под
отладчиком. Когда он иницилизируется в памяти и начнёт работу то
ищем по сигнатуре код ключевой функции в имадже Yap dll и т.д.
Ты вообще хоть раз РАБОТАЛ с такими вещами? :-):-):-):-)
Давай я тебе пришлю exe-шничек с
AP Приходилось, правда давно уже. Или у тебя код процесса всё время
AP шифруется/расшифровывается? Огласи метод защиты, а оценю насколько
AP это устойчиво.
посмотри в сторону AsProtect или ExeCryptor
Почитай теорию, по которой они работают
--
С уважением
Кочмин Александр
Что то я не понял, что тебе мешает снапшот запустить?
PS. А не о практике обхода (или учитывания) таковой особенности. С этим вроде
до сих пор успешно справляюсь :).
Вопрос изначально был не в этом.
Серилизация делается очень просто. RTFM look_write protected.
Это ясно. Как обехать (или избежать) я знаю и использую.
Но для читающих транзакций достаточно снапшота.
Изначальный мой вопрос имеет смысл только для RC.
Мадорский Г.В. ...
Что-то типа такого подойдет?
while Gen_Id(LockGen,0) = 1 do
begin
end;
Select Gen_Id(LockGen,1) from rdb$database
Тута работаем...
Не пойдёт. Ибо нет гарантии, что Gen_Id(LockGen,1)
выполнил только один процесс.
--
Хорсун Влад
sw [EMAIL PROTECTED] сообщил/сообщила в
новостях следующее: news:[EMAIL PROTECTED]
Что-то типа такого подойдет?
Спасибо, примерно что-то вроде этого (только с квадратными колёсами)
недавно изобретал.:)
Ну есть и еще способы - уровнем изоляции транзакций поиграться, select for
Horsun Vlad [EMAIL PROTECTED]
сообщил/сообщила в новостях следующее: news:[EMAIL PROTECTED]
Мадорский Г.В. ...
Что-то типа такого подойдет?
while Gen_Id(LockGen,0) = 1 do
begin
end;
***
Select Gen_Id(LockGen,1) from rdb$database
Тута работаем...
Не пойдёт.
Мадорский Г.В. ...
Horsun Vlad ...
Мадорский Г.В. ...
Что-то типа такого подойдет?
while Gen_Id(LockGen,0) = 1 do
begin
end;
***
Select Gen_Id(LockGen,1) from rdb$database
Тута работаем...
Не пойдёт. Ибо нет гарантии, что Gen_Id(LockGen,1)
Приветствую ( видимо вторник мой день..:)
Сидит у меня уже давно в голове одна полу бредовая идея и не хочет уходить.
Ситуация такая. PSQL в FB реализован в с системой зависимостей и это есть ГУД.
Но переодически всплывают топики о передаче имене таблицы в процедуру и т.п.
(ES с его
Alexandr Kochmin wrote:
посмотри в сторону AsProtect или ExeCryptor
Почитай теорию, по которой они работают
Ох уж это время фастфуда и кока-колы... Увы, но
решения на типовых защитных системах не могут быть
признаны надёжными. Код как я понял замусорен
полиморфным генератором, (неуже все
однотипных процедур, в которых отличается только пара названий метаданных.
Появилась идея:
Создавать что-то вроде шаблонов, которые хранятся в самой базе.
это решается препроцессором SQL, у нас, например свой, с IBExpert-ом идет
свой
некоторые решают это средой разработки
нормы приличия
Hi sw
Что думаете?
Спасибо за внимание.
template Table T1,Table T2)
create procedure P1(...)
as
begin
end;
select from P1MyTable1,MyTable2(...)?
WBER Evgney Putilin.
update MASTER_TABLE set MY_AGREGAT = (select sum(COST) from DETAIL_TABLE)
две транзакции одновременно такое сделать не смогут - выскочит dead lock
я таким образом считаю агрегаты по документам
PS пример есс-но нерабочий, оформляется в виде процедуры
Спасибо, но это из несколько другой оперы.
while Gen_Id(LockGen,0) = 1 do
begin
end;
***
Select Gen_Id(LockGen,1) from rdb$database
Тута работаем...
Не пойдёт. Ибо нет гарантии, что Gen_Id(LockGen,1)
выполнил только один процесс.
В смысле может вклинится еще один процесс в промежуток отмеченный
ЕПtemplate Table T1,Table T2)
ЕПcreate procedure P1(...)
ЕПas
ЕПbegin
ЕП
ЕПend;
ЕП
ЕПselect from P1MyTable1,MyTable2(...)?
Примерно да.
Но перед использованием данные шаблоны интерпретируются в соответствующий
нормальный PSQL-код с нужными параметрами. А далее ими
пользуются как обычными
БАэто решается препроцессором SQL, у нас, например свой, с IBExpert-ом идет
БАсвой
БАнекоторые решают это средой разработки
А как это у Вас реализовано?
БАнормы приличия оно нарушает, хотя бы в части прав
Спасибо, тоже надо обмозговать. Хотя это несколько из другой сферы, но логично
sw wrote:
Понятно, что реализация такого подхода скорее всего потребует хранить снимок
TIP на момент начала запроса с агрегатом.
Чем и занимается собсно concurrency спокон веку.
--
Regards. Ded.
Hi sw
ЕПtemplate Table T1,Table T2)
ЕПcreate procedure P1(...)
ЕПas
ЕПbegin
ЕП
ЕПend;
ЕП
ЕПselect from P1MyTable1,MyTable2(...)?
Примерно да.
Но перед использованием данные шаблоны интерпретируются в соответствующий
нормальный PSQL-код с нужными параметрами. А далее ими
Evgeny Putilin wrote:
Будеш спонсором пиши ТЗ
Послать я и без этого могу :-)
--
Дмитрий Еманов
sw wrote:
Конечно всё это можно реализовать на клиенте, но вопрос именно про серверную
реализацию.
Диалектическая спираль. Как мне использовать ES/EB не используя ES/EB.
--
Regards. Ded.
Понятно, что реализация такого подхода скорее всего потребует хранить снимок
TIP на момент начала ЗАПРОСА с агрегатом.
DedЧем и занимается собсно concurrency спокон веку.
На начало ТРАНЗАКЦИИ - да.
В принципе ДЕ уже ситуацию подитожил :)
Мадорский Г.В. wrote:
Конечно - кто-то же должен уменьшить генератор ;)
Так почему кто-то другой не может его увеличить ?
Вероятность такая есть конечно, спорить не буду. Но я лет пять назад ей
пренебрег. Пока не нарывался... :).
Без блокировок (в том или ином виде) такие задачи
А как это у Вас реализовано?
например так:
код вида
create table DOC$ITEMS( -- Экземпляры документов
ID ZLS$PK, -- Первичный ключ
ID_K ZLS$FK,-- Вид документа
NAME ZLS$NAME, -- Идентификатор документа
COMMENT ZLS$COMMENT,
Понятно что такие действия в общем случае желательны в снапшотах. Но
всё-таки...
хочешь сделать так чтобы ReadCommited работала также как снапшот?
--
Булычев Алексей
http://www.stella-npf.ru
БАнапример так:...
Спасибо, а для PSQL что-нибудь использовали?
Boulitchev Aleksey ...
Понятно что такие действия в общем случае желательны в снапшотах. Но
всё-таки...
хочешь сделать так чтобы ReadCommited работала также как снапшот?
Есть разница когда снапшот работает в пределах всей тр-ции, или когда
у каждого запроса _свой новый_ снапшот
--
Спасибо, а для PSQL что-нибудь использовали?
а нам не надо :)
--
Булычев Алексей
http://www.stella-npf.ru
úÄÒÁ×ÓÔ×ÕÊÔÅ!
÷ÏÚÍÏÖÎÏ ÌÉ × FB2 ÏÐÒÅÄÅÌÉÔØ (ÂÅÚ ÐÁÒÓÉÎÇÁ ÓÔÒÏËÉ ÐÏÄËÌÀÞÅÎÉÑ), ÉÓÐÏÌØÚÕÅÔÓÑ
ÌÉ ×
ÄÁÎÎÙÊ ÍÏÍÅÎÔ ÌÏËÁÌØÎÙÊ ËÏÎÎÅËÔ.
òÁÎØÛÅ × FB1.5.3 Ñ ÉÓÐÏÌØÚÏ×ÁÌ ÆÕÎËÃÉÀ GetIsRemoteConnect ÉÚ ÂÉÂÌÉÏÔÅËÉ
FibPlus,
ËÏÔÏÒÁÑ, × Ó×ÏÀ ÏÞÅÒÅÄØ, ÉÓÐÏÌØÚÕÅÔ API ÆÕÎËÃÉÀ isc_database_info Ó
ÐÁÒÁÍÅÔÒÏÍ
sw wrote:
Нет.
Просто интересно было ситуация, вкоторой каждый запрос оборачивается в своего
рода мини снапшот. И насколько таковая фича реальна в
FB.
Конечно остаются ещё много неопределённостей (вложенные запросы, процедуры,
срабатывание триггеров и т.д.).
Так. Знач, важно чтоб агрегат
а нам не надо :)
Спасибо за комплимент, но я не обижаюсь.
Изначально вопрос появился из-за того, что во многих системах FB используется
только как транзакционный движок для хранения данных.
Часто вся логика обработок находится в клиенте и без единой процедуры. Может
конечно из-за соображений
Marat Zigangirov wrote:
Так должно быть, или это баг?
Спорный вопрос :-) Но даже если баг, в 2.0 он наверняка не будет исправлен.
Если это нормальное поведение, то возможно
ли получить с сервера информацию о том, локальный или удаленный коннект?
RDB$GET_CONTEXT('SYSTEM',
оригинальничания? Всё-тки трудно, как же трудно, божежмой, сначала думать,
потом хотеть, наоборот-то куда как антересней...
Дед, они наверное о том, что в агрегате типа
select sum(*), count(*), avg(FIELD1) from MY_TABLE
может пойти рассогласование.
мое-то мнение простое, если группа
Boulitchev Aleksey wrote:
мое-то мнение простое, если группа отчетов(выборок в отчете) может
расходиться - значит снапшот, если отчет оценочный - значит read commited
Дык и я об том же.
--
Regards. Ded.
Marat Zigangirov wrote:
Только в доках про переменную NETWORK_PROTOCOL ничего нет.
/doc/sql.extentions/README.context_variables2.txt
--
Дмитрий Еманов
Лисапет на гусеничном ходу гришь? А чо бы просто-напросто не завести
табличку
Critical_Functions
Function_Name (или Functions_Group_Name)
Column_For_Block
и долбиться в неё с блокировкой перед стартом функции до получения
удовлетворения? Классический случай варианта 6 упомянутой тобой
Появилась идея:
Создавать что-то вроде шаблонов, которые хранятся в самой базе.
Которые бы компились бы с подстановной соответствующих параметров,
соответственно можно использовать и макросы, хранящиеся
отдельно.
Execute block тебе в руки. Но только помнить при этом, что отсутствие
/doc/sql.extentions/README.context_variables2.txt
âÌÉÎ, ÔÏÞÎÏ. ñ ÐÒÏ ÜÔÕ ÐÁÐËÕ ÓÏ×ÓÅÍ ÚÁÂÙÌ - ×ÓÅ ÒÅÌÉÚ-ÎÏÔÙ ÞÉÔÁÀ.
Marat Zigangirov
Мадорский Г.В. wrote:
P.S. А ты на конференции будешь?
Не-а.
--
Regards. Ded.
Marat Zigangirov wrote:
все релиз-ноты читаю.
Их тоже подправим к релизу.
--
Дмитрий Еманов
P.S. А ты на конференции будешь?
Не-а.
а я кристалла калужского заготовил. может передать через доверенное лицо?
--
Булычев Алексей
http://www.stella-npf.ru
Marat Zigangirov wrote:
RDB$GET_CONTEXT('SYSTEM', 'NETWORK_PROTOCOL')
Спасибо, работает. Только в доках про переменную NETWORK_PROTOCOL ничего
нет.
Забыли, наверное.
Marat Zigangirov
NETWORK_PROTOCOL | The network protocol used by client to connect.
Currently
|
Boulitchev Aleksey wrote:
а я кристалла калужского заготовил. может передать через доверенное лицо?
Смущаясь и ковыряя ножкой линолеум - ну... если Глебушка поедет... с
ним вместе и продегустируем потом, спасибо :)
--
Regards. Ded.
P.S. А ты на конференции будешь?
Не-а.
Жаль. А то жена мне тут притаранила оч-чень недурственного коньячку. Думаю в
поезд с собой бутылек прихватить :). Правда я и сам до сих пор в непонятках.
Может в пятницу на урал лететь придется...
With b/r. Gleb.
Hello,
Dmitry Yemanov said the following on 22.09.2006 10:01:
2) Документация по продукту. Да, писать книги сложно. Даже википедия не
особо побуждает народ вкладываться материалами. И, честно говоря, я не
вижу тут вариантов улучшения ситуации. Но даже перевод существующих
документов на
Dmitry Yemanov wrote:
Marat Zigangirov wrote:
все релиз-ноты читаю.
Их тоже подправим к релизу.
А когда уже? Обещали на этой неделе снапшоты 2.1 - будут?
Андрій Жук wrote:
А когда уже?
Когда вы перестанете баги постить.
Обещали на этой неделе снапшоты 2.1 - будут?
Не до них щаз. Будут после московской конфы.
--
Дмитрий Еманов
Dmitry Yemanov wrote:
Андрій Жук wrote:
А когда уже?
Когда вы перестанете баги постить.
Провокатор! Халтурщик! :-D
--
Regards. Ded.
Hello, sw!
sw wrote:
Ситуация такая. PSQL в FB реализован в с системой зависимостей и это есть ГУД.
Но переодически всплывают топики о передаче имене таблицы в процедуру и т.п.
(ES с его ограничениями не будем рассматривать.) Похожий вопрос наверное
возникал у любого, которому приходилось
http://www.dni.ru/news/world/2006/10/10/91642.html
--
Булычев Алексей
http://www.stella-npf.ru
и потом - ты в компиляторе можешь обратиться к переменной через ее имя
в другой переменной? Нет? А тогда чего...
было такое в xBase:
и где теперь xBase +:) ?
--
Булычев Алексей
http://www.stella-npf.ru
Dmitri Kuzmenko пишет:
а не надо однотипные процедуры создавать.
и потом - ты в компиляторе можешь обратиться к переменной через ее имя
в другой переменной? Нет? А тогда чего...
было такое в xBase:
a = 'b'
b = 5
? a.
:-D
--
С уважением,
Андрей Еремин.
Oleg LOA [EMAIL PROTECTED] ÓÏÏÂÝÉÌ/ÓÏÏÂÝÉÌÁ × ÎÏ×ÏÓÔÑÈ
ÓÌÅÄÕÀÝÅÅ: news:[EMAIL PROTECTED]
Boltik Evgeny [EMAIL PROTECTED] wrote in
message news:[EMAIL PROTECTED]
ÉÎÄÅËÓÕ ÐÏ ×ÙÒÁÖÅÎÉÀ ôÁË ÞÔÏ Ñ ÄÕÍÁÀ ÜÔÏ ÒÅÁÌÉÚÕÅÍÏ. éÎÁÞÅ ËÁË ÖÅ ÉÎÄÅËÓ
ÐÏ
×ÙÒÁÖÅÎÉÀ ÖÉ×ÅÔ ÂÅÚ ÷ ËÌÀÞÁÈ ÎÅÔ ÉÄÅÎÔÉÆÉËÁÔÏÒÏ×
Hello, Andrei!
Andrei Yeryomin wrote:
было такое в xBase:
я про компилятор, а ты мне про интерпретатор...
--
Dmitri Kouzmenko, www.ibase.ru, (495) 953-13-34
Hello, Evgeny!
Boltik Evgeny wrote:
Естественно прийдется сделать ссылки на несколько записей по связи. Раз есть
какие то механизмы то и то про что я говорю можно реализовать. Ускорение
будет в разы на некоторых запросах и упрощение в конструировании таблиц.
Сейчас приходится ради индекса и
Hi Dmitri Kuzmenko
и потом - ты в компиляторе можешь обратиться к переменной через ее имя
в другой переменной? Нет? А тогда чего...
Могеш могеш, тока народ это любит называть Debug API :-D
WBR Evgeny Putilin.
Спиртом его, спиртом!
Dmitri Kuzmenko wrote:
и потом - ты в компиляторе можешь обратиться к переменной через ее имя
в другой переменной? Нет? А тогда чего...
RTTI ?
66 matches
Mail list logo