После шести месяцев разработки представлен (http://www.mail-archive.com/user%40cassandra.apache.org...) релиз распределенной БД Apache Cassandra 0.8 (http://cassandra.apache.org/), относящейся к классу noSQL-систем и рассчитанной на создание высокомасштабируемых и надежных хранилищ огромных массивов данных, представленных в виде хэша. Изначально проект был разработан в недрах Facebook и в 2009 году передан под покровительство фонда Apache. Промышленные решения на базе Cassandra развернуты для обеспечения сервисов таких компаний, как Cisco, Cloudkick, Reddit, Digg, Rackspace и Twitter. Наиболее крупный кластер серверов, обслуживающих единую БД Cassandra, насчитывает более 400 машин.БД Cassandra написана на языке Java и объединяет в себе полностью распределенную hash-систему Dynamo, обеспечивающую практически линейную масштабируемость при увеличении объема данных. Cassandra использует модель хранения данных на базе семейства столбцов (ColumnFamily), отличающуюся от сист...
URL: http://www.mail-archive.com/user%40cassandra.apache.org...
Новость: http://www.opennet.me/opennews/art.shtml?num=30795
транзакции есть ?
Java конечно огорчает. Нет, отнюдь не производительностью и тд и тп. Так запустил ./configure && make && make install и все дела образно говоря. Я тут ещё морочиться с установкой жабы, разгребанием костылей почему же не работает конкретно тут и вот эта версия и тд и тп :-/
Вы собственно, что курите?
Он, собственно, абсолютно прав.
Java-приложение гораздо легче модифицировать, разработчикам - однозначный перехват всех исключительных ситуаций, наиболее полная и удобная поддержка ООП, отсутствие проблем переносимости кода на различные платформы (что оказывает заметный выигрыш при разработке системе, позволяя, в основном, разработчикам сосредоточиться на бизнес-логике). А высоконагруженные части разработки - могут использовать опционально разрабатываемые нативные модули.Установить Java-окружение на сервер - вовсе не проблема, не говоря о сертифицированных администраторах - домашнему пользователю тоже не такая уж и проблема. Тем более что по такому же принципу установки (установка переменной окружения на правильный каталог JRE, включение этой переменной окружения в общий путь) ставится и некоторый другой софт.
Можно вообще не возиться с переменной окружения (JAVA_HOME) - а при каждом запуске указывать полный путь до исполняемого файла. Боже, да по такому принципу - запускается почти все. Тем более JAVA так популярна на серверах, что тут, как бы - "нечего воротить нос". :)
Про ООП это вы зря. Это не преимущество. Тем более на серверах. Тем более там, где требуется низкая латентность.>А высоконагруженные части разработки - могут использовать опционально разрабатываемые нативные модули.
нативные в джава? Нативные в джава - это джава.
> Можно вообще не возиться с переменной окружения (JAVA_HOME) - а при каждом запуске >указывать полный путь до исполняемого файла. Боже, да по такому принципу - запускается >почти все.
Удобство конфигурирования... это к делу вообще не относится.
> Про ООП это вы зря.Типичное заблуждение. Во-первых есть JIT. Достаточно какой-то операции исполняться более, чем 1 раза - и для этой операции может включиться JIT, подставляя в место исполнения ранее откомпилированный код (сама виртуальная машина то - оперирует нативным кодом, в итоге, на входе принимая для обработки байт-код).
Мы тестировали (в рамках такого спора, на одних форумах) некоторые операции (взяли несколько простых тестов, сишники и джависты) - только 5% отставание Java, вышло. Да, есть разные тесты, но не будем - это большая дискуссия.
Во-вторых в приложении например из 5000 строк кода - всего 200 строк его будет в реальном приложении использовать 90% времени выполнения.
>>А высоконагруженные части разработки - могут использовать опционально разрабатываемые нативные модули.
> нативные в джава? Нативные в джава - это джава.- Вы не в курсе. Например очень популярна такая схема (используется в сервере приложения JBoss AS) - по умолчанию вы скачиваете java-приложение, которое запускаете, и все у вас работает. Но если вы скачаете с сайта разработчиков нативный модуль, просто положите этот файлик в определенный каталог и перезапустите сервер - то сервер при инициализации его запуска - обнаружит эту нативную библиотеку, и станет ее использовать вместо части своего кода (написанного на Java). Т.е. вы можете добавить эту библиотеку на свой сервер, а можете не добавлять. В первом случае вы получите выйгрыш при некоторых операциях, например ввода-вывода, или какие-то дополнительные фичи по raw sockets. Во втором случае у вас этого выйгрыша не будет, но и так будет весьма хорошо работать. Первый случай - когда вам нужно реально все разогнать по максимуму, получить от системы полную отдачу. Второй случай - скачать только Java-приложение, т.е. на мизер проще все установить (и не искать этот нативный модуль на сайте разработчиков).
Объяснил?
>> Можно вообще не возиться с переменной окружения (JAVA_HOME) - а при каждом запуске >указывать полный путь до исполняемого файла. Боже, да по такому принципу - запускается >почти все.
> Удобство конфигурирования... это к делу вообще не относится.Про это был комментарий. Какое еще дело, если мой комментарий относился к конкретному комментарию.
> несколько простых тестов, сишники и джавистывам бы фортранщиков взять, они бы вас быстро в чувство привели :)
> Объяснил?
я уже давно в теме. А вы, судя по всему, нет. Впрочем, в рамках только джава вы правы. Только.
>> несколько простых тестов, сишники и джависты
> вам бы фортранщиков взять, они бы вас быстро в чувство привели :)Своим процедурным стилем программирования, единственно возможным на Фортране?
Не хватает только нумерации строк, чтобы из Фортрана сделать Бейсик. :)
Да, да, я в курсе, что Фортран - один из основных ЯП для "научников". Сталкивался недавно, разбирал код, использовавший OpenMPI (библиотека, используемая при программировании на кластерах).
Ну дык... Там не то, что оптимизируют такты, там еще и учитывают попадания и промахи кешей (не дисковых, разумеется). И вы со своими ООПешными джава замахами можете бенчить до посинения. Можете сколько угодно рассказывать маркетинговые "саксесстори", когда нужна реактивность (для БД это как бы важно, странно правда?), джава теряет...
> Ну дык... Там не то, что оптимизируют такты, там еще и учитывают
> попадания и промахи кешей (не дисковых, разумеется).
> И вы со своими ООПешными джава замахами можете бенчить до посинения.
> Можете сколько угодно рассказывать маркетинговые "саксесстори",
> когда нужна реактивность (для БД это как бы важно,
> странно правда?), джава теряет...Для справки - виртуальные машины пишут на нативном коде (при написании которых можно использовать ВСЕ ЧТО УГОДНО, имеющееся у нативных библиотек).
Для справки - есть такая библиотека OpenMP, которая учитывает "попадания и промахи кешей (не дисковых, разумеется)" - при МНОГОПОТОЧНОЙ работе программы (на общей памяти, в данном случае, а вот MPI этот момент не учитывает).
Для справки - OpenMP очень широко применяется разработчиками Oracle.
Для справки - Oracle является владельцем и основным разработчиком виртуальной машины Java.
Для справки - СУБД Oracle является одной из самых быстродействующей БД в мире (в телекоме стоят сплошь и рядом СУБД Oracle).
Для справки - в 1995г. внутри корпорации Oracle была создана группа производительности систем (SPG), объединившая 85 аналитиков компании.
Для справки - группа SPG была создана в том числе и потому, что изменения размеров буферов в оперативной памяти для отдельных структур экземпляра СУБД Oracle - могла не давать вам никакого выигрыша в производительности.
Для справки - SPG в качестве конечного фактора производительности прежде всего принимала во внимание время отклика приложения.
Для справки - после того как Sun пошел ко дну и Oracle занялась виртуальной машиной Java - ею была выпущена коммерческая версия этой виртуальной машины, ключевой особенностью которой является время отклика приложения.
Для справки - и ДО ЭТОГО ВЫПУСКА в мире существовало и существует десятки тысяч высоконагруженных серверных JEE-приложений, включая и использование в торгах на он-лайн биржах, где время отклика системы, как вы знаете - необычайно важно.
Для справки - большинство бэкендов онлайн-казино - написано на серверной джаве.
Для справки - во фреймворке JSF серверной джавы, использующимся при создании сайтов, порталов и т.п. - за один клик пользователя по формочке сайта - происходит вызов нескольких тысяч строк кода, и это только кода, разрабатываемого разработчиком (помимо вызовов внутри самого фреймворка) - это код И обеспечивающий безопасность (например страницы администратора не должен видеть обычный пользователь), И другие механизмы бизнес-логики приложения (в соответствии, для простоты понимания, с ТЗ). Так вот - я без труда отслеживал и манипулировал этими тысячами строк кода при каждом вызове. Вы можете с такой легкостью манипулировать бизнес-логикой в программе, написанной на Фортране или на С/С++ - ? В том то и дело, что процедурный подход устанавливает верхнюю границу того кода, который вы можете оперативно поддерживать - всего в пару тысяч строк, а ООП позволяет с легкостью манипулировать десятками тысяч и сотнями тысяч строк кода. Поэтому не приводите только один показатель попадания в кэш - этот показатель критически важен только для определенных приложений (напр. 3D-шутеры), да и то профессионалами там зачастую используются ассемблерные вставки, поэтому говорить о "чисто" супер применимости "вашего" ЯП - не верно.
Для справки - упоминаемая выше библиотека OpenMP - имеет очень широкое распространение ПРИ написании многопоточных программ на _Фортране_ и С/С++.Для справки - сейчас большинство процессоров имеют по несколько ядер.
Для справки - не использовать многопоточность при работе программы на нескольких ядрах - в большинстве случаев является не верным (исключения придумать можно но они не характерны).
> В том то и дело, что процедурный
> подход устанавливает верхнюю границу того кода, который вы можете оперативно поддерживать
> - всего в пару тысяч строк, а ООП позволяет с легкостью
> манипулировать десятками тысяч и сотнями тысяч строк кода.то-то линукс на сях, а не на жабе написан. видать, глупые люди его пишут: им никто не сказал, что процедурный подход не позволит разработать и поддерживать столь сложную программу. надо в LKML написать, что линуксу капец. ну, пока не поздно ещё.
>> В том то и дело, что процедурный
>> подход устанавливает верхнюю границу того кода, который вы можете оперативно поддерживать
>> - всего в пару тысяч строк, а ООП позволяет с легкостью
>> манипулировать десятками тысяч и сотнями тысяч строк кода.
> то-то линукс на сях, а не на жабе написан. видать, глупые люди
> его пишут: им никто не сказал, что процедурный подход не позволит
> разработать и поддерживать столь сложную программу. надо в LKML написать, что
> линуксу капец. ну, пока не поздно ещё.С таким же успехом можно привести пример имеющейся ОС QNX, написанной полностью на ассемблере. Да и сам Linux написан с применением большого количества кода на ассемблере.
Я подскажу где ты ошибся - выше я упоминал про 3D-шутеры, для написания которых вынуждены использовать С++, с применением ассемблерных вставок и этот код вовсе не пару сотен строк. Но это не означает, что этот код очень легко поддерживать и модифицировать без создания многочисленных ошибок. Например вспомним игру Gothic 3, на редкость глюкавую и сопровождавшуюся многочисленными патчами (и даже не смотря на это имеющую множество поклонников).
> ОС QNX, написанной полностью на ассемблере.ORLY? BREAKING NEWS! ты просто фонтанируешь сенсациями.
> Да и сам Linux написан с применением большого количества
> кода на ассемблере.мда… знаешь, какой отличительный признак школьника? нет, не возраст: школьнику может и 50 лет быть. а отличительный признак такой: школьник безапеляционно несёт чепуху и никогда не утруждается никакими обоснованиями и доказательствами.
> 3D-шутеры
> Gothicyou make me sad panda.
> Я подскажу где ты ошибся — выше я упоминал про 3D-шутеры, для
> написания которых вынуждены использовать С++ага. например DooM, Quake, Quake 2, Quake 3. Джон просто таки с плазмаганом отбивался от наседающих толп, которые вынуждали его использовать там C++. и отбился, что характерно.
>> ОС QNX, написанной полностью на ассемблере.
> ORLY? BREAKING NEWS! ты просто фонтанируешь сенсациями.Таков твой пример. Пиши на ассемблере большие приложения и будет тебе счастье.
>> Да и сам Linux написан с применением большого количества
>> кода на ассемблере.
> мда… знаешь, какой отличительный признак школьника? нет, не возраст: школьнику может
> и 50 лет быть. а отличительный признак такой: школьник безапеляционно несёт
> чепуху и никогда не утруждается никакими обоснованиями и доказательствами.Цитата из "Linux: Азбука ядра. М.: Кудиц-Пресс, 2007."
стр. 38:
"Linux - это операционная система. Поэтому его часть тесно связана с процессором, на котором он работает. Авторы Linux продалали огромную работу по минимизации процессрно- (и архитектурно-) зависимого кода, стараясь писать как можно менее архитектурно-зависимый код. В этом разделе мы рассмотрим следующее:
- Каким образом некоторые функции реализуются на X86- и PowerPC-архитектурах.
- Как использовать макросы и встроенный ассемблерный код.
Целью этого раздела является раскрытие основ, необходим вам для того, чтобы разобраться в архитектурно-зависимом коде ядра и не заблудиться в нем. Мы оставим серьезное программирование на ассемблере для других книг. Так же мы рассмотрим некоторые тонкости применения ассемблера ..."
Авторы книги:
КЛАУДИЯ ЗАЛЬЗБЕРГ РОДРИГЕС работает в Центре Linux технологий IBM, где занимается разработкой ядра и связанных с ним утилит программирования ...
ГОРДОН ФИШЕР писал драйвера под Linux для многих низкоуровневых устройств ...
СТИВЕН СМОЛСКИ 26 лет в полупроводниковом бизнесе. Он работал на производстве, занимался тестированием, участвовал в разработке памяти, процессоров и ASICS, писал приложения и драйвера для Linux, AIX, Windows, работал со встроенными операционными системами.
Ссылка на книгу:http://www.books.ru/shop/books/490330
>> 3D-шутеры
>> Gothic
>> Я подскажу где ты ошибся — выше я упоминал про 3D-шутеры, для
>> написания которых вынуждены использовать С++
> ага. например DooM, Quake, Quake 2, Quake 3. Джон просто таки с
> плазмаганом отбивался от наседающих толп, которые вынуждали его использовать там C++.
> и отбился, что характерно.Для начала неплохо бы полистать учебники по программированию. Прежде чем писать что-то в Интернете на этот счет.
Извини, но я тебе учебников не заменю и заниматься твоим образованием не буду.
>>> ОС QNX, написанной полностью на ассемблере.
>> ORLY? BREAKING NEWS! ты просто фонтанируешь сенсациями.
> Таков твой пример. Пиши на ассемблере большие приложения и будет тебе счастье.это где я сказал, что «ОС QNX написана полностью на ассемблере»? O_O
(для наблюдателей: тут как минимум одна грубая ошибка: оппонент не различает ОС QNX и ядро QNX — и даже не указал, какое именно ядро имеет в виду; также он никогда в глаза не видел исходники ядра QNX, но считает, что осведомлён о нём достаточно)
> Цитата из «Linux: Азбука ядра. М.: Кудиц-Пресс, 2007.»
бла-бла-бла. где там про «большое количество кода на ассемблере»? ну и да — 2007. ты бы ещё про винды 3.11 вспоминал.
FYI: длина копипасты далеко не всегда кореллирует с её полезностью и отношением к теме обсуждения.
> Для начала неплохо бы полистать учебники по программированию. Прежде чем писать что-то
> в Интернете на этот счет.что характерно для школьника: когда ему нечем крыть, он с пафосом посылает оппонента читать учебники, непременно заявляя при этом, что сам учителем быть не нанимался.
у тебя по теме-то есть что сказать? про Quake, написаную на C++? и про то, что готика внезапно стала 3д-шутером (хотя это мелочь уже, конечно).
нет, я понимаю, что сказать тебе нечего, поэтому ты изворачиваешься изо всех сил, так что вопрос риторический.
вообще, ты мне изрядно надоел, да и бить младенцев скучно. лет так восемь назад я бы поразвлекался ещё, а сейчас лень. микрозадачу свою я выполнил: показал, что твои утверждения не основаны ни на чём, обосновать и доказать ты их не в состоянии, ergo — они просто цифровой шум, который можно не принимать во внимание.
благодарю за то, что ты меня не разочаровал и помог сам себя дискредитировать.
> (для наблюдателей: тут как минимум одна грубая ошибка: оппонент не различает ОС
> QNX и ядро QNX — и даже не указал, какое именно
> ядро имеет в виду; также он никогда в глаза не видел
> исходники ядра QNX, но считает, что осведомлён о нём достаточно)Так, так, так - расскажи в каких проектах ты применял QNX, если уж идти дальше по факту придирок и придумывания своей крутости.
Если бы ты смотрел исходники *nix-ов, ты бы давно обратил внимание на использование ассемблера в Linux, факт чего для тебя оказался новостью.
Ну, расскажи нам о своих проектах под QNX, жду.
> наиболее полная и удобная поддержка ООПда? там, наконец-то, реализовали прототипную модель?
ну, дальше я и не читал: понятно, что человек чушь несёт.
>> наиболее полная и удобная поддержка ООП
> да? там, наконец-то, реализовали прототипную модель?
> ну, дальше я и не читал: понятно, что человек чушь несёт.Вы имеете в виду паттерн Prototype или то убожество __prototype__, используемое в ActionScript/Flash, JavaScript, которое позволяет выйти на суперкласс подкласса?
Паттерны применяются конечно же легко, убожествам же в Java не место.
> Паттерны применяются конечно же легко, убожествам же в Java не место.typical java programmer: «всё, чего в жабе нет — убожество.»
>> Паттерны применяются конечно же легко, убожествам же в Java не место.
> typical java programmer: «всё, чего в жабе нет — убожество.»Выше было мною написано про дополнительные фичи, которые может предоставлять нативный модель "обычному" джава-приложению.
Ваши комментарии тут я смотрю чистят, шли бы поругаться на улицу - наверняка там бродит такой же чудак, ваша встреча в темном переулке предопределена. :)
>> наиболее полная и удобная поддержка ООП
> да? там, наконец-то, реализовали прототипную модель?а в чем бенефит прототипов? и стоит ли это преимущество отсутствия строгой типизации?
>>> наиболее полная и удобная поддержка ООП
>> да? там, наконец-то, реализовали прототипную модель?
> а в чем бенефит прототипов? и стоит ли это преимущество отсутствия строгой
> типизации?а это не важно. сказали, что наиболее полная и удобная — предъявите. мне вот удобно прототипами, например. и, конечно, должны быть полноценные замыкания, без них в прототипы играть неинтересно.
я, впрочем, вообще не считаю строгую типизацию необходимой. типизация — штука опциональная. вон как в Strongtalk'е. где, кстати, ООП сделано и получше, и поумней, и поудобней. но у человека жаба гойловного моска — его, наверное, iZEN укусил.
Действительно, такое ощущение, что кроме "configure && make && make install " никогда на клавиатуре ничего не набирал
Ну ты ваще слился. Я вот в одно движение жаву на серверах ставлю:
aptitude -y install sun-java6-jdk
> aptitude -y install sun-java6-jdkОк, допустим, есть такой (в дебе есть). Этого хватит для касандры? Вопрос не праздный - действительно нужен вменяемый продукт с заявленными характеристиками на большие массивы данных. На сколько это все будет жручее это уже тесты покажут.
До чего "ЛОР" школа ленива, мне вот нафиг не надо, но решил проверить, я скачал, запустил сервер, запустил идущий с ним cli, все это заняло минут 3-5, и без чтения какой либо доки, паралельно еще футбол смотрю
да, достаточно jre
> Я тут ещё морочиться с установкой жабыЕсли приходится морочиться с такой командой как apt-get, то вам лучше не использовать java. Совсем ;)