MarkLogic Server is a multi-model database that has both NoSQL and trusted enterprise data management capabilities. The vendor states it is the most secure multi-model database, and it’s deployable in any environment. They state it is an ideal database to power a data hub.
$0.01
per MCU/per hour + 0.10 per GB/per month
Riak
Score 10.0 out of 10
N/A
Riak is a NoSQL database from Basho Technologies in Bellevue, Washington.
If you are storing META data then MarkLogic is super useful as it retrieves everything so fast, while storing the whole data shows performance issues some times. If you have legacy systems then migrating from it would really require sweat and blood, on the other hand if you are in systems like Node.js you can simply integrate two systems easily. If you don't know how in the end your your data schema will look like then it's better to make a prototype using MarkLogic.
Highly available: If nodes go offline for any reason, the system still operates.
Highly scalable: There is a minimum of 5 nodes, which can handle a lot by themselves. When scaling is required, it can be done easily, with minimal to no downtime on large scales.
Very fast searching: Riak has SOLR indexing built-into the core product, which makes querying for data very fast.
MarkLogic still has a long way to go in fostering the developer community. Many developers are gravitating to the simple integrations and do not delve into the deeper capabilities. They have made tremendous strides in recent months and I am sure this will improve over time.
Many of the best features are left on the floor by enterprises who end up implementing MarkLogic as a data store. MarkLogic needs to help customers find ways to better leverage their investment and be more creative in how they use the product.
Licensing costs become a major hurdle for adoption. The pricing model has improved for basic implementations, but the costs seem very prohibitive for some verticals and for some of the most advanced features.
Deletes!!! We've seen on numerous occasions where Riak has "resurrected" deleted data. We've worked with Basho numerous times and tried multiple changes to the way we interact with Riak to prevent the problem but it still remains. The deletes seem to reappear weeks, even months, after the delete was issued. We've had to work around this issue by providing a "deleted" flag for all data objects stored in Riak. Thus, we do no delete but simply flip the flag. Excess baggage we would really like to not have to worry about.
Search. Currently there's no way to tell what data you have in Riak without already knowing a particular bucket/key. There is a way to list the keys for a given bucket but due to performance implications, this is not a viable method to lookup data. Especially when you have a large amount of keys in the bucket.
MarkLogic is expensive but solid. While we use open source for almost everything else, the backend database is too critically important. At this point, re-tooling for a different back end would take too much time to be a viable option.
Right now, I'm on a project where we need databases that can run on embedded systems. Riak isn't necessarily the best fit for that scenario. But when we need a clustered database, that's where we'd start considering Riak.
Very little about it can be done better or with greater ease. Even things that seem difficult aren't really that bad. There's multiple ways to accomplish any admin task. MarkLogic requires a fraction of administrative effort that you see with enterprise RDBMS like Oracle. MarkLogic is continually improving the tools to simplify cluster configuration and maintenance.
There's always room for improvement. Some problems get solved faster than others, of course. MarkLogic's direct support is very responsive and professional. If they can't help immediately, they always have good feedback and are eager to receive information and details to work to replicate the problem. They are quick to escalate major support issues and production show-stopping problems. In addition to MarkLogic's direct support, there are several employees who are very active among the community and many questions and common issues get quick attention from helpful responses to email and StackOverflow questions.
Despite Basho going bankrupt and the project becoming fully open-source, community support is reasonably good, albeit a little slow at times. Paid enterprise-grade support is also available from former Basho engineers but the same company also contributes to the community support for free for basic questions or specific knowledge areas.
We had Fast in place when Microsoft had bought it up and was going to change / deprecate it. One of the biggest advantages of MarkLogic for search actually had to do with the rest of the content pipeline - it allowed us to have it all in one technology. On the NoSQL side, we looked at MongoDB a couple years back. At that time, MarkLogic came in stronger on indexing, transaction reliability, and DR options. For us, that was worth using a commercial product.
Because of the RESTful HTTP interface, the consistency model, and because of the catalog-driven data model, Riak was an easy win over Redis and Memcached.
MarkLogic reduced the amount of time that the DevOps team needed to dedicate to database updates, as the engineering team was mostly able to easily design and maintain database upgrades without requiring specialists such as database architects on the DevOps side. This capability flowed from the product's speed and the versatility of its XQuery language and libraries.
MarkLogic required significant education and buy-in time for the engineering team.
Riak has been a key part of our company's build process for our client's search backend. It is valuable for is in that it provides a reliable way to view the current search index.