@haskellru

Страница 185 из 1551
Quet
15.02.2017
10:14:26
я просто кажется не видел к ней коннектора из хаскеля

Alexander
15.02.2017
10:15:20
lmdb и lmdb-hight-level

второй ужасен

@quetzal кстати

Google
Alexander
15.02.2017
10:17:30
если поставить -DMDB_DEVEL=1 то тогда один код становится очень странным:

#if SIZE_MAX > MAXDATASIZE if (data->mv_size > ((mc->mc_db->md_flags & MDB_DUPSORT) ? ENV_MAXKEY(env) : MAXDATASIZE)) return MDB_BAD_VALSIZE;

но если расширение включено то ENV_MAX_KEY(env) = 0

в итоге получаем if (data->mv_size > 0) return MDB_BAD_VALSIZE

я тупой или это ошибка

#if MDB_MAXKEYSIZE #define ENV_MAXKEY(env) (MDB_MAXKEYSIZE) #else

#ifndef MDB_MAXKEYSIZE #define MDB_MAXKEYSIZE ((MDB_DEVEL) ? 0 : 511) #endif

или подрузамевается, что если я делаю MDB_DEVEL то я и MAXKEYSIZE должен указать?*

Quet
15.02.2017
10:20:49
угу

Alexander
15.02.2017
10:21:06
а, разумно

Quet
15.02.2017
10:21:32
то что надо указывать макс размер базы тоже печаль кстати (

но уж так оно мапит файл

Alexander
15.02.2017
10:21:50
MAXKEYSIZE значительно ухудшит ситуацию, когда когда ключи мелкие?

Google
Alexander
15.02.2017
10:22:05
у них просто *где-то* огромные ключи, хотя в основном небольшие

Quet
15.02.2017
10:24:06
мне кажется там хард лимит небольшой

то есть больше пары кб вы ключи туда не сунете

Alexander
15.02.2017
10:24:32
511 по дефолту

если не пересобирать

Quet
15.02.2017
10:24:53
да, это дефолт

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

Alexander
15.02.2017
10:26:06
о ещё вопрос

если я удаляю ключ соотвествующей именованной базе, на вся удалится?

Quet
15.02.2017
10:27:53
не пробовал, но у тебя ж есть отдельный апи чтобы удалить базу

Dmitry
15.02.2017
10:33:02
а reddis это обычный redis который все советуют в твитере?

и в чем причина съезда с него?

Alexander
15.02.2017
10:34:17
померяли был в десятки раз медленее

не знаю, это не мой проект

Quet
15.02.2017
10:35:02
ну редис это ж сервер все же, понятно что там накладные расходы есть на то чтоб по сети сходить запрос отправить, распарсить, ответ кинуть и тд

Alexander
15.02.2017
10:35:22
угу

ещё вопрос

Quet
15.02.2017
10:35:28
но если в скорость этого реально упираются... ну хз

а reddis это обычный redis который все советуют в твитере?
ты так ссылку на тредик про эрланг и не кинул! )

Alexander
15.02.2017
10:35:53
если записи идут в общем-то в произвольное место, то есть ли смысл курсором пользоваться?

Google
Dmitry
15.02.2017
10:36:51
@quetzal там не очень зажигательно, Лапшин пару раз огрызнулся и всё. https://www.facebook.com/yuri.zhloba/posts/1488518801180246

Alexander
15.02.2017
10:37:27
вообще для чего-нить

а для чтения когда нужен курсор, а когда нет?

Quet
15.02.2017
10:46:17
курсоры ж для итерации

если тебе надо просто значение по ключу взять -- не нужны

Dmitry
15.02.2017
10:46:32
а есть способ мапить сишные структуры в хаскельное что-то и обратно?

Alexander
15.02.2017
10:46:34
да, тут просто они на каждй чих

прям маппить? нету

есть Storable

Dmitry
15.02.2017
10:46:48
суть такова, что есть сищный бинарный rpc

надо бы на хаскеле клиента сделать

Alexander
15.02.2017
10:47:07
можно сделать reader, который аллоцировать почти не будет

Dmitry
15.02.2017
10:47:11
ну т.е что-то более модное, чем Data.Binary

дата бинари я сам умею, это решение по умолчанию

да там нет никаких требований кроме руками не писать и что бы не расходились версии

Alexander
15.02.2017
10:49:40
так rpc мапится на сишные структуры?

что мапится то через storable и hsc2hs

@quetzal т.е. если я не использую next/prev или как их там в курсоре или найти, потом изменить/удалить - то курсор мне не нужен?

правильно?

Google
Quet
15.02.2017
10:52:42
ага ну еще если dup база то там можно получить курсор по ключу который стартует с первого элемента

и им перебрать дубли

Dmitry
15.02.2017
10:54:43
@qnikst туда и обратно мапится. изначально да, описан просто как сищная структура

обычный POD без указателей

Anatolii
15.02.2017
10:55:47
@qnikst а ты когда-то кидал код конвеншены которые вы у себя использутее, можешь подкинуть еще раз?

Alexander
15.02.2017
10:56:11
https://github.com/tweag/guides/

@voidlizard тогда storable и hsc2hs

оно тебе ещё и некоторые изменения header-ов отловит

Dmitry
15.02.2017
10:57:39
@qnikst спасибо, посмотрю. но свиг же у нас не принято использовать, если что?

Alexander
15.02.2017
10:58:20
вроде нет

Admin
ERROR: S client not available

Alexander
15.02.2017
10:58:27
ни разу не видел, чтобы использовали

@quetzal я уже спросил но не могу найти где. удаление именованой базы, как удаление ключа работает?

Quet
15.02.2017
11:15:19
в смысле как удаление ключа?

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

Alexander
15.02.2017
11:16:37
а ок

пасиб

ещё вопрос

а не, нету вопроса

на всякий случай, внутри транзакции я могу открывать и закрывать базы 100500 раз и если что все откатится нрмальн?

Google
Alexander
15.02.2017
11:23:09
а dup база, то значения в сортированном порядке, так? или до времени добавления?

AxiS
15.02.2017
11:40:47
никогда не понимал, зачем так делать. особенно, если мало времени на изучение дают.
Чтоб студенты научились учиться) Самостоятельно разбираться, изучать.

Dmitry
15.02.2017
11:43:12
вообще загадка, зачем (и как?) учить яп

если человеку надо - он научится

если не надо - не научится

Alexander
15.02.2017
11:43:37
ы

отлично

Alexander
15.02.2017
11:43:58
подбазы

именованные в смысле

Quet
15.02.2017
11:46:08
открываешь базу, в ней транзакцию.. или вопрос был как транзакцию на несколько баз делать?

если db не указывать транзакции то она будет на весь env твой

и там да, создаешь-удаляешь как хочешь

и можешь откатить

и там да, создаешь-удаляешь как хочешь
именованые базы создаешь-удаляешь в смысле

Alexander
15.02.2017
11:56:47
ок, отлчино

ещё вопрос, без курсора у меня put/get работают по всем базам открытым, так?

@quetzal ^^

извиняюсь, что я тебя как расширенную документацию использую и спасибо за ответы

Quet
15.02.2017
12:00:05
ну не, по дефолту put/get работают с main database в твоем env

(та которая без имени)

ты если хочешь get по всем базам сделать то можно итератором из основной базы вытащить имена всех остальных и потом по ним пройтись но если такое надо делать -- скорее всего не надо было делить базу на именованые )

Страница 185 из 1551