LINUX.ORG.RU
ФорумJob

Ищу. Удалённая. C++/stl/boost/posix sockets/multithreading


0

3

* опыт построения асинхронных серверных приложений с исп. epoll, select («проблема 10K», опции сокетов, TCP/IP, UDP);
* понимание принципов построения многопоточных приложений (примитивы синхр., типичные проблемы);
* опыт реализации протоколов;
* опыт реализации парсеров (лекс., синтакс. анализаторы), реализации простого интерпретируемого ЯП для разбора HTML;
* хор. знание шаблонов С++, понимаю метапрограммирование, знанию STL (наполовину изнутри), boost;
* понимание big O notation, структур данных, некоторых алгоритмов, аллокаторов памяти;
* разработки распред. систем (своя распр. система нагрузочного тестирования, понимание MapReduce на примере apache hadoop);
* английский устный, письменный.
* опыт удалённой разработки NoSQL СУБД для высоконагруженного проекта. Многопоточный доступ к хранилищу с оптимальной блокировкой его частей, с полной блокировкой только на критических операциях.
* большое желание продолжать развиваться в области разработки СУБД или заниматься задачами, связанными с оптимизацией, разработкой сложных алгоритмов.
* небольшой опыт с QT, Visual Studio 2008. С windows знаком плохо, но проекты в студии собирал неск. раз.


Удалённая работа была бы наиболее интересна. Нежелательны прыжки между сильно различными областями. На старте оплата может быть «студенческой».

cppremotework гмейл ком

В каких проектах участвовал? Где набрался «опыта» и «понимания»?

anonymous
()
Ответ на: комментарий от anonymous

«Понимание» и «опыт» не названиями проектов измеряются, а устраиванием мне собеседования.

kiverattes ★☆
() автор топика
Ответ на: комментарий от catap

Проблема 10К - проблема обслуживания 10000 соединений одновременно. Состоит в нескольких моментах.
1. select и poll требуют объявлять ядру, какие дескрипторы нас интересуют при каждом вызове. Если это тысячи, то получается копирование килобайт данных при каждом вызове между ядром и процессом. Читал, что это доходит до 13% времени, которое выполняются эти вызовы. В /dev/poll или epoll процесс постановки дескрипторов на учёт и «выгребание свежих новостей» разделены - ядро помнит, за какими дескрипторами следить.

2. Затраты на выполнение select и poll больше зависят от числа дескрипторов, которые нам интересны, а не от числа дескрипторов, которые в процессе вызова select и poll станут «готовыми».

Сервер на основе epoll выигрывает у сервера на основе select+poll только тогда, когда большинство из установленных 10K (20К) соединений простаивают. Когда по всем соединениям постоянно что-то гоняется, select + poll могут быть как минимум также эффективны, как epoll или даже слегка лучше.

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

Ну есть ещё вопросы чтения из файлов, где open, close, read, write несмотря на O_NONBLOCK будут блокироваться.

kiverattes ★☆
() автор топика

Почему есть слово «сеть» и нет слова «Эрланг»? :)

mv ★★★★★
()

> реализации простого интерпретируемого ЯП для разбора HTML;

Ниасилил регэксп?

anonymous
()
Ответ на: комментарий от kiverattes

Можешь рассказать как читать файлы, без блокировок?

catap ★★★★★
()
Ответ на: комментарий от anonymous

>> реализации простого интерпретируемого ЯП для разбора HTML;

Ниасилил регэксп?


LOL! Ниасилил КС-грамматики?

russian_guy
()

> C++/stl/boost/posix sockets/multithreading

Сходи на собеседование в Яндекс и пойми что на самом деле ты не знаешь ничего.

anonymous
()
Ответ на: комментарий от anonymous

Любого можно завалить «собеседованием». Даже уже имеющегося сотрудника. Было бы желание.

anonymous
()
Ответ на: комментарий от kiverattes

>Ну есть ещё вопросы чтения из файлов, где open, close, read, write несмотря на O_NONBLOCK будут блокироваться.

а-ну, а-ну, покажи свои знания.

anonymous
()
Ответ на: комментарий от anonymous

а-ну, а-ну, покажи свои знания.

Лично фиксил баг в ядре, из-за которого блокировался неблокируемый read ;)

mv ★★★★★
()
Ответ на: комментарий от mv

Стоит отметить, что read на специфичный файл был.

mv ★★★★★
()

Работа удаленная

Организации требуется помощь написании программки под Линукс. Задача: Есть машина под Линукс с подключенными к ней электросчетчиками. Подключение через адаптер USB->RS485. Счетчиков может быть до 4. Требуется в определенный момент времени собрать данные со счетчиков, уложить их в файл определенной структуры и отослать оный файл по email для дальнейшей обработки уже в спец программах под Windows.

Работа со счетчиками у нас отлажена, но только под виндой.(С командами обращение проблем не будет).

Если Вас заинтересует данная работа обращайтесь на email: gosha@argoivanovo.ru

Gosh
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.