On-line: Dr. Oldwarez, гостей 1. Всего: 2 [подробнее..]
АвторСообщение
alkresin
moderator


Пост N: 31
Зарегистрирован: 06.07.06
ссылка на сообщение  Отправлено: 31.01.08 11:36. Заголовок: Leto DB Server (продолжение)


Только что открыл на Sourceforge новый проект - Leto DB Server - https://sourceforge.net/projects/letodb

Это мультиплатформенный ( Windows, Unix/Linux ) сервер баз данных, предоставляющий клиентским программам доступ к dbf/cdx файлам, находящимся на удаленном сервере ( можно и на локальном компьютере запускать - в отладочных целях ). В общем, как ADS :).

Проект - на стадии разработки, не все даже базовые функции еще реализованы, до оптимизации дело еще не дошло. Но работает :).
Крутится у меня на сервере несколько дней, подключал до 15 клиентов, пока не падает. Мои программы работают с ним нормально.

Преимущества по сравнению с обычным файл-сервером:
1) Безопасность - базы могут быть в каталоге, недоступном для клиентских компьютеров - никто их случайно не удалит и не повредит.
2) Поскольку базы открываются серверной программой, а не клиентской, ее целостности ничего не грозит при случайном отключении клиентского компьютера.
3) значительное уменьшение сетевого траффика.
4) Должен быть, по идее, выигрыш в скорости.
5) Возможность контроля за пользователями с помощью утилиты manage ( можно придумать и другие формы контроля ).
6) Можно будет сделать транзакции, stored procedures на Харборе, ... и вообще все в наших руках :).

Кто хочет участвовать в разработке, тестировании - пишите.



Спасибо: 0 
Профиль
Ответов - 193 , стр: 1 2 3 4 5 6 7 8 9 10 All [только новые]


alkresin
moderator


Пост N: 241
Зарегистрирован: 06.07.06
ссылка на сообщение  Отправлено: 26.10.09 14:24. Заголовок: alx_on пишет: Прост..


alx_on пишет:

 цитата:
Простой фильтр - клиент сам проверяет выражение фильтра на каждой записи
Оптимизированный - фильтр ставится на сервере


А, ну да, точно ... Просто есть какие-то еще оптимизированные фильтры в некоторых RDD - я подумал, что вы о них.

 цитата:
1. (1) клиент вызвал FLock()
2. (2) клиент сделал dbappend() (успешно, ему ничего не помешало, на сервер ничего не ушло, запись НЕ заблокировалась, ошибки не произошло)
теперь оба клиента уверены, что у них все хорошо


Не уверены. При реальном добавлении записи на сервере произойдет ошибка, клиенту будет послан соответствующий ответ и его программа ( если не стоит BEGIN SEQUENCE ... ) аварийно завершится.
Но, конечно, проверка на NetErr() лучше, чем аварийное завершение.

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


Согласен. Именно в runtime - какую-нибудь SetAppendMode(). Но чтоб прежний вариант ( быстрый ) стоял по умолчанию :)

 цитата:
Существуют и другие ошибки при добавлении записи (например, место на диске кончилось, сеть тоже кончилась:) и т.д.)


А вот при такого рода проблемах аварийное завершение, которое произойдет сразу после попытки записать добавленную запись на сервер, - это нормально.

Спасибо: 0 
Профиль
alkresin
moderator


Пост N: 242
Зарегистрирован: 06.07.06
ссылка на сообщение  Отправлено: 26.10.09 14:34. Заголовок: Pasha пишет: т.е., ..


Pasha пишет:

 цитата:
т.е., для letodb neterr() должен посылать запрос на сервер на предмет блокировок. В этом случае все равно получится 2 запроса при dbAppend: на neterr и commit. Но, если пользователь уверен, что FLock() не используется, он может не выдавать NetErr()


Нет, пусть уж лучше dbAppend() посылается сразу на сервер и получает ответ, на основе которого можно выставить флаг для NetErr(). Но только при SetAppendMode( .t. )

Спасибо: 0 
Профиль
alx_on
постоянный участник


Пост N: 20
Зарегистрирован: 07.07.09
ссылка на сообщение  Отправлено: 26.10.09 15:28. Заголовок: alkresin пишет: Не ..


alkresin пишет:

 цитата:
Не уверены. При реальном добавлении записи на сервере произойдет ошибка, клиенту будет послан соответствующий ответ и его программа ( если не стоит BEGIN SEQUENCE ... ) аварийно завершится.


Это в случае, если не успели снять flock :)

 цитата:
Но только при SetAppendMode( .t. )


Годится
PS можете меня включить в список доступа на обновление letodb? :)

Спасибо: 0 
Профиль
alkresin
moderator


Пост N: 243
Зарегистрирован: 06.07.06
ссылка на сообщение  Отправлено: 26.10.09 15:33. Заголовок: Это в случае, если н..



 цитата:
Это в случае, если не успели снять flock :)


А если успели, то запись успешно добавится.


 цитата:
PS можете меня включить в список доступа на обновление letodb?


Какой у вас логин на Sourceforge ?

Спасибо: 0 
Профиль
alkresin
moderator


Пост N: 244
Зарегистрирован: 06.07.06
ссылка на сообщение  Отправлено: 26.10.09 15:36. Заголовок: По поводу последних исправлений


Pasha,

а зачем вы в manage.prg изменили путь к rddleto.ch ? Оно ж так компилироваться не будет ...

Спасибо: 0 
Профиль
alx_on
постоянный участник


Пост N: 21
Зарегистрирован: 07.07.09
ссылка на сообщение  Отправлено: 26.10.09 16:07. Заголовок: alkresin пишет: Как..


alkresin пишет:

 цитата:
Какой у вас логин на Sourceforge ?


aokhotnikov


Спасибо: 0 
Профиль
Pasha
Администратор




Пост N: 1215
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 26.10.09 16:22. Заголовок: alkresin пишет: а з..


alkresin пишет:

 цитата:
а зачем вы в manage.prg изменили путь к rddleto.ch ? Оно ж так компилироваться не будет ...



Мне прислали это изменение Przemek'a для сборки с текущим Harbour SVN. Наверное, он собирал с помощью hbmk2. Если собирать через bld.bat, то действительно не скомпилируется

Спасибо: 0 
Профиль
alkresin
moderator


Пост N: 245
Зарегистрирован: 06.07.06
ссылка на сообщение  Отправлено: 26.10.09 17:02. Заголовок: alx_on пишет: aokho..


alx_on пишет:

 цитата:
aokhotnikov


Добавлен.

Спасибо: 0 
Профиль
alx_on
постоянный участник


Пост N: 22
Зарегистрирован: 07.07.09
ссылка на сообщение  Отправлено: 26.10.09 17:45. Заголовок: alkresin пишет: До..


alkresin пишет:

 цитата:
Добавлен


спасибо

Спасибо: 0 
Профиль
PSP
постоянный участник


Пост N: 181
Зарегистрирован: 27.01.07
ссылка на сообщение  Отправлено: 16.11.09 13:39. Заголовок: Чё-та у меня DBOrder..


Чё-та у меня DBOrderInfo( DBOI_NUMBER, , cOrdName ) кажись косячит при работе с RDDLETO.
Если указать в cOrdName существующее имя ордера, она возвращает его номер в списке ордеров правильно.
Если же в cOrdName указать несуществующий ордер, функция возвращает число, равное количеству ордеров в файле.
С OrdNumber() та же песня.

А вот с RDDCDX при несуществующем cOrdName, обе функции возвращают 0.

Как быть? Если можно, проверьте, плизззз...


Спасибо: 0 
Профиль
Pasha
Администратор




Пост N: 1229
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 16.11.09 15:38. Заголовок: PSP пишет: Как быть..


PSP пишет:

 цитата:
Как быть? Если можно, проверьте, плизззз...



В source\client\leto1.c вместо

case DBOI_NUMBER:
{
hb_itemPutNI( pOrderInfo->itmResult, uiTag );
break;
}

надо поставить

case DBOI_NUMBER:
{
hb_itemPutNI( pOrderInfo->itmResult, (pTagInfo) ? uiTag : 0 );
break;
}

я поправлю на cvs

Спасибо: 0 
Профиль
PSP
постоянный участник


Пост N: 182
Зарегистрирован: 27.01.07
ссылка на сообщение  Отправлено: 16.11.09 19:44. Заголовок: Паша, большое спасиб..


Паша, большое спасибо!
It works!

Спасибо: 0 
Профиль
PSP
постоянный участник


Пост N: 187
Зарегистрирован: 27.01.07
ссылка на сообщение  Отправлено: 25.11.09 12:37. Заголовок: alx_on пишет: DbRLo..


alx_on пишет:

 цитата:
DbRLockList - не работает (в принципе, не сильно важно)


Скажите, а нельзя ли сделать, чтобы заработало? Понадобилась... :)

Спасибо: 0 
Профиль
alx_on
постоянный участник


Пост N: 24
Зарегистрирован: 07.07.09
ссылка на сообщение  Отправлено: 25.11.09 13:30. Заголовок: PSP пишет: Скажите,..


PSP пишет:

 цитата:
Скажите, а нельзя ли сделать, чтобы заработало?


Сделать можно все! :)
А оно надо?

Пример:
заблокировано 10000 записей (обычная ситуация :) )
берем локи
а) с клиента (хорошо, но переделка клиента и двойная работа по учету блокировок)
б) с сервера (плохо, по сети минимум 50Кб на каждый вызов, вроде немного, но разом. а клиент то не один)

Проще у себя сохранять в массиве (или не использовать совсем, а переделать логику программы)

Спасибо: 0 
Профиль
PSP
постоянный участник


Пост N: 188
Зарегистрирован: 27.01.07
ссылка на сообщение  Отправлено: 25.11.09 13:37. Заголовок: alx_on пишет: Проще..


alx_on пишет:

 цитата:
Проще у себя сохранять в массиве


Уже так и сделал. Хотел красивее... :)
Спасибо за ответ.


Спасибо: 0 
Профиль
PSP
постоянный участник


Пост N: 215
Зарегистрирован: 27.01.07
ссылка на сообщение  Отправлено: 02.12.09 15:30. Заголовок: Ошибка при сборке Le..


Ошибка при сборке Letodb с последними Harbour nightly-sources
Скрытый текст



Спасибо: 0 
Профиль
Pasha
Администратор




Пост N: 1257
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 02.12.09 16:08. Заголовок: Ошибка при сборке св..


Ошибка при сборке связана с этим изменением в Harbour:

2009-11-16 17:35 UTC+0100 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/include/hbapierr.h
* harbour/src/rtl/errint.c
* harbour/src/rtl/errintlo.c
...
* changed ULONG ulIntCode to HB_ERRCODE errCode in internal errors

опять в разных версиях харборов определения одних и тех же функций разнятся :(

Спасибо: 0 
Профиль
PSP
постоянный участник


Пост N: 216
Зарегистрирован: 27.01.07
ссылка на сообщение  Отправлено: 02.12.09 17:03. Заголовок: Наверное, лучше подо..


Наверное, лучше подождать выхода стабильной сборки Harbour. Петр говорил, что до Нового года может появиться...

Спасибо: 0 
Профиль
Pasha
Администратор




Пост N: 1258
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 02.12.09 17:25. Заголовок: Ну это изменение наз..


Ну это изменение назад все равно не вернут, так что приводить в соответствие letodb все равно надо

Сделать это просто: в server\errint.c надо заменить определение ULONG ulIntCode на HB_ERRCODE ulIntCode

Только как сделать, чтобы сохранить сборку и с предыдущими версиями, да и с xHarbour, надо подумать

Спасибо: 0 
Профиль
PSP
постоянный участник


Пост N: 217
Зарегистрирован: 27.01.07
ссылка на сообщение  Отправлено: 02.12.09 21:47. Заголовок: Pasha пишет: Ну это..


Pasha пишет:

 цитата:
Ну это изменение назад все равно не вернут


Нееее, я не жду, что вернут... :) Я о том, что стоит подождать, пока сделают все изменения.

Спасибо: 0 
Профиль
Ответов - 193 , стр: 1 2 3 4 5 6 7 8 9 10 All [только новые]
Тему читают:
- участник сейчас на форуме
- участник вне форума
Все даты в формате GMT  3 час. Хитов сегодня: 118
Права: смайлы да, картинки да, шрифты да, голосования нет
аватары да, автозамена ссылок вкл, премодерация откл, правка нет