Кассандра и asp.net (C #) - PullRequest
       34

Кассандра и asp.net (C #)

5 голосов
/ 29 марта 2010

Мне интересно создать портал по услугам cassandra, поскольку я столкнулся с некоторыми проблемами производительности и масштабирования, начиная с 1 миллиона записей. Определенно, это можно решить, но меня интересуют другие варианты.

Мои основные проблемы - это стоимость обновления всех необходимых индексов, чтобы сделать чтение быстрым.

Во-первых, cassandra - хороший способ для программистов asp.net? Я имею в виду, может быть, есть какие-то другие проекты, на которые стоит взглянуть

И, во-вторых, можете ли вы предоставить какие-либо примеры документации о том, как начать программирование на Cassandra из C #?

Ответы [ 6 ]

11 голосов
/ 29 марта 2010

поскольку я столкнулся с проблемами производительности и масштабирования, начиная с 1 миллиона записей.

Возможно, ваш дизайн не был так хорош, NoSQL не волшебная палочка для плохого дизайна. У меня есть несколько миллиардов таблиц строк, и 95% ответов меньше секунды. Кроме того, что вы подразумеваете под обновлением индексов, вы имеете в виду обновление статистики или перестроение индексов?

3 голосов
/ 06 декабря 2010

Если вы используете Cassandra для своего приложения .NET, взгляните на Aquiles . Я разработал его на основе потребностей моей компании. Если вы считаете это полезным или нуждаетесь в помощи, дайте мне знать.

3 голосов
/ 29 марта 2010

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

Вы знаете, миллионная отметка для современных баз данных - это то, где это не что-то «совершенно смехотворно маленькое», где вы можете игнорировать, фактически зная, что делаете. Ниже миллиона "крошечный". У меня есть таблица строк на 800 миллионов, и я получаю ОЧЕНЬ много SQL - без проблем.

Во-первых, Кассандра - хороший способ программисты asp.net?

Я бы больше предложил базовую книгу по SQL, читая документацию и ВОЗМОЖНО выбрасывая некоторые аппаратные средства для решения проблемы. Как в случае: абсолютно плохое оборудование убьет все системы управления данными.

2 голосов
/ 31 августа 2010

Вместо Кассандры вы можете взглянуть на: ravendb . Предположительно, это хранилище документов, созданное и созданное для .Net. Он имеет интеграцию с Linq и (опять же, предположительно) очень быстрый.

Как и в случае любой новой технологии, прочитайте, поможет ли она вам в вашем конкретном случае, и проверьте, является ли она проверенной технологией (есть ли у них основные клиенты, использующие ее).

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

Не в последнюю очередь, если добавление некоторых процессоров на ваш компьютер SQL может решить проблемы, это, как правило, гораздо более дешевое решение.

2 голосов
/ 31 августа 2010

Вы не можете говорить о документации Кассандры. В Интернете есть множество частичных учебных пособий.
Возможно, вы захотите настроить Linux на виртуальной машине, потому что процесс сборки Windows довольно сложен, если не сказать больше.
(http://www.virtualbox.org, http://www.ubuntu.com)

Вот как это сделать:
http://www.ridgway.co.za/archive/2009/11/06/net-developers-guide-to-getting-started-with-cassandra.aspx
Обратите внимание, что URL-адрес cassandra SVN и пример кода изменились с момента написания этого руководства.

Вот еще один клиент C #:
http://github.com/mattvv/hectorsharp

А вот пример кода:
http://www.copypastecode.com/26752/

Обратите внимание, что вам необходимо загрузить последнюю версию Java Development Kit (JDK) из Sun для Linux. Этого нет в репозиториях Ubuntu 10.04. Затем вам нужно набрать

export JAVA_HOME="/path/to/jdk"

для того, чтобы Кассандра могла найти вашу установку Java.


Вы также можете взглянуть на:
http://en.wikipedia.org/wiki/NoSQL

Особенно интересен раздел таксономии.
Убедитесь, что Cassandra - это правильный тип решения NoSQL для вашей проблемы, например. используйте Neo4J, если ваша проблема на самом деле является проблемой графа.

Также вам необходимо убедиться, что ваше NoSQL-решение совместимо с ACID.
Например, Neo4J является единственным ACID-совместимым графическим движком NoSQL.

Редактировать: вот краткое руководство для Windows без компиляции:
http://coderjournal.com/2010/03/cassandra-jump-start-for-the-windows-developer/
http://www.ronaldwidha.net/2010/06/23/running-cassandra-on-windows-first-attempt/
http://www.yafla.com/dforbes/Getting_Started_with_Apache_Cassandra_a_NoSQL_frontrunner_on_Windows/

1 голос
/ 28 августа 2010

Если вы хотите сделать что-то новое, то вместо перехода на noSQL вы можете попробовать использовать кластер базы данных.

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

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