Подтвердить что ты не робот

Почему Кассандра написана на Java?

Вопрос о Cassandra



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


У меня создалось впечатление, что нет ничего быстрее, чем C/С++, и что движок базы данных не должен быть медленнее максимальной скорости и, конечно же, не использовать сборку мусора...



Может ли кто-нибудь объяснить мне, какой возможный смысл делает/почему Cassandra может быть быстрее обычного SQL, который работает на C/С++-коде?



<Б > Изменить:
Извините за "Почему, черт возьми, на земле", но это действительно не имело никакого смысла для меня.

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

Я больше сравнивал/ссылался на "disfunctional" (мягко говоря) на Java-программу Java, которую я использовал на момент написания (или, скорее, хотел бы использовать).

На самом деле, в отличие от использования Java для налоговых программ, использование Java для написания выделенной серверной программы имеет смысл.

4b9b3361

Ответ 1

Я вижу несколько причин:

  • Безопасность: проще писать безопасное программное обеспечение в Java, чем в С++ (помните, что переполнение буфера?)
  • Производительность: это не так уж плохо. Это определенно хуже при запуске, но как только код запущен и работает, это не большая вещь. На самом деле, вы должны помнить важный момент: Java-код постоянно оптимизируется виртуальной машиной, поэтому в некоторых случаях он быстрее, чем С++

Ответ 2

Что значит С++? Ручная кодировка будет быстрее, если у вас есть несколько десятилетий.

Ответ 3

Какого черта на земле кто-нибудь напишет базу данных ДВИГАТЕЛЬ в JAVA?

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

У меня сложилось впечатление, что там ничего быстрее, чем C/С++, и что механизм базы данных не должен быть любой более медленной, чем максимальная скорость, и конечно, не использовать мусор Коллекция...

Ваше впечатление неверно. C/С++ не обязательно быстрее, чем Java, и современные сборщики мусора имеют большую роль в этом, потому что они позволяют создавать объекты невероятно быстро.

Ответ 4

Не забывайте, что виртуальные машины Java используют механизм "точно в срок" (JIT), который выполняет "на лету" оптимизацию, чтобы сделать Java сопоставимым с С++ с точки зрения скорости. Принимая во внимание, что Java - довольно продуктивный язык (несмотря на его скептики) и переносимый вместе с возможностью оптимизации JIT, означает, что Java не является необоснованным выбором для чего-то подобного.

Ответ 5

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