Question

I'm looking into doing some development for the Azure platform. I don't need the full Relational stuff that you get from SQL Azure and I would be quite interested to use Table Storage instead.

Now the one Relational thing I do need to be able to do is represent one-to-many and many-to-many relationships between tables in my storage.

I'm quite happy with how to use intermediate tables with partition and row keys to represent this, in much the way that regular databases represent them internally.

What I'm wondering is whether it is worth creating a worker service just to intermediate between the storage and anything that accesses it, in order to create a front end that could supervise the limited degree of referential integrity I'm looking for.

I could do this as part of the client easily enough, but I'm wondering whether having the service hosted in the cloud would mean lower network latency given that any query that goes across these references would be likely to need to talk to three different tables and presumably these requests should be a lot faster between a service and storage posted in the cloud, so there would only be one request from outside the cloud rather than several.

If this is a useful strategy, is there an existing tool to do it? If not what would work better or is there just no perceptible benefit? Should I just suck it down and go for SQL For Azure or some kind of heterogenous solution where I store my big data in Table Storage and my lookups and table references in SQL?

Was it helpful?

Solution

A hosted service will not only have faster access to table storage; the bandwidth between your service and table storage won't be billed (as long as it's in the same data center).

Abstracting table storage into a service is a good idea, and can be done with either a worker role or a WCF Service Web Role. If you were watching the announcements at this year's PDC, you might have seen that the upcoming web roles will have full IIS and be able to host multiple web apps, so you could potentially host your website and your service in the same role (more cost-effective than hosting in separate roles).

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top