LINUX.ORG.RU

В какую DB можно засунуть ADT?

 , , ,


0

2

Чем люди пользуются, когда нужно обеспечить thread-safe доступ к некому ассоциативному контейнеру, состояние которого должно сохраняться в файл?

Я полный нуль в том, что касается баз данных. Вычитал, что SQL базы данных умеют хранить только произведения типов (кортежи), т. е. алгебраический тип в них в общем случае не засунешь. Но есть, вроде, разные noSQL БД, в которых можно хранить сериализованные данные в виде текста и т.д. Кто из них более подходит для частого чтения и редкой записи, например?



Последнее исправление: CYB3R (всего исправлений: 2)

Тип B — пример того, что нужно хранить:

data A = A T1 T2 ...

data B = B [A] [T3] ...
dmfd
() автор топика
Ответ на: комментарий от Suntechnic

A почему не mongoDB, например?

Вообще, тред глупый получился. Как только я начал искать данные о конкретных вещах, сразу наткнулся на общий термин: key-value хранилище, по которому гугли-не хочу.

dmfd
() автор топика
Ответ на: комментарий от Suntechnic

Похоже, это действительно ближе всего к тому, что я ищу. А как благородные доны предпочитают сериализовать в него данные?

Не слишком ли извращённо это делать protobuf'ом?

dmfd
() автор топика
Последнее исправление: dmfd (всего исправлений: 1)
Ответ на: комментарий от dmfd

Зачем вам отвязка от вашего ЯП? А сгенерированный код отвечает только за сообщения, а не за их отправку да еще и в многих потоках

vertexua ★★★★★
()
Ответ на: комментарий от vertexua

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

И хорошо, поскольку я ничего никуда отправлять не собираюсь.

dmfd
() автор топика
Ответ на: комментарий от vertexua

Зачем вам отвязка от вашего ЯП?

Странный вопрос. А что делать с БД, когда единственный хаскеллист в команде подавится мацой неудачно выполнит команду из своего профиля?

dmfd
() автор топика
Последнее исправление: dmfd (всего исправлений: 1)
Ответ на: комментарий от vertexua

Один анон, помню, утверждал, что в protobuf можно закатать хоть рекуррентые ADT. Protobuf генерирует ByteString. Для redis есть API на ByteString.

dmfd
() автор топика
Ответ на: комментарий от vertexua

А, так вы во внутрь их пихать будете

Вроде того. Таким образом выйдет совсем мало кода. Но меня терзают сильные сомнения, правильно ли это. Или лучше представить данные так, чтобы было удобнее хранилищу, а не логике.

dmfd
() автор топика
Ответ на: комментарий от dmfd

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

vertexua ★★★★★
()
Ответ на: комментарий от vertexua

Мне всё равно, что там подумают археологи (у них будет proto-файл), меня в основном волнует, чтобы вероятность появления боттлнека в этом месте была не сильно больше, чем в случае велосипеда на STM.

dmfd
() автор топика
Ответ на: комментарий от dmfd

Или лучше представить данные так, чтобы было удобнее хранилищу, а не логике.

Если логику надо подстраивать под хранилище, лучше такое хранилище выкинуть сразу. Ты инструмент подбираешь под задачу или задачу под инструмент? Всегда стоит ориентироваться только на логику.

Suntechnic ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.