LINUX.ORG.RU

Реальные вопросы на собеседовании

 


2

2

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


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

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

Возьми да раздели.

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

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

Это тебе подсказали, а с тебя нужен был велосипед. Будь это собеседование, и ты так ответила, я бы попросил тебя реализовать такую структуру.

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

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

У тебя есть 64 ядра, соответствующее количество потоков и кеш (key-value), который они шарят. Как организовать кеш и доступ к нему?

тогда вопрос. - чем cache отличается от hash.

alysnix ()

Почему люки круглые, классика же, встречал реально.

А если ты примат, то встречал и такой вопрос: я и Вася один раз в день ходим вместе на обед в столовую и у нас одинаковые вкусы в еде. Там каждый из нас всегда берёт первое, второе с гарниром и напиток. Первых блюд 8 видов, второго 6 и 3 гарнира, в качестве напитков чай, 2 разных компота и сок. Внимание вопрос, за сколько дней мы сможем гарантированно найти самое лучшее сочетание из трёх блюд? Бонусный вопрос, а с вероятностью 95%?

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

peregrine ★★★★★ ()
Последнее исправление: peregrine (всего исправлений: 1)
Ответ на: комментарий от Lzzz

Можно его просто раздробить. Либо ещё раз взяв хеш, либо по какому-то дополнительному признаку с более сложной логикой. И ставить локи уже не на весь кеш глобально, а на одну область.

Ну, это топорно, зато легко реализовать на коленке, для собеседования ок.

К тому же лок-фри звучит хорошо, но на практике бесплатно ничего не достаётся.

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

Переформулируй, не понятно бредишь ты или серьёзно что-то спросить пытаешься.

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

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

не в каждом языке ты сможешь её реализовать

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

JAkutenshi ()
Последнее исправление: JAkutenshi (всего исправлений: 1)
Ответ на: комментарий от alysnix

Это ты, похоже, путаешь хеш и хешмап. Все поняли, один ты упоролся. Нет задача не про кеш процессора.

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

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

Это ты, похоже, путаешь хеш и хешмап. Все поняли, один ты упоролся. Нет задача не про кеш процессора.

вопросы задавать научись уже.

У тебя есть 64 ядра, соответствующее количество потоков и кеш (key-value), который они шарят. Как организовать кеш и доступ к нему?

вместо этой билиберды с кешами, хешами, ключами и значениями и количеством ядер(которые к делу отношения не имеют), задается простой вопрос - как организовать совместный доступ к общему обьекту из большого количества тредов. если б там было два ядра, не кеш, не хеш, не ключ значение…что-то поменялось бы? нет. вот и нечего воду мутить

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

Обертки над Си позволят все сделать

Да и сделали уже всё давно за тебя, скорее всего. А ты всё равно облажаешься. Не суть, задача-то скорее на логику, а не на знание.

Я б скорее не про реализацию спросил

Так она только в этом треде про них узнала.

Да и атомики сами по себе тоже не бесплатные, а ещё ABA. Я бы немного иначе спросил: «почему все структуры по умолчанию не делают потокобезопасными и лок-фри».

WitcherGeralt ★★ ()

в геймдеве.

Есть 2 абсолютно одинаковых шара и 100-этажное здание. Шар можно бросить с какого-то этажа здания. При этом шар либо разобъется, либо нет. Разбившийся шар повторно бросать нельзя. Неразбившийся - можно. Нужно вывести самый оптимальный алгоритм, который точно определяет этаж, выше которого шары начинают биться, за наименьшее количество попыток (бросков шаров).

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

Не к случайному общему объекту, а именно к кешу. Тут не всё так просто.

По-русски написано же:

Как организовать кеш и доступ к нему?

Не знаю чем ты упарывался, чтобы трактовать вопрос как-то иначе. Скорее всего, ты просто недостаточно компетентен, чтобы понять проблематику.

WitcherGeralt ★★ ()
Последнее исправление: WitcherGeralt (всего исправлений: 3)
Ответ на: комментарий от WitcherGeralt

Интересно, а если в ответ на последнее просто попросить профайлер и быстро накидать бенчмарки – достаточно красочный ответ или просто вместо разработчиков в тестировщики отправят?

JAkutenshi ()