Зачем начинать sturtup: сложные системы (требующие больших ресурсов) или простые и переписать позже для масштабируемости или собственного «среднего» решения? - PullRequest
1 голос
/ 31 июля 2010

Ну, я искал хорошее решение для БД для моей идеи запуска. Я не буду создавать еще одну тему «Какая БД самая лучшая ?!», но я спрошу еще одну вещь.

Итак, я не нашел ни одной хорошей масштабируемой по горизонтали БД, написанной на C ++. Почему С ++? Конечно, есть Cassandra, если вам нужно хранилище документов, и Voldemort, если вам нужно хранилище значений ключей. Но оба они написаны на Java, поэтому небольшому проекту придется платить больше за большие объемы оперативной памяти за не подкачку JWM. Это не достаточно хорошо.

С другой стороны - мы можем написать собственную собственную DHT-систему (без передачи NAT - если вы думаете, что ваш проект будет размещен на многих серверах по всему миру - эта тема не об этом). Я полагаю, что это будет немного медленнее, чем у Кассандры, но я избавлюсь от Java и получу от этого прибыль. Итак, я буду использовать smt как MongoDB или Tokyo Cabinet. (Тест скорости, похоже, дает почти те же результаты, поэтому я нашел самые быстрые хранилища, которые я нашел).

Итак, вопросы:

  1. Небольшой проект не может платить за большой объем оперативной памяти, но нуждается в эффективном решении и должен иметь возможность стать большим проектом, который нуждается в горизонтальном масштабировании. Мы должны:

    a) создайте немасштабируемый материал, и если он будет работать отлично, вам понадобится масштабируемый сервер, перепишите его, используя что-то вроде Cassandra.

    б) писать с использованием сложных огромных инструментов (на Java) и иметь низкую производительность.

    c) написать что-то самостоятельно, используя немасштабируемую базу данных и собственную DTH, и улучшать ее при разработке.

  2. Ява действительно RAM-монстр?

  3. Что лучше для проекта с высокой загрузкой (если Cassandra не имеет горизонтальной масштабируемости): MongoDB или Cassandra?

  4. Есть ли у Кассандры потребность в уровне кэша? (как при использовании Redis) Или у него есть свои алгоритмы?

Заранее спасибо.

Добавить:

Что я действительно прошу? Cassandra, кажется, немного медленнее и, как я уже сказал, будет «Ram-monster», который хорош для домашних приложений, но не очень хорош для серверов, но может быть масштабирован по горизонтали. И это то, что я действительно прошу: собственный DHT + mongodb или cassandra?

Ответы [ 2 ]

0 голосов
/ 31 июля 2010

Разумные варианты: «использовать sqlite или postgresql или что-то, что я уже знаю, чтобы ускорить процесс» или «использовать cassandra сейчас, чтобы мне не пришлось платить за переключение позже»Примечательно, что «Напиши мой собственный DHT» там нет.:)

Я знаю по крайней мере один сайт, который начал работать с Cassandra на виртуальной машине 128 МБ.Конечно, объем трафика, который вы сможете обрабатывать, довольно ограничен - но он сработал для них.

Cassandra имеет сложное встроенное кэширование, и многие сайты смогли заменить обаmysql + memcached только с Кассандрой.

0 голосов
/ 31 июля 2010

Если это такая большая проблема, то, вероятно, вы захотите абстрагировать базу данных от вашего реального приложения. Так что, если вы хотите начать с чего-то скучного и простого в настройке, как MySQL, вы можете это сделать. И если вы начнете перерастать это, вы можете легко поменять другой слой хранения.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...