Skip to main content

Blog Archive for boneill42 during November 2011

Last night, I was finishing up the map/reduce capabilities within Virgil. We hope to allow people to post ruby scripts that will then get executed over a column family in Cassandra using map/reduce. To do that, we needed concurrent use of a ScriptEngine that could evaluate the ruby script. In the below code snippets, script is a String that contains the contents of a ruby file with a method...
Since Virgil was originally developed as an embedded REST layer for the Cassandra Server, it ran as a daemon inside the server and performed operations directly against the CassandraServer classes. Running in a single JVM had some performance gains over a separate server that communicated over Thrift (either directly or via Hector) since operations didn't have to take a second hop across the...
  Sure, its read-only. Sure, its focused on Strings.   But it was written in only 100 lines of code using Virgil's REST layer for Cassandra and includes all of ExtJS's goodness. (if you are into that kind of thing)   You can see the entire the GUI is contained in a single javascript class: http://code.google.com/a/apache-extras.org/p/virgil/source/browse/trunk/src/main/webapp/main....
 We added PATCH semantics for Virgil.   This was fairly straight forward, except we need to add support for a @PATCH annotation and PatchMethod for HttpClient.   To do this, we created a PATCH annotation. Take a look at PATCH.java. The contents of which are shown below: [prettifystyle="color: rgb(0, 0, 0); line-height: normal; text-align: left; "]@Target({...
 Virgil now supports PATCH semantics for row updates in Cassandra via REST. In REST, when a resource is modified rather than fully replaced by an HTTP operation, the IETF is proposing a new HTTP method, PATCH. <a rel="nofollow" style="color: rgb(0, 0, 204); " href="http://tools.ietf.org/html/rfc5789">http://tools.ietf.org/html/rfc5789</a>...