2010-03-29 6 views
5

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

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

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

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

+1

http://teddziuba.com/2010/03/i-cant-wait-for-nosql-to-die.html. –

+0

http://codebetter.com/blogs/karlseguin/archive/2010/03/29/nosql-for-the-rest-of-us.aspx –

+2

Я бы рекомендовал не использовать Cassandra в производственной среде. – Pierreten

ответ

11

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

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

+0

Я рад, что он работает для вас. Определенно, это самый возможный (и самый дешевый способ) для меня. Тем не менее, он впервые выпустил месяц назад, нашел статью о том, как использовать статистику индекса, применил ее к нашей базе данных, и все было в порядке ... в течение 2 недель. Итак, я хочу осмотреться и узнать, какие параметры – st78

+0

у вас есть автоматическая статистика обновления включена или у вас есть работа, которая будет обновлять статистику? – SQLMenace

3

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

Знаете ли вы, что миллионная отметка для современных баз данных - это не что-то «совершенно смехотворно мало», где вы можете игнорировать, фактически зная, что вы делаете. Ниже миллиона «крошечных». У меня есть таблица из 800 миллионов строк, и я получаю LOT из sql с ней - никаких проблем.

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

Я бы предложил базовую книгу о SQL, прочитав документацию и ПОМОЩИ, бросив некоторое оборудование на эту проблему. Как и в случае: наличие абсолютно плохих аппаратных средств убьет все системы управления данными.

1

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

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

+0

Спасибо, я думаю, чтобы убедить клиента попробовать Microsoft Azure - он выглядит просто, чтобы начать использовать его. – st78

+0

Я полагаю, вы хотели сказать «попробуйте очертить» вашу базу данных. Кластеризация не поможет вашей проблеме с производительностью. http://en.wikipedia.org/wiki/Shard_(database_architecture) – BozoJoe

2

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

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

Вот еще один 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" 

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


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

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

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

Edit: Вот ПрыжокВначало руководство для 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/

2

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

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

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

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

3

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

 Смежные вопросы

  • Нет связанных вопросов^_^