On-line: Andrey, гостей 2. Всего: 3 [подробнее..]
АвторСообщение
постоянный участник


Пост N: 1362
Зарегистрирован: 27.01.07
ссылка на сообщение  Отправлено: 21.01.18 10:31. Заголовок: LetoDb fork


https://github.com/elchs/LetoDBf
https://github.com/elchs/LetoDBf/blob/master/README.md
Кто-нибудь пробовал или использует в продакшене?

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


Администратор




Пост N: 3690
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 19.02.18 13:57. Заголовок: По сети разница ~ в ..


По сети разница ~ в 24 раза (dbfntx быстрее)
Локально - в 8-9 раз (dbfntx быстрее)


Спасибо: 0 
ПрофильЦитата Ответить





Пост N: 612
Зарегистрирован: 08.07.06
ссылка на сообщение  Отправлено: 19.02.18 14:35. Заголовок: Значит dbfntx по сет..


Значит dbfntx по сети в три раза быстрее, чем локально ???
Как такое вообще может быть ?

Спасибо: 0 
ПрофильЦитата Ответить
Администратор




Пост N: 3691
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 19.02.18 15:01. Заголовок: Нет. И не вообще мед..


Нет. И не вообще медленнее, а конкретно эта операция.
Для dbfntx: по сети медленнее (грубо) в 3 раза чем локально
Для letodb: по сети медленнее в 10 раз чем локально

Локально letodb медленнее чем dbfntx локально в 8 раз
Получаем (буржуазная лженаука арифметика): по сети letodb медленнее чем dbfntx в 8*10/3 ~ в 24 раза


Спасибо: 0 
ПрофильЦитата Ответить





Пост N: 613
Зарегистрирован: 08.07.06
ссылка на сообщение  Отправлено: 21.02.18 12:44. Заголовок: Выяснил - всё нормал..


Выяснил - всё нормально у LetoDB(f) с производительностью в режиме GO INT(RAND() * RECCOUNT()).
Мой косяк: вместо RECCOUNT() в коде использовался nSize:
  aRecords := ARRAY(nSize)  
FOR i:=1 TO nSize
aRecords[ i ] := INT(RAND()*nSize)
NEXT i

Соотв. вместо того, чтобы "прыгать" по всей таблице, выполнялись GO только по первым 10000 записям, которые легко помещаются в кэш винды. После исправления всё встало на свои места:
 
...
Testing 10000 jumps via DBFNTX: 59614 ms, 167.7 jumps/sec
Testing 10000 jumps via LETO: 6508 ms, 1536.6 jumps/sec
...
Testing 10000 jumps via DBFNTX: 36694 ms, 272.5 jumps/sec
Testing 10000 jumps via LETO: 6717 ms, 1488.8 jumps/sec
...
Testing 10000 jumps via DBFNTX: 22936 ms, 436.0 jumps/sec
Testing 10000 jumps via LETO: 6655 ms, 1502.6 jumps/sec

Причем с каждым запуском DBFNTX "разгоняется", но все равно, до Leto ему далеко.

Посыпаю голову пеплом. Leto рулит.

Спасибо: 1 
ПрофильЦитата Ответить
постоянный участник




Пост N: 2134
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 17.11.18 22:52. Заголовок: Начал смотреть LetoD..


Начал смотреть LetoDBf + hmg 18.10 (все bcc сборка).
Перенес родные примеры (test_....prg и demo4.prg из Tsb_Basic)
Кому интересно, то тут сервер и пример https://my-files.ru/459f68

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




Пост N: 2135
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 17.11.18 23:13. Заголовок: Упс. удалили :sm28:..


Упс. удалили , разделил на 2е части
1. сервер, запуск letodb.exe, останов letodb.exe stop https://my-files.ru/eirnf2
2. hmg пример https://my-files.ru/vsdbm0

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


Пост N: 1484
Зарегистрирован: 27.01.07
ссылка на сообщение  Отправлено: 18.11.18 11:27. Заголовок: SergKis пишет: Упс...


SergKis пишет:

 цитата:
Упс. удалили , разделил на 2е части
1. сервер, запуск letodb.exe, останов letodb.exe stop https://my-files.ru/eirnf2
2. hmg пример https://my-files.ru/vsdbm0



Выложи, если не влом, на другой хостинг. Этот что-то барахлит.

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




Пост N: 2136
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 18.11.18 13:56. Заголовок: PSP пишет на другой ..


PSP пишет
 цитата:
на другой хостинг


Тут https://ru.files.fm/u/2q3wzejj#sign

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




Пост N: 6141
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 07.12.18 06:16. Заголовок: - rddleto.li..


        - rddleto.lib:          Harbour client library for access to LetoDBf server. 
Copyright 2017-2018 Rolf 'elch' Beckmann
Source code is available at https://github.com/elchs/LetoDBf.


Классно ребята на себя продукт перевели.
Или они его заново с нуля написали ?

Спасибо: 0 
ПрофильЦитата Ответить
moderator


Пост N: 1130
Зарегистрирован: 06.07.06
ссылка на сообщение  Отправлено: 07.12.18 09:19. Заголовок: Там вроде все правил..


Там вроде все правила приличия соблюдены, вот первый абзац readme проекта:

"please note the trailing f, this is the elch fork of the famous LetoDB Database Server, for the origin see: https://sourceforge.net/p/letodb/code/ci/master/tree/ or visit the original inventor: http://kresin.ru/en/letodb.html"

Спасибо: 0 
ПрофильЦитата Ответить





Пост N: 670
Зарегистрирован: 08.07.06
ссылка на сообщение  Отправлено: 03.06.21 01:03. Заголовок: Работал, никого не т..


Работал, никого не трогал с LetoDBf, датированным 2018-01-21... Всё нормально работало, вот решил обновиться... Оказывается, где-то с лета 2018г Rolf Beckmann добавил в свой проект заголовочный файл leto_std.ch, который все стандартные команды вроде COPY, APPEND, SORT, DELETE и тп - жестко перенастраивает на использование функций leto_dbCopy, leto_dbApp, leto_dbSort и тп...

В моем проекте такое не пройдет, тк он ведется еще со времен Clipper 5.01 ))

Ну, думаю, чай не лыком шит, отключил в letodb.hbc использование данного заголовочного файла и пересобрал проект. Запустил letodb сервер как службу windows и... посыпались ошибки вроде такой:

Error LETO/1001 Ошибка открытия: \data\messages
Alias().............. ""
oError:args.......... NIL
---------------------
DBUSEAREA( 0 )
NETUSE( 2753 )
ADDMESSAGE( 65 )
USERCHANGE( 1652 )
MAIN( 220 )

То есть сервер Leto "вдруг" неожиданно стал искать таблицы в папке без указания диска... Хотя в letodb.ini ничего не менялось и путь как был, так и остался: DataPath = f:\work\data

Откатил версию программы на предыдущую, которая была скомпилирована со "старой" версией от 2018 года и... все заработало, как ни в чем не бывало... Сервер - "новый", клиентские программы - "старые".

Что я мог упустить ?

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




Пост N: 3753
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 03.06.21 10:59. Заголовок: Sergy пишет вот реши..


Sergy пишет
 цитата:
вот решил обновиться...


И на какую версию обновились ?

 цитата:
То есть сервер Leto "вдруг" неожиданно стал искать таблицы в папке без указания диска...


Может тут зацепилось readmy.txt пункт "5.1.3 successful connected to server"
 цитата:

This root path is equal a SET DEFAULT TO setting, so if your filenames contain *no path separator,
all new files will be created directly in <DataPath>.
The filenames can have optional OS dependent leading '\' or '/', example: /mydbf.dbf, that will force
them into the <DatPath> directory, despite a given "SET DEFAULT" to a subdirectory.

For blank, pure filename the "SET DEFAULT TO ... " setting, when set *before* Leto_Connect() will name
an additive sub-directory to <DataPath>. Example: "SET DEFAULT TO data" will put all NEW files without
path separator into:
[drive:]\path\to\data_diretory\data
!! Allowed for "DEFAULT" is only one single path, NOT ENDING WITH ';' OR ":" !!
The example setting of "SET PATH TO system;tmp" will lead to search for files in:
[drive:]\path\to\data_diretory\system and [drive:]\path\to\data_diretory\tmp
If you use: DbUseArea( ,, cFile, .. ) and it is not in the DEFAULT directory, but in one directory given
by SET PATH, it will be opened without further needed action from you.
Both DEFAULT and PATH recognize the <DataPath>, what means a "SET DEFAULT TO to\data_diretory\data" will
lead to a DEFAULT directory: '[drive:]\path\to\data_diretory\data' as given as "SET DEFAULT TO data".
!! Again, both settings of "DEFAULT" and "PATH" apply to filenames without any path seperator '\' or '/'.



Спасибо: 0 
ПрофильЦитата Ответить





Пост N: 671
Зарегистрирован: 08.07.06
ссылка на сообщение  Отправлено: 03.06.21 11:17. Заголовок: SergKis пишет: И на..


SergKis пишет:

 цитата:
И на какую версию обновились ?


Да вот прямо на самую последнюю, что есть на GitHub - 2021-04-29


 цитата:
Может тут зацепилось readmy.txt пункт "5.1.3 successful connected to server"


Спасибо за наводку, почитаю.

Спасибо: 0 
ПрофильЦитата Ответить





Пост N: 672
Зарегистрирован: 08.07.06
ссылка на сообщение  Отправлено: 07.06.21 23:33. Заголовок: Разобрался с причино..


Разобрался с причиной, но не понимаю, как вылечить: после каждого открытия таблицы значение RDDSETDEAFULT() возвращается на "LETO", хотя раньше по умолчанию был "DBFNTX" и он прекрасно сохранял свое значение после единственной его установки сразу после Leto_Connect()

У меня часть таблиц загружается в локальную папку и там быстро обрабатывается, соотв. услуги LetoDBf сервера явно ни к чему. Поэтому и дефолтный драйвер такой.

Почему с недавних пор стал "слетать" RDDSETDEFAULT() ? Принудительно конечно можно перед и после каждого USE наставить оберток, но не нравятся мне такие костыли...

Откатился на предыдущую версию LetoDBf, от 2018-01-21, перекомпилировал и перезапустил letodbsvc, rddletoaddon - все тоже самое, перескакивает дефолтный драйвер с DBFNTX на LETO

Психанул, восстановил папку с Харбором целиком - поведение RDDSETDEFAULT стало нормальным...

Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 7386
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 08.06.21 15:41. Заголовок: Sergy пишет: Прину..


Sergy пишет:

 цитата:
Принудительно конечно можно перед и после каждого USE наставить оберток, но не нравятся мне такие костыли...


Давно пора сваять свою функцию по открытию баз , что то типа USEDB (не важно)
В ней юзать dbusearea , открывать базы с нужным RDD , там же индексы открывать и тд и тп и тогда
лечение не понадобится

Спасибо: 0 
ПрофильЦитата Ответить





Пост N: 673
Зарегистрирован: 08.07.06
ссылка на сообщение  Отправлено: 15.06.21 14:08. Заголовок: Dima пишет: Давно п..


Dima пишет:

 цитата:
Давно пора сваять свою функцию по открытию баз , что то типа USEDB (не важно)
В ней юзать dbusearea , открывать базы с нужным RDD , там же индексы открывать и тд и тп и тогда
лечение не понадобится


Согласен. Поэтому мною давно написан свой NetUse(), единый для всех вариантов. C обработкой ошибок и тп... Но блин, что за фигня со "слетом" дефолтного драйвера... Пока нашел "затесавшуюся" библиотеку letodb.o в каталоге LIB. Поменял на старую - заработало все норм. Но почему компиляция более "старой" библиотеки не приводит к замене объектного кода... Ладно, буду потихоньку разбираться.

Кто нибудь использует сейчас LetoDBf ? Какой версии ?

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




Пост N: 3763
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 15.06.21 15:00. Заголовок: Sergy пишет Какой в..


Sergy пишет
 цитата:
Какой версии ?


Эту https://github.com/alcz/LetoDBf
Default rdd "LETO", локальные "DBFCDX" ставлю в открытии, т.к. это может быть и mem: файл
Сборка msvc 2019 (hb 3.2 и своя hmg также на msvc 2019), добавлена LV866, ф-ии hrb файла перенесены в тело сервера, используется на базу совместно с LetoDb 1.0 версии.

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




Пост N: 4225
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 17.02.23 06:52. Заголовок: Тут продолжу ответ и..


Тут продолжу ответ из темы "Новая версия Расширенного релиза библиотеки MiniGui" для sashaBG (Пост N: 199)
SergKis пишет
 цитата:
По мне надо сделать
1. ...
2. ...
3. ...


4. Для LetoDb 1.0 (2-а потока) у меня сделано, но можно и для LetoDb 2.0 (много поточного применить) ф-ю сервера для запуска работы приложения в фоновом потоке, оказалось удобно
Тут Скрытый текст

Варианты использования:
- есть клиент отслеживающий события для почты и sms, поймав его, делает запись в dbf на сервере о событии и запускает на эту запись RecNo и базу на сервере программу отправки писем и sms-ок (с одной записи до 9 адресов может отправить). Отчеты и прочая работа на LetoDbF
- расчеты длительного времени
- отборы и т.д.

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




Пост N: 201
Зарегистрирован: 15.09.05
ссылка на сообщение  Отправлено: 17.02.23 11:48. Заголовок: Спасибо за идею


Спасибо за идею!

У меня неможко по другому все организовано. Есть программа Serv.exe. Она написана на MiniGUIext и работает MT режиме. Ее роль:
1.управлят LetoDB: запуск, остановка самое главное мониторить не упал ли он , если упал запускает
2.Выполнять критические по скорости операции с базами на серевер (всякие сложные расчеты, ну и перемен в структур таблиц и т.д) . Т.е. Я использую удаленные процедуры и функции через NETIO

Клиент подключается одновременно к LetoDB для работы с таблицами (чтение , запись, справки и ...) через порт 2812 и к NETO (Serv.exe) порт 2941 для работы с удаленными процедурами.

TsBrowse я использую для помощи при заполнении нек. полей на форме :


Я просто удалил Стринговую часть функции dbsetfilter, так как на LetoDB передаятся только она
и в ЛОГ файле ошибки исчезли.

( cAlias )->( dbSetFilter( {|| ob:FilterFTS_Line( cFind, lUpper, lAll, ob ) }, ;
"" ) )
//"ob:FilterFTS_Line( cFind, lUpper, lAll, ob)" ) )

Фильтр работает на клиенте, но пока меня ето устраивает. Если придется, то тогда буду подключать фильтрацию со стороны LetoDB

Спасибо еще раз за Ваши ответы Сергей!
Желаю доброго здоровья!

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




Пост N: 4226
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 17.02.23 14:03. Заголовок: sashaBG пишет У меня..


sashaBG пишет
 цитата:
У меня неможко по другому все организовано. Есть программа Serv.exe. Она написана на MiniGUIext и работает MT режиме. Ее роль:


Т.к. начало LetoDb у меня было 2010-2011 год, то ничего проще как AutoIt3 для управления сервером не нашел, к тому же доступа к серверу клиента, как Admin не было, то написал простенький текст AutoIt3. Т.е. LetoDb 1.0 порт 2812, LetoDbF порт 2816(,2817 если надо) и для LetoDbf на hmg ext Admin программа управления user-ами:
1. добавить\удалить\заменить (user\password)
2. списки работающих клиентов (table tsbrowse просмотр + клиенту сделать Kill принудительно
3. в эту программу добавляются режимы работ для запусков ф-ей UDF_Run(...).
Дальше работа с сервером (базой) ТОЛЬКО с клиента
Тут AutoIt3 для работы с LetoDbF https://TransFiles.ru/hqhdo
Если архив развернуть в hmg Advanced\LetoDBf\Server и переименовать letodb.exe => letoDBf.exe и запустить letostart.exe, то в tray будет простое меню и LetoDBf.exe будет запущен и отслеживаться наличия в памяти
Для LetoDb 1.0 letostart1.exe почти такой же добавлен режим замены версии LetoDb.exe (кладем рядом letodb.new и AutoIt останавливает работу LetoDb.exe, переименовывает его и заменяет letodb.new => LetoDb.exe и запускает). Так было сделано из за отсутствия доступа на сервер клиента.

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

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