Sooner or later I will need to run multiple SignalR hosts. I know what a MessageBus is and i know that there is a MessageBus for SQL Server and Redis.
Implementing one for RavenDB looks doable.
The question is: Since the application already uses RavenDB for storing data, does it make sense to use RavenDB or should i use Redis for this since Redis is soo much faster than RavenDB? (SQL server is not a choice for the current project).
I finally created one myself.
https://github.com/esskar/SignalR.RavenDB
Related
I just found out about Redis and i find the concept of key-value databases interesting.
I want to start using Redis but i don't quite understand how i would structure my project.
When i use mysql, its more like i have a backend written with Java/Python, clients make request to my web application and my Java/Python code gets information from the database and sends it to the clients or it also writes information from clients into the database.
I would like to know how Redis is structured so i can start building applications with it. I would also appreciate any sample projects/templates (Especially server side)
Thanks
I want to start using Redis but i don't quite understand how i would
structure my project.
You should first start with defining the functionality of your project in order to figure out the requirements for the database structure.
When i use mysql, its more like i have a backend written with
Java/Python, clients make request to my web application and my
Java/Python code gets information from the database and sends it to
the clients or it also writes information from clients into the
database.
Databases (especially redis which has very trivial authentication system) shouldn't be exposed directly to clients, so it's the backend part which is responsible for dealing with data - in your case Java or Python. I think this makes it identical or similar to what you are used to with MySQL.
I would like to know how Redis is structured so i can start building
applications with it.
I would recommend to first read fifteen minute introduction to redis data types and some general overview. Note however that redis doesn't support querying language like SQL which you might be used from relational database systems that could limit it's usefulness depending on your project needs.
I'm wondering if it's possible to throw memcached in front of the subscription database. I know NServiceBus is using NHibernate, which supports memcached.
We're running into some flaky issues with our subscription database, and since subscriptions rarely change, they would be an excellent candidate to be stored in memcached.
If NHibernate supports it, it'll work. You may want to consider have some redundancy built in and/or back it with the database.
I am on Rails 3 with a local Postgres database. What we want to do is replicate the entire database onto a second server in real time. We are thinking of using Octopus.
I'm confused about what model I'm looking for and how the master-slave model applies.
Postgres 9.1 and later comes with streaming replication built in (for master-slave configurations). Check out http://www.postgresql.org/docs/9.2/static/warm-standby.html#STREAMING-REPLICATION for more information on configuration and setup.
There are other third-party solutions for configuration, but I'd start there and see if that meets your needs.
I want to use rabbitMQ to store new transactions(records) that are happening in the local database into the remote similar database.
Any suggestions, ideas on this?
Can you share the reason of wanting to use RabbitMQ as the store and forward mechanism to the remote database. I believe most databases already have mechanisms to replicate/backup to a remote database installation. These are tuned to the database and tend to work very reliably. RabbitMQ will not help you shard database operations across multiple remove database instances either.
Why RabbitMQ?
Im interested to find out what techniques developers are using to connect to a Windows Azure instance running in the cloud?
From what i understand it is very similar to SQL Server with two of the key differences being Multiple Active Recordsets are not supported and idle/long running connections are automatically terminated by azure. For this microsoft suggest incorporating retry logic in your application to detect a closed connection and then attempt to complete the interrupted action. Does any one have example code that they are currently using on this?
To build out the data layer i was looking at various ORMs. Since im going to be accessing azure from windows azure (ie seperate boxes) to me it would seem key that any ORM mapper would need to support asynchronous methods so as not to block any windows azure instances.
Any suggestions as to which ORM mapper to use, or comments on what you are currently using
I have successfully used NHibernate with Azure and we are in the process of building a commercial app on top of NHibernate. The only problem that I had was with the connection pools when running locally and connecting to SQL Azure in the cloud - which was fixed when turning connection pooling off.
You may find similar problems with other ORM's... SQL Azure is less patient (for obvious reasons) than most people are used to. Connections timeout quicker, recycle sooner and so on.
Test first!
Here's one specifically designed for Azure:
"Telerik recently announced the
availability of Open Access, the first
ORM that works seamlessly with SQL
Azure relational databases in the
Windows Azure cloud."
And a few commenters at the Azure User Group recommend LLBLGen and Entity Framework.
I've been using Entity Framework - runs without any problems, just a different connection string.
What you do have to think about is your connection strategy, and how efficient your queries are. I've got method that's easy to write in EF - I've got a new record that could be duplicated, so I check if it's there, and if not, add it.
EF makes it really easy to do this, as if you're just accessing a local collection. BUT ... if you're paying for your dB access because it's in Azure and not on your local network, hmm, maybe there's a better (aka cheaper) way of doing that
According to Ayende, NHibernate "just works" with SQL Azure.
We have been using NHibernate without any customization on Azure (indeed, it just works), you can check Lokad.Translate as an open source example of such use.