Что такое arc browser

Как создается Arc — браузер будущего, который хочет составить конкуренцию Chrome

Что такое arc browser. Смотреть фото Что такое arc browser. Смотреть картинку Что такое arc browser. Картинка про Что такое arc browser. Фото Что такое arc browser

Старший редактор RB.RU

Браузеры — важнейшая часть современной жизни, однако они остаются практически такими же, как в 1990-х гг. Но теперь все может измениться. The Browser Company разработала браузер Arc, который может дать нам новый опыт взаимодействия с интернетом. Представители компании рассказали, как создают Arc, и что планируют делать далее.

Вкладки браузера — недооцененный элемент. Многие вспоминают о них, только когда открывают слишком много страниц, и компьютер зависает, потому что Chrome забирает всю оперативную память. Даже те, кто создал вкладки, — разработчики и дизайнеры Chrome, Firefox, Brave и прочих приложений — не слишком меняли этот элемент. В последние два десятилетия интернет развивался огромными скачками. Но вкладки оставались практически такими же, как в середине 1990-х гг.

Однако Джош Миллер, CEO The Browser Company, планирует это изменить. Он рассматривает браузеры как операционные системы и хочет создать «аналог iOS для веба».
Представьте, каким может быть инновационный браузер. Он формирует для вас персональную ленту новостей, потому что знает, какие сайты вы посещаете. Каждое веб-приложение выглядит как нативное, а приложения запускаются через браузер. Файлы можно перетаскивать с одной вкладки на другую. Браузер можно поделиться: он синхронизируется между устройствами и поддерживает многопользовательский режим.

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

«Грядут перемены. Вопрос лишь во времени, для изменений нужно только оно», — говорит CEO Mozilla Митчелл Бейкер.

У проекта много разных идей. Однако их объединяет убеждение в том, что браузер может и должен быть чем-то большим. «Нам не нужен новый веб-браузер, — говорит Миллер. — Нам нужен его преемник».

Больше, чем Chrome

Миллер и Харш Агравал вместе основали The Browser Company в 2019 году. Они уже работали вместе: в 2011 году они создали Branch, а в 2014 году продали ее Facebook. В конце концов оба покинули Facebook, чтобы заняться другими делами: Агравал основал несколько стартапов, Миллер был директором по продукту в Белом доме при президенте Бараке Обаме, а потом присоединился к Thrive Capital в качестве инвестора.

Миллер вспоминает, что когда он работал в Белом доме, его начальник и главный цифровой директор Джейсон Голдман однажды произнес слова, которые он не мог забыть: «У платформ есть все рычаги воздействия. И если вас заботит будущее интернета, или то, как мы используем наши компьютеры, или вы хотите исправить какой-то аспект технологий… нельзя просто создать приложение. Платформы, будь то iOS, Windows, Android или Mac OS, — вот где весь контроль».

Позже в Thrive Миллер заметил кое-что еще. Такие компании, как Figma, Notion, Airtable или Superhuman, строили не приложения для мобильных или рабочих столов. Они создавали масштабные программы, поддерживающие веб-технологии. Их нативные приложения в большинстве случаев были просто оболочками вокруг их веб-приложений, а также значком на рабочем столе.

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

Конечно, есть причина, по которой этого инструмента не существует. Как правило, интернет-пользователи используют один из двух браузеров: тот, который появился на их устройстве, или Google Chrome. Chrome занимает примерно две трети рынка браузеров и продолжает расти, в то время как у его конкурентов однозначная доля, и большинство из них теряют позиции. Многие пользователи жалуются на проблемы с производительностью Chrome и на то, что Google собирает их данные, но Chrome сохраняет лидерство. Другие браузеры теперь используют базовый движок Chrome, Chromium, и копируют его интерфейс, потому что он известен всем.

Что такое arc browser. Смотреть фото Что такое arc browser. Смотреть картинку Что такое arc browser. Картинка про Что такое arc browser. Фото Что такое arc browser

Интерфейс Chrome (предположительно 2009 год). Скриншот: Internet Archive

По иронии судьбы, Chrome также был разработан именно для того будущего, которое представляет себе The Browser Company. «Мы поняли, что интернет эволюционировал от простых текстовых страниц к большим интерактивным приложениям, и что нам нужно полностью переосмыслить браузер, — написал Сундар Пичай в своем блоге в 2008 году, анонсируя Chrome. Нам был нужен не просто браузер, а современная платформа для веб-страниц и приложений. Именно ее мы намеревались создать».

Но Google принял одно важное решение в процессе разработки Chrome. Он построил Chrome, чтобы уйти с дороги.

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

Даже когда Google запустил Chrome OS, он просто установил этот устаревший браузер на легкую настольную ОС. Google создал почти идеальную версию браузера, который Netscape представлял себе 20 лет назад, но он ничего не изобрел.

