Как стать автором
Обновить
15
0

Пользователь

Отправить сообщение
Вспомнилось, подобную же «диету» прописали главной героине в Астровитянке Николая Горькавого.
Когда-то также интересовался этой темой. Даже написал свою реализацию lock-free очереди (GitHub, StackExchange).
Идея там простая: есть 2 потока, один пишет в очередь, другой из нее читает. Внутри очереди есть 2 подочереди — одна для писателя, другая для читателя. Когда читатель вычитывает свою подочередь, он забирает подочередь писателя, а писатель начинает новую.
В базовам варианте (один читатель, один писатель) для синхронизации используется единственная atomic переменная.
Для продакшина нужна будет дополнительная обработка, но идея, я думаю, должна быть работоспособной.
Когда-то также интересовался этой темой. Даже написал свою реализацию lock-free очереди (GitHub, StackExchange).
Идея там простая: есть 2 потока, один пишет в очередь, другой из нее читает. Внутри очереди есть 2 подочереди — одна для писателя, другая для читателя. Когда читатель вычитывает свою подочередь, он забирает подочередь писателя, а писатель начинает новую.
В базовам варианте (один читатель, один писатель) для синхронизации используется единственная atomic переменная.
А можете Docker-контейнер сделать, чтоб можно было быстро поставить и попробовать?
Да, вы правы. Сервер (основной продукт компании), работающий на хосте, соединяется с Ораклом в контейнере по IP.
Но это только для локального тестирования. Можно также и сервер засунуть в контейнер.
В целом мы собираемся использовать docker для тестирования разнообразных комбинаций. Сервер может работать в контейнере на RedHat (5.3, 6.3), Suse и Ubuntu. Есть также Solaris, но он запускается не в контейнере, а на реальной машине.
Кроме Оракла есть еще MsSql и Sybase (последние 2 работают на реальной машине под виндой). Плюс к этому есть несколько разных версий сервера (4 штуки).
Весь этот зоопарк в разнообразных комбинациях необходимо тестировать. Что-то только локально, остальное на отдельных выделеных тестовых машинах. Но на тестовых машинах уже будет skydns и skydock, а локально мне хватает и того, что я описал выше.
У меня на хосте. Использую docker-oracle вместо 10.0.0.1, но это не обязательно. Мне визуально удобнее с именем работать (например, соединяться по ssh) чем с IP.
Недавно в моей компании также начали активно обсуждать использование docker контейнеров вместо LabManager виртуалок. Сейчас наш build инженер активно работает над заменой виртуалок на docker+puppet+skydns+skydock. Я же решил для локального использования (Oracle контейнер) найти что-то попроще. В процессе гугления был найден подход с использованием виртуального интерфейса. После небольшой модификации получилось следующее:

1. Добавить новый виртуальный интерфейс:

sudo ifconfig eth0:1 10.0.0.1 netmask 255.255.255.0 up


или для постоянного использования добавить в /etc/network/interfaces следующие строки:

auto eth0:1
iface eth0:1 inet static
	 address 10.0.0.1
	 netmask 255.255.255.0
	 broadcast 10.0.0.255


2. Создать Docker контейнер:

sudo docker run -d --name="docker-oracle" -p 10.0.0.1:1521:1521/tcp -p 10.0.0.1:22:22/tcp docker:5000/linux_64-oracle_11


3. При необходимости добавить в /etc/hosts запись вида:

10.0.0.1    docker-oracle


При таком подходе нет необходимости держать дополнительные контейнеры (skydns, skydock).
Единственным недостатком для меня остается необходимость ручного старта контейнера после перезагрузки, но это не критично поскольку он не всегда нужен. В крайнем случае можно прописать команду старта в автозапуск.
Работает такая конфигурация уже несколько месяцев без проблем.
Полез глубже. Там выдает, что ограничено по стране регистрации.
Да. Выводится «устройство не поддерживается».
Конечно уберите. Так хоть можно будет выявить проблемные устройства.
У меня ни на одно из устройств не ставиться (Nexus 4/7).
Кикстартер компания была завершена еще в прошлом декабре и версию 1.0 высылали всем ее учасникам. Тот релиз сильно устарел на текущий момент и думаю стоит ждать уже финальную версию.
Мне тоже эта система отображения иерархий понравилась. Было бы интересно использовать ее и для других вещей, например, для навигации по файловой системе.
Сам же автор планирует использовать ее в качестве редактора внутриигровых даных, для системы моддинга и для отображения дерева технологий и исследований.
Все немного проще. В игре есть транспортные линии ускоряющие перемещение в системе, а также «червоточины» для перемещения между системами. В ролике можно увидеть перемещение по транспортным линиям и внешний вид червоточин.
Джош обещал сделать адаптивную симуляцию — аналог LOD'а для игровой механики и событий. Т.е. чем ближе к игроку, тем более детальные расчеты проводятся, а чем дальше — тем более общие и простые. Так что, возможно, и будут вращающиеся астероиды.
А посмотреть можно?
Поправка. Насчет даты релиза неправ. Нашел вчерашний пост, где Джош подтверждает релиз в начале 2014.
На Кикстартере была указана дата январь 2014, но на форуме я пока не видел никаких упоминаний о конкретной дате релиза.
В ходе Кикстартер компании была заявлена поддержка Windows, Linux и OS X. Судя по коментариям автора на форуме, проект уже собирается и работает под всеми тремя плптформами.
Запостил идею на btsync форум. Добавил еще предложение по btsync: URI и распределенной DNS.
Было б еще прикольно, если бы была возможность задавать RO ключ самостоятельно. В этом случае можно было бы использовать читабельные названия для сайта.
С помощью Sync можно было бы организовывать статические сайты. В папку закидываются html страницы, а в общий доступ выкладывается RO ключ. Впоследствии страницы можно изменять/добавлять. Получается распределенный сайт без необходимости реального сервера.
1

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность