The OpenNET Project / Index page

[ новости /+++ | форум | wiki | теги | ]

Открыт код системы распределённой памяти Galaxy

11.07.2012 22:26

Компания Parallel Universe объявила об открытии под лицензией LGPLv3 системы распределённой памяти Galaxy (in-memory data-grid), предназначенной для создания распределённых приложений, выполняемых на нескольких узлах, обрабатывающих единый массив данных. Galaxy берёт на себя функции распределения объектов данных, хранимых в виде байтового массива, между различными узлами кластера, создавая для запущенного на нескольких узлах приложения иллюзию, что работа ведётся с монолитной областью памяти.

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

Отличительной чертой Galaxy является способ привязки данных к узлам кластера, на которых запущены процессы-обработчики. Вместо использования хэшей Galaxy реализует метод динамического перемещения объектов от одного узла к другому по мере возникновения в них необходимости, используя протокол похожий по своей сути на технику обеспечения согласованности содержимого внутреннего кэша CPU. Подобный подход позволяет использовать Galaxy в приложениях с предсказуемой логикой обращения к данным, поведение которых согласуется с определёнными вероятностными метриками, позволяющими предположить, что расположенные рядом данные скорее всего будут обработаны вместе, чем данные находящиеся далеко друг от друга.

Для оптимизации производительности каждый объект данных ассоциируется с определённым узлом-владельцем, который выбирается по степени интенсивности работы с объектом данных. Когда с объектом работает узел владелец данные обрабатываются локально с минимальными задержками, при обращении к данному блоку с другого узла выполняются дополнительные действия по синхронизации состояния между узлами. В пределах всего кластера гарантируется согласованность всех данных, например, если блок Б изменён после изменения блока А, то гарантируется, что ни на одном узле не может оказаться новый блок А и старый Б. Для обеспечения отказоустойчивости, данные могут дублироваться на дополнительных узлах.

Galaxy не является традиционным хранилищем данных в формате ключ/значения, но при желании может быть использован в качестве низкоуровневого базиса для создания подобных систем и произвольных распределённых структур данных. Кроме того, Galaxy предоставляет средства для обмена сообщениями с гарантированной доставкой и сохранением порядка следования, а также обеспечивает работу сервиса по управлению конфигурацией кластера. Для управления кластером поддерживается интеграция с системами ZooKeeper и JGroups. Для обеспечения постоянного хранения содержимого распределённой памяти может быть использована БД BerkeleyDB и любые SQL СУБД. Код компонентов Galaxy написан на языке Java.

  1. Главная ссылка к новости (http://blog.paralleluniverse.c...)
Лицензия: CC-BY
Тип: Программы
Короткая ссылка: https://opennet.ru/34313-cluster
Ключевые слова: cluster, memory, grid, galaxy
При перепечатке указание ссылки на opennet.ru обязательно
Обсуждение (98) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, MaMoHT (?), 05:47, 12/07/2012 [ответить] [﹢﹢﹢] [ · · · ]  
  • +6 +/
    > Код компонентов Galaxy написан на языке Java.

    Последнее предложение перечекнула всю статью. Хоть с конца текст новости читай. Обидно...

     
     
  • 2.2, DV (ok), 06:25, 12/07/2012 [^] [^^] [^^^] [ответить]  
  • +/
    Автор, в чём проблема-то Потому что здесь так принято Всякий раз когда на o... большой текст свёрнут, показать
     
     
  • 3.3, Аноним (-), 07:04, 12/07/2012 [^] [^^] [^^^] [ответить]  
  • +/
    Ой, «набигут» сейчас толпы хелловурлдщиков и скрипт-кидди, разбрасывая слюну, рассказывать какая Java плохая…
     
     
  • 4.17, Аноним (-), 11:44, 12/07/2012 [^] [^^] [^^^] [ответить]  
  • –3 +/
    >  Ой, «набигут» сейчас толпы хелловурлдщиков и скрипт-кидди, разбрасывая слюну, рассказывать какая Java плохая…

    Эти как раз жабу любят, потому что ничего кроме нее осилить не смогли.

     
  • 3.4, Аноним (-), 08:24, 12/07/2012 [^] [^^] [^^^] [ответить]  
  • +8 +/
    > Медленно работает, ест память? Лекарство от криворукости — умные книжки, особливо Джошуа Блоха.

    Где я возьму столько умных книжек, в том числе и Джошуа Блоха, чтобы послать их каждому криворукому жабакодеру, с поделиями которого приходится работать?

     
     
  • 4.5, rshadow (ok), 08:52, 12/07/2012 [^] [^^] [^^^] [ответить]  
  • +4 +/
    Все правильно сказал. Легкий в освоении, красивый язык -> низкий порог вхождения -> толпы говнокодеров -> проектов много а толку мало. Профи обижаются...
    И это не считая тормозов и кушанья памяти... с этим все профи уже смерились и забываются иногда до того что начинают с пеной у рта доказывать что это не так :-)
     
     
  • 5.50, Аноним (-), 15:30, 12/07/2012 [^] [^^] [^^^] [ответить]  
  • –2 +/
    > Все правильно сказал. Легкий в освоении, красивый язык -> низкий порог вхождения
    > -> толпы гoвнокодеров -> проектов много а толку мало. Профи обижаются...

    По сути дела, java - это нишевый аналог PHP.

     
     
  • 6.54, edwin3d (?), 15:38, 12/07/2012 [^] [^^] [^^^] [ответить]  
  • +4 +/
    >> Все правильно сказал. Легкий в освоении, красивый язык -> низкий порог вхождения
    >> -> толпы гoвнокодеров -> проектов много а толку мало. Профи обижаются...
    > По сути дела, java - это нишевый аналог PHP.

    Гхм .... вообще-то сравнивать Java и PHP некорректно.
    PHP - вообще говоря собранная на коленке скриптомолотилка, а Java - полноценный язык, который если и сравнивать, то уже явно не с PHP
    К слову если брать Web приложения. то PHP даже со всеми акселераторами медленне (особенно это заметно на сложных приложениях) контейнера сервлетов аля TomCat.


     
     
  • 7.61, Аноним (-), 15:45, 12/07/2012 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Гхм .... вообще-то сравнивать Java и PHP некорректно.
    > PHP - вообще говоря собранная на коленке скриптомолотилка, а Java - полноценный язык, который если и сравнивать, то уже явно не с PHP

    С тем же успехом можно утверждать, что
    > Java - вообще говоря собранная на коленке скриптомолотилка, а PHP - полноценный язык, который если и сравнивать, то уже явно не с Java

    Суть утверждения от этого не изменится =)

    > К слову если брать Web приложения. то PHP даже со всеми акселераторами медленне (особенно это заметно на сложных приложениях) контейнера сервлетов аля TomCat.

    Очень сложно работать медленнее томката. Пых с этим обычно не справляется. Даже на питоне это порой бывает трудно обеспечить.

     
     
  • 8.66, edwin3d (?), 16:04, 12/07/2012 [^] [^^] [^^^] [ответить]  
  • +/
    Спасибо, посмелся от души А Вы осильте программирование сервлетов да настройку ... текст свёрнут, показать
     
     
  • 9.89, Fomalhaut (?), 21:44, 14/07/2012 [^] [^^] [^^^] [ответить]  
  • +/
    Обратите внимание не в PHP - Java... текст свёрнут, показать
     
  • 6.59, ДяДя (?), 15:42, 12/07/2012 [^] [^^] [^^^] [ответить]  
  • +/
    :-D Вот это уже реально смешно.
     
  • 6.83, Аноним (-), 02:24, 13/07/2012 [^] [^^] [^^^] [ответить]  
  • –1 +/
    По сути дела, Java - это Cobol.
     
  • 3.6, myc (?), 08:58, 12/07/2012 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Код, написанный на C, можно заюзать в проектах на других языках программирования, код на Java - увы, только в Java проектах.
     
     
  • 4.79, umbr (ok), 21:35, 12/07/2012 [^] [^^] [^^^] [ответить]  
  • +5 +/
    Зато в Java-проекте можно заюзать код написанный на любом языке :)
     
     
  • 5.90, Fomalhaut (?), 21:45, 14/07/2012 [^] [^^] [^^^] [ответить]  
  • +/
    Это !=
     
  • 3.7, kurokaze (ok), 09:38, 12/07/2012 [^] [^^] [^^^] [ответить]  
  • –2 +/
    >а людей, знающих СИ от и до, в мире всего несколько человек

    спасибо, посмеялся с утра.
    тото подавляющее число пакетов в репе дистра на сях и плюсах написана. наверное их все 2-3 человека пишут, гггг, "суперкодер" и "человек-страуструп"

     
     
  • 4.14, anonymous (??), 11:32, 12/07/2012 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Он просто не отличает чистый си от плюсов. Или я слишком хорошего мнения о людях.
     
  • 3.9, Аноним (-), 10:03, 12/07/2012 [^] [^^] [^^^] [ответить]  
  • –5 +/
    > s = "data # " + arg[0] + " " + arg[1];

    Конкретно тут на современной яве быстроты не особо достигнешь.

     
     
  • 4.16, piteri (ok), 11:38, 12/07/2012 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Вот и живой пример.
    Читать надо было сюды:
    >...пишет в цикле:
    >String s = new String();

    .

     
     
  • 5.23, Аноним (-), 11:56, 12/07/2012 [^] [^^] [^^^] [ответить]  
  • –3 +/
    Вот и живой пример, незнающий что оператор + медленнее метода append()
     
     
  • 6.30, piteri (ok), 13:15, 12/07/2012 [^] [^^] [^^^] [ответить]  
  • +/
    Если не разбираетесь в вопросе лучше помолчать - умнее казаться будете.
    Пройдя по этой ссылке http://docs.oracle.com/javase/6/docs/api/java/lang/String.html любой легко убедиться что класс String не содержит метода append
    Предположим что вы имели в виду StringBuilder, он действительно содержит метод append, но только в данном случае его лучше не использовать, производительность просядет в разы.

    Основная ошибка в приведённом коде - бесполезная инициализация строковой переменной, т.е. написать следовало
    либо так
    String string;
    for (...) {
        ...
        string = "data # " + arg[0] + " " + arg[1];
        ...
    }

    либо так

    for (...) {
        ...
        String string = "data # " + arg[0] + " " + arg[1];
        ...
    }

     
     
  • 7.36, Stocker (?), 14:16, 12/07/2012 [^] [^^] [^^^] [ответить]  
  • +1 +/
    >Если не разбираетесь в вопросе лучше помолчать - умнее казаться будете.

    Вот это в первую очередь к Вам и относится :)
    А StringBuilder вообще зачем по - вашему нужен?

    А теперь внимание, ВНЕЗАПНО, внутри JVM конструкция вида str1 + str2 преобразуется в new StringBuilder(str1).append(str2).toString()
    "+" это только лишь синтактический сахар.
    Именно поэтому конкатенация двух строк плюсом это нормально, а в цикле будет создан миллион ненужных StringBuilder'ов.

     
     
  • 8.38, Аноним (-), 14:35, 12/07/2012 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Ну что с него взять, вероятно преподаватель Отожгли оба но аноним ошибся бол... текст свёрнут, показать
     
     
  • 9.51, piteri (ok), 15:31, 12/07/2012 [^] [^^] [^^^] [ответить]  
  • +/
    Где именно я показал поверхностные знания , разрешите уточнить ... текст свёрнут, показать
     
     
  • 10.58, piteri (ok), 15:40, 12/07/2012 [^] [^^] [^^^] [ответить]  
  • +/
    перечитал свой пост, вопрос снят В оправдание своей описки могу сказать, что вп... текст свёрнут, показать
     
     
  • 11.65, Аноним (-), 16:03, 12/07/2012 [^] [^^] [^^^] [ответить]  
  • +/
    Если оптимизация действительно нужна и цикл предположительно выполняется не ма... большой текст свёрнут, показать
     
  • 6.31, Аноним (-), 13:21, 12/07/2012 [^] [^^] [^^^] [ответить]  
  • +/
    Ну не оправдывайтесь, тест провалили Касательно операторов, все зависит от комп... большой текст свёрнут, показать
     
     
  • 7.33, Анонимъ (?), 13:35, 12/07/2012 [^] [^^] [^^^] [ответить]  
  • +/

    > Отступ. На C++ можно тоже очень медленную программу написать если на каждый
    > чих создавать/уничтожать объект оператором new/delete. В Java такой подход работает очень
    > шустро в C++ очень медленно (в зависимости еще от компиляторов конечно).

    Если у Вас система создает\уничтожает много объектов - напишите свою собственную реализацию new\delete использовав slab аллокацию объектов и Ваша медленная программа станет настолько быстрой, что никакая жаба не угонится.

     
     
  • 8.35, Аноним (-), 13:47, 12/07/2012 [^] [^^] [^^^] [ответить]  
  • +/
    То что я пытался донести, Вы не поняли ... текст свёрнут, показать
     
  • 7.42, ДяДя (?), 15:16, 12/07/2012 [^] [^^] [^^^] [ответить]  
  • +3 +/
    >Не холивара ради, C++ прекрасный язык, если что и у него как и Java есть свои особенности.

    Главная особенность C++ :

    «Я придумал термин „объектно-ориентированный“, но я вовсе не имел в виду C++.»
    Alan Kay. Создатель Smalltalk

    :-D

     
  • 3.11, edwin3d (?), 10:23, 12/07/2012 [^] [^^] [^^^] [ответить]  
  • +/
    > потом ругается, что ей Java не нравится из-за тормознутости.

    К слову почему-то о том, что якобы java де "тормозит" в основном приходится слышать от тех, что серьзно с ней не работал и пользоватся не умеет ...

     
     
  • 4.15, anonymous (??), 11:34, 12/07/2012 [^] [^^] [^^^] [ответить]  
  • +7 +/
    >> потом ругается, что ей Java не нравится из-за тормознутости.
    > К слову почему-то о том, что якобы java де "тормозит" в основном
    > приходится слышать от тех, что серьзно с ней не работал и
    > пользоватся не умеет ...

    Java is high performance. By high performance we mean adequate. By adequate we mean slow.

     
  • 4.18, Аноним (-), 11:46, 12/07/2012 [^] [^^] [^^^] [ответить]  
  • +2 +/
    > К слову почему-то о том, что якобы java де "тормозит" в основном
    > приходится слышать от тех, что серьзно с ней не работал и
    > пользоватся не умеет ...

    Потому что опытные пользователи жабы уже давно привыкли и смирились.
    Для них скорость - уже не главное.

     
     
  • 5.25, edwin3d (?), 12:18, 12/07/2012 [^] [^^] [^^^] [ответить]  
  • +/
    >> К слову почему-то о том, что якобы java де "тормозит" в основном
    >> приходится слышать от тех, что серьзно с ней не работал и
    >> пользоватся не умеет ...
    > Потому что опытные пользователи жабы уже давно привыкли и смирились.
    > Для них скорость - уже не главное.

    Пример:
    Отрасль: Телекоммуникации и связь.
    Объект: Программные коммутаторы (читай телефонные станции с соот. требованиями к как надежности так и производительности).
    Так очень многие их них написаны на Java.
    Вот к примеру - продукты компании VocalTec (далеко не лузер) написаны на Java.
      


     
     
  • 6.47, Аноним (-), 15:24, 12/07/2012 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Объект: Программные коммутаторы (читай телефонные станции с соот. требованиями к как надежности так и производительности).
    > Так очень многие их них написаны на Java.

     
    > Java
    > производительности

    Одна из черепашек явно звездит.

     
  • 6.82, Michael Shigorin (ok), 00:57, 13/07/2012 [^] [^^] [^^^] [ответить]  
  • +/
    > Отрасль: Телекоммуникации и связь.
    > Объект: Программные коммутаторы

    Писать на Java то, что лучше писать на Erlang -- это, безусловно, яркий пример.

     
     
  • 7.84, тень_pavel_simple (?), 07:43, 13/07/2012 [^] [^^] [^^^] [ответить]  
  • +/
    >> Отрасль: Телекоммуникации и связь.
    >> Объект: Программные коммутаторы
    > Писать на Java то, что лучше писать на Erlang -- это, безусловно,
    > яркий пример.

    только один момент, для java чаще всего есть Весь необходимый инструментарий от IDE до множества биндингов а у Erlang'а окрjмя заявленых мегафич нет ничего.

     
     
  • 8.87, Michael Shigorin (ok), 18:26, 13/07/2012 [^] [^^] [^^^] [ответить]  
  • –1 +/
    erlang и создавался для магистральных коммутаторов Вместо общих слов смотри... текст свёрнут, показать
     
     
  • 9.93, тень_pavel_simple (?), 18:55, 16/07/2012 [^] [^^] [^^^] [ответить]  
  • +/
    именно... текст свёрнут, показать
     
     
  • 10.94, Michael Shigorin (ok), 20:09, 16/07/2012 [^] [^^] [^^^] [ответить]  
  • +/
    Вот и подумайте, что лучше -- теплоход со всеми удобствами в пустыне или корабл... текст свёрнут, показать
     
     
  • 11.96, ДяДя (?), 02:26, 17/07/2012 [^] [^^] [^^^] [ответить]  
  • +/
    При этом Erlang - это виртуальная машина На одном потоке примерно в два раза ме... текст свёрнут, показать
     
     
  • 12.97, Michael Shigorin (ok), 02:32, 17/07/2012 [^] [^^] [^^^] [ответить]  
  • +/
    Чего именно ... текст свёрнут, показать
     
     
  • 13.98, тень_pavel_simple (?), 18:01, 18/07/2012 [^] [^^] [^^^] [ответить]  
  • +/
    я правда не хочу объяснять глубины глубин, особенно приведённые аналогии во... текст свёрнут, показать
     
     
  • 14.99, Michael Shigorin (ok), 19:33, 18/07/2012 [^] [^^] [^^^] [ответить]  
  • +/
    Спросил к тому, что поток потоку рознь В том числе важно то, _что_ крутится в ... большой текст свёрнут, показать
     
     
  • 15.100, тень_pavel_simple (?), 21:03, 18/07/2012 [^] [^^] [^^^] [ответить]  
  • +/
    Практика -- критерий истины, ну нету ничего для телекома интересного в этой спец... большой текст свёрнут, показать
     
     
  • 16.101, Michael Shigorin (ok), 21:52, 18/07/2012 [^] [^^] [^^^] [ответить]  
  • +/
    Даже не смешно хотя и жаба, и P P P, и тикль, и C C по знакомым телекомам вов... большой текст свёрнут, показать
     
     
  • 17.102, тень_pavel_simple (?), 22:27, 18/07/2012 [^] [^^] [^^^] [ответить]  
  • +/
    Т е я правильно понял что в вам лично знакомых телекомах ерлангом успешно польз... большой текст свёрнут, показать
     
     
  • 18.103, Michael Shigorin (ok), 01:04, 19/07/2012 [^] [^^] [^^^] [ответить]  
  • +/
    Сказано же -- эрикссоновские магистральные свичи Если интересно, гляньте http ... большой текст свёрнут, показать
     
     
  • 19.104, ДяДя (?), 17:18, 19/07/2012 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Каким бы хорошим не выглядел Erlang, но от сборщика мусора его не освобождали Н... текст свёрнут, показать
     
  • 19.105, ДяДя (?), 17:34, 19/07/2012 [^] [^^] [^^^] [ответить]  
  • +/
    И кстати вот http shootout alioth debian org u64q benchmark php test all lang... текст свёрнут, показать
     
  • 7.85, ДяДя (?), 11:41, 13/07/2012 [^] [^^] [^^^] [ответить]  
  • +/
    Erlang с успехом можно использовать во многих предметных областях.
    Сама платформа уже сейчас позволяет очень многое, но девелоперская инфраструктура на текущий момент оставляет желать лучшего.
     
  • 4.72, Аноним (-), 16:40, 12/07/2012 [^] [^^] [^^^] [ответить]  
  • +/
    > К слову почему-то о том, что якобы java не "тормозит" в основном приходится слышать от тех, что серьзно с ней не работал и пользоватся не умеет ...

    Исправлено.

     
  • 4.91, Fomalhaut (?), 21:51, 14/07/2012 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Что вы подразумеваете под "работал". Лично мне программировать не приходится (админ), но достаточно много приходится пользоваться Жаба-программами (что особо отмечу - фирменными) и результат весьма не в пользу Java.
     
  • 3.21, Kroz (??), 11:50, 12/07/2012 [^] [^^] [^^^] [ответить]  
  • +/
    Вы достоинства Java обсуждаете с точки зрения разработчиков: дескать, легко учить, управление памятью и т. п. А вот пользователей забываете: нужно ставить jvm которая жрет ресурсы как не в себя; GUI зачастую отличается от системного, а значит программа выглядит "не родной" и т. п. Хороший программист напишет хорошую программу хоть на java, хоть на c++, плохой программист наделает кучу багов и там, где jvm ему будет всячески помогать, автоматизировать все что можно и думать за него. Так что дело в руках и в голове, а не в языке.

    > а людей, знающих СИ от и до, в мире всего несколько человек

    Посмеялся, спасибо. А вы с англичанами будете общаться только когда выучите английский язык от и до? Нормальные люди используют ровно то, что им нужно, а не все, что дает им (в данном случае) язык программирования. А вы продолжайте учить свою Java "от и до".

     
     
  • 4.80, umbr (ok), 21:39, 12/07/2012 [^] [^^] [^^^] [ответить]  
  • +/
    >GUI зачастую отличается от системного

    SWT же!

     
  • 3.39, edo (ok), 14:36, 12/07/2012 [^] [^^] [^^^] [ответить]  
  • +2 +/
    > а людей, знающих СИ от и до, в мире всего несколько человек.

    а зачем знать "от и до"? если речь идёт о plain C, достаточно прочитать k&r ;)

     
  • 3.40, xxx (??), 14:42, 12/07/2012 [^] [^^] [^^^] [ответить]  
  • +/
    >Чем Вам Java не угодила, замечательный и простой язык, который легко выучить
    >меня знакомая — аспирант кафедры системного программирования — пишет в цикле:
    >String s = new String();
    >s = "data # " + arg[0] + " " + arg[1];
    >потом ругается, что ей Java не нравится из-за тормознутости.

    Поделил на ноль?

    К слову о простоте. Ява - это сложный язык с огромной платформой обвешанной энтерпрайзными технологиями, поэтому осилить писать на ней эффективные программы дано не каждому, за-то тормозные поделки писать могут все. Лично я счастлив, что занимаюсь встраиваемым ПО и осиливать многокилометровые талмуды не приходится.

    Насчёт тормозов, вот использую я hudson для сборки сишных проектов, и никак не могу понять почему он жрет более 500 мегабайт памяти и 100% грузит проц. А ведь главное нихрена полезного при этом не делает. И это пример хорошего функционального ПО.

     
     
  • 4.41, Аноним (-), 14:52, 12/07/2012 [^] [^^] [^^^] [ответить]  
  • +/
    >А ведь главное нихрена полезного при этом не делает.

    Делает, почитайте документацию и будет Вам озарение.

     
  • 4.45, ДяДя (?), 15:22, 12/07/2012 [^] [^^] [^^^] [ответить]  
  • +/
    > Насчёт тормозов, вот использую я hudson для сборки сишных проектов, и никак
    > не могу понять почему он жрет более 500 мегабайт памяти и
    > 100% грузит проц. А ведь главное нихрена полезного при этом не
    > делает. И это пример хорошего функционального ПО.

    На 100% с вами согласен, НО !!! Здесь вы обязаны привести пример одинаковых по функционалу приложений, но одно на Java, а другое нет. Вот тогда и можно проводить сравнение.

    Так получается, что вы Hudson с утилитой make сравниваете и ругаетесь на тормознутость Hudson-а.

     
     
  • 5.69, Аноним (-), 16:32, 12/07/2012 [^] [^^] [^^^] [ответить]  
  • +/
    Hudson вероятно правильно сравнивать с аналогом CruiseControl-ом. Та что ж это делается CruiseControl тоже написан на Java. Люди проснитесь, вселенский заговор, не иначе.
     
  • 5.77, xxx (??), 18:40, 12/07/2012 [^] [^^] [^^^] [ответить]  
  • +/
    >Здесь вы обязаны привести пример одинаковых по функционалу приложений, но одно на Java, а другое нет. Вот тогда и можно проводить сравнение.

    Если бы мне понравились другие CI системы на других языках, я бы с hudson не связался.

    >Так получается, что вы Hudson с утилитой make сравниваете и ругаетесь на тормознутость Hudson-а.

    Как их можно вообще сравнивать, это разные вещи. Более того, в моём случае hudson вызывает gmake для сборки проекта, при этом во время сборки в top'е ни gmake, ни GCC даже не появляются, а java и hudson занимает первые строчки. А ведь всё что он делает в данном случае - это ждёт завершения утилиты gmake, мигает иконкой и пишет логи, ну и конечно же жрёт память и процессор.

     
  • 4.52, Crazy Alex (ok), 15:33, 12/07/2012 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Не так. Ява - простой (даже примитивный) язык. И за свою примитивность она расплачивается сложностью библиотек и простынями кода - потому что сложность задач никуда не делась и надо с ней какими-то средствами работать.
     
     
  • 5.56, Аноним (-), 15:38, 12/07/2012 [^] [^^] [^^^] [ответить]  
  • +/
    > Не так. Ява - простой (даже примитивный) язык. И за свою примитивность она расплачивается сложностью библиотек и простынями кода - потому что сложность задач никуда не делась и надо с ней какими-то средствами работать.

    История далеко не новая. Еще лет двадцать назад с ней столкнулись те, кто писал на языке Bourne shell. Чтобы посмотреть на последствия, далеко ходить не нужно - достаточно взять практически любой административный скрипт, решающий более-менее сложную задачу. Вместо одной-двух красивых и прозрачных строчек, мы увидим там простыню на 200Кб, которую можно даже не обфусцировать - она и так запутана по самые не балуйся.

     
  • 3.88, Fomalhaut (?), 21:39, 14/07/2012 [^] [^^] [^^^] [ответить]  
  • +/
    Проблема в том, что этим недософтом приходится работать. И глюки и тормоза не зависят от "авторства": и цисковские управлялки "железками" тормозят не меньше, чем кривописанные студентами программы.
    И насчёт переносимости тоже далеко не всё гладко: начиная с того, что разные реализации Жабы под разные ОСы работают "чуточку по разному". Отсюда и "эффекты".
    Ну и пик идиотизма пеЙсателей: писать Жаба программу только (!) для венды на Жабе!
    Кстати, особо "весело" работать с такого рода Жабоидами в виртуалках: при условии, что остальное всё работает нормально, но Жаба-проги имеют тенденцию "подвешивать" гостевую. Вот это гуано, например: BMC Remedy OnDemand
     
  • 2.10, edwin3d (?), 10:21, 12/07/2012 [^] [^^] [^^^] [ответить]  
  • +/
    > Хоть с конца текст новости читай. Обидно...

    А если по сути постараться разобраться ?
    Та же Cassandra - прекрастная NoSQL БД, написанная на Java ... и вкустностей вагон, и стабильно, и все работает.
    И таких примеров можно привести очень много ....
    А потому нет необходимости исходить слюной при упоминании слова java (который к слову - великолепный язык),а разбиратся в сути.
    А суть должна быть такой: Если это работает так, как завлено, то мне лично плевать на чем она написана.

     
     
  • 3.19, Аноним (-), 11:47, 12/07/2012 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Та же Cassandra - прекрастная NoSQL БД, написанная на Java ... и
    > вкустностей вагон, и стабильно, и все работает.

    Только очень мееееедленно. И жрет дофига. А так, конечно, работает. Когда не падает.

     
     
  • 4.24, edwin3d (?), 12:15, 12/07/2012 [^] [^^] [^^^] [ответить]  
  • +/
    >> Та же Cassandra - прекрастная NoSQL БД, написанная на Java ... и
    >> вкустностей вагон, и стабильно, и все работает.
    > Только очень мееееедленно. И жрет дофига. А так, конечно, работает. Когда не
    > падает.

    Вы это Twitter'у расскажите. А то мужики то не знали ...


     
     
  • 5.73, Аноним (-), 16:41, 12/07/2012 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Вы это Twitter'у расскажите. А то мужики то не знали ...

    Twitter уже привык закупать в 3 раза больше серверов чем нужно. В реальеом мире этого делать никто не будет и cassandra нигде не используется.

     
     
  • 6.76, Аноним (-), 17:18, 12/07/2012 [^] [^^] [^^^] [ответить]  
  • +/
    >Twitter уже привык закупать в 3 раза больше серверов чем нужно. В реальеом мире этого делать никто не будет и cassandra нигде не используется.

    А твиттер в курсе что они в три раза больше серверов купили чем им нужно? Это что использование Java позволяет в три раза уменьшает необходимое количество серверов или Cassandra?

     
  • 2.29, ДяДя (?), 13:10, 12/07/2012 [^] [^^] [^^^] [ответить]  
  • +/
    Не всё так в Java однозначно(в остальных платформах/языках, увы, тоже).

    Вот, например, целочисленное суммирование элементов массива в цикле, типа:

    __int32 sum = 0;
    for (int i = 0, n = vec.size(); i < n; i++)
    sum += vec[i];

    Чтобы на GCC результаты приблизились к Java нужно пошаманить. g++ -O3 -funroll-loops помогает. При этом Java будет компилить код, который оптимален для данного процессора, а GCC   неплохо оптимизирует для -march. Только с данным ключом на другом процессоре будет тормозить или вообще работать не будет.

    Память в Java жрут коллекции. Если это неприемлемо, то используют массивы. Может это кому-то покажется не совсем в стиле Java и не очень удобным, но по сравнению с C/C++ вполне приемлемо.

    В итоге, (при грамотном подходе, разумеется) производительность систем, где активно используются данные из памяти, ВСЕГДА упирается в пропускную способность памяти, а не в язык разработки. Оптимизировать можно, только с помощью уменьшения объёма данных, для более эффективного использования кэша.


    P.S.
    За конкретный пример спасибо Роману Елизарову http://elizarov.livejournal.com/ ;-)
    Кстати это человек, который РЕАЛЬНО делает высоконагруженные производительные системы.

     
     
  • 3.63, Аноним (-), 15:49, 12/07/2012 [^] [^^] [^^^] [ответить]  
  • +/
    > P.S.
    > За конкретный пример спасибо Роману Елизарову http://elizarov.livejournal.com/ ;-)
    > Кстати это человек, который РЕАЛЬНО делает высоконагруженные производительные системы.

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

     
     
  • 4.81, ДяДя (?), 22:11, 12/07/2012 [^] [^^] [^^^] [ответить]  
  • +/
    >... и за многие годы работы с ними, как любой разработчик на его месте, видел миллионы случаев, когда жаба сливает сям.

    Если бы он видел миллионы случаев слива, то не работал бы с Java.

    Посмотрите клиентов для интереса: http://www.devexperts.com/ru/clients.html
    ММВБ, РТС о чём-нибудь говорят? Плюс ведущие брокеры. Это всё реальный хардкор для приложений. Миллионы транзакций.

    Кстати он говорит, что C должен знать любой программист.

    > Но он также случайно обнаружил редкую, уникальную ситуацию, когда жаба почти не сливает, и не замедлил привести ее в качестве практического примера =)

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

     
  • 2.32, Анонимъ (?), 13:29, 12/07/2012 [^] [^^] [^^^] [ответить]  
  • +/
    Почему-то тоже именно это подумал...
     
  • 2.37, Stocker (?), 14:25, 12/07/2012 [^] [^^] [^^^] [ответить]  
  • –4 +/
    Ну да, ну да... Если всё то же самое написать на си, то конечно можно сэкономить примерно 18 мегабайт памяти и после жёсткой-жёсткой компиляции для совсем конкретного процессора оно на этом процессоре возможно будет быстрее на 1-2 процента.
    Итого 1) экономия 18м памяти (а мы ведь говорим о высоконагруженных кластерах, где вся доступная многогиговая память будет занята нашим приложением)
    2) Многотрах админов с компиляцией и бубном ради 1-2 процентов (а ведь джаву просто запустить и всё :)
    3) Нужно потратить лишний миллион человеко-часов на разработку, хотя эти ресурсы можно потрать на что - либо гораздо более полезное и нужное.

    Но вам - то на вашей кухне чо, оналитеги хреновы

     
     
  • 3.43, Анонимъ (?), 15:19, 12/07/2012 [^] [^^] [^^^] [ответить]  
  • +/
    Он будет не меньше по размеру (это как раз фиолетово) а быстрее. Именно это требуется для постоянной синхронизации объектов. Там любая прибавка скорости критична... а тут в качестве языка - жаба...
     
     
  • 4.55, ДяДя (?), 15:38, 12/07/2012 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Он будет не меньше по размеру (это как раз фиолетово) а быстрее.

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

    Как только данные перестают помещаться в кэш происходит жуткая просадка. В Java даже есть ключ UseNUMA (на Windows не работает), который эффективно (с помощью данных об архитектуре памяти от ОС) по ядрам распределяет потоки, чтобы повысить вероятность нахождения в кэше полезных данных.

    Т.о. память тормозит, а процессор простаивает, даже если он выполняет Java, которая в три раза тупее C(по мнению некоторых). Процессор с лёгкостью успевает перемолоть даже Java. Память за ним не поспевает. И в данный момент НЕВОЗМОЖНО чего-либо сделать. На производительность контроллера памяти и самой памяти невозможно повлиять переписыванием программы на другой язык.

     
     
  • 5.92, Fomalhaut (?), 22:04, 14/07/2012 [^] [^^] [^^^] [ответить]  
  • +/
    Т.е. Может быть небольшой блок данных и весьма сложный алгоритм обработки. Особенно - математические расчёты.
     
  • 3.44, Аноним (-), 15:21, 12/07/2012 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Ну да, ну да... Если всё то же самое написать на си, то конечно можно сэкономить примерно 18 мегабайт памяти и после жёсткой-жёсткой компиляции для совсем конкретного процессора оно на этом процессоре возможно будет быстрее на 1-2 процента.

    Приведенные вами цифры характерны не для жабы, а для нормального компилируемого языка.
    Для типичного перехода "жаба -> си" - потребление памяти уменьшится примерно в 18 раз, и работать будет быстрее на 100-200%.

     
     
  • 4.70, Аноним (-), 16:35, 12/07/2012 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Не лопниш, деточка?
     
  • 3.49, Аноним (-), 15:28, 12/07/2012 [^] [^^] [^^^] [ответить]  
  • +/
    > Ну да, ну да... Если всё то же самое написать на си,
    > то конечно можно сэкономить примерно 18 мегабайт памяти и после жёсткой-жёсткой
    > компиляции для совсем конкретного процессора оно на этом процессоре возможно будет
    > быстрее на 1-2 процента.

    После перехода с Java на C, экономия ресурсов и прирост скорости обычно составляют не единицы процентов, а разы. Десятки и сотни раз.

     
     
  • 4.53, edwin3d (?), 15:34, 12/07/2012 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > После перехода с Java на C, экономия ресурсов и прирост скорости обычно
    > составляют не единицы процентов, а разы. Десятки и сотни раз.

    Будте так любезны, подтвердите свои утверждения фактами.
    Потому, что на сегодняшний день имеются совсем иные цифры, из которых следует, что Java вполне сопоставима с C++ по производительности в режиме компиляции -O2.

     
     
  • 5.60, Аноним (-), 15:42, 12/07/2012 [^] [^^] [^^^] [ответить]  
  • +/
    > Будте так любезны, подтвердите свои утверждения фактами.

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

    > Потому, что на сегодняшний день имеются совсем иные цифры, из которых следует,
    > что Java вполне сопоставима с C++ по производительности в режиме компиляции
    > -O2.

    Фороникс небось?

     
     
  • 6.64, edwin3d (?), 15:54, 12/07/2012 [^] [^^] [^^^] [ответить]  
  • +/
    >> Будте так любезны, подтвердите свои утверждения фактами.
    > Запросто.
    > Была у нас система биллинга. Переписали основную часть (не фронтенд, он изначально
    > на пыхе был) с жабы на си - перестало тормозить.

    "перестало тормозить" это увы, но мало информации.
    Тут надо сравнивать:
    а) код
    б) потребленное процессорное время и памяти.

    дело в том, что при переписывании ведь не просто так один в один.
    Возможно в старой реализации было что-то. что достаточно было переписать в Java.

    >  И
    > не тормозит даже после того, как перенесли с выделенного мощного сервака
    > на слабый, с кучей других задач.
    > Вот такие пироги.
    >> Потому, что на сегодняшний день имеются совсем иные цифры, из которых следует,
    >> что Java вполне сопоставима с C++ по производительности в режиме компиляции
    >> -O2.
    > Фороникс небось?

    Неа.
    Источники различные.
    начиная о себя, заканчивая тем. что в инете опубликовано ... на большинстве задач разброс не более 20 %.

     
     
  • 7.67, Аноним (-), 16:12, 12/07/2012 [^] [^^] [^^^] [ответить]  
  • +/
    Успокойтесь)) Сейчас в вопрос часто ставят node.js vs Java. А на декстопе в простеньких приложениях Java не прижилась в первую очередь из-за выпиливания ее из винды в далеких годах, необходимости установки виртуальной машины. Всякие сложные декстоп приложения типа Maple/Ramus/и т.п.-и на десктопе отлично себе живут.
     
  • 6.68, ДяДя (?), 16:23, 12/07/2012 [^] [^^] [^^^] [ответить]  
  • +/
    >Была у нас система биллинга. Переписали основную часть (не фронтенд, он изначально на пыхе был) с жабы на си - перестало тормозить.

    И какой сервер приложений был ??

    Сколько раз наблюдал просадку БД. Даже на PHP.
    Так здесь переписыванием клиента мало поможешь.
    Но, чтобы БД не тормозила, а само приложение тормозило - это первый раз слышу.

    Недавно документооборот на Java тестировали. Т.к. специфику приложения знали плохо, то под БД и сервер приложений взяли одинаковые сервера. Ксеоны с 16ядрами. Просела PostgreSQL.
    И как здесь переписывание на C поможет? Переписывание SQL-запросов может помочь, но никак не переписывание серверного приложения.


    >Фороникс небось?

    HotSpot JIT на текущий момент один из лучших компиляторов для x86 и SPARC. Это признано многими экспертами в данной области. И! Вы сами это можете проверить!
    Другое дело, что Java не на один JIT завязана.

     
  • 4.62, ДяДя (?), 15:48, 12/07/2012 [^] [^^] [^^^] [ответить]  
  • +2 +/
    > После перехода с Java на C, экономия ресурсов и прирост скорости обычно
    > составляют не единицы процентов, а разы. Десятки и сотни раз.

    Ржунемагу!!
    Про десятки и сотни жесть!

    Я понимаю, если бы вы с PHP сравнили.

     
  • 3.74, Аноним (-), 16:43, 12/07/2012 [^] [^^] [^^^] [ответить]  
  • +/
    > Ну да, ну да... Если всё то же самое написать на си,
    > то конечно можно сэкономить примерно 18 мегабайт памяти

    ...на каждый байт хранилища...

    > и после жёсткой-жёсткой компиляции для совсем конкретного процессора оно на этом процессоре возможно будет быстрее на 1-2 процента

    ...чем java на десятке таких процессоров...

     
     
  • 4.86, none_first (ok), 12:40, 13/07/2012 [^] [^^] [^^^] [ответить]  
  • +/
    примеров кода, я так понимаю, не будет ;)...
     

  • 1.12, Аноним (-), 10:36, 12/07/2012 [ответить] [﹢﹢﹢] [ · · · ]  
  • +5 +/
    судя по камментам, новость была о новой версии джавы, а не о распределённой памяти %)
     
  • 1.22, Аноним (-), 11:50, 12/07/2012 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    > Код компонентов Galaxy написан на языке Java.

    Непонятно, почему не на питоне? Все-таки, java - это вчерашний день промышленных приложений. Питон может тормозить и жрать память в разы эффективнее.

     
     
  • 2.26, Аноним (-), 12:24, 12/07/2012 [^] [^^] [^^^] [ответить]  
  • +/
    Потому что в питоне не обязательно создавать новый класс для каждого чиха. Как известно, ёмкость и понятность кода для промышленных приложений являются большим минусом.
     
     
  • 3.27, Аноним (-), 12:52, 12/07/2012 [^] [^^] [^^^] [ответить]  
  • –3 +/
    Что вам еще известно, что Дед Мороз/Б-г существует?
     
  • 3.48, Аноним (-), 15:26, 12/07/2012 [^] [^^] [^^^] [ответить]  
  • +2 +/
    > Потому что в питоне не обязательно создавать новый класс для каждого чиха.
    > Как известно, ёмкость и понятность кода для промышленных приложений являются большим
    > минусом.

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

     
  • 3.57, Crazy Alex (ok), 15:39, 12/07/2012 [^] [^^] [^^^] [ответить]  
  • +/
    Я вот не пойму одну вещь. Обычно в пользу простыней, длинных названий и т.п. приводятся аргументы что, мол, так поддерживать удобнее. Один я такое читаю с трудом? Вот есть какая-нибудь идиома-заклинание из перла, сей и тому подобного. Один раз в этом разобраться надо. Но идиом этих довольно мало, зато потом однив взглядом видишь, что происходит. А теперь берём джаву или код на плюсах (там тоже можно в джава-стиле писать) - простыня с кучей похоже названных переменных и методов. Глаз замыливается моментально, пять строк прочел - в первой уже путаешься. Как это может быть более лёгким в поддержке?
     
     
  • 4.78, Аноним (-), 18:47, 12/07/2012 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Да, ты такой один.
     
     
  • 5.95, Аноним (-), 23:07, 16/07/2012 [^] [^^] [^^^] [ответить]  
  • +/
    Ложь.
     

  • 1.34, Аноним (-), 13:39, 12/07/2012 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Как говорится, "представляет чисто академический интерес". Видимо, поэтому и открыли.
     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Спонсоры:
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2020 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру