Apache Ignite聽vs聽Elasticsearch

Need advice about which tool to choose?Ask the StackShare community!

Apache Ignite

67
107
+ 1
19
Elasticsearch

23.7K
17.8K
+ 1
1.6K
Add tool
Advice on Apache Ignite and Elasticsearch
Rana Usman Shahid
Chief Technology Officer at TechAvanza | 5 upvotes 路 113.3K views
Needs advice
on
Firebase
Elasticsearch
and
Algolia

Hey everybody! (1) I am developing an android application. I have data of around 3 million record (less than a TB). I want to save that data in the cloud. Which company provides the best cloud database services that would suit my scenario? It should be secured, long term useable, and provide better services. I decided to use Firebase Realtime database. Should I stick with Firebase or are there any other companies that provide a better service?

(2) I have the functionality of searching data in my app. Same data (less than a TB). Which search solution should I use in this case? I found Elasticsearch and Algolia search. It should be secure and fast. If any other company provides better services than these, please feel free to suggest them.

Thank you!

See more
Replies (2)
Josh Dzielak
Co-Founder & CTO at Orbit | 5 upvotes 路 84.6K views
Recommends
Algolia

Hi Rana, good question! From my Firebase experience, 3 million records is not too big at all, as long as the cost is within reason for you. With Firebase you will be able to access the data from anywhere, including an android app, and implement fine-grained security with JSON rules. The real-time-ness works perfectly. As a fully managed database, Firebase really takes care of everything. The only thing to watch out for is if you need complex query patterns - Firestore (also in the Firebase family) can be a better fit there.

To answer question 2: the right answer will depend on what's most important to you. Algolia is like Firebase is that it is fully-managed, very easy to set up, and has great SDKs for Android. Algolia is really a full-stack search solution in this case, and it is easy to connect with your Firebase data. Bear in mind that Algolia does cost money, so you'll want to make sure the cost is okay for you, but you will save a lot of engineering time and never have to worry about scale. The search-as-you-type performance with Algolia is flawless, as that is a primary aspect of its design. Elasticsearch can store tons of data and has all the flexibility, is hosted for cheap by many cloud services, and has many users. If you haven't done a lot with search before, the learning curve is higher than Algolia for getting the results ranked properly, and there is another learning curve if you want to do the DevOps part yourself. Both are very good platforms for search, Algolia shines when buliding your app is the most important and you don't want to spend many engineering hours, Elasticsearch shines when you have a lot of data and don't mind learning how to run and optimize it.

See more
Mike Endale
Recommends
Cloud Firestore

Rana - we use Cloud Firestore at our startup. It handles many million records without any issues. It provides you the same set of features that the Firebase Realtime Database provides on top of the indexing and security trims. The only thing to watch out for is to make sure your Cloud Functions have proper exception handling and there are no infinite loop in the code. This will be too costly if not caught quickly.

For search; Algolia is a great option, but cost is a real consideration. Indexing large number of records can be cost prohibitive for most projects. Elasticsearch is a solid alternative, but requires a little additional work to configure and maintain if you want to self-host.

Hope this helps.

See more
Get Advice from developers at your company using Private StackShare. Sign up for Private StackShare.
Learn More
Pros of Apache Ignite
Pros of Elasticsearch
  • 3
    Written in java. runs on jvm
  • 3
    Free
  • 2
    Load balancing
  • 2
    High Avaliability
  • 2
    Rest interface
  • 2
    Sql query support in cluster wide
  • 1
    Multiple client language support
  • 1
    Better Documentation
  • 1
    Distributed compute
  • 1
    Distributed Locking
  • 1
    Easy to use
  • 321
    Powerful api
  • 311
    Great search engine
  • 231
    Open source
  • 213
    Restful
  • 200
    Near real-time search
  • 96
    Free
  • 83
    Search everything
  • 54
    Easy to get started
  • 45
    Analytics
  • 26
    Distributed
  • 6
    Fast search
  • 5
    More than a search engine
  • 3
    Great docs
  • 3
    Awesome, great tool
  • 3
    Easy to scale
  • 2
    Intuitive API
  • 2
    Great piece of software
  • 2
    Fast
  • 2
    Nosql DB
  • 2
    Easy setup
  • 2
    Highly Available
  • 2
    Document Store
  • 2
    Great customer support
  • 1
    Reliable
  • 1
    Not stable
  • 1
    Potato
  • 1
    Open
  • 1
    Github
  • 1
    Elaticsearch
  • 1
    Actively developing
  • 1
    Responsive maintainers on GitHub
  • 1
    Ecosystem
  • 1
    Scalability
  • 0
    Easy to get hot data
  • 0
    Community

Sign up to add or upvote prosMake informed product decisions

Cons of Apache Ignite
Cons of Elasticsearch
    Be the first to leave a con
    • 6
      Diffecult to get started
    • 5
      Resource hungry
    • 4
      Expensive
    • 3
      Hard to keep stable at large scale

    Sign up to add or upvote consMake informed product decisions

    No Stats

    What is Apache Ignite?

    It is a memory-centric distributed database, caching, and processing platform for transactional, analytical, and streaming workloads delivering in-memory speeds at petabyte scale

    What is Elasticsearch?

    Elasticsearch is a distributed, RESTful search and analytics engine capable of storing data and searching it in near real time. Elasticsearch, Kibana, Beats and Logstash are the Elastic Stack (sometimes called the ELK Stack).

    Need advice about which tool to choose?Ask the StackShare community!

    What companies use Apache Ignite?
    What companies use Elasticsearch?
    See which teams inside your own company are using Apache Ignite or Elasticsearch.
    Sign up for Private StackShareLearn More

    Sign up to get full access to all the companiesMake informed product decisions

    What tools integrate with Apache Ignite?
    What tools integrate with Elasticsearch?

    Sign up to get full access to all the tool integrationsMake informed product decisions

    Blog Posts

    May 21 2019 at 12:20AM

    Elastic

    +4
    12
    2861
    +42
    46
    38944
    +47
    46
    68568
    +30
    25
    14863
    +26
    19
    4561
    What are some alternatives to Apache Ignite and Elasticsearch?
    Redis
    Redis is an open source, BSD licensed, advanced key-value store. It is often referred to as a data structure server since keys can contain strings, hashes, lists, sets and sorted sets.
    MySQL
    The MySQL software delivers a very fast, multi-threaded, multi-user, and robust SQL (Structured Query Language) database server. MySQL Server is intended for mission-critical, heavy-load production systems as well as for embedding into mass-deployed software.
    Hazelcast
    With its various distributed data structures, distributed caching capabilities, elastic nature, memcache support, integration with Spring and Hibernate and more importantly with so many happy users, Hazelcast is feature-rich, enterprise-ready and developer-friendly in-memory data grid solution.
    MongoDB
    MongoDB stores data in JSON-like documents that can vary in structure, offering a dynamic, flexible schema. MongoDB was also designed for high availability and scalability, with built-in replication and auto-sharding.
    Apache Spark
    Spark is a fast and general processing engine compatible with Hadoop data. It can run in Hadoop clusters through YARN or Spark's standalone mode, and it can process data in HDFS, HBase, Cassandra, Hive, and any Hadoop InputFormat. It is designed to perform both batch processing (similar to MapReduce) and new workloads like streaming, interactive queries, and machine learning.
    See all alternatives
    How developers use Apache Ignite and Elasticsearch
    imgur uses
    Elasticsearch

    Elasticsearch is the engine that powers search on the site. From a high level perspective, it鈥檚 a Lucene wrapper that exposes Lucene鈥檚 features via a RESTful API. It handles the distribution of data and simplifies scaling, among other things.

    Given that we are on AWS, we use an AWS cloud plugin for Elasticsearch that makes it easy to work in the cloud. It allows us to add nodes without much hassle. It will take care of figuring out if a new node has joined the cluster, and, if so, Elasticsearch will proceed to move data to that new node. It works the same way when a node goes down. It will remove that node based on the AWS cluster configuration.

    Instacart uses
    Elasticsearch

    The very first version of the search was just a Postgres database query. It wasn鈥檛 terribly efficient, and then at some point, we moved over to ElasticSearch, and then since then, Andrew just did a lot of work with it, so ElasticSearch is amazing, but out of the box, it doesn鈥檛 come configured with all the nice things that are there, but you spend a lot of time figuring out how to put it all together to add stemming, auto suggestions, all kinds of different things, like even spelling adjustments and tomato/tomatoes, that would return different results, so Andrew did a ton of work to make it really, really nice and build a very simple Ruby gem called SearchKick.

    AngeloR uses
    Elasticsearch

    We use ElasticSearch for

    • Session Logs
    • Analytics
    • Leaderboards

    We originally self managed the ElasticSearch clusters, but due to our small ops team size we opt to move things to managed AWS services where possible.

    The managed servers, however, do not allow us to manage our own backups and a restore actually requires us to open a support ticket with them. We ended up setting up our own nightly backup since we do per day indexes for the logs/analytics.

    Brandon Adams uses
    Elasticsearch

    Elasticsearch has good tooling and supports a large api that makes it ideal for denormalizing data. It has a simple to use aggregations api that tends to encompass most of what I need a BI tool to do, especially in the early going (when paired with Kibana). It's also handy when you just want to search some text.

    Ana Phi Sancho uses
    Elasticsearch

    Self taught : acquired knowledge or skill on one's own initiative. Open Source Search & Analytics. -time search and analytics engine. Search engine based on Lucene. It provides a distributed, multitenant-capable full-text search engine with an HTTP web interface and schema-free JSON documents.