I was recently asked how to calculate the position of a node in a linked list and realized that as the list increases in size, this is one of the occasions when we should write an unmanaged extension, rather than using Cypher.
In this article, we will see how we can use Cassandra as a resilient distributed dataset (RDD) source for Spark, in order to perform RDD operations.
In this post, I want to zero in on elections and describe how they currently work in detail. Kristina Chodorow has a really good explanation on elections here that really helped me while we were developing TokuMX. My explanation will focus on the threading model.
If you're looking for alternative high-performance NoSQL solutions, you might be interested in this new Redis-esque entry based on LevelDB and written in Go: LedisDB.
While preparing my talk on building Neo4j backed applications with Clojure, I realized that some of the queries I’d written were incredibly complicated and went against anything I’d learnt about separating different concerns.
Ever since Meteor 0.7.0 first introduced oplog tailing, we’ve had a lot of users asking us about using the MongoDB oplog with their Meteor applications. As a result, we thought a step-by-step tutorial would help folks get started.
If you missed anything on DZone this week, now's your chance to catch up! This week's best include a Spring MVC 3 view controller example, a look at the new mobile database, Realm, the Java origins of AngularJS, 5 quick points about threads in Java EE, and more.
Over the next few blog posts, I will go over Ark in layman’s terms. In this first post, I only want to set the scene, and describe what the various important replication components related to elections and failover are. Those familiar with MongoDB may already know this.
For no particular reason at all, Redis Labs' Itamar Haber took a D3.js swing at the bulk of Redis' 160-ish commands, creating an interactive visualization of the lot of them - in Redis colors, of course. The end result is useful, but more importantly, it looks pretty cool.
I was recently asked how to process an ‘array’ of values inside a column in a CSV file using Neo4j’s LOAD CSV tool and although I initially thought this wouldn’t be possible as every cell is treated as a String, Michael showed me a way of working around this which I thought was pretty neat.
Indexes in Couchbase are a flexible means of performing back end processing. When utilizing indexes it's possible to create decision tree type aggregations and selectivity functionality, such as those found in an inventory control system.
Most of the time, our blog posts explain what’s great about the MongoDB improvements we’ve already shipped in TokuMX. Sometimes, though, it’s fun to talk about what’s coming soon, especially when user feedback would really help get the feature right.
A while ago, I showed you a way to scale Neo4j writes using RabbitMQ. Which was kinda cool, but some of you asked me for a different solution that didn’t involve adding yet another software component to the stack. Turns out we can do this in just Neo4j using a little help from the Guava library.
Make sure you didn't miss anything with this list of the Best of the Week in the NoSQL Zone. This week's best include Couchbase's reasoning for choosing RxJava for the Java SDK, Redis use patterns for the SQL practitioner, group by and sorting in Neo4j's Cypher and Clojure, and more.
I have an interesting situation that I am not sure how to resolve. We need to record the last request time for a RavenDB database. Now, this last request time is mostly used to show the user, and to decide when a database is idle, and can be shut down.
If you've been following along, a developer preview version of the library was released last month. It contained a whole bunch of improvements. Now we've made some more stability improvements to the library and fixed some minor issues along the way.
If you missed anything on DZone this week, now's your chance to catch up! This week's best include reasons not to switch to Java 8 (yet), Raspberry Pi's new release, the Dockerized future, the downsides of Google Play Services 5.0, the good, bad, and ugly of JSON, and more.
Some time ago I wrote how to implement a reactive message queue with Akka Streams. The queue supports streaming send and receive operations with back-pressure, but has one downside: all messages are stored in-memory, and hence in case of a restart are lost. But this can be solved.
Yesterday I released version 0.3.2 of Motor, the asynchronous MongoDB driver for Python and Tornado. This release is compatible with MongoDB 2.2, 2.4, and 2.6. It requires PyMongo 2.7.1.
This blog post explains our reasoning and motivation behind choosing RxJava as one of the integral components in our new Java SDK.
With the release of Neo4j 2.1 we can now make use of Ronja – the experimental Cypher optimiser – which performs much better for certain types of queries. I thought I’d give it a try.
This talk from Itamar Haber, Chief Developers Advocate at Redis Labs, took place at DevconTLV and provides an introduction to Redis use patterns, particularly compared to a relational perspective.
I’ve been slowly (oh so sloooowwwwly) working on MLJS since my last release in April. Going to try to do smaller, more frequent releases in the future. Done some cool stuff for demos and my other pre-sales colleagues in MarkLogic – all based on real world customer requirements.
On behalf of the whole SDK team I'm glad to announce the second developer preview of the Java/JVM SDK release train nicknamed Armstrong. It currently contains both the JVM core package "core-io" 0.2 as well as the Java SDK 2.0 preview 2.
One of the points that I emphasised during my talk on building Neo4j backed applications using Clojure last week is understanding when to use Cypher to solve a problem and when to use the programming language. A good example of this is in the meetup application I’ve been working on.