«Вкладки остаются вкладками, закладки остаются закладками, история остается историей, — говорит Агравал. — За 20 лет пользовательский интерфейс на самом деле не изменился, [но] мы проводим перед ним восемь часов в день». Когда они с Миллером начали обсуждать идеи для своего нового проекта в 2019 году, они точно не знали, как планируют изменить браузеры. Но они были убеждены, что рынок браузеров настолько огромен и настолько готов к инновациям, что они достаточно было двигаться в любом направлении.

«Никто не думает, что ему нужен новый браузер, — говорит Джон Лилли, бывший CEO Mozilla и инвестор The Browser Company. — И поэтому нужно делать что-то иное».

После нескольких месяцев мозгового штурма и прототипирования они решили, что самый простой способ победить Chrome — создать более удобный браузер. Его назвали Arc. Агравал сразу решил не пытаться перестроить весь стек браузера и создал Arc на базе Chromium. Команда старается решить такие проблемы, как перегрузка вкладок. Многим знакомо то чувство, когда среди крошечных значков в верхней части экрана ничего не получается найти.

Что такое arc browser. Смотреть фото Что такое arc browser. Смотреть картинку Что такое arc browser. Картинка про Что такое arc browser. Фото Что такое arc browser

Внешний вид Arc. Скриншот: The Browser Company

Это то, о чем Нейт Пэрротт, дизайнер из команды, думал в течение долгого времени. «До того, как я встретил Джоша, — рассказывает он, — У меня было такое увлечение браузерами, потому что это окно, через которое вы воспринимаете так много интернета, и при этом кажется, что никто не работает с ними». Тогда он трудился в Snap, а параллельно создавал веб-браузер с некоторыми интерактивными функциями. «Большой проблемой для меня было то, что я хотел избавиться от различия между открытыми и закрытыми вкладками, — рассказывает он. — Я хотел поощрять накопление вкладок, чтобы можно было открывать столько, сколько захочется, и организовывать их так, чтобы не видеть их все одновременно».

Сборка, бета-версия, анализ, сборка

В Arc происходит много интересного, но это нельзя разглашать. Все сотрудники (около 100 человек!) поклялись хранить тайну. Миллер явно беспокоится, что более крупные игроки быстро скопируют его новые идеи. На данный момент он опубликовал лишь несколько твитов, судя по которым, внешне браузер очень отличается от Chrome, из-за чего приложения в Arc похожи на программы для рабочего стола. Также там демонстрируется возможность переименования вкладок. В целом главная цель проекта — сделать использование веб-браузера приятнее во всех отношениях.

Все новые функции являются результатом бесконечного прототипирования внутри компании. Это основная стратегия продукта: найти идею, воплотить ее, протестировать и посмотреть, что произойдет. В свои первые месяцы работы в компании Агравал стремился сделать это возможным. Вместе с командой они взяли существующую инфраструктуру интернета — от Chromium до шифрования и многопользовательских технологий — и создали инструмент, который позволяет повторять и создавать функции за день или два часа, а не за месяцы. Тем не менее, команда стремится опередить разработчиков продуктов, убедившись, что фундамент прочен, прежде чем строить на нем.

Это дорого и затратно по времени, а также требует большой веры в общую идею, но Browser считает, что в долгосрочной перспективе это того стоит. «У крупных компаний, как правило, есть ресурсы, чтобы иметь возможность инвестировать в то, что не является функцией, например в инструменты разработчика, — говорит Виктория Кирст, инженер-программист в Browser, которая ранее была разработчиком в команде Chrome. — Но если сделать это правильно — чего не делают многие крупные компании, — вы можете обеспечить себе гибкость. Это именно то, что нужно в стартапе».

Браузер будущего

Кроме того, будущее все еще несколько неопределенно. У Миллера много идей, но он всегда старается осторожно их оценивать, говоря, что еще слишком рано, или это просто предположение. Все в The Browser Company клянутся, что у них нет никакого мастер-плана или большой дорожной карты. У них есть много идей, база, на которой они могут развиваться очень быстро, и симпатия к прототипам.

«Нельзя просто хорошо подумать и создать лучший интернет-браузер», — говорит Пэрротт. — Нужно почувствовать это, продемонстрировать людям и заставить их отреагировать».

Одной из неожиданных функций, появившихся в результате, было приложение для заметок. На самом деле это даже не приложение, а пустая страница, которая открывается, когда пользователи нажимают Ctrl-N в браузере. Browser использует Notion как компанию, а Миллеру нравятся Apple Notes, поэтому идея создать очередное приложение для заметок казалась нелепой. А приложение? «На самом деле оно ужасно, — говорит Миллер. — И все же людям это нравится». Оно кажется простым и нативным, находится прямо в браузере, а не в отдельном окне, и делает то, что нужно людям.

У всех в Browser, похоже, есть свои необычные идеи о том, каким должно быть будущее браузеров.

Команда, похоже, готова принять любую идею и, по крайней мере, протестировать любой прототип.

Тем не менее, Агравал переживает, что проект окажется в той же ситуации, что и Bell Labs: «много интересных проектов, но одни трудно монетизировать, другие не удерживают потребителей и так далее». Вот почему стартап так серьезно относятся к общению с пользователями и обратной связи. Команде важно понимать, что их продукт действительно полезен. А когда это не так, они быстро меняют стратегию.

В двух словах видение Миллера можно объяснить так: человек может взять любое устройство с экраном, войти в Arc, и сразу же получит доступ ко всей своей компьютерной жизни — приложениям, файлам и так далее. Все онлайн, все синхронизировано, все в формате ссылки. Одну группу ссылок он использует вместе с коллегами, другую — с футбольной командой ребенка, а другие оставляет в личном доступе. И сам браузер улучшает каждое веб-приложение, позволяя легко перемещать данные между ними или экспортировать такую информацию, как история браузера или настройки, в другие приложения.

Для любой компании, которая разрабатывает браузер, есть две самые сложные задачи:

Остается только гадать, чем все закончится. Конкуренция усиливается, и первые игроки по-прежнему имеют огромное преимущество. В конечном счете, одно дело — создать лучшую версию браузера и совсем другое — убедить миллионы или миллиарды людей загрузить и использовать его. То же самое касается Brave, Firefox, Mighty и остальных. Этим компаниям нужно убедить кого-то открыть браузер, который у них уже есть, и решить, что он недостаточно хорош. Это высокая планка для любой компании.

Тем не менее, для Browser и остальной части технологической индустрии возможности, похоже, стоят риска. Браузеры используют чаще, чем Facebook или Google, и большая часть современной жизни происходит в окнах и вкладках. Прошло уже более 25 лет с тех пор, как кто-либо принципиально переосмыслил, каким должен быть браузер. Открытый веб должен вернуться. То же самое произойдет и с веб-браузерами. И если кто-нибудь сместит с пьедестала Chrome, это может помочь определить, как будут выглядеть следующие два десятилетия жизни.

Источник

ARC Browser

Что такое arc browser. Смотреть фото Что такое arc browser. Смотреть картинку Что такое arc browser. Картинка про Что такое arc browser. Фото Что такое arc browserЧто такое arc browser. Смотреть фото Что такое arc browser. Смотреть картинку Что такое arc browser. Картинка про Что такое arc browser. Фото Что такое arc browserЧто такое arc browser. Смотреть фото Что такое arc browser. Смотреть картинку Что такое arc browser. Картинка про Что такое arc browser. Фото Что такое arc browserЧто такое arc browser. Смотреть фото Что такое arc browser. Смотреть картинку Что такое arc browser. Картинка про Что такое arc browser. Фото Что такое arc browserЧто такое arc browser. Смотреть фото Что такое arc browser. Смотреть картинку Что такое arc browser. Картинка про Что такое arc browser. Фото Что такое arc browserЧто такое arc browser. Смотреть фото Что такое arc browser. Смотреть картинку Что такое arc browser. Картинка про Что такое arc browser. Фото Что такое arc browserЧто такое arc browser. Смотреть фото Что такое arc browser. Смотреть картинку Что такое arc browser. Картинка про Что такое arc browser. Фото Что такое arc browserЧто такое arc browser. Смотреть фото Что такое arc browser. Смотреть картинку Что такое arc browser. Картинка про Что такое arc browser. Фото Что такое arc browserЧто такое arc browser. Смотреть фото Что такое arc browser. Смотреть картинку Что такое arc browser. Картинка про Что такое arc browser. Фото Что такое arc browserЧто такое arc browser. Смотреть фото Что такое arc browser. Смотреть картинку Что такое arc browser. Картинка про Что такое arc browser. Фото Что такое arc browserЧто такое arc browser. Смотреть фото Что такое arc browser. Смотреть картинку Что такое arc browser. Картинка про Что такое arc browser. Фото Что такое arc browserЧто такое arc browser. Смотреть фото Что такое arc browser. Смотреть картинку Что такое arc browser. Картинка про Что такое arc browser. Фото Что такое arc browser

ФУНКЦИИ
* Доступная для поиска база данных всех ваших игр, проиндексированная по системам и категориям
* Автоматическая очистка данных о ваших играх и загрузка графических и фоновых изображений
* Поддержка нативных игр для Android
* Ромы с тем же именем файла (исключая текст в скобках или скобках) автоматически группируются и представляются как одна игра. Когда вы нажимаете Play, вы можете выбрать, какую версию загрузить. Полезно не только когда у вас разные версии игры, но и для многодисковых игр
* Более 150 шаблонов конфигурации для разных эмуляторов
* Может использоваться как средство запуска по умолчанию
* Поддержка телеканалов Oreo

ВАЖНЫЙ
* Требуется геймпад
* Снимки экрана в магазине Play Play были размыты или изменены иным образом во избежание нарушения авторских прав и прав на товарный знак.
* Это приложение не включает в себя эмуляторы или игры
* Извлечение иллюстраций и метаданных из онлайн-баз данных может потребовать наличия сторонних сервисов. Разработчик этого приложения не несет ответственности за доступность таких сервисов.

выскабливание
Ваши ромы должны быть названы как можно ближе к оригинальному названию игры. Однако есть несколько параметров, которые можно использовать для точной настройки процесса очистки. Например, преобразование «, The» в имени файла в «The» и игнорирование текста в скобках и скобках. Если совпадений не найдено, он также попытается автоматически заменить любой экземпляр «-» в имени файла на «:».

КОРОБКОЕ ИСКУССТВО, ФОН, ТЕМА И БОЛЬШЕ
Все изображения в ARC Browser, включая, помимо прочего, обложку и фон, могут быть настроены. Например, если вам не нравится автоматически очищенная обложка, вы можете использовать свою собственную. Вы также можете изменить внешний вид приложения с помощью тем. Более подробная информация об этом доступна здесь:

ЯЗЫК
Приложение только на английском языке. Поддержка будет оказана на английском или шведском языке.

ИМЕЕТ ПРОБЛЕМЫ? НУЖНО СВЯЗАТЬСЯ?
Отправьте электронное письмо на suppor[email protected]!
Если у вас возникли проблемы, пожалуйста, отправьте электронное письмо, прежде чем писать отзыв. Многие проблемы могут быть быстро решены таким образом.

Источник

Что такое arc browser

В последнее время в прессе всё чаще можно услышать о скором выходе видеокарт ARC Alchemist. Мы уже знаем множество фактов, но даже этого недостаточно, ведь у нас нет даже приблизительной картины развития игровой линейки с понятными названиями (привет, Xe-HPG 512 EU). Именно поэтому неясно, насколько быстрым окажется флагман, насколько выгодным для покупки будет бюджетный вариант, и сможет ли Intel удовлетворить хотя бы минимальные потребности рынка. Всё это слишком сложные вопросы, на которые только предстоит получить ответ, а пока у нас первые тесты одной из видеокарт ARC Alchemist.

реклама

Судя по всему, в популярном бенчмарке Ashes of The Singularity (AoS) засветилась Xe-HPG 512 EU, которая считается самой производительной в серии и получит 16 Гб видеопамяти GDDR6 на скорости 16 Гбит/с. Предполагается наличие 256-битной шины, а некоторые слухи говорят о том, что для флагмана Intel могла закупить более скоростную видеопамять на 18 Гбит/с. Теоретически, что это ещё не финальный образец, поэтому данный инженерник может оказаться не таким быстрым, как магазинная версия. И всё же, именно одна из инженерных моделей будет показана на выставке CES 2022, поэтому полученные данные уже можно считать близкими к реальным.

Эксперты отмечают, что Ashes of The Singularity не является идеальным полигоном для тестирования видеокарт, поскольку показывает общую производительность, но даже этого достаточно, чтобы составить впечатление о потенциале видеокарт Intel. В разрешении 1080р и средних настройках графики ещё не анонсированный графический чип набрал 12 500 баллов. Это примерно столько же, сколько сегодня может достичь Radeon RX 6700 ХТ, и чуть меньше, чем у GeForce RTX 3080 Ti. В качестве процессора использовался Core i9-12900K.

Источник

Чем открыть ARC?

ARC – расширение, характеризующее сразу пять типов архивных файлов. Поэтому, вначале нужно понять, с каким именно форматом Вы столкнулись, чтобы понять, чем его открыть:

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

Резервные копии для смартфонов на базе ОС Symbian. Такие файлы формата ARC обычно называются Backup или Messages. Используется для восстановления системной информации;

Следующий архивный формат называется Compressed File Archive, применяется на базе платформы Macintosh Hierarchical File System. Архиватором для открытия ARC этого типа файлов является MS-DOS;

Последний вид архивного стандарта разработан компанией Activision. Файлы African Safari Data File содержат графические данные, музыкальный контент и текстовые файлы, и дислоцируются на игровых дисках.

Что такое arc browser. Смотреть фото Что такое arc browser. Смотреть картинку Что такое arc browser. Картинка про Что такое arc browser. Фото Что такое arc browser

Как вы поняли, что понять, чем открыть ARC файл, необходимо учитывать категорию и область применения архива. Существует много приложений, которые подходят для разных типов форматов. Для архивов на базе операционной системы Windows, Mac и Linux есть универсальный архиватор – WindowsZIP.

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

Так как большинство архивных форматов указанного расширения работают на базе Windows, Macintosh и MS-DOS, будем рассматривать универсальную утилиту для соответствующего стандарта.

Архиватор WindowsZIP для открытия ARC файлов

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

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

Источник

Arc — система контроля версий для монорепозитория. Доклад Яндекса

Системы контроля версий уже давно стали повседневным инструментом разработчика. В больших монорепозиториях требования к ним оказываются весьма специфическими. Из-за этого компании либо адаптируют существующие решения, как это делает Facebook с Mercurial и Microsoft с Git, либо разрабатывают собственные системы: Piper и CitC в Google и Arc VCS в Яндексе.

В докладе разработчик Владимир Кихтенко kikht рассказывает, зачем Яндексу понадобилась собственная система контроля версий и как она работает. Рассмотрим её со стороны рядового разработчика: как получить доступ к исходному коду, отвести ветку для разработки и интегрировать изменения в общую кодовую базу. Заглянем под капот — узнаем про внутреннее представление данных и их отображение в виртуальной файловой системе с рабочей копией. Обсудим трудности при реализации функций VCS в виртуальной файловой системе и при ленивой загрузке данных. Поговорим о том, как обеспечивать надежность серверной инфраструктуры репозитория. В конце можно посмотреть неофициальную запись доклада.

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

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

Что такое arc browser. Смотреть фото Что такое arc browser. Смотреть картинку Что такое arc browser. Картинка про Что такое arc browser. Фото Что такое arc browser

Как мы дошли до жизни такой? Исторически этот монорепозиторий у нас жил в SVN. В нем практикуется trunk-based development. Веток нет за очень редкими исключениями. Весь код сначала должен попасть в транк, а потом зарелизиться.

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

Что такое arc browser. Смотреть фото Что такое arc browser. Смотреть картинку Что такое arc browser. Картинка про Что такое arc browser. Фото Что такое arc browser

Каков масштаб нашей проблемы? Вот некоторые цифры: 6 млн коммитов, почти 2 млн отдельных файлов. Общий размер со всей историей репозитория — 2 ТБ. Чтобы было понятно, что эти цифры значат на фоне других типичных репозиториев, вот график. GitHub median — это медианный размер репозитория на GitHub, 1 МБ. 90-й перцентиль на GitHub — это то, что мои коллеги назвали «репозиторий сына маминой подруги». А все остальное — известные крупные репозитории.

Что такое arc browser. Смотреть фото Что такое arc browser. Смотреть картинку Что такое arc browser. Картинка про Что такое arc browser. Фото Что такое arc browser

Насколько мне известно, самый крупный в мире репозиторий — у Google. Оценка его размера дана из статьи 2015 года — наверное, с тех пор они еще выросли. Как видите, шкала логарифмическая. Видно, что мы тоже довольно большие.

Как разные системы контроля версий работают при попытке весь этот репозиторий загрузить? Мы, естественно, не сразу стали разрабатывать свою систему контроля версий. Мы попробовали сконвертировать наш репозиторий в разные системы. Самая серьезная попытка была сделана с Mercurial. И результаты времени типичных операций нас все равно не устраивают.

Что такое arc browser. Смотреть фото Что такое arc browser. Смотреть картинку Что такое arc browser. Картинка про Что такое arc browser. Фото Что такое arc browser

За время подготовки доклада git-svn, к сожалению, не смог сконвертировать весь наш репозиторий целиком. Сконвертировал некоторый срез небольшого числа коммитов, поэтому не могу оценить, сколько работают операции, связанные с историей. На одном отрезке они быстрые, а как оно будет на 6 млн коммитов — не очень понятно.

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

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

Что такое arc browser. Смотреть фото Что такое arc browser. Смотреть картинку Что такое arc browser. Картинка про Что такое arc browser. Фото Что такое arc browser

Как мы этого достигли? Основная фишка: рабочая копия, которую мы создаем, не является настоящим файликом на диске. Это виртуальная файловая система. На Linux и Мас это сделано с помощью fuse, на Windows — с помощью ProjFS. Все данные загружаем лениво, поэтому используется столько места на диске, сколько на самом деле надо, мы не пытаемся загрузить все заранее. И всякие тяжелые операции мы выносим на сервер. В частности — операцию лога и еще некоторые.

Что такое arc browser. Смотреть фото Что такое arc browser. Смотреть картинку Что такое arc browser. Картинка про Что такое arc browser. Фото Что такое arc browser

Интерфейс нашей системы контроля версий, по большому счету, повторяет Git, поэтому не буду показывать, как выглядит типичный воркфлоу. Представьте себе Git. Все то же самое: checkout для получения нужной ревизии, branch для создания веток, commit — для коммитов, точно так же поддерживается stash. Что дает этот подход? Мы существенно уменьшаем порог входа. С Git умеют работать большинство разработчиков внутри и снаружи Яндекса. Им не приходится учить ничего нового.

С другой стороны, у нас нет цели сделать drop in replacement для Git. Про это я потом поговорю подробнее. Поддерживать все многообразие гитовых команд кажется безумием, вряд ли нам они на самом деле все нужны.

Что такое arc browser. Смотреть фото Что такое arc browser. Смотреть картинку Что такое arc browser. Картинка про Что такое arc browser. Фото Что такое arc browser

Чуть-чуть расскажу про внутренности, про то, как это все работает. Начнем с модели данных. Модель данных у нас во многом похожа на гитовую, с некоторыми отличиями. Точно так же все объекты, которые внутри создаем, — иммутабельны, адресуются хэшем своего контента и внутри хранятся в flatbuffers.

Что такое arc browser. Смотреть фото Что такое arc browser. Смотреть картинку Что такое arc browser. Картинка про Что такое arc browser. Фото Что такое arc browser

Как структура выглядит? Есть объекты коммитов, у каждого коммита есть отдельный или несколько предков. И они таким образом выстраивают некоторый DAG (directed acyclic graph) истории.

Что такое arc browser. Смотреть фото Что такое arc browser. Смотреть картинку Что такое arc browser. Картинка про Что такое arc browser. Фото Что такое arc browser

Что у нас есть и что не сразу появилось в Git — это generation numbers. По простому алгоритму мы считаем некоторое расстояние от корня дерева. Зачем нам это нужно? Это все в структуру объектов вшито, один раз зафиксирован, и больше никогда не меняется.

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

Как это будет работать в наивной реализации? Как-то вот так: обойдем, и найдем наш нужный коммит.

Что такое arc browser. Смотреть фото Что такое arc browser. Смотреть картинку Что такое arc browser. Картинка про Что такое arc browser. Фото Что такое arc browser

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

Что такое arc browser. Смотреть фото Что такое arc browser. Смотреть картинку Что такое arc browser. Картинка про Что такое arc browser. Фото Что такое arc browser

Что такое arc browser. Смотреть фото Что такое arc browser. Смотреть картинку Что такое arc browser. Картинка про Что такое arc browser. Фото Что такое arc browser

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

Что такое arc browser. Смотреть фото Что такое arc browser. Смотреть картинку Что такое arc browser. Картинка про Что такое arc browser. Фото Что такое arc browser

Это один пример отличия нашей модели. В Git эта штука и раньше поддерживалась, они использовали в качестве generation numbers timestamps, но это будет работать, только если времена создания коммитов согласованы с графом коммитов.

Что такое arc browser. Смотреть фото Что такое arc browser. Смотреть картинку Что такое arc browser. Картинка про Что такое arc browser. Фото Что такое arc browser

К сожалению, для нашей истории репозитория это не так. Есть коммиты, которые получились в результате миграции другого репозитория, и время начинает в них идти назад. В Git эту штуку поддержали в какой-то момент, но она там не всегда применима, потому что в Git можно подменить объект коммитов другим локально. От этого страдает иммутабельность модели, поэтому те generation numbers, которые не записывают, они иногда не применимы к тому, что в них записано, это неправда. У нас такой проблемы не возникает.

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

Помимо коммитов, модель очень похожа на Git. Каждый коммит указывает на некоторый объект дерева, дерево состоит из записей, каждая запись — либо еще одно дерево, и так отображается иерархия каталогов у нас, либо это blob, некоторый файл. Плюс у нас есть такая штука как BlobRef, когда файл очень большой, мы его делим на кусочки и представляем в специальном объекте. Это все, как в Git.

Что такое arc browser. Смотреть фото Что такое arc browser. Смотреть картинку Что такое arc browser. Картинка про Что такое arc browser. Фото Что такое arc browser

Что у нас не как в Git? Эту штуку мы называем copy-info. Если файл был скопирован в каком-то коммите, то Git эту информацию никак не сохраняет, и пытается потом эвристиками восстанавливать, когда показывает вам diffы и статусы. Мы эту информацию сохраняем в графе. У записей может быть некоторая ссылка copy-info на другой коммит, на путь внутри репозитория в этом коммите, по которому мы знаем, что в этом коммите этот файл был скопирован.

Тут еще получается дедупликация, как на сайде, этот blob хранится один раз. Но дедупликация была бы все равно, потому что контент файла не поменялся, он по хешу был бы дедуплицирован.

Как устроены бэкенды? Если в Git распределенная система контроля версий, ему не нужны какие-то бэкенды. Мы ощущаем это особенно остро, когда GitHub не работает. Мы точно понимаем, что Git не нужны бэкенды. Наша система клиент-серверная, все данные она хранит на сервере, и доступность сервера нужна для того, чтобы скачать те объекты, которых на клиенте еще нет.

Что такое arc browser. Смотреть фото Что такое arc browser. Смотреть картинку Что такое arc browser. Картинка про Что такое arc browser. Фото Что такое arc browser

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

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

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

Что такое arc browser. Смотреть фото Что такое arc browser. Смотреть картинку Что такое arc browser. Картинка про Что такое arc browser. Фото Что такое arc browser

Как наша система интегрирована с SVN? SVN-репозиторий продолжает жить. Более того, наша система контроля версий пока не самодостаточная. Как она в этой части работает? Исходно есть некоторый компонент Converter, который следит за состоянием SVN-репозитория и превращает коммиты SVN в коммиты Arc — нашей системы контроля версий.

Дальше есть клиент, который монтирует (mount) рабочую копию и ходит за данными на сервер. Когда разработчик что-то коммитит, это отправляется сначала на сервер Arc, но чтобы эти изменения попали в trunk, нашу основную ветку, они должны обязательно пройти через систему пул-реквестов и систему код-ревью. Здесь возникает еще один сервис, который следит за ветками Arc, и если они обновились, отправляет пул-реквест нашей системе код-ревью. Дальше система код-ревью, когда принято решение, что этот патч нужно вмержить, коммитит его в SVN. Не совсем просто: она добавляет туда некоторое количество метаданных о том, что этот коммит на самом деле является мержем такой-то ветки из Arc. И дальше этот коммит уже видит конвертер, находит в нем эти мета-данные и создает коммит в сервере Arc. Такой получается круговорот коммитов. Поэтому пока мы без SVN жить не можем, потому что в SVN у нас лежит trunk.

Основная ветка постоянно синхронизируется с нашим сервером, но напрямую в нее закоммитить мы не разрешаем.

Что такое arc browser. Смотреть фото Что такое arc browser. Смотреть картинку Что такое arc browser. Картинка про Что такое arc browser. Фото Что такое arc browser

Про надежность бэкендов. Конечно, мы планируем, что все разработчики Яндекс будут пользоваться этой штукой, поэтому для нас важно, чтобы она не ломалась. Это такой внутрияндексовый стандарт: наши сервисы должны переживать выход из строя любого дата-центра. Система контроля версий — не исключение. Здесь нас очень спасает то, что YDB такое поддерживает. А наши бэкенды — stateless, там разные части чуть по-разному реализованы. Сервера, которые оперируют объектами Arc, оперируют ветками, они stateless, отреплицированы. Конвертеры, которые постоянно конвертируют из SVN, реплицированы по active-active схеме. Есть несколько одновременно работающих конвертеров, они одновременно конвертируют, и в момент, когда они пытаются обновить ветку Arc, они разрешают конфликты. У одного получилось, у другого не получилось. Он пытается конвертировать что-то дальше.

Сервис пул-реквестов реплицирован по master-slave. Есть главный, работающий. Если он выходит из строя, через YDB выбирается новый. Там есть такая замечательная штука, как семафоры, у которых серьезные гарантии по доступности, надежности. Доступы к семафорам полностью сериализуются. Мы используем семафоры и для сервиса дискавери пул-реквестов, и для выбора лидеров.

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

Что такое arc browser. Смотреть фото Что такое arc browser. Смотреть картинку Что такое arc browser. Картинка про Что такое arc browser. Фото Что такое arc browser

Например, мы открыли файл на запись. Когда мы открыли файл на запись, мы находим соответствующий блоб нашей объектной модели. Если необходимо — что-то подгружаем с сервера. Если мы физически создаем файл в специальном сторе, то все дальнейшие запросы, которые в этот файл идут, мы туда проксируем. Таким образом, пока не закоммиченые локальные изменения (в Git это называется unstaged) попадают во временное хранилище. Мы называем такие файлы материализованными.

Что такое arc browser. Смотреть фото Что такое arc browser. Смотреть картинку Что такое arc browser. Картинка про Что такое arc browser. Фото Что такое arc browser

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

Что такое arc browser. Смотреть фото Что такое arc browser. Смотреть картинку Что такое arc browser. Картинка про Что такое arc browser. Фото Что такое arc browser

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

Что такое arc browser. Смотреть фото Что такое arc browser. Смотреть картинку Что такое arc browser. Картинка про Что такое arc browser. Фото Что такое arc browser

Следующая операция — arc status. Она интересная, потому что это та вещь, которая в обычных системах контроля версий на таких размерах оказывается медленной, потому что она вынуждена обходить все файловое дерево. Нам не приходится обходить все файловое дерево, потому что все запросы на изменение файлов проходят через наш fuse-драйвер, и мы сразу знаем, какие файлы стоит проверить на изменение. Проверяем то, что успели записать в индекс, и печатаем ответ.

Что такое arc browser. Смотреть фото Что такое arc browser. Смотреть картинку Что такое arc browser. Картинка про Что такое arc browser. Фото Что такое arc browser

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

Что такое arc browser. Смотреть фото Что такое arc browser. Смотреть картинку Что такое arc browser. Картинка про Что такое arc browser. Фото Что такое arc browser

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

Что такое arc browser. Смотреть фото Что такое arc browser. Смотреть картинку Что такое arc browser. Картинка про Что такое arc browser. Фото Что такое arc browser

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

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

Что такое arc browser. Смотреть фото Что такое arc browser. Смотреть картинку Что такое arc browser. Картинка про Что такое arc browser. Фото Что такое arc browser

В нашей системе контроля версий гвоздями прибита поддержка trunk-based development. Во-первых, то, что я уже рассказал: все изменения проходят через пул-реквесты и транк. Есть еще пара моментов. У нас нет поддержки групповых веток. Создаваемые в Arc ветки привязаны к конкретному пользователю, и только он может туда коммитить. Это позволяет нам избежать долгоживущих веток. В SVN такого особо не было, потому что там неудобно делать ветки. А в Arc их делать удобно, и если это не контролировать, мы боимся, что некоторые части нашего монорепозитория отъедут в свои ветки, и будут вести свою разработку там. Это противоречит модели, которую мы хотим делать.

Что такое arc browser. Смотреть фото Что такое arc browser. Смотреть картинку Что такое arc browser. Картинка про Что такое arc browser. Фото Что такое arc browser

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

Что такое arc browser. Смотреть фото Что такое arc browser. Смотреть картинку Что такое arc browser. Картинка про Что такое arc browser. Фото Что такое arc browser

Какие у нас планы? 20% разработчиков монорепозитория уже пользуются нашей системой контроля версий. Мы уже уже вышли из какого-то младенческого состояния, это серьезно используемая система, выкинуть её просто так уже нельзя. Конечная цель — стать основной системой контроля версий в Яндексе. Мы должны как-то убедить оставшиеся 80% разработчиков, что мы достаточно стабильны, надежны и нами можно пользоваться. Ясно, что для этого нужно починить все баги и доделать те фичи, которые есть в Git.

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

Сейчас у нас большой челлендж — интеграция системы контроля версий в нашу автосборку, в наш CI и другие пайплайны. Челлендж в том, что люди слабы духом, они медленно печатают код и медленно коммитят. И загружают код себе тоже медленно. А роботы лишены этого недостатка.

В качестве анекдота — недавно для одного проекта, для их CI мы разрешили их роботу напрямую ходить в Arc, чуть-чуть коммитить. И они создали нам нагрузки в два раза больше, чем у всех разработчиков Яндекса вместе взятых. И это только маленький кусочек. Когда к нам придет большая автосборка, которая отвечает за основную часть С++-кода в монорепозитории, мы ожидаем, что нагрузка возрастет в сотни раз. К этому нужно серьезно подготовиться.

Предложение для обсуждения. Всю дорогу я повторял слова «как в Git». И в целом наш план остается прежним: интерфейсом повторять Git. Но чем больше мы это делаем, тем больше понимаем, что это не очень работает.

Есть несколько проблем. Интерфейсы Git весьма низкоуровневые. Они предлагают чуть ли не операции, которые напрямую взаимодействуют с нашим графом объектов. При этом программисты хотят каких-то высокоуровневых операций. И далеко не каждый разберется с тем, какие и как нужно выставить аргументы команде checkout или reset, чтобы ничего не испортить в рабочей копии. Я это знаю, потому что занимаюсь поддержкой пользователей, которые переходят на нашу систему контроля версий. Регулярно говоришь людям: все как в Git. «Ну вот я это сделал, и все сломалось». В Git тоже бы сломалось.

Для иллюстрации этой проблемы можно привести такой пример. Знаете такую нужную и полезную команду Git, как git begin-wave-stash?

Из зала:
— Очень полезная.

— Как вы думаете, в Git такая команда вообще есть? В этом и проблема — без любимой поисковой системы вы не только не знаете, что она делает, но и не знаете в принципе, есть ли она. Ее нет, я ее только что придумал. Поэтому Git не лишен недостатков. И раз уж мы разрабатываем свою систему контроля версий, странно не воспользоваться возможностью их исправить. Спасибо.

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *