LINUX.ORG.RU

[нубство][java] java и fork()

 


0

1

на сколько я понимаю в жаве нет форка. А можно ли как-то прикрутить? Экстеншеном там... Ведь если есть возможность писать экстеншены на C то и форк можно реализовать.

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

★★★★★
Ответ на: комментарий от note173

Данные копируются только изменённые.

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

не подходит. У нитей общее адресное пространство, если одна порушит граф то остальные нити получат порушенный граф.

Как тут может помочь map/reduce? Есть граф который генерит готовая библиотека, предлагаешь его в хадуп выгружать? :)

PS хадуп говно. Ужасен внутри и снаружи и глюкав. Пишу как экс-админ версии 0.20

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

кстати, под фряхой через задницу этот хадуп работает. Неделю писал патчи чтобы, например, hdfs под фряхой собирался и прочие хрени работали. Внутрях пути захардкодены, всё заточено под линух.

true_admin ★★★★★
() автор топика

Не, ну форка нету конечно. Да он тебе и не нужен. Ну хочешь copy-on-write, ну так и сделай. Реализуй для своего графа Clonable, при создании треда клонируй его туда.

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

А вот нехрен было его под бсдей запускать. Вы что ли сайти не читали оффициальный? Там ченым по белому - для продакшна только линукс. Короче сами себе злобные буратины. У хадупа есть конечно глюки, но не настолько, как ты описал.

dizza ★★★★★
()

Тут фигня в том, что Java кроссплатформенная, а в Windows, например, процесс форкнуть так просто нельзя. Да и не знаю, насколько сама жаба-машина писпособлена к форканью.

Если алгоритм знакомого рушит данные просто потому, что никто не позаботился об их сохранении, то нужно модифицировать его так, чтобы не рушил. Если же он рушит, потому что нужно, то надо прикрутить к нему copy-on-write. Это обычно не так трудно сделать, если все правильно спроектировано.

proud_anon ★★★★★
()

Можно попробовать native метод написать, который будет просто вызывать fork(). Оно конечно не гарантируется, что всё заработает, но шансы есть.

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

я видел его внутренности, это отвратительно. Но сам хадуп ещё работал, а вот hive какие чудеса производительности показывал..... А голых хадуп возможностями не впечатляает.

Я не хочу сказать что с ним совсем нельзя работать, но я бы лучше что-нить другое юзал если нужен map/reduce.

для продакшна только линукс

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

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

Вот я про это и спрашивал, можно ли такое :). У меня, правда, интерес чисто академический. Почему-то в гугле этот вопрос всегда обсуждается только в ключе «используйте треды».

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

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

В итоге так и сделали. Но лишние часа 3 убили. Хотя, я считаю что 3 часа это немного.

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

Шансы, боюсь, близкие к нулю. Нативный метод вызовется, а вот дальше... ЖВМ не рассчитана на то, что разные ее куски будут работать в разных процессах - что угодно может сломаться. Дебажить будет интересно. И никогда нельзя быть уверенным, что при конкретном расположении звезд оно все не посыпется.

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

А голых хадуп возможностями не впечатляает.

Да, он такой.

а вот hive какие чудеса производительности показывал

А все эти sql подобный поделия не от большого ума. Я пробовал и pig и еще что-то. Все они УГ оказались. Остановились в итоге на cascading, вот это действительно классная вещь.

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

рад что что-то хорошое есть :). Авось мои усилия не пропали даром.

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

Так как я python-программист то я бы выбрал что-нить типа mpi4py, но вот над стораджем данных придётся думать. Тут у меня есть мысли, главная из которых это то что не надо гнаться за трендами а сесть и тщательно подумать а не пихать hadoop только потому что его какая-нить yahoo использует. Почему-то многие уверены что это та волшебная палочка-выручалочка которая может всё и очень быстро.

Кстати, хадуп умеет запускать задачи на тех нодах на которых уже есть нужные данные?

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

я думал, ты назовешь другую адекватную реализациюю map/reduce. А ты какой-то велосипед предлагаешь написать

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

Что значит адекватную? There is no such thing as silver bullet. Скажи какая стоит задача я скажу как сделать.

Так что на счёт моего вопроса по хадупу?

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