Comments 8
Без помощи Rust такой удивительный трюк невозможно провернуть?
TL;DR: реляционная база данных занимает в памяти (на диске) меньше места, чем документоориентированная, на повторяющихся данных.
Сенсация, чё.
Так этож у вас не база данных, насколько я понимаю. Ну т.е. вряд ли кто-то что-то по этим данным ищет. Используются скорее всего конкретные данные за конкретный день, либо из этих ответов апи собирается нормальная компактная нормализованная бд с индексами итп.
И в этом раскладе нет никакого смысла грустить об их общем объеме, т.к. реально это большое количество баз объемом сотни килобайт каждая.
Можно ли хранить данные компактнее, чем они представлены в ответах api ? Конечно да... Json никогда не был, да и не мог быть рекордсменом по компактности.
PS. Если просто зазиповать, насколько уменьшится размер ?
matklad - это Алекс Кладов которому принадлежат одни из лучших лекций по Раст на русском, а еще он много отличных крейтов написал. Знай наших)
Статья имеет кликбейтное название, но это ясно ещё с начала статьи. Но содержание как по мне оправдывает это.
Прочитал в этой статье пару интересных размышлений по поводу того, как автор нашёл объекты, которые он проинтегрировал вследствие. И звёздочку на гитхабе поставил.
Сама техника интернирования довольно интересная. До этого работал с ним только в Java (она умеет из-под капота интернировать строки, см. String.intern), но не почему-то думал о реализации интернера для других. А после прочтения статьи понял, что де-факто работал с интернированием ещё и в проприетарным формате файлов из некоторых игр.
Уменьшаем базу данных в 2000 раз при помощи Rust