Шопинг в америке. как экономить, покупая онлайн. Список товаров, запрещённых к перевозке. Официальные таможенные ограничения

Шопинг в америке. как экономить, покупая онлайн. Список товаров, запрещённых к перевозке. Официальные таможенные ограничения

09.03.2019
  • Алгоритмы ,
  • Разработка веб-сайтов
  • Яндекс.Диск - один из немногих сервисов Яндекса, частью которого является программное обеспечение для десктопа. И одна из самых важных его составляющих - алгоритм синхронизации локальных файлов с их копией в облаке. Недавно нам пришлось его полностью поменять. Если старая версия с трудом переваривала даже несколько десятков тысяч файлов и к тому же не достаточно быстро реагировала на некоторые «сложные» действия пользователя, то новая, используя те же ресурсы, справляется с сотнями тысяч файлов.

    В этом посте я расскажу, почему так получилось: чего мы не смогли предвидеть, когда придумывали первую версию ПО Яндекс.Диска, и как создавали новую.

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

    Почему это не так просто, как кажется на первый взгляд?

    Теоретически задача может показаться достаточно простой, но в реальности мы сталкиваемся с разными сложными ситуациями. Например, человек переименовал папку на своем компьютере, мы это детектировали и послали команду на бекенд. Однако никто из пользователей не ждет, пока бекенд подтвердит успешность переименования. Человек сразу открывает свою локально переименованную папку, создает в ней подпапку, и, к примеру, переносит в нее часть файлов. Мы попали в ситуацию, в которой невозможно сразу выполнить все необходимые операции синхронизации в облаке. Сначала надо дождаться завершения первой операции и только потом можно продолжать.

    Ситуация может стать еще сложнее, если с одним аккаунтом одновременно работают несколько пользователей или у них есть общая папка. А это случается достаточно часто в организациях, использующих Яндекс.Диск. Представьте себе, что в предыдущем примере в тот момент, когда мы получили от бекенда подтверждение первого переименования, другой пользователь берет и переименовывает эту папку еще раз. В этом случае опять нельзя сразу выполнить действия, которые уже совершил первый пользователь у себя на компьютере. Папка, в которой он работал локально, на бекенде в это время уже называется по-другому.

    Бывают случаи, когда файл на компьютере пользователя нельзя назвать так же, как он называется в облаке. Это может произойти, если в имени есть символ, который не может использоваться локальной файловой системой, или в том случае, когда пользователя приглашают в общую папку, а у него есть своя папка с таким именем. В таких случаях нам приходится использовать локальные псевдонимы и отслеживать их связь с объектами в облаке.

    Прошлая версия алгоритма

    В прошлой версии десктопного ПО Яндекс.Диска для поиска изменений использовался алгоритм сравнения деревьев. Любое другое решение на тот момент не позволяло реализовать поиск перемещений и переименований, так как бэкэнд не имел уникальных идентификаторов объектов.

    В этой версии алгоритма мы использовали три основных дерева: локальное (Local Index), облачное (Remote Index) и последнее синхронизированное (Stable Index). Кроме этого, чтобы предотвратить повторную генерацию уже поставленных в очередь операций синхронизации, использовались ещё два вспомогательных дерева: локальное ожидаемое и облачное ожидаемое (Expected Remote Index и Expected Local Index). В этих вспомогательных деревьях хранилось ожидаемое состояние локальной файловой системы и облака, после выполнения всех операций синхронизации, которые уже поставлены в очередь.


    Процедура сравнения деревьев в старом алгоритме выглядела следующим образом:
    1. Если локальное ожидаемое дерево и облачное ожидаемое дерево пусты, инициализируем их, копируя последнее синхронизированное дерево;
    2. Сравниваем локальное дерево с облачным ожидаемым и по результатам сравнения отдельных узлов добавляем в очередь операции синхронизации в облаке (создание коллекций, передача файлов в облако, перемещение и удаление в облаке);
    3. Для всех операций, которые поставлены в очередь на предыдущем шаге, фиксируем их будущий эффект в ожидаемом облачном дереве;
    4. Сравниваем облачное дерево с локальным ожидаемым и по результатам сравнения отдельных узлов добавляем в очередь операции синхронизации с локальной файловой системой (создание директорий, скачивание файлов из облака, перемещение и удаление локальных файлов и директорий);
    5. Для всех операций, которые поставлены в очередь на предыдущем шаге, фиксируем их будущий эффект в ожидаемом локальном дереве;
    6. Если в очередь попадают одновременные операции с одним и тем же файлом или директорией (например, передача файла в облако и скачивание этого же файла из облака), то фиксируем конфликт - файл изменился в двух местах;
    7. После того, как операция синхронизации выполнена в облаке или с локальной файловой системой, заносим её результат в последнее синхронизированное дерево;
    8. Когда очередь операций синхронизации становится пустой, удаляем локальное ожидаемое и облачное ожидаемое дерево. Синхронизация закончена, и они нам больше не понадобятся.

    Почему нам пришлось придумывать новый алгоритм

    Главными проблемами алгоритма сравнения деревьев стали большое потребление памяти и необходимость сравнения деревьев целиком даже при небольших изменениях, что приводило к большой нагрузке на процессор. Во время обработки изменений даже одного файла использование оперативной памяти возрастало примерно на 35%. Допустим, у пользователя было 20 000 файлов. Тогда при простом переименовании одного файла размером 10Кб потребление памяти вырастало скачкообразно - со 116Мб до 167МБ.

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

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

    К этому времени на бекенде появились id объектов, с помощью которых можно было более эффективно решить задачу обнаружения перемещений - ранее мы использовали пути.

    Новый алгоритм

    Мы решили изменить структуру хранения данных и заменить три дерева (Local Index, Remote Index, Stable Index) на одно, что должно было привести к снижению избыточности в главной структуре данных. Из-за того что ключом в дереве является путь к элементу файловой системы, в результате объединения значительно сократился объем используемой оперативной памяти.


    Еще мы отказались от использования вспомогательных деревьев во время синхронизации, потому что каждый элемент дерева в новой версии хранит все нужные данные. Это изменение структуры сильно упростило отладку кода.

    Так как мы понимали, что это серьезное изменение, то создали прототип, подтвердивший эффективность нового решения. Рассмотрим на примере, как меняются данные в дереве во время синхронизации нового файла.

    1. После того как пользователь добавил в папку Диска новый файл, программа обнаружила его и добавила в дерево новый элемент. У этого элемента известно только одно состояние – local. Так как stable и remote состояния отсутствуют, память под них не выделяется;
    2. Программа выполняет upload файла. Из облака приходит push, подтверждающий появление нового файла, и в дерево добавляется remote состояние;
    3. Состояния local и remote сравниваются. Так как они совпадают, добавляется stable состояние;
    4. Состояния local и remote удаляются. Они больше не нужны, так как вся информация есть в stable.


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

    Другие улучшения

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

    Яндекс.Диск использует дайджесты sha256 и MD5 для проверки целостности файлов, обнаружения изменившихся фрагментов и дедупликации файлов на бекенде. Так как эта задача сильно нагружает CPU, в новой версии реализация расчетов дайджеста была существенно оптимизирована. Скорость получения дайджеста файла увеличена примерно в два раза.

    Цифры

    Синхронизация уникальных 20000 файлов по 10Кб

    Вычисление дайджестов уникальных 20000 файлов по 10кб (индексация)

    Запуск с 20000 синхронизированных файлов по 10Кб

    Upload 1Gb. Соединение Wi-Fi 10 МБит
    Время, сек

    Что получилось

    Из примеров видно, что новая версия ПО Яндекс.Диска использует примерно в 3 раза меньше оперативной памяти и примерно в 2 раза меньше нагружает CPU. Обработка мелких изменений не приводит к увеличению объема используемой памяти.

    В результате проделанных изменений существенно увеличилось количество файлов, с которым без проблем справляется программа. В версии для Windows – 300 000, а на Mac OS X - 900 000 файлов.

    Допустим, вы нарисовали картинку kartinka.jpg на компьютере, отключенном от интернета, а затем загрузили на Диск фотографию с тем же именем с мобильного телефона.

    Когда вы подключите компьютер к интернету, Яндекс.Диск начнет синхронизацию. Обнаружив разные файлы с одинаковыми именами, Диск переименует один из них: в результате файлы будут называться kartinka.jpg и kartinka (2).jpg.

    • - все файлы синхронизированы;
    • - идет синхронизация;
    • - в процессе синхронизации произошла ошибка.

    В Проводнике Windows такие же значки отображаются для каждого файла в папке Яндекс.Диска.

    Чтобы увидеть, с какой скоростью идет синхронизация, наведите курсор на значок Яндекс.Диска: скорость загрузки и скачивания будет указана во всплывающем окне.

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

    Для экономии места на компьютере можно отключить синхронизацию отдельных папок. Эти папки будут удалены с компьютера, но останутся доступными на странице сервиса и в других приложениях Яндекс.Диска.

    Подробные инструкции по настройке выборочной синхронизации:

    • в программе для Windows;
    • в приложении для Mac.

    yandex.ru

    Синхронизация данных на Яндекс Диске

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

    Принцип синхронизации заключается в следующем: при совершении действий с файлами (редактирование, копирование или удаление) изменения происходят и в облаке.

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

    При одновременной загрузке с разных устройств файлов с одинаковыми именами, Яндекс Диск присвоит им порядковый номер (file.exe, file(2).exe и т.д.).

    Индикация процесса синхронизации в системном трее:

    Такие же значки появляются у всех файлов и папок в каталоге Диска.

    Скорость, с которой происходит синхронизация данных на Яндекс диске можно узнать, наведя курсор на значок приложения в трее.

    Может показаться странным, что, к примеру архив весом 300 МБ, закачался на Диск за несколько секунд. Ничего странного, просто программа определяет, какие фрагменты файла были изменены и синхронизирует только их, а не весь архив (документ) целиком.

    Это очень удобно, если на Диске хранятся файлы какого-либо текущего проекта. Редактирование документов прямо в папке Диска экономит трафик и время.

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

    Файлы в папку с отключенной синхронизацией закачиваются либо на странице сервиса, либо через меню настроек.

    Разумеется, в приложении присутствует функция полного отключения синхронизации с облачным хранилищем.

    Вывод: процесс синхронизации позволяет вносить изменения в документы сразу на всех устройствах, подключенных с помощью приложения Яндекс Диск к одному аккаунту. Сделано это для экономии времени и нервов пользователей. Синхронизация избавляет нас от необходимости постоянно скачивать и закачивать редактируемые файлы на Диск.

    Да Нет

    lumpics.ru

    Как настроить Яндекс Диск

    После регистрации и создания Яндекс Диска его можно настроить по своему усмотрению. Разберем основные настройки программы.

    Настройка Яндекс Диска вызывается нажатием правой кнопкой мыши по значку программы в трее. Здесь мы видим список последних синхронизированных файлов и маленькую шестеренку в нижнем правом углу. Она-то нам и нужна. Нажимаем, в выпадающем контекстном меню находим пункт «Настройки».

    Основные

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

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

    Изменять расположение папки, по мнению автора, смысла особого не имеет, если только Вы не хотите освободить место на системном диске, а именно там папка и лежит. Перенести данные можно в любое место, даже на флешку, правда, в этом случае, при отключении накопителя от компьютера Диск работать перестанет.

    И еще один нюанс: необходимо будет следить за тем, чтобы буква диска при подключении флешки соответствовала указанной в настройках, иначе программа не найдет путь к папке.

    По поводу новостей от Яндекс Диска сложно что-то сказать, поскольку, за все время использования, ни одной новости не приходило.

    Аккаунт

    Это больше информативная вкладка. Здесь указан логин от аккаунта Яндекс, информация о расходе объема и кнопка отключения компьютера от Диска.

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

    Синхронизация

    Все папки, которые лежат в каталоге Диска, синхронизируются с хранилищем, то есть, все файлы, попадающие в каталог или подпапки, автоматически загружаются на сервер.

    Для отдельных папок синхронизацию можно отключить, но в этом случае папка будет удалена с компьютера и останется только в облаке. В меню настроек она также будет видна.

    Автозагрузка

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

    Кнопка «Забыть устройства» отвязывает все камеры от компьютера.

    Скриншоты

    На данной вкладке настраиваются горячие клавиши для вызова различных функций, вид имени и формат файла.

    Программа, для производства скриншотов всего экрана, позволяет использовать стандартную клавишу Prt Scr, а вот для съемки определенной области придется вызывать скриншотилку через ярлык. Это очень неудобно, если нужно сделать скриншот части окна, развернутого во весь экран (браузера, например). Здесь и приходят на помощь горячие клавиши.

    Сочетание можно выбрать любое, главное, чтобы данные комбинации не были заняты системой.

    Прокси

    Про эти настройки можно написать целый трактат, поэтому ограничимся коротким объяснением.

    Прокси сервер – сервер, через который идут запросы клиента в сеть. Он является своеобразным экраном между локальным компьютером и интернетом. Такие сервера выполняют разные функции – от шифрования трафика до защиты клиентского ПК от атак.

    В любом случае, если Вы пользуетесь прокси, и знаете, зачем он Вам нужен, то все настроите самостоятельно. Если же нет, то он и не нужен.

    Дополнительно

    На данной вкладке настраивается автоматическая установка обновлений, скорость соединения, отправка сообщений об ошибках и уведомления об общих папках.

    Здесь все понятно, расскажу только о настройке скорости.

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

    Теперь мы знаем, где находятся настройки Яндекс Диска и что они меняют в программе. Можно приступать к работе.

    Мы рады, что смогли помочь Вам в решении проблемы.

    Опрос: помогла ли вам эта статья?

    Да Нет

    lumpics.ru

    Выборочная синхронизация папок на Яндекс.Диске - Блог Диска

    Windows,Mac Os X,Синхронизация,Программы и приложения

    yandex.ru

    Выборочная синхронизация папок на Яндекс.Диске - Блог Яндекса

    В приложениях Яндекс.Диска для Windows и Mac OS X появилась важная функция - выборочная синхронизация. Теперь вы можете выбирать, какие папки хранить на компьютере, а какие - только на Яндекс.Диске.Например, если вы используете Яндекс.Диск для хранения бэкапов или архивов, не обязательно иметь копии этих файлов на домашнем компьютере. Они редко бывают нужны, но занимают место. Вы можете отключить синхронизацию для папок с такими файлами. Папки будут удалены с вашего компьютера, освободив место, но сохранятся на Диске.Если вы используете Диск на нескольких компьютерах, синхронизацию отдельных папок можно включить на одном из них и выключить на другом. К примеру, личный фотоархив можно хранить на домашнем компьютере, чтобы он не занимал место на рабочем. А общие папки держать только на рабочем ноутбуке, чтобы не было соблазна поработать с ними из дома.Управление синхронизацией папок доступно в настройках приложений.

    Приложение для Windows позволяет также отключить синхронизацию папки из Проводника.

    При этом загружать новые файлы в несинхронизируемую папку можно прямо на компьютере. Просто перетащите файлы в нужную папку в окне настроек.

    Следите за новостями Яндекс.Диска в нашем блоге.

    У вас смартфон с системой Android. Вы установили себе на компьютере облачный сервис от Яндекса. Вы часто работаете на компьютере, и поэтому вам проще заряжать батарею своего девайса просто подключив его к ПК. Вы работает на компьютере, а смартфон постоянно под рукой. И вдруг, однажды вы обнаруживаете на экране телефона иконку . Все просто: произошла синхронизация Яндекс.Диска с Android.

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

    Вход

    Как войти в Яндекс.Диск с Android:


    Использование

    Действия, которые можно выполнять в приложении:

    • сортировка документов или по имени, или по дате изменения;
    • выбор документа;
    • поиск по документам.

    Прикосновение к иконке «гамбургер-меню» даст возможность перейти в настройки диска. Здесь есть подпункты:

    1. Диск (перемещаемся в наше хранилище).
    2. Офлайн (переместит в окно, в котором доступны без интернета, как отдельные документы, так и их папки).
    3. Корзина (раскроется окно с удаленными документами).

    Касание надписи «Настройки» позволит ознакомиться с установленными на телефоне настройками:

    • увеличить размер диска;
    • очистить рубрику «Офлайн» или кеш;
    • опция, позволяющая осуществить «переезд с телефона на телефон».

    Прикосновение к надписи «О программе» позволит вам обнаружить версию и номер сборки клиента, установленного на смартфоне. Номер сборки указывается с конкретной датой сборки.

    Вот, пожалуй, и все. Вы узнали как на смартфоне с системой андроид войти в облачный сервис Яндекс.Диск. Успешного освоения вашего гаджета! Приятного дня!



    © 2024 beasthackerz.ru - Браузеры. Аудио. Жесткий диск. Программы. Локальная сеть. Windows