outwiker icon indicating copy to clipboard operation
outwiker copied to clipboard

Контейнерный формат хранения дерева?

Open SN-CH opened this issue 5 years ago • 2 comments

Возможно ли добавить вариант хранения всего дерева заметок внутри контейнера, как это сделано, например, в docx или odt, которые по сути являются zip-файлами? Или, скажем, использовать для этой цели tar?

Иногда было бы предпочтительнее иметь один файл, пусть даже и большого размера (например, в случае регулярного автоматического копирования на резервный диск).

SN-CH avatar Aug 21 '18 13:08 SN-CH

Здравствуйте, Jenyay.

Спасибо за Вашу программу. Хотел написать отдельный комментарий/пожелание, но увидел что перекликается с этой темой. Сейчас уже стало распростренённым явлением работать из дома. И это нюанс проявляется при работе с Вашей программой. В какой-то момент я пришел к тому, что проще держать все заметки только на работе (проще по сравнению с вариантом, когда одна копия дома, а другая на работе). Но когда я подключаюсь из дома к офисной сети и запускаю открываю основной файл базы, то опреация открытия растягивается на 15 и более минут. Когда работаю с программой на работе, открытие базы не превышает 1 минуты. В моем случае, количество файлов - 828.

Причины понятны. При открытии программа "перебирает" все файлы с заметками. При работе на локальном комьпютере время обращения к файлам пренебрежимо мало. При работе внутри офиса время отклика в локальной сети меньше одной миллисекунды, и когда "база" находится на сетевом диске время открытия уже становиться заметным, но еще не "напрягает". А вот при подключении из дома время отклика сети порядка 20-30 миллисекунд. Т.е., в ДЕСЯТКИ раз больше. Больше время отклика + протокол SMB + обращение к большому количеству файлов = очень долгая операция открытия.

В случае с архивированием, про что пишет SN-CH, проблема похожая. При работе с большим количеством файлов по сети время именно большое количество файлов начинает играть роль, потому что обращение к каждому файлу сопровождается запросом-ответом по сети. И когда я, находясь дома, хочу перенести базу домой, мне нужно:

  1. подключится к компу в офисе по RDP
  2. на офисном компе заархивировать "базу";
  3. скопировать архив на домашний компьютер;
  4. разархивировать

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

А вот открываю/закрываю я иногда несколько раз в день, и каждый раз ждать 15 минут ... это уже как-то вызывает дискомфорт. Может быть можно сделать хотя бы хранение дерева в одном контейнере, чтобы открытие "базы" при работе в сети с большим временем отклика не растягивалось так сильно?

LamerDrv avatar Nov 30 '21 07:11 LamerDrv

@LamerDrv

Добрый день!

В качестве временного решения я предложил бы использовать Google drive (или MS One drive, Dropbox). Установите его на рабочую (если политика компании это разрешает, например, у нас это не запрещается, хотя к безопасности относятся очень и иногда даже слишком серьёзно, ОС — Windows, насчёт Linux не уверен, про Macintosh ничего не знаю, а данные не особо секретные) и домашнюю машины и настройте автоматическую синхронизацию. Это позволит работать и дома и на работе (в Вашем случае только на домашней машине пока что) исключительно с локальной копией, которая будет при изменении любого файла синхронизироваться с Google drive, а значит и с локальной копией на другой машине. Звучит, возможно, немного сложно, но в действительности я использую этот метод много лет и работает сия схема вполне надёжно.

Это, разумеется, всего лишь болеутоляющее, а не лекарство для выздоровления.

SN-CH avatar Dec 06 '21 14:12 SN-CH