URL: https://ssl.opennet.ru/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID3
Нить номер: 103224
[ Назад ]

Исходное сообщение
"Проект по созданию варианта СУБД Redis, переписанного на язы..."

Отправлено opennews , 22-Июн-15 11:02 
В рамках проекта Rsedis (https://github.com/seppo0010/rsedis) ведётся работа по созданию реализации СУБД Redis (http://redis.io/), переписанной с использованием языка программирования Rust. Кроме изучения языка  Rust разработчики проекта также ставят перед собой цель создания переносимой редакции Redis, которую можно будет использовать на платформе Windows. В настоящее время оригинальный Redis написан на Си и использует некоторые специфичные функции UNIX, что мешает его портированию на другие системы. Несмотря на то, что многие возможности оригинального Redis ещё не реализованы (https://github.com/seppo0010/rsedis/blob/master/TODO.md), проект активно развивается (https://github.com/seppo0010/rsedis/commits/master) и уже вполне пригоден для экспериментов


URL: https://news.ycombinator.com/item?id=9741625
Новость: https://www.opennet.ru/opennews/art.shtml?num=42473


Содержание

Сообщения в этом обсуждении
"Проект по созданию варианта СУБД Redis, переписанного на язы..."
Отправлено Аноним , 22-Июн-15 11:02 
Вот бы так хоть одна открытая реляционная бд развивалась...

"Проект по созданию варианта СУБД Redis, переписанного на язы..."
Отправлено Вова , 22-Июн-15 15:11 
Внезапно PostgreSQL так развивается.

"Проект по созданию варианта СУБД Redis, переписанного на язы..."
Отправлено Аноним , 22-Июн-15 16:21 
У PostgreSQL своё виденье мира, в котором исключено использование преимуществ оперативной памяти.

"Проект по созданию варианта СУБД Redis, переписанного на язы..."
Отправлено Вова , 22-Июн-15 18:48 
И какие преимущества оперативной памяти отказывается использовать PostgreSQL?

Вообще вопрос бы не про это, а про развитие open source СУБД. На примере PostgreSQL можно увидеть что развитие в open source СУБД есть, притом в достаточно высоком темпе.


"Проект по созданию варианта СУБД Redis, переписанного на язы..."
Отправлено Аноним , 22-Июн-15 18:53 
PostgreSQL урезанная база и развития в сторону хранения в памяти нет вообще. Не говоря уже про кэширование записи, отсутствие которого напрочь исключает возможность использования ssd в высоконагруженных проектах.

"Проект по созданию варианта СУБД Redis, переписанного на язы..."
Отправлено Аноним , 22-Июн-15 19:04 
У нее есть хранение в памяти, развивать его далее, каким то особым образом, на фоне остальных фич и проектов типа того же редиса не приоритетно и может быть даже не целесообразно, с "урезанной" вы явно погорячились)

"Проект по созданию варианта СУБД Redis, переписанного на язы..."
Отправлено Stax , 22-Июн-15 21:16 
Вы сами-то поняли, что сказали (про кэширование и SSD)?

"Проект по созданию варианта СУБД Redis, переписанного на язы..."
Отправлено Аноним , 22-Июн-15 22:27 
Так PostgreSQL - это система управления базами данных, а не базами мусора, который и потерять не жалко.

"Проект по созданию варианта СУБД Redis, переписанного на язы..."
Отправлено Аноним , 22-Июн-15 19:02 
В memcached данные хранятся в оперативке и отказоустойчивость комплекса можно повышать за счет наращивания количества memcached серверов и возможности производить их горячую замену.
Redis умеет сохранять данные на диск. Можно настроить Redis так, чтобы данные вообще не сохранялись, сохранялись периодически по принципу copy-on-write, или сохранялись периодически и писались в журнал(binlog). Таким образом, всегда можно добиться требуемого баланса между производительностью и надежностью.
В MySQL того же самого можно добиться вручную через memory движок, хоть и с костылями. А PostgreSQL в принципе не приемлет использование оперативной памяти -> годится только для всяких сайтиков, где операции чтения значительно преобладают над операциями записи.
А так да, это единственная реляционная база которая развивается. Просто, к сожалению, в современных реалиях она не для всех подходит.

"Проект по созданию варианта СУБД Redis, переписанного на язы..."
Отправлено Аноним , 22-Июн-15 19:11 
> А PostgreSQL в принципе не приемлет использование оперативной памяти

Тейблспейсы в памяти и их синканье на диск не?)


"Проект по созданию варианта СУБД Redis, переписанного на язы..."
Отправлено Аноним , 22-Июн-15 21:22 
> Просто, к сожалению, в современных реалиях она не для всех подходит.

Ну так юзайте друге БД в чем проблема?
И правильно делаю что не развивают хранение данных в памяти.


"Проект по созданию варианта СУБД Redis, переписанного на язы..."
Отправлено XoRe , 23-Июн-15 21:16 
> У PostgreSQL своё виденье мира, в котором исключено использование преимуществ оперативной
> памяти.

Вы так говорите, как будто в нем нет shared_buffers и effective_cache_size.
Postgresql рассчитан на то, чтобы по максимому кешировать индексы и данные в оперативке, чтобы не дергать диск.
Поэтому ваше видение "видения postgresql" вызывает много вопросов.

Если вам нужно ram only решение, никто не мешает вам использовать tmpfs.


"Проект по созданию варианта СУБД Redis, переписанного на язы..."
Отправлено Аноним , 22-Июн-15 18:50 
Только вот PostgreSQL ограничивается работой только с жестким диском. Поэтому часто остается MySQL и ее форки, а с ними всё паршиво.

"Проект по созданию варианта СУБД Redis, переписанного на язы..."
Отправлено Аноним , 22-Июн-15 18:56 
> Только вот PostgreSQL ограничивается работой только с жестким диском.

С чего вы это взяли? во всю юзается системный кеш и табличные пространства в памяти


"Проект по созданию варианта СУБД Redis, переписанного на язы..."
Отправлено Аноним , 24-Июн-15 01:12 
> Внезапно PostgreSQL так развивается.

В смысле, его тоже какая-то хипстота из гугла или мозиллы на Go и прочие rust переписывают? Мне кажется, переписывать им не переписывать. На ближайшие 10 лет они будут озадачены.


"Проект по созданию варианта СУБД Redis, переписанного на язы..."
Отправлено Аноним , 22-Июн-15 15:13 
Загляните в трекер MySQL или Percona - от такого количества багов у любого руки опустятся. А ораклу в принципе не выгодно развиваться MySQL

"Проект по созданию варианта СУБД Redis, переписанного на язы..."
Отправлено Аноним , 24-Июн-15 01:13 
> Загляните в трекер MySQL или Percona - от такого количества багов у
> любого руки опустятся. А ораклу в принципе не выгодно развиваться MySQL

Ну так поэтому есть MariaDB - им разиваться выгодно, в отличие от :)


"Проект по созданию варианта СУБД Redis, переписанного на язы..."
Отправлено Бутират , 22-Июн-15 11:02 
> СУБД Redis

Утютю. Ну прямо система управления базой данных, а не структурированный кэш


"Проект по созданию варианта СУБД Redis, переписанного на язы..."
Отправлено Аноним , 22-Июн-15 11:07 
Это одно и то же

"Проект по созданию варианта СУБД Redis, переписанного на язы..."
Отправлено Аноним , 23-Июн-15 15:16 
В ACID твой кэш могёт?

"Проект по созданию варианта СУБД Redis, переписанного на язы..."
Отправлено Аноним , 22-Июн-15 11:08 
Посмотрите список доступных команд на офсайте. Управляй нехочу

"Проект по созданию варианта СУБД Redis, переписанного на язы..."
Отправлено Аноним , 22-Июн-15 18:52 
Тем не менее до полноценной СУБД очень и очень далеко, однопоточка - элементарная выборка ключей по маске и приехали, разделить базу на области нельзя (разделение якобы на номера баз - фейк), соответственно просмотр всей базы или поднимай разные инстансы, вложенных выборок и объединений нет, да много чего нет, а вот как продвинутый кеш ключ-структурированное значение - замечательна! тут бесспорно

"Проект по созданию варианта СУБД Redis, переписанного на язы..."
Отправлено Аноним , 24-Июн-15 01:14 
> Тем не менее до полноценной СУБД

#define "полноценной СУБД"?

А то может кому полноценно - только Оракль. Мало ли у кого какие понятия о.


"Проект по созданию варианта СУБД Redis, переписанного на язы..."
Отправлено близняшко , 22-Июн-15 11:09 
>> Why?
> To learn Rust.

grumpy_the_cat.jpg


"Проект по созданию варианта СУБД Redis, переписанного на язы..."
Отправлено Аноним , 22-Июн-15 11:55 
Почему бы и нет? Честно зато.

"Проект по созданию варианта СУБД Redis, переписанного на язы..."
Отправлено cmp , 22-Июн-15 12:54 
А мало бд на всяких js и java'x? юникс-онли места на си не проще переписать?

"Проект по созданию варианта СУБД Redis, переписанного на язы..."
Отправлено 10й Брейтовский переулок , 22-Июн-15 14:04 
С/С++ - это ходячий мертвец. Пока ходит, но поддерживать г.мамонта желающих становится все меньше.

"Проект по созданию варианта СУБД Redis, переписанного на язы..."
Отправлено cmp , 22-Июн-15 18:10 
бу-га-га, ну ты дурачек

"Проект по созданию варианта СУБД Redis, переписанного на язы..."
Отправлено Аноним , 24-Июн-15 01:16 
> С/С++ - это ходячий мертвец. Пока ходит, но поддерживать г.мамонта желающих становится
> все меньше.

Ну ты себе хотя-бы операционку перепиши на чем-нибудь другом, а потом приходи. А до тех пор ты смотришься всего лишь жалким позером от хипстоты, увы и ах.


"Проект по созданию варианта СУБД Redis, переписанного на язы..."
Отправлено Аноним , 22-Июн-15 11:34 
>Кроме изучения языка Rust разработчики проекта также ставят перед собой цель

Вся суть рустомакак.


"Проект по созданию варианта СУБД Redis, переписанного на язы..."
Отправлено Аноним , 24-Июн-15 01:17 
> Вся суть рустомакак.

Не любят на опеннете Капитанов. У Go'пно-Rust'аманской хипстоты - сказочный батхерт!!!


"Проект по созданию варианта СУБД Redis, переписанного на язы..."
Отправлено Куяврег , 22-Июн-15 11:55 
> и использует некоторые специфичные функции UNIX, что мешает его портированию на другие системы.

какие "другие"? OS/2?


> Redis, которую можно будет использовать на платформе Windows.

понятно. но там было "системЫ". я весь в задумчивости.


"Проект по созданию варианта СУБД Redis, переписанного на язы..."
Отправлено Аноним , 22-Июн-15 12:03 
https:// github.com/seppo0010/rsedis/blob/master/database/src/dbutil.rs

    if pos < 0 {
        pos += len;
    }
    if pos < 0 {
        return Err(0);
    }
    if pos > len {
        return Err(len as usize);
    }

Мда, туда им и дорога.


"Проект по созданию варианта СУБД Redis, переписанного на язы..."
Отправлено Аноним , 22-Июн-15 13:42 
>[оверквотинг удален]
>         pos += len;
>     }
>     if pos < 0 {
>         return Err(0);
>     }
>     if pos > len {
>         return Err(len as usize);
>     }
>
> Мда, туда им и дорога.

И что тебе не нравится?


"Проект по созданию варианта СУБД Redis, переписанного на язы..."
Отправлено Evolve32 , 22-Июн-15 14:40 
Ну, может хотя бы так:  
if pos < 0 {
  pos += len;
  return Err(0);
} elseif pos > len {
  return Err(len as usize);
}

Я Rust не знаю, но, думаю, мысль понятна.


"Проект по созданию варианта СУБД Redis, переписанного на язы..."
Отправлено Owlet , 22-Июн-15 14:52 
А теперь посмотри ещё раз и подумай, почему твой код не эквивалентен.


(подсказка: рассмотри pos = -1 len = 2)


"Проект по созданию варианта СУБД Redis, переписанного на язы..."
Отправлено Аноним , 22-Июн-15 22:43 
IMHO, процитированный им кусок кода всё равно написан по-дурацки -- для pos >= 0 будет две проверки на отрицательность, хотя вполне можно было обойтись одной, вложив второй "if (pos < 0) ..." в первый:
if (pos < 0) {
    pos += len;
    if (pos < 0) {
        return Err(0)
    }
}

"Проект по созданию варианта СУБД Redis, переписанного на язы..."
Отправлено EuPhobos , 22-Июн-15 14:54 
> Ну, может хотя бы так:  
> if pos < 0 {
>   pos += len;
>   return Err(0);
> } elseif pos > len {
>   return Err(len as usize);
> }
>
> Я Rust не знаю, но, думаю, мысль понятна.

Тут и знать никакие языки не надо, и так понятно что ты испортил конструкцию.
В оригинале:
Если pos меньше нуля, прибавляем len
Если pos ВСЁ РАВНО меньше нуля - возвращаем ошибку
Ты сделал:
Если pos меньше нуля, прибавляем len и возвращаем ошибку


"Проект по созданию варианта СУБД Redis, переписанного на язы..."
Отправлено Evolve32 , 22-Июн-15 17:31 
>[оверквотинг удален]
>> }
>>
>> Я Rust не знаю, но, думаю, мысль понятна.
> Тут и знать никакие языки не надо, и так понятно что ты
> испортил конструкцию.
> В оригинале:
> Если pos меньше нуля, прибавляем len
> Если pos ВСЁ РАВНО меньше нуля - возвращаем ошибку
> Ты сделал:
> Если pos меньше нуля, прибавляем len и возвращаем ошибку

Да, ошибся, поспешил.


"Проект по созданию варианта СУБД Redis, переписанного на язы..."
Отправлено Аноним , 22-Июн-15 16:57 
> Ну, может хотя бы так:  
> if pos < 0 {
>   pos += len;
>   return Err(0);
> } elseif pos > len {
>   return Err(len as usize);
> }
>
> Я Rust не знаю, но, думаю, мысль понятна.

А, ну теперь, конечно, понятна: ты не знаешь не только Rust


"Проект по созданию варианта СУБД Redis, переписанного на язы..."
Отправлено Аноним , 24-Июн-15 01:19 
> И что тебе не нравится?

Ну вот например


    if pos < 0 {
        pos += len;
    }
    if pos < 0 {
        return Err(0);
    }

...это так и надо? И тут еще на поттеринга наезжают за дурной код. А тут вона какие экспонаты летают, оказывается :)

"Проект по созданию варианта СУБД Redis, переписанного на язы..."
Отправлено Аноним , 22-Июн-15 12:10 
> Кроме изучения языка Rust разработчики проекта также ставят...

не проще ли купить учебник?
или в их странах на свободном по на учебник не заработаешь?


"Проект по созданию варианта СУБД Redis, переписанного на язы..."
Отправлено Аноним , 22-Июн-15 13:58 
> не проще ли купить учебник?

Мусью уверен, что для раста вообще существуют учебники? И что ЯП действительно можно овладеть, лишь читая учебник?


"Проект по созданию варианта СУБД Redis, переписанного на язы..."
Отправлено Нанобот , 22-Июн-15 16:20 
Единственный способ изучать новый язык программирования — писать на нем программы (Брайан Керниган)

"Проект по созданию варианта СУБД Redis, переписанного на язы..."
Отправлено Mr. Cake , 22-Июн-15 12:15 
На Windows же вроде как порт есть силами мелкомягких.

"Проект по созданию варианта СУБД Redis, переписанного на язы..."
Отправлено ADMIN , 22-Июн-15 12:30 
Потом, глядишь, sqlite перепишут.

"Проект по созданию варианта СУБД Redis, переписанного на язы..."
Отправлено xPhoenix , 22-Июн-15 12:46 
Ну что, орёл, всё шутки шутишь? Ну ничего, сейчас чай принесут, и мы с тобой продолжим, продолжим...

"Проект по созданию варианта СУБД Redis, переписанного на язы..."
Отправлено YetAnotherOnanym , 22-Июн-15 12:54 
Фееричный пример студенческого NIH-синдрома.

"Проект по созданию варианта СУБД Redis, переписанного на язы..."
Отправлено Crazy Alex , 22-Июн-15 13:48 
Ну нормальная логика - если хочешь по-настоящему изучить язык - напиши на нём что-то. Другое дело, что на новость это определённо не тянет.

"Проект по созданию варианта СУБД Redis, переписанного на язы..."
Отправлено Andrey Mitrofanov , 22-Июн-15 13:50 
> Ну нормальная логика - если хочешь по-настоящему изучить язык - напиши на
> нём что-то. Другое дело, что на новость это определённо не тянет.

Ну, первого сентября "дети пошли в школу" -- по всем каналам...


"Проект по созданию варианта СУБД Redis, переписанного на язы..."
Отправлено Аноним , 24-Июн-15 01:21 
> нём что-то. Другое дело, что на новость это определённо не тянет.

Вот имено. Давайте блин напишем новость про то что я прямоугольник в CAD ухитрился начертить. Это же новость вселенского масштаба. Примерно как эта rust-o-мания.


"Проект по созданию варианта СУБД Redis, переписанного на язы..."
Отправлено Аноним , 22-Июн-15 13:58 
А зачем может понадобиться база под Windows?

"Проект по созданию варианта СУБД Redis, переписанного на язы..."
Отправлено тоже Аноним , 22-Июн-15 15:39 
Странный вопрос. Как же под винды без базы?
ДотНетчики, собственно, знают только два способа сохранить что-нибудь на компьютере - это реестр и MSSQL.

"Проект по созданию варианта СУБД Redis, переписанного на язы..."
Отправлено Аноним , 22-Июн-15 17:02 
Только связки с Оракл полно, т.к. под показывание цифирок и кручения графиков разных особо удобных инструментов не так много ( когда-то пробовал Qt но слой работы с данными и визуализация ( набор компонентов ) там сильно страдают ).

"Проект по созданию варианта СУБД Redis, переписанного на язы..."
Отправлено Аноним , 22-Июн-15 14:33 
Лучшеб SQL добавили... Обе задумки, а именно переписывание на Rust чтобы было на Rust и создание переносимой реализации ради запуска под Windows - абсурдны, это просто пустая трата времени.

"Проект по созданию варианта СУБД Redis, переписанного на язы..."
Отправлено asargis , 22-Июн-15 14:54 
Не вашего времени? Тогда нечего предъявлять претензии. Человек учит новый язык на примере переписывания Redis.

"Проект по созданию варианта СУБД Redis, переписанного на язы..."
Отправлено Аноним , 22-Июн-15 15:29 
Лучше бы биллинг написал или cms

"Проект по созданию варианта СУБД Redis, переписанного на язы..."
Отправлено тоже Аноним , 22-Июн-15 15:41 
... чем этот комментарий.
Так встань и иди писать биллинг!

"Проект по созданию варианта СУБД Redis, переписанного на язы..."
Отправлено Аноним , 22-Июн-15 19:37 
Я ж не студент, изучающий хруст

"Проект по созданию варианта СУБД Redis, переписанного на язы..."
Отправлено Аноним , 22-Июн-15 22:47 
> Я ж не студент, изучающий хруст, а эксперт (т.к. сейчас -- летние каникулы, а у бабушки игрового компа нема и взять с собой разрешили только планшет!1!)

"Проект по созданию варианта СУБД Redis, переписанного на язы..."
Отправлено Аноним , 23-Июн-15 07:30 
Дык зачем тебе игровой комп чтобы кодить на Rust

"Проект по созданию варианта СУБД Redis, переписанного на язы..."
Отправлено Аноним , 24-Июн-15 01:22 
> Лучшеб SQL добавили...

Вам без них мало SQL-ных баз?


"Проект по созданию варианта СУБД Redis, переписанного на язы..."
Отправлено Аноним , 22-Июн-15 16:25 
а кто-нибудь здешних уже писал что-либо не хеловорное на RUST?

пс:
Ещё Иван Сагалаев судя по его форуму, свою библиотеку таким же методом портируя-учась пишет под RUST  


"Проект по созданию варианта СУБД Redis, переписанного на язы..."
Отправлено Аноним , 22-Июн-15 20:10 
В коментах куча красавцев с мнением ...

"Проект по созданию варианта СУБД Redis, переписанного на язы..."
Отправлено th3m3 , 22-Июн-15 20:55 
А чего их не устраивает уже готовая реализация? Или дайте ка я что-нибудь перепишу на Rust? Тогда бы уже пилили какие-то новые вещи, а не занимались ерундой.

"Проект по созданию варианта СУБД Redis, переписанного на язы..."
Отправлено Есюки , 23-Июн-15 08:57 
>> Или дайте ка я что-нибудь перепишу на Rust?

Кишка тонка у тебя, парень.