The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Режим отображения отдельной подветви беседы [ Отслеживать ]

Оглавление

Micron открыл код движка хранения HSE, оптимизированного для..., opennews (??), 28-Апр-20, (0) [смотреть все]

Сообщения [Сортировка по времени | RSS]


56. "Micron открыл код движка хранения HSE, оптимизированного для..."  +/
Сообщение от Аноним (54), 29-Апр-20, 13:48 
Если ты где-то возьмешь столько ОЗУ то прямо в ней и держи всю базу скорости будут ух.
Ответить | Правка | К родителю #50 | Наверх | Cообщить модератору

59. "Micron открыл код движка хранения HSE, оптимизированного для..."  +/
Сообщение от нах. (?), 29-Апр-20, 22:07 
прикол в том, что авторы монги об этом - знают. И держат.
Но пытаются сохранить данные при внезапном падении, поэтому скорость у них хороша только когда чтение попадает в кэш, а с записью и особенно update все гораздо интереснее.

А у этой хрени, похоже, вопрос сохранения данных вообще не стоит ;-)

Ответить | Правка | Наверх | Cообщить модератору

60. "Micron открыл код движка хранения HSE, оптимизированного для..."  +/
Сообщение от erthink (ok), 29-Апр-20, 22:53 
> А у этой хрени, похоже, вопрос сохранения данных вообще не стоит ;-)

Ну вот опять "не читал, но осуждаю"...

Эта "хрень" (aka HSE) работает быстрее на 99% из-за mpool (модуль ядра).
В свою очередь, mpool реализует примерно две (нужные для LSM+WAL) вещи, но делает это гораздо оптимальнее чем можно сделать через традиционное API POSIX.

Чтение "через mpool" получается быстрее, во многом, из-за непосредственного отображения данных в память (memory mapped I/O). В этом есть схожесть с libmdbx.

Запись "через mpool" тоже выходит быстрее, так как без лишнего копирования и засорения страничного кэша ядра. Отдельная принципиальная фишка в дозаписи WAL "в одну страницу флеша" без её стирания (хотя многое еще не реализовано). К этому добавьте асинхронность и распараллеливание (внутри ядра) между разными носителями, а также автоматические идеальные write barriers.

При этом специфическое API и реализация внутри ядра позволяют дополнительно экономить на системных вызовов и модификациях PTE (со сбросом кеша).

Т.е. фактически Micron предложил специфическое API для хранения LSM+WAL на solid-носителях, и на примере HSE показал его в действии.
"Но" здесь только одно - в моем понимании вся затея сильно обесценивается при выходе на рынок персистентной памяти и Micron можно заподозрить в "выбрасывании в open-source" проекта, который вот-вот потеряет актуальность.

Ответить | Правка | Наверх | Cообщить модератору

62. "Micron открыл код движка хранения HSE, оптимизированного для..."  +/
Сообщение от нах. (?), 30-Апр-20, 01:03 
>> А у этой хрени, похоже, вопрос сохранения данных вообще не стоит ;-)
> Ну вот опять "не читал, но осуждаю"...

дык, а чего читать-то - данные профайлера? Они у вас разьве есть?

Документации нет, вывален какой-то непойми как работающий код и непойми что тестирующие тесты. (насколько они в  чей-то конкретный use-case ложатся с их фиксированным размером блока, которого в жизни не бывает примерно никогда?)

> Эта "хрень" (aka HSE) работает быстрее на 99% из-за mpool (модуль ядра).

проверяли? И если да - то как? Может она не из-за mpool, а из-за того что половина операций п[р]опадает в память, например? Монга, заметьте, тоже умеет и любит память, но писать на диск старается надежно, и недаром у нее такая большая любовь к единственно-верной xfs.

> В свою очередь, mpool реализует примерно две (нужные для LSM+WAL) вещи, но
> делает это гораздо оптимальнее чем можно сделать через традиционное API POSIX.

ну вот этот момент и стоит разобрать подробнее - чем оптимальнее и насколько. Учитывая что от апи posix используется в нужном нам случае весьма небольшая часть, и та в основном в обход типичных средств ос, не для нас предназначенных.

> Чтение "через mpool" получается быстрее, во многом, из-за непосредственного отображения
> данных в память (memory mapped I/O). В этом есть схожесть с

ну и чем это отличается от банального mmap() ? Да, в случае обычной fs наверняка чуть побольше оверхед, но если там все сделано правильно - он приведет только к десятку передач указателей, не должно это обеспечивать потери в восемь раз.

> Запись "через mpool" тоже выходит быстрее, так как без лишнего копирования и
> засорения страничного кэша ядра. Отдельная принципиальная фишка в дозаписи WAL "в
> одну страницу флеша" без её стирания (хотя многое еще не реализовано).

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

> К этому добавьте асинхронность и распараллеливание (внутри ядра) между разными носителями,

тут, кстати, да, непонятно с чем они сравнивали (опять вопрос к "качеству" информации). Если с lvm stripe + xfs (а то и чем похуже) - то я легко поверю в 8x без всяких махинаций с кэшированием. А если все же это честный тест на single device - то непонятно (зачем он нужен ;-)

> а также автоматические идеальные write barriers.

это я не понял, но не читать же чудо-код...

> Т.е. фактически Micron предложил специфическое API для хранения LSM+WAL на solid-носителях,
> и на примере HSE показал его в действии.

все еще остается вопрос, насколько оно поддерживает целостность, и какую. Похоже, о транзакционной речь не идет? (ну а повредить структуру в lsm+wal, наверное, и не выйдет)

> "Но" здесь только одно - в моем понимании вся затея сильно обесценивается
> при выходе на рынок персистентной памяти и Micron можно заподозрить в
> "выбрасывании в open-source" проекта, который вот-вот потеряет актуальность.

полагаю,этого мы еще доооолго можем не бояться - поскольку персистентная память потребует очень специальных железок (которые не micron производит), а значит будет использоваться только в безумно дорогих специальных случаях. Ну или как вариант - каждый модный-современный сервер будет оснащаться слотом, но целым одним.

а для nvme, как я понимаю, никаких принципиальных отличий от ssd нет.

Ответить | Правка | Наверх | Cообщить модератору

63. "Micron открыл код движка хранения HSE, оптимизированного для..."  +/
Сообщение от erthink (ok), 30-Апр-20, 01:12 
> это я не понял, но не читать же чудо-код...

Тогда мне с вами не о чем говорить.

Ответить | Правка | Наверх | Cообщить модератору

64. "Micron открыл код движка хранения HSE, оптимизированного для..."  +/
Сообщение от нах. (?), 30-Апр-20, 09:38 
>> это я не понял, но не читать же чудо-код...
> Тогда мне с вами не о чем говорить.

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

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

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

Ответить | Правка | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру