Вопрос о Cassandra
Почему, черт возьми, на земле кто-нибудь напишет базу данных ENGINE на Java?
Я могу понять, почему вы хотите иметь интерфейс Java, но движок...
У меня создалось впечатление, что нет ничего быстрее, чем C/С++, и что движок базы данных не должен быть медленнее максимальной скорости и, конечно же, не использовать сборку мусора...
Может ли кто-нибудь объяснить мне, какой возможный смысл делает/почему Cassandra может быть быстрее обычного SQL, который работает на C/С++-коде?
<Б > Изменить:
Извините за "Почему, черт возьми, на земле", но это действительно не имело никакого смысла для меня.
Я забыл считать, что база данных, в отличие от обычных пользовательских программ для сада, не должна быть запущена только один раз, а затем запускается в течение очень долгого времени и, вероятно, также как единственная программа на сервере, что, по-видимому, важный разница рабочих характеристик.
Я больше сравнивал/ссылался на "disfunctional" (мягко говоря) на Java-программу Java, которую я использовал на момент написания (или, скорее, хотел бы использовать).
На самом деле, в отличие от использования Java для налоговых программ, использование Java для написания выделенной серверной программы имеет смысл.
Почему Кассандра написана на Java?
Ответ 1
Я вижу несколько причин:
- Безопасность: проще писать безопасное программное обеспечение в Java, чем в С++ (помните, что переполнение буфера?)
- Производительность: это не так уж плохо. Это определенно хуже при запуске, но как только код запущен и работает, это не большая вещь. На самом деле, вы должны помнить важный момент: Java-код постоянно оптимизируется виртуальной машиной, поэтому в некоторых случаях он быстрее, чем С++
Ответ 2
Что значит С++? Ручная кодировка будет быстрее, если у вас есть несколько десятилетий.
Ответ 3
Какого черта на земле кто-нибудь напишет базу данных ДВИГАТЕЛЬ в JAVA?
Независимость от платформы - довольно большой фактор для серверов, потому что у вас намного больше гетерогенности оборудования и ОС, чем у настольных ПК. Другой - безопасность. Не беспокоясь о переполнении буфера означает, что большинство наихудших видов дыр в безопасности просто невозможно.
У меня сложилось впечатление, что там ничего быстрее, чем C/С++, и что механизм базы данных не должен быть любой более медленной, чем максимальная скорость, и конечно, не использовать мусор Коллекция...
Ваше впечатление неверно. C/С++ не обязательно быстрее, чем Java, и современные сборщики мусора имеют большую роль в этом, потому что они позволяют создавать объекты невероятно быстро.
Ответ 4
Не забывайте, что виртуальные машины Java используют механизм "точно в срок" (JIT), который выполняет "на лету" оптимизацию, чтобы сделать Java сопоставимым с С++ с точки зрения скорости. Принимая во внимание, что Java - довольно продуктивный язык (несмотря на его скептики) и переносимый вместе с возможностью оптимизации JIT, означает, что Java не является необоснованным выбором для чего-то подобного.
Ответ 5
Снижение производительности для современных Java-приложений не так уж и большое, а программирование в Java менее подвержено ошибкам, чем в c.