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




Пост N: 2416
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 22.06.12 18:14. Заголовок: Leto DB Server (продолжение 8)


Немного доработал документацию к letodb

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


SergKis
постоянный участник




Пост N: 148
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 06.03.13 00:43. Заголовок: Паша, в версии Chang..


Паша, в версии Changelog,v 1.350 2011/04/21 18:00:52 есть LETO_SETSKIPBUFFER( nSkip ), но в readme нет как использовать, что дает nSkip ? Если можно разъясните.

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




Пост N: 2719
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 06.03.13 08:53. Заголовок: В текущем readme ест..


В текущем readme есть описание:

Skip-буфер предназначен для оптимизации множественных вызовов skip
Эта функция задает размер в записях для skip-буфера для текущей рабочей области.
По умолчанию размер skip-буфера 10 записей. Skip-буфер является двунаправленным.
skip-буфер сбрасывается после BUFF_REFRESH_TIME (1 сек)
Если параметр функции опущен, она возвращает статистику использования буфера (количество попаданий)

Проще говоря, при выполнении команд skip(1), skip(-1) сервер передает клиенту не одну запись, а nSkip записей, и при последующих вызовах skip обращения к серверу не будет, клиент возьмет запись из буфера.

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




Пост N: 149
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 06.03.13 12:19. Заголовок: Pasha пишет:Skip-буф..


Pasha пишет:
 цитата:
Skip-буфер предназначен ...


СПАСИБО за разъяснение.
Pasha пишет:
 цитата:
В текущем readme есть описание


У меня версия: readme_rus.txt,v 1.12.2.16 2012/02/23 15:38:35. В ней только:
LETO_SETSKIPBUFFER( nSkip ) --> nCount (статистика использования буфера)
LETO_SETSEEKBUFFER( nRecsInBuf ) --> nCount (статистика использования буфера)
Буду обновляться.


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




Пост N: 2673
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 06.03.13 12:26. Заголовок: SergKis пишет: read..


SergKis пишет:

 цитата:
readme_rus.txt,v 1.12.2.16 2012/02/23 15:38:35


последняя вроде такая
/* $Id: readme_rus.txt,v 1.12.2.29 2013/03/02 18:45:45 ptsarenko Exp $ */

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




Пост N: 2688
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 08.03.13 10:24. Заголовок: Pasha А если в Leto..


Pasha
А если в Leto юзать RDD DBFSIX или BMDBFCDX , Leto будет так же эффективно работать
как и с DBFCDX ?



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




Пост N: 2725
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 08.03.13 11:16. Заголовок: В харборе функционал..


В харборе функциональность six в основном включена в DBFCDX, так что она и сейчас в основном доступна через вызовы dbInfo и dbOrderInfo
"В основном" я говорю потому, что не все команды DBI_* и DBOI_* реализованы в rdd leto. Каких не хватает - надо смотреть.
А насчет BMDBFCDX - можно было бы сделать возможность сборки сервера letodb, в котором в качестве стандартных rdd вместо DBFCDX/DBFNTX использовались бы BMDBFCDX/BMDBFNTX, тем более они их наследники.
Еще конечно нужно реализовать семейство функций BM_*, причем и на клиенте, и на сервере. Сделать это лучше через вызовы UDF-функций, чтобы не перегружать существующий низкоуровневый протокол передачи между клиентом и сервером. Думаю, как это лучше прикрутить.

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




Пост N: 2690
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 08.03.13 13:58. Заголовок: В большей степени ко..


В большей степени конечно интересен BMDBFCDX/BMDBFNTX , про SIX это я так просто спросил "паровозиком".

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




Пост N: 2697
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 10.03.13 12:06. Заголовок: Как можно объяснить ..


Как можно объяснить медленный SKIP по базе (чем то похож на медленный Skip в ADS) ?
Для примера взял базу 700000 записей
DBFCDX
Скипал всю базу
Время 0.23 сек

Leto (локально 127.0.0.1) на том же тесте 75 секунд

Соответственно если юзать бровс то с Leto заметны задержки

Dima пишет:

 цитата:
Соответственно если юзать бровс то с Leto заметны задержки


Упс. LETO_SETSKIPBUFFER в какой то мере решает эту проблему.

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




Пост N: 2730
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 10.03.13 12:31. Заголовок: Еще tbrowse любит вс..


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

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

RddInfo( RDDI_REFRESHCOUNT, .F.,, 1 )

В ads тоже есть подобная настройка.

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




Пост N: 2699
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 10.03.13 12:39. Заголовок: Pasha пишет: RddInf..


Pasha пишет:

 цитата:
RddInfo( RDDI_REFRESHCOUNT, .F.,, 1 )


Помогло , спасибо !

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




Пост N: 2700
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 10.03.13 13:30. Заголовок: Pasha пишет: В ads ..


Pasha пишет:

 цитата:
В ads тоже есть подобная настройка


В Harbour ? Не нашел.
А в Clipper есть ?

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




Пост N: 2731
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 10.03.13 14:00. Заголовок: Она есть в самом Ads..


Она есть в самом Ads. Год назад я ее добавил для xHarbour:

2012-03-19 18:55 UTC+0200 Pavel Tsarenko (tpe2/at/mail.ru)
* contrib/rdd_ads/ads.ch
* contrib/rdd_ads/ads1.c
* contrib/rdd_ads/rddads.h
* added new flag for RddInfo: RDDI_REFRESHCOUNT. By default, this flag is set to true.
This flag is used for management of ADS_REFRESHCOUNT flag in adsRecCount function.

в Harbour ее действительно не перетянули.
Для клиппера даже не знаю, как она используется, если используется вообще. Клиент то совсем другой, старый, закрытый.

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




Пост N: 2703
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 10.03.13 16:21. Заголовок: Проверил работу Leto..


Проверил работу Leto через инет.
Leto База в одном городе , Leto клиент в другом.
Относительно не плохо работает. В частности проверил удаленно BM фильтра ,
ставятся моментально.
Установки на клиенте
RddInfo( 101, .F.,, 1 )
LETO_SETSKIPBUFFER(10000)
Бровс конечно подтормаживает. Будут какие то рекомендации ?


ЗЫ
Если LetoDB.ini нет в папке откуда стартовал LetoDB Server , разве LetoDB Server не должен сам его создать с
установками по умолчанию ?

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




Пост N: 2733
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 10.03.13 17:36. Заголовок: Dima пишет: LETO_SE..


Dima пишет:

 цитата:
LETO_SETSKIPBUFFER(10000)
Бровс конечно подтормаживает. Будут какие то рекомендации ?



Не надо 10000 задавать. За раз передается 10000 записей, а это много, пакет большой. Да и не надо столько, ведь время актуальности буфера 1 секунда.
Достаточно задать размер, равный к-ву строк в бровсе, ну или maxrow()

Дополню. Это для ЛВС для времени актуальности буфера 1 сек достаточно. Для медленного соединения лучше задать побольше.
Это или глобальная установка: 5-й параметр функции leto_Connect, или для конкретной рабочей области задается вызовом
dbInfo( DBI_BUFREFRESHTIME[, nNewVal])
Значение задается в 0.01 сек.



 цитата:
ЗЫ
Если LetoDB.ini нет в папке откуда стартовал LetoDB Server , разве LetoDB Server не должен сам его создать с
установками по умолчанию ?



Файл ini не создается, просто задаются установки по умолчанию. Но ini файл нужен хотя бы для указания DataPath
Мой стандартный letodb.ini:

DataPath = <path>
EnableFileFunc = 1
EnableAnyExt = 1
Optimize = 1
AutOrder = 1


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




Пост N: 2713
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 11.03.13 11:15. Заголовок: Лето собран как серв..


Лето собран как сервис.
Периодически падает прога на строке LETO_CONNECT("//127.0.0.1:2812/")
В логе
 
DEBUG! new connect 127.0.0.1 (0 : 1 : 1)
leto_errInternal!!!!!!!!!!!!!!!!!!


А винда пишет
 
szAppName : letodb.exe szAppVer : 0.0.0.0 szModName : letodb.exe
szModVer : 0.0.0.0 offset : 000b23dc

После этого сервис лето падает.

Как я это получил ?
Остановил и удалил сервис
Затем Letodb install , net start "LetoDB Service"
Запустил свой примерчик пару тройку раз (все норм но только порой долго думает прога
на строке LETO_CONNECT) и на 4 раз вот такое вылазит .

PS
еще наблюдение. если пересобрать клиентское приложение то в 30% после первого
запуска LETO_CONNECT выдаст -1

Dima пишет:

 цитата:
PS
еще наблюдение. если пересобрать клиентское приложение то в 30% после первого
запуска LETO_CONNECT выдаст -1


PS1
Интенсивно мучаю Leto уже 30 минут и такого больше не повторяется.....странно

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




Пост N: 2715
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 11.03.13 16:05. Заголовок: А как быть с копиров..


А как быть с копированием файлов на Leto Server ?
cserv:="//127.0.0.1:2812/"
copy file test.txt to (cserv+"test1.txt")

Получаю Dos error 1231
Среди лето функций что типа leto_copyfile в описании не увидел.
Вполне устроила бы функция позволяющая копировать файлы "внутри" сервера ,
что то типа Leto_filecopy(cserv+"test.txt",cserv+"test1.txt")

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




Пост N: 2731
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 11.03.13 18:15. Заголовок: Dima пишет: А как б..


Dima пишет:

 цитата:
А как быть с копированием файлов на Leto Server ?



Я тоже на этом залетал...
Я бы тоже не отказался от функций:
Leto_filecopy(cServer+"test.txt",cServer+"test1.txt")
Leto_filecopy(cLocal+"test.txt",cServer+"test1.txt")
Leto_filecopy(cServer+"test.txt",cLocal+"test1.txt")

AlexMyr пишет:

 цитата:
в letodb.ini надо
EnableFileFunc = 0 - если 1, разрешено использование файловых функций
( leto_file(), leto_ferase(), leto_frename();

читаем readme



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




Пост N: 2716
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 11.03.13 18:46. Заголовок: Pasha А в чем разни..


Pasha
А в чем разница между leto_RecLock() и RLock() если база открыта с RDD Leto и нужно
залочить текущую запись ?

ЗЫ
Что то Пашу мы завалили вопросами , надо взять таймаут
В свое время я был тестером Winpint и тоже заваливал автора
вопросами и пожеланиями. В итоге продукт получился отличный

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




Пост N: 2742
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 11.03.13 19:28. Заголовок: Dima пишет: Периоди..


Dima пишет:

 цитата:
Периодически падает прога на строке LETO_CONNECT("//127.0.0.1:2812/")



Чего-чего, а такой нестабильной работы с letodb у меня никогда не было, да еще на элементарном коннекте. Если бы сервер где-нибудь упал, шума было бы много. Но такого не было.
Конечно, это версия letodb+bm, она только что появилась. Но все фичи bmdbf при коннекте еще не задействованы. Непонятно.

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




Пост N: 2743
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 11.03.13 19:30. Заголовок: Dima пишет: А как б..


Dima пишет:

 цитата:
А как быть с копированием файлов на Leto Server ?



Надо использовать функции leto_MemoWrite и leto_FileWrite

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