Apache Drill is a schema-free query engine for use with NoSQL or Hadoop data or file storage systems and databases.
N/A
Apache Geode
Score 7.0 out of 10
N/A
Apache Geode is a distributed in-memory database designed to support low latency, high concurrency solutions, available free and open source since 2002. With it, users can build high-speed, data-intensive applications that elastically meet performance requirements. Apache Geode blends techniques for data replication, partitioning and distributed processing.
N/A
Redis Software
Score 9.1 out of 10
N/A
Redis is an open source in-memory data structure server and NoSQL database.
compared to presto, has more support than prestodb. Impala has limitations to what drill can support apache phoenix only supports for hbase. no support for cassandra.
if you're doing joins from hBASE, hdfs, cassandra and redis, then this works. Using it as a be all end all does not suit it. This is not your straight forward magic software that works for all scenarios. One needs to determine the use case to see if Apache Drill fits the needs. 3/4 of the time, usually it does.
The biggest advantage of using Apache Geode is DB like consistency. So for applications whose data needs to be in-memory, accessible at low latencies and most importantly writes have to be consistent, should use Apache Geode. For our application quite some amount of data is static which we store in MySQL as it can be easily manipulated. But since this data is large R/w from DB becomes expensive. So we started using Redis. Redis does a brilliant job, but with complex data structures and no query like capability, we have to manage it via code. We are experimenting with Apache Geode and it looks promising as now we can query on complex data-structures and get the required data quickly and also updates consistent.
Redis has been a great investment for our organization as we needed a solution for high speed data caching. The ramp up and integration was quite easy. Redis handles automatic failover internally, so no crashes provides high availability. On the fly scaling scale to more/less cores and memory as and when needed.
Easy for developers to understand. Unlike Riak, which I've used in the past, it's fast without having to worry about eventual consistency.
Reliable. With a proper multi-node configuration, it can handle failover instantly.
Configurable. We primarily still use Memcache for caching but one of the teams uses Redis for both long-term storage and temporary expiry keys without taking on another external dependency.
Fast. We process tens of thousands of RPS and it doesn't skip a beat.
We had some difficulty scaling Redis without it becoming prohibitively expensive.
Redis has very simple search capabilities, which means its not suitable for all use cases.
Redis doesn't have good native support for storing data in object form and many libraries built over it return data as a string, meaning you need build your own serialization layer over it.
if Presto comes up with more support (ie hbase, s3), then its strongly possible that we'll move from apache drill to prestoDB. However, Apache drill needs more configuration ease, especially when it comes to garbage collection tuning. If apache drill could support also sparkSQL and Flume, then it does change drill into being something more valuable than prestoDB
We will definitely continue using Redis because: 1. It is free and open source. 2. We already use it in so many applications, it will be hard for us to let go. 3. There isn't another competitive product that we know of that gives a better performance. 4. We never had any major issues with Redis, so no point turning our backs.
Still Experimenting. Initial results are good. we need to figure out if we can completely replace Redis. Cost wise if it makes sense to keep both or replacement is feasible.
It is quite simple to set up for the purpose of managing user sessions in the backend. It can be easily integrated with other products or technologies, such as Spring in Java. If you need to actually display the data stored in Redis in your application this is a bit difficult to understand initially but is possible.
The support team has always been excellent in handling our mostly questions, rarely problems. They are responsive, find the solution and get us moving forward again. I have never had to escalate a case with them. They have always solved our problems in a very timely manner. I highly commend the support team.
compared to presto, has more support than prestodb. Impala has limitations to what drill can support apache phoenix only supports for hbase. no support for cassandra. Apache drill was chosen, because of the multiple data stores that it supports htat the other 3 do not support. Presto does not support hbase as of yet. Impala does not support query to cassandra
We are big users of MySQL and PostgreSQL. We were looking at replacing our aging web page caching technology and found that we could do it in SQL, but there was a NoSQL movement happening at the time. We dabbled a bit in the NoSQL scene just to get an idea of what it was about and whether it was for us. We tried a bunch, but I can only seem to remember Mongo and Couch. Mongo had big issues early on that drove us to Redis and we couldn't quite figure out how to deploy couch.
Redis has helped us increase our throughput and server data to a growing amount of traffic while keeping our app fast. We couldn't have grown without the ability to easily cache data that Redis provides.
Redis has helped us decrease the load on our database. By being able to scale up and cache important data, we reduce the load on our database reducing costs and infra issues.
Running a Redis node on something like AWS can be costly, but it is often a requirement for scaling a company. If you need data quickly and your business is already a positive ROI, Redis is worth the investment.