Linqpad Azure Storage Driver

Background

At work we’re invested heavily in Microsoft Azure. We have stayed very true to the entire Azure stack and as a result we’re using their table storage to store logs.

The big idea of course is that whenever something happens in our code, we just write it to a table in Azure.

Problem

I’m sure after a year or so I might like Azure’s table storage, but for now I hate it. Even as I’m writing this, I can’t believe there are pretty much _no_ tools to query or browse the contents of a given table.

There is a project called Azure Storage Explorer, but it stinks. It’s incredibly slow and isn’t the most intuitive UI.

There is also a Linqpad driver, but the functionality is minimal.

For me, the root problem is that Azure table storage – when queried – will only return one page of data at a time. Each page is 1,000 records. From my experience you can’t even be guaranteed that the first 1,000 you get is the most recent 1,000.

All I want to do is see all the data stored!

Solution

The guy that wrote the Linqpad Azure storage driver put it up on Github, so in true open source spirit, I forked it!

In a little less than an hour I had modified the driver, tested it in Linqpad and updated the code on Github.

I’m so, so, so excited now that I can get all log records in Linqpad.

https://github.com/ryan1234/AzureStorageDriver

Linqpad Azure Storage Driver

Quick CouchDB Javascript engine replacement test (couchjs)

Somewhere online I had read about a new project from a guy at IrisCouch to replace the built in Javascript engine that comes with CouchDB.

You can see his project on GitHub here: https://github.com/iriscouch/couchjs

The instructions for replacing the Javascript engine of CouchDB are pretty simple. I spent most of my time trying to fight to install the right version of node.js and npm on my local Ubuntu VM.

Unfortunately after switching to the new couchjs engine I didn’t notice any performance gains. I’m not exactly sure what the motivation is for writing a new Javascript engine for CouchDB if not for performance. Maybe since I’m running BigCouch the advantages are negated? The GitHub site says the new couchjs Javascript engine is using V8. Do you remember the first time you ran a Javascript heavy feature in Chrome? It was much faster, right? I was very excited to see a performance gain of 10-20% (much like Chrome’s performance gains), but instead saw no visible, or measured, gains.

Bummer.

Something to keep an eye on though in case I need to squeeze every last drop of performance out of CouchDB.

Quick CouchDB Javascript engine replacement test (couchjs)