On-line: alex_II, гостей 0. Всего: 1 [подробнее..]
АвторСообщение



Не зарегистрирован
Зарегистрирован: 01.01.70
ссылка на сообщение  Отправлено: 04.03.05 14:32. Заголовок: INDEX CORRUPTION


Подскажите алгоритм, как в многопользовательской системе возможно организовать переиндексацию не завершая работу пользователей. Я вижу только один вариант - всем завершить работу открыть БД в режиме EXCLUSIVE затем переиндексировать. А если пользователей много и они находятся далеко друг от друга?

Спасибо: 0 
Цитата Ответить
Ответов - 15 [только новые]





Не зарегистрирован
Зарегистрирован: 01.01.70
ссылка на сообщение  Отправлено: 04.03.05 18:44. Заголовок: Re: INDEX CORRUPTION


mike
Ты сам ответил на свой вопрос.

Спасибо: 0 
Цитата Ответить



Не зарегистрирован
Зарегистрирован: 01.01.70
ссылка на сообщение  Отправлено: 04.03.05 20:06. Заголовок: Re: Dima


Это самый простой вариант, а если пользователей 20 человек, пока всем сообщишь о том что нужно перегрузить прогу, уже ошибки пойдут!
Хотелось бы что-то типа такого: повесить например на какое нибудь прерывание флаг закрытия БД, т.е. на момент индексации все пользователи приостанавливаются и БД закрывается, пока пользователь вызвавший команду переиндексации не восстановит индексы, а затем все снова открывают БД и продолжают с текущего места.
К сожалению я с прерываниями не работал, а вот может есть какой прибамбас, который в фоновом режиме мог опрашивать такую команду?

Спасибо: 0 
Цитата Ответить



Не зарегистрирован
Зарегистрирован: 01.01.70
ссылка на сообщение  Отправлено: 04.03.05 20:16. Заголовок: Re: INDEX CORRUPTION


Попробуй держать такой флаг в спец базе , структуру сам придумай.
И эту базу опрашивай через определенные промежутки времени.
Корректно работающие функции в плане «опроса» есть в библиотеке Nanfor которая бесплатна.
Взять ее можно где угодно ..........хотя что бы не искал долго вот к примеру ссылка.
http://blinkinc.com/dl/misc/nfkit.zip

Реально сам так не делал ......не было необходимости , так как большие сетевые задачи у меня висят под ADS , который в свою очередь не дает упасть индексам , чо проверено многолетней практикой ;)

Спасибо: 0 
Цитата Ответить



Не зарегистрирован
Зарегистрирован: 01.01.70
ссылка на сообщение  Отправлено: 05.03.05 00:44. Заголовок: Re: INDEX CORRUPTION


mike

И как ты определяешь, что индекс начал рушиться, интересно?
У меня примерно 1/6 всех индексов (посменно) пересоздаются при запуске программы там, где лежат базы. При этом все юзвери знают, что в начале рабочего дня программа должна быть запущена на «сервере» (т.о. совершенно необязательно монопольное использование баз)

Спасибо: 0 
Цитата Ответить



Не зарегистрирован
Зарегистрирован: 01.01.70
ссылка на сообщение  Отправлено: 05.03.05 01:14. Заголовок: Re: lukash


Когда много пользователей всегда происходит какой то гемор, или ошибки программы, или ошибки при работе ОС, что нибудь зависает, поэтому при некорректно закрытой БД всегда возникают сомнения в целостности индексов, которые либо отражаются явно в виде сообщений CORRUPTION DETECT либо ты узнаешь об этом потом, когда нарушается целостность структуры записей. А индексы у меня то-же каждый раз при запуске переиндексируются однако как оказалось этого недостаточно.

Спасибо: 0 
Цитата Ответить



Не зарегистрирован
Зарегистрирован: 01.01.70
ссылка на сообщение  Отправлено: 07.03.05 01:18. Заголовок: Re: Dima


Спасибо за ссылочку, получилось все супер!

Спасибо: 0 
Цитата Ответить



Не зарегистрирован
Зарегистрирован: 01.01.70
ссылка на сообщение  Отправлено: 07.03.05 01:48. Заголовок: Re: INDEX CORRUPTION


mike
Ты не понял вопроса Андрея Лукашевского ;)!!!!
Перевожу по простому.
Как ты определяешь в программе что с базой не все нормально ?
Я по своему проверяю........хотел бы услышать твой и увидеть твой вариант.
Учиться ни когда не поздно (это я про себя ;))

Спасибо: 0 
Цитата Ответить



Не зарегистрирован
Зарегистрирован: 01.01.70
ссылка на сообщение  Отправлено: 07.03.05 08:16. Заголовок: Re: mike


mike

При аварийном завершении у меня тоже пересоздаются все индексы, причём не REINDEXом, а с физическим удалением файлов NTX и созданием их снова.
А об аварийном завершении сигнализирует запись в особом файлике, содержащем все даты/время начала сеанса работы и его завершения (точнее, отсутствие записи о завершении сеанса работы)

Спасибо: 0 
Цитата Ответить



Не зарегистрирован
Зарегистрирован: 01.01.70
ссылка на сообщение  Отправлено: 08.03.05 03:25. Заголовок: Re: Dima


Ну что мы толчем воду в ступе, проверяю как все, по некорректно закрытому приложению (quit файлу). Смотри вопрос в начале, задача именно в том и состоит что-бы пересоздать индексы не закрывая приложений пользователей! Однако я уже воспользовался функцией FT_ONTICK() из NF для организации такого алгоритма. А вот где можно добыть ADS?

Спасибо: 0 
Цитата Ответить



Не зарегистрирован
Зарегистрирован: 01.01.70
ссылка на сообщение  Отправлено: 08.03.05 03:49. Заголовок: Re: INDEX CORRUPTION


mike
Тебе под какую ОС нужен ADS и какая версия ?

Спасибо: 0 
Цитата Ответить



Не зарегистрирован
Зарегистрирован: 01.01.70
ссылка на сообщение  Отправлено: 08.03.05 14:21. Заголовок: Re: Dima


Что порекомендуешь, я хочу поэкспериментировать, у меня clipper5.3b+ct3+pm+ntx, user-win98, server-nov.nw5, т.к. БД не очень большая (20Мб), пока обхожусь без ADS, просто интересно насколько измениться производительность?

Спасибо: 0 
Цитата Ответить



Не зарегистрирован
Зарегистрирован: 01.01.70
ссылка на сообщение  Отправлено: 08.03.05 14:40. Заголовок: Re: INDEX CORRUPTION


Под Сервер NW 5 у меня нет ничего.
Для 3.12 есть ;)

Есть 7.1 для Win9X (но я с ним не работал) да и на 9 юзеров он.
Есть 7.1 для NT ,2000 и тд
Есть 7.1 для Linux

Для Novell реально работающий есть ADS 5.1

Спасибо: 0 
Цитата Ответить



Не зарегистрирован
Зарегистрирован: 01.01.70
ссылка на сообщение  Отправлено: 08.03.05 14:42. Заголовок: Re: INDEX CORRUPTION


Да и NTX выкинь ........ну зачем тебе толстые и не поворотливые индексы ? ;)
Clipper 5.3 - тогда уж CDX сам бог велел

Спасибо: 0 
Цитата Ответить



Не зарегистрирован
Зарегистрирован: 01.01.70
ссылка на сообщение  Отправлено: 09.03.05 01:04. Заголовок: Re: Dima


А CDX -быстрее работают? По поводу CDX я слышал мнение что они более критичны к нестабильности системы.

Спасибо: 0 
Цитата Ответить



Не зарегистрирован
Зарегистрирован: 01.01.70
ссылка на сообщение  Отправлено: 09.03.05 14:40. Заголовок: Re: INDEX CORRUPTION


mike пишет:
цитата
А CDX -быстрее работают? По поводу CDX я слышал мнение что они более критичны к нестабильности системы.

Да, они немного медленнее!!! Но только при наличии большего кол-ва удаленных записей в таблице. А так одни только преимущества перед NTX. У меня база под ADS 70-75 таблиц общим объемом около 2-гиг. Технологически, переиндексация с упаковкой происходит раз в неделю и Вуаля. Кроме того в ADS есть мониторинг пользователей если мне надо всех выгнать то достаточно вызвать список пользователей подключенных к базе и Секир башка им

Спасибо: 0 
Цитата Ответить
Ответ:
1 2 3 4 5 6 7 8 9
большой шрифт малый шрифт надстрочный подстрочный заголовок большой заголовок видео с youtube.com картинка из интернета картинка с компьютера ссылка файл с компьютера русская клавиатура транслитератор  цитата  кавычки моноширинный шрифт моноширинный шрифт горизонтальная линия отступ точка LI бегущая строка оффтопик свернутый текст

показывать это сообщение только модераторам
не делать ссылки активными
Имя, пароль:      зарегистрироваться    
Тему читают:
- участник сейчас на форуме
- участник вне форума
Все даты в формате GMT  3 час. Хитов сегодня: 26
Права: смайлы да, картинки да, шрифты да, голосования нет
аватары да, автозамена ссылок вкл, премодерация откл, правка нет