powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Другие СУБД [игнор отключен] [закрыт для гостей] / Новая бесплатная база данных LStor
25 сообщений из 698, страница 1 из 28
Новая бесплатная база данных LStor
    #37556043
Division X
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ударим опенсорсным велосипедостроением по делфям и копирастии!
Посвящается первым двум темам с похожим названием.


LStor представляет собой реализацию простого локального однопользовательского in-memory хранилища типа key-value, основанную на Glib 2. LStor предоставляет минималистичный API для создания, удаления, экспорта, импорта key-value таблиц, вставки, удаления и модификации их записей. LStor выполнен в виде библиотеки и может быть использован в приложениях, которым требуется быстрый однопользовательский доступ по ключу, например, менеджер настроек, библиотека музыки или локальная служба аутентификации.

На данный момент в LStor поддерживается три типа данных - 32-битное целое (LSTOR_INT), 64-битное число с плавающей точкой (LSTOR_FLOAT) и строка с нуль-терминатором (LSTOR_STRING). Механизм экспорта позволяет достаточно быстро сбросить данные на диск с минимальным оверхедом (например, для 4 млн пар ключей-значений типа LSTOR_INT экспортированный файл занимает 32000072 байта).

Библиотека распространяется в исходных кодах для GNU gcc/make. Руководство по сборке, подключению и использованию находится в архиве (README.txt, английский). Поддерживается режим статической компиляции с Glib 2, в таком виде библиотека занимает 342.2 кб.

Хотелось бы услышать пожелания по дальнейшему расширению функционала библиотеки именно как локального key-value хранилища.
...
Рейтинг: 0 / 0
Новая бесплатная база данных LStor
    #37556077
ShkololoDB
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
LStorE
...
Рейтинг: 0 / 0
Новая бесплатная база данных LStor
    #37556180
Баз
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
где список?
...
Рейтинг: 0 / 0
Новая бесплатная база данных LStor
    #37556304
tanglir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
базгде список?...порванных эльстором на грелки СУБД?
...
Рейтинг: 0 / 0
Новая бесплатная база данных LStor
    #37556310
Фотография Росгоснанораспилтрест
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Блин. Надо свою тему про РаспилБД создавать. Самой БД нет по понятным причинам: для того, чтобы она появилась, требуется освоить 1,5 млрд бюджетных денег.
...
Рейтинг: 0 / 0
Новая бесплатная база данных LStor
    #37556376
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Отметился.
...
Рейтинг: 0 / 0
Новая бесплатная база данных LStor
    #37556479
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
РосгоснанораспилтрестБлин. Надо свою тему про РаспилБД создавать. Самой БД нет по понятным причинам: для того, чтобы она появилась, требуется освоить 1,5 млрд бюджетных денег.
Создавай. Только смотри штоб проводки работали быринько. А то смешают
с помоями...
...
Рейтинг: 0 / 0
Новая бесплатная база данных LStor
    #37556533
Division X
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ShkololoDBLStorE
Shkololo, читай ридми. Это сокращение от Lightweight Storage.

tanglirбазгде список?...порванных эльстором на грелки СУБД?
Фывымас же.
...
Рейтинг: 0 / 0
Новая бесплатная база данных LStor
    #37556537
Division X
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
базгде список?
Список чего?
...
Рейтинг: 0 / 0
Новая бесплатная база данных LStor
    #37556556
Division X
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonСоздавай. Только смотри штоб проводки работали быринько.
В РаспилБД задача распила проводок по самой идее должна решаться моментально
...
Рейтинг: 0 / 0
Новая бесплатная база данных LStor
    #37556591
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Народу не нужны нездоровые сенсации! Народу нужны здоровые сенсации! (с)
...
Рейтинг: 0 / 0
Новая бесплатная база данных LStor
    #37556646
Division X
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Немного слов о том, для чего я этот эльстор вообще замутил. Главной задачей было реализовать хранилище ассоциативных массивов (кого-то напоминает, да?) под чистый Си за минимальное количество функций в библиотеке. Да, можно было бы взять чистую глыбу или тот же BDB, но интерфейсы показались мне чересчур неудобными. К тому же, если говорить о глыбе, там нету некоторых вещей, которые уже реализованы в эльсторе (да-да, экспорт и долбаный импорт, который, вот уж я не пойму, с какого перепугу, но работает в 5 раз медленнее экспорта) и планируются. Стратегия - не раздувать API, наращивая возможности в пределах 10-20 простых функций. В текущей версии их 7.
В дальнейшем добавится еще такая вещь, как список активных таблиц, где по имени таблицы можно будет получить ее хендл. Возможно, появятся курсоры а-ля GHashTableIter. Типы данных тоже не будут стоять на месте. Следующим на очереди, думаю, будут LSTOR_LIST и LSTOR_BLOB. Тогда уже и поисковик можно будет упростить.
...
Рейтинг: 0 / 0
Новая бесплатная база данных LStor
    #37556647
Division X
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Немного слов о том, для чего я этот эльстор вообще замутил. Главной задачей было реализовать хранилище ассоциативных массивов (кого-то напоминает, да?) под чистый Си за минимальное количество функций в библиотеке. Да, можно было бы взять чистую глыбу или тот же BDB, но интерфейсы показались мне чересчур неудобными. К тому же, если говорить о глыбе, там нету некоторых вещей, которые уже реализованы в эльсторе (да-да, экспорт и долбаный импорт, который, вот уж я не пойму, с какого перепугу, но работает в 5 раз медленнее экспорта) и планируются. Стратегия - не раздувать API, наращивая возможности в пределах 10-20 простых функций. В текущей версии их 7.
В дальнейшем добавится еще такая вещь, как список активных таблиц, где по имени таблицы можно будет получить ее хендл. Возможно, появятся курсоры а-ля GHashTableIter. Типы данных тоже не будут стоять на месте. Следующим на очереди, думаю, будут LSTOR_LIST и LSTOR_BLOB. Тогда уже и поисковик можно будет упростить.
...
Рейтинг: 0 / 0
Новая бесплатная база данных LStor
    #37556648
Division X
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Немного слов о том, для чего я этот эльстор вообще замутил. Главной задачей было реализовать хранилище ассоциативных массивов (кого-то напоминает, да?) под чистый Си за минимальное количество функций в библиотеке. Да, можно было бы взять чистую глыбу или тот же BDB, но интерфейсы показались мне чересчур неудобными. К тому же, если говорить о глыбе, там нету некоторых вещей, которые уже реализованы в эльсторе (да-да, экспорт и долбаный импорт, который, вот уж я не пойму, с какого перепугу, но работает в 5 раз медленнее экспорта) и планируются. Стратегия - не раздувать API, наращивая возможности в пределах 10-20 простых функций. В текущей версии их 7.
В дальнейшем добавится еще такая вещь, как список активных таблиц, где по имени таблицы можно будет получить ее хендл. Возможно, появятся курсоры а-ля GHashTableIter. Типы данных тоже не будут стоять на месте. Следующим на очереди, думаю, будут LSTOR_LIST и LSTOR_BLOB. Тогда уже и поисковик можно будет упростить.
...
Рейтинг: 0 / 0
Новая бесплатная база данных LStor
    #37556651
Division X
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Глюконавтика. >_< Кто поставил сюда TJ7?
...
Рейтинг: 0 / 0
Новая бесплатная база данных LStor
    #37556809
ShkololoDB
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Где курсоры где выборка по диапазону
ключей где скорость. В стебельке наносекунда здесь 55 наносек
на поиск
а вообще обертки писать на пацанские либы
талант третикласников

Так что по обсуждению как видишь всем откровенно покуй
...
Рейтинг: 0 / 0
Новая бесплатная база данных LStor
    #37556815
Division X
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Школоло, у меня на машине теоретически может быть 3 наносека минимум, какая одна?
Какая нафиг выборка по диапазону ключей, если ключи строковые?
Курсоры будут, уже ж написал. Выборку по диапазону числовых ключей, может, тоже сделаю.

Да и вообще, базило, залогинься.
...
Рейтинг: 0 / 0
Новая бесплатная база данных LStor
    #37556848
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ребят, курсоры это уровень абстракций который вам пока
еще не нужен IMHO.
...
Рейтинг: 0 / 0
Новая бесплатная база данных LStor
    #37556993
Division X
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну у меня это не те курсоры будут, а просто глыбовские итераторы. У базиллы, я так вижу, тоже нечто подобное.
...
Рейтинг: 0 / 0
Новая бесплатная база данных LStor
    #37557002
ДохтаР
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Division X Ударим опенсорсным велосипедостроением по делфям и копирастии!
Посвящается первым двум темам с похожим названием.





Респект !!!!


теперь замечания по существу:

$ make glibstatic
gcc -c -fPIC -s -o lstor.o `pkg-config --cflags glib-2.0` lstor.c
lstor.c: In function ‘InitTable’:
lstor.c:44: error: ‘g_double_hash’ undeclared (first use in this function)
lstor.c:44: error: (Each undeclared identifier is reported only once
lstor.c:44: error: for each function it appears in.)
lstor.c:44: error: ‘g_double_equal’ undeclared (first use in this function)

grep -n g_double_hash *
lstor.c:44: res->keytable=g_hash_table_new_full(g_double_hash, g_double_equal,g_free,NULL);



$gcc -v
Using built-in specs.
Target: x86_64-redhat-linux
Configured with: ../configure --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info --with-bugurl=http://bugzilla.redhat.com/bugzilla --enable-bootstrap --enable-shared --enable-threads=posix --enable-checking=release --with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions --enable-languages=c,c++,objc,obj-c++,java,fortran,ada --enable-java-awt=gtk --disable-dssi --enable-plugin --with-java-home=/usr/lib/jvm/java-1.5.0-gcj-1.5.0.0/jre --enable-libgcj-multifile --enable-java-maintainer-mode --with-ecj-jar=/usr/share/java/eclipse-ecj.jar --disable-libjava-multilib --with-ppl --with-cloog --with-tune=generic --with-arch_32=i586 --build=x86_64-redhat-linux
Thread model: posix
gcc version 4.4.1 20090725 (Red Hat 4.4.1-2) (GCC)

$ rpm -qla | grep glib-2.
/lib/libglib-2.0.so.0
/lib/libglib-2.0.so.0.2000.5
/lib64/libglib-2.0.so.0
/lib64/libglib-2.0.so.0.2000.5
/usr/lib64/libpyglib-2.0.so
/usr/lib64/libpyglib-2.0.so.0
/usr/lib64/libpyglib-2.0.so.0.0.0
/usr/include/glib-2.0
/usr/include/glib-2.0/gio
/usr/include/glib-2.0/gio/gappinfo.h
/usr/include/glib-2.0/gio/gasyncresult.h
/usr/include/glib-2.0/gio/gbufferedinputstream.h
/usr/include/glib-2.0/gio/gbufferedoutputstream.h
/usr/include/glib-2.0/gio/gcancellable.h
/usr/include/glib-2.0/gio/gcontenttype.h
/usr/include/glib-2.0/gio/gdatainputstream.h
/usr/include/glib-2.0/gio/gdataoutputstream.h
/usr/include/glib-2.0/gio/gdrive.h
/usr/include/glib-2.0/gio/gemblem.h
/usr/include/glib-2.0/gio/gemblemedicon.h
/usr/include/glib-2.0/gio/gfile.h
/usr/include/glib-2.0/gio/gfileattribute.h
/usr/include/glib-2.0/gio/gfileenumerator.h
/usr/include/glib-2.0/gio/gfileicon.h
/usr/include/glib-2.0/gio/gfileinfo.h
/usr/include/glib-2.0/gio/gfileinputstream.h
/usr/include/glib-2.0/gio/gfilemonitor.h
/usr/include/glib-2.0/gio/gfilenamecompleter.h
/usr/include/glib-2.0/gio/gfileoutputstream.h
/usr/include/glib-2.0/gio/gfilterinputstream.h
/usr/include/glib-2.0/gio/gfilteroutputstream.h
/usr/include/glib-2.0/gio/gicon.h
/usr/include/glib-2.0/gio/ginputstream.h
/usr/include/glib-2.0/gio/gio.h
/usr/include/glib-2.0/gio/gioenums.h
/usr/include/glib-2.0/gio/gioenumtypes.h
/usr/include/glib-2.0/gio/gioerror.h
/usr/include/glib-2.0/gio/giomodule.h
/usr/include/glib-2.0/gio/gioscheduler.h
/usr/include/glib-2.0/gio/giotypes.h
/usr/include/glib-2.0/gio/gloadableicon.h
/usr/include/glib-2.0/gio/gmemoryinputstream.h
/usr/include/glib-2.0/gio/gmemoryoutputstream.h
/usr/include/glib-2.0/gio/gmount.h
/usr/include/glib-2.0/gio/gmountoperation.h
/usr/include/glib-2.0/gio/gnativevolumemonitor.h
/usr/include/glib-2.0/gio/goutputstream.h
/usr/include/glib-2.0/gio/gseekable.h
/usr/include/glib-2.0/gio/gsimpleasyncresult.h
/usr/include/glib-2.0/gio/gthemedicon.h
/usr/include/glib-2.0/gio/gvfs.h
/usr/include/glib-2.0/gio/gvolume.h
/usr/include/glib-2.0/gio/gvolumemonitor.h
/usr/include/glib-2.0/glib
/usr/include/glib-2.0/glib-object.h
/usr/include/glib-2.0/glib.h
/usr/include/glib-2.0/glib/galloca.h
/usr/include/glib-2.0/glib/garray.h
/usr/include/glib-2.0/glib/gasyncqueue.h
/usr/include/glib-2.0/glib/gatomic.h
/usr/include/glib-2.0/glib/gbacktrace.h
/usr/include/glib-2.0/glib/gbase64.h
/usr/include/glib-2.0/glib/gbookmarkfile.h
/usr/include/glib-2.0/glib/gcache.h
/usr/include/glib-2.0/glib/gchecksum.h
/usr/include/glib-2.0/glib/gcompletion.h
/usr/include/glib-2.0/glib/gconvert.h
/usr/include/glib-2.0/glib/gdataset.h
/usr/include/glib-2.0/glib/gdate.h
/usr/include/glib-2.0/glib/gdir.h
/usr/include/glib-2.0/glib/gerror.h
/usr/include/glib-2.0/glib/gfileutils.h
/usr/include/glib-2.0/glib/ghash.h
/usr/include/glib-2.0/glib/ghook.h
/usr/include/glib-2.0/glib/gi18n-lib.h
/usr/include/glib-2.0/glib/gi18n.h
/usr/include/glib-2.0/glib/giochannel.h
/usr/include/glib-2.0/glib/gkeyfile.h
/usr/include/glib-2.0/glib/glist.h
/usr/include/glib-2.0/glib/gmacros.h
/usr/include/glib-2.0/glib/gmain.h
/usr/include/glib-2.0/glib/gmappedfile.h
/usr/include/glib-2.0/glib/gmarkup.h
/usr/include/glib-2.0/glib/gmem.h
/usr/include/glib-2.0/glib/gmessages.h
/usr/include/glib-2.0/glib/gnode.h
/usr/include/glib-2.0/glib/goption.h
/usr/include/glib-2.0/glib/gpattern.h
/usr/include/glib-2.0/glib/gpoll.h
/usr/include/glib-2.0/glib/gprimes.h
/usr/include/glib-2.0/glib/gprintf.h
/usr/include/glib-2.0/glib/gqsort.h
/usr/include/glib-2.0/glib/gquark.h
/usr/include/glib-2.0/glib/gqueue.h
/usr/include/glib-2.0/glib/grand.h
/usr/include/glib-2.0/glib/gregex.h
/usr/include/glib-2.0/glib/grel.h
/usr/include/glib-2.0/glib/gscanner.h
/usr/include/glib-2.0/glib/gsequence.h
/usr/include/glib-2.0/glib/gshell.h
/usr/include/glib-2.0/glib/gslice.h
/usr/include/glib-2.0/glib/gslist.h
/usr/include/glib-2.0/glib/gspawn.h
/usr/include/glib-2.0/glib/gstdio.h
/usr/include/glib-2.0/glib/gstrfuncs.h
/usr/include/glib-2.0/glib/gstring.h
/usr/include/glib-2.0/glib/gtestutils.h
/usr/include/glib-2.0/glib/gthread.h
/usr/include/glib-2.0/glib/gthreadpool.h
/usr/include/glib-2.0/glib/gtimer.h
/usr/include/glib-2.0/glib/gtree.h
/usr/include/glib-2.0/glib/gtypes.h
/usr/include/glib-2.0/glib/gunicode.h
/usr/include/glib-2.0/glib/gurifuncs.h
/usr/include/glib-2.0/glib/gutils.h
/usr/include/glib-2.0/glib/gwin32.h
/usr/include/glib-2.0/gmodule.h
/usr/include/glib-2.0/gobject
/usr/include/glib-2.0/gobject/gboxed.h
/usr/include/glib-2.0/gobject/gclosure.h
/usr/include/glib-2.0/gobject/genums.h
/usr/include/glib-2.0/gobject/gmarshal.h
/usr/include/glib-2.0/gobject/gobject.h
/usr/include/glib-2.0/gobject/gobjectnotifyqueue.c
/usr/include/glib-2.0/gobject/gparam.h
/usr/include/glib-2.0/gobject/gparamspecs.h
/usr/include/glib-2.0/gobject/gsignal.h
/usr/include/glib-2.0/gobject/gsourceclosure.h
/usr/include/glib-2.0/gobject/gtype.h
/usr/include/glib-2.0/gobject/gtypemodule.h
/usr/include/glib-2.0/gobject/gtypeplugin.h
/usr/include/glib-2.0/gobject/gvalue.h
/usr/include/glib-2.0/gobject/gvaluearray.h
/usr/include/glib-2.0/gobject/gvaluecollector.h
/usr/include/glib-2.0/gobject/gvaluetypes.h
/usr/lib64/glib-2.0
/usr/lib64/glib-2.0/include
/usr/lib64/glib-2.0/include/glibconfig.h
/usr/lib64/libglib-2.0.so
/usr/lib64/pkgconfig/glib-2.0.pc
/usr/share/aclocal/glib-2.0.m4
/usr/share/glib-2.0
/usr/share/glib-2.0/gettext
/usr/share/glib-2.0/gettext/mkinstalldirs
/usr/share/glib-2.0/gettext/po
/usr/share/glib-2.0/gettext/po/Makefile.in.in



Что-то не так с моей платформой и(или) глибой ?

Вероятнее всего нужно просто явно сказать где лежит /usr/include/glib-2.0/glib.h

Тебе виднее что и где править, что бы не устраивать зоопарк версий сборок.
...
Рейтинг: 0 / 0
Новая бесплатная база данных LStor
    #37557004
Division X
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ДохтаР,

спс за багрепорт. Такой косяк только с make glibstatic, а просто make отрабатывает нормально?
Для успешной компиляции в режиме glibstatic надо, чтоб в системе валялся /usr/lib/libglib-2.0.a или нечто похожее на него. Дело в том, что у меня на арче тоже изначально не было статик-версии глыбы2 и я ее ставил отдельно.
...
Рейтинг: 0 / 0
Новая бесплатная база данных LStor
    #37557006
ДохтаР
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Когда соберу, потестирую, возможно выдам еще дельные предложения.
что бы не флудить за зря , можешь в личку в профиле писать .
...
Рейтинг: 0 / 0
Новая бесплатная база данных LStor
    #37557007
Division X
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Естественно, что если в системе нет статической глыбы, то к чему оно линковаться в glibstatic будет-то? :) В приведенном выше списке ни одного .a-файла не увидел.
...
Рейтинг: 0 / 0
Новая бесплатная база данных LStor
    #37557009
Division X
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ДохтаР,

Да можно и тутЪ.
...
Рейтинг: 0 / 0
Новая бесплатная база данных LStor
    #37557012
ДохтаР
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Division XДохтаР,

спс за багрепорт. Такой косяк только с make glibstatic, а просто make отрабатывает нормально?
Для успешной компиляции в режиме glibstatic надо, чтоб в системе валялся /usr/lib/libglib-2.0.a или нечто похожее на него. Дело в том, что у меня на арче тоже изначально не было статик-версии глыбы2 и я ее ставил отдельно.


Я о том что ты хозаин , и тебе решать параметры сборки.
Считаю нужным добиться что бы сборка была универсальной для максимального количества платформ.

Может стоит подумать над ./configure готовящего Makefile ?
...
Рейтинг: 0 / 0
25 сообщений из 698, страница 1 из 28
Форумы / Другие СУБД [игнор отключен] [закрыт для гостей] / Новая бесплатная база данных LStor
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]