Live data from Hacker News

Stateless – Evolving the architecture of Elasticsearch to simplify deployment

elastic.co

21–28 of 28 posts

Re: Stateless – Evolving the architecture of Elasticsearch to simplify deployment

#21

And for those who cannot wait, there is quickwit :-) https://quickwit.io

I’m not well versed with elastic search and the like but have a project in mind… quickwit mentions logs in the first header. Is it definitely for generic searching or is it for searching logs?

It can be used to search other things than logs, but it has to be large datasets of Append only data. Emails, Chat, Web Crawl data, logs...

Re: Stateless – Evolving the architecture of Elasticsearch to simplify deployment

#22

Earlier quoted context omitted.

I'm not familiar with this space, but I would have thoguht existing managed cloud offerings already decoupled storage from compute as far as the customer is concerned. But not true, or not as much true as it could be with new architecture?

Not as much true as it could be, with the offerings I'm aware of (AWS OpenSearch, Elasti, Co's own cloud), and having used OpenSearch more extensively, you're still basically fully responsible for managing the cluster topology and the "data" node type is what handles storage and the important compute for search. If you need more storage you'll have to bump the EBS volume sizes on a new cluster and then do replication…

> Not as much true as it could be, with the offerings I'm aware of (AWS OpenSearch, Elasti, Co's own cloud), and having used OpenSearch more extensively, you're still basically fully responsible for managing the cluster topology and the "data" node type is what handles storage and the important compute for search. If you need more storage you'll have to bump the EBS volume sizes on a new cluster and then do replication, or add a new node to the existing cluster and rebalance your data which are both very expensive operations. If you need more compute you're stuck with adding more storage regardless, but you can at least limit how much.

This, absolutely. I'll add that I once tried to look at the Elasti.co offer for an ELK solution that could handle the logs we are currently managing internally (on EC2 managed by us with some automation), and you basically had to specify all the details of the topology to get a quote. It was basically a layer on top of AWS Cost Calculator with their margin baked in.

No way you can tell them "I send on average X bytes/day, I want a quick answer for Y days and a slower answer for Z days and a global retention of XY days" and get a "you will pay aprox NNN dollars/month in the HA config, MMM in the non-HA config"

Re: Stateless – Evolving the architecture of Elasticsearch to simplify deployment

#24
How is it that the S3 API is remotely fast enough to make this work?

As search engine that operates at any kind of scale needs to skip through very large files to evaluate a query. You need very low-latency, high-bandwidth access to disk. A search engine instance that accesses files on a local SSD is an order of magnitude faster than one that puts files on EBS.

They make some mention of local caching, but the devil is in the details here. Does all data get copied to local cache? What is the performance here?

Re: Stateless – Evolving the architecture of Elasticsearch to simplify deployment

#25
post #24

How is it that the S3 API is remotely fast enough to make this work? As search engine that operates at any kind of scale needs to skip through very large files to evaluate a query. You need very low-latency, high-bandwidth access to disk. A search engine instance that accesses files on a local SSD is an order of magnitude faster than one that puts files on EBS. They make some mention of local caching, but the devil i…

Probably somewhat similar to how Trino/Presto/Bigtable/Spanner works but targeted at search, decompose the query into a set of highly parallelizable steps and execute them simultaneously over the set of data using some type of specialized storage format for rapidly indexing into the file, some really nice heuristics, and then drop all the ones without a potential for a hit, aggregate the rest and then do maybe a more classical search over the vastly reduced set of potential files in memory.

I know Presto isn't focused on search, but Athena (AWS branded Presto) can do some really fast queries over S3, the issue is coldstart time on the compute, for a similar solution focused on search maybe you keep the compute always warm and work from there.

Re: Stateless – Evolving the architecture of Elasticsearch to simplify deployment

#26
post #24

How is it that the S3 API is remotely fast enough to make this work? As search engine that operates at any kind of scale needs to skip through very large files to evaluate a query. You need very low-latency, high-bandwidth access to disk. A search engine instance that accesses files on a local SSD is an order of magnitude faster than one that puts files on EBS. They make some mention of local caching, but the devil i…

If you're doing a single round-trip it's really not bad. You don't get that big an impact compared to the round-trip to the user.

If you are doing multiple dependent loads, e.g. loading an index that tells you which part of the data to load which tells you which other related table to look into (e.g. a complex join)... that would be bad.

Re: Stateless – Evolving the architecture of Elasticsearch to simplify deployment

#27
post #2

So they will be forcing my few dozen terabyte ES cluster that today runs fully on dedicated physical hardware to use extremely expensive cloud storage services instead? What an awful idea! I hope the option to fully self-host on dedicated hardware remains viable, as I enjoy the high performance, low price and full control of my own systems.

What they are really doing is offloading the job of persisting data from ES.

So you wouldn't need to use S3 or some s3 emulator like other comments have suggested.

Give the ES cluster a disk it can write to that is guaranteed to be replicated (ie a RAID cluster) and thats it. The limits of object storage (no appending, no in place editing) tend to make those clusters cheaper so you could also run something like Ceph locally. It's probably going to do a better job of persisting data than ES also.

Re: Stateless – Evolving the architecture of Elasticsearch to simplify deployment

#28
post #15

Earlier quoted context omitted.

How is Elasticsearch "closed source"? The code is literally right here: https://github.com/elastic/elasticsearch

Probably meant "Source available" since neither Elasticsearch code licenses are "Open source" (going by OSI approval).

We're not really talking licenses here. The very definition of "open source", according to OSI, is: "Open source software is software with source code that anyone can inspect, modify, and enhance."

Elasticsearch meets the above definition.

The permissiveness of the modification and enhancement is a different topic.

Post reply on HN