Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Реализовать для табличных частей и реквизитов свойство compress #348

Open
unpete opened this issue Jul 23, 2018 · 6 comments
Assignees
Labels

Comments

@unpete
Copy link
Member

unpete commented Jul 23, 2018

архивировать при сериализации и разархивировать при получении с сервера

@unpete unpete self-assigned this Jul 23, 2018
@leemuar
Copy link

leemuar commented Jul 31, 2018

Предлагаю более говорящее свойство: compress. zip может означать и почтовый индекс
А цель задачи в чем? Уменьшить размер передаваемых по сети данных?

@unpete
Copy link
Member Author

unpete commented Jul 31, 2018

А цель задачи в чем? Уменьшить размер передаваемых по сети данных?

Да, статистика, основанная на реальных данных крупных клиентов Заказа дилера показала, что экономия трафика и места на диске может достигать 7-10 раз. Экономия 800Gb на каждом терабайте, выглядит привлекательно.
С компрессией в направлении от сервера, хорошо справляется nginx, но в веб-приложении, трафик от клиента бывает в разы больше встречного.
А еще, couchdb будет меньше напрягаться при сериализации и десериализации строки в 10Kb в сравнении с массивом объектов в 100Kb.

@unpete unpete changed the title Реализовать для табличных частей и реквизитов свойство zip Реализовать для табличных частей и реквизитов свойство compress Jul 31, 2018
@leemuar
Copy link

leemuar commented Aug 18, 2018

Поясните еще немного, пожалуйста, я до конца не понимаю задумку:

на стороне CouchDB табличная часть или реквизит будет храниться сжатым (обфусцированным)? т.е. поиск по такие реквизитам/табличным частям на стороне СУБД будет невозможен?

@unpete
Copy link
Member Author

unpete commented Aug 18, 2018

поиск [...] будет невозможен?

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

@leemuar
Copy link

leemuar commented Aug 18, 2018

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

И последний вопрос: какие примерно компоненты metadata.js предполагается менять для этой функциональности?

@unpete
Copy link
Member Author

unpete commented Aug 18, 2018

Только core - остальная часть никаких изменений не заметит.
Вообще, это задача с низким приоритетом - места на дисках пока хватает.

@unpete unpete added the lo label Aug 18, 2018
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

2 participants