HNHacker News
TopNewBestAskShowJobs

PSeitz

159 karma · joined June 25, 2014

submissionscomments
PSeitz··on Teaching Postgres to Facet Like Elasticsearch
Hi, tantivy dev here. There are two recent performance improvements in tantivy, which should make term aggregations considerable faster.

https://github.com/quickwit-oss/tantivy/pull/2740 https://github.com/quickwit-oss/tantivy/pull/2759

PSeitz··on Show HN: SeekStorm – open-source sub-millisecond search in Rust
Also we are working on some performance improvements based on the benchmark comparison, as they highlighted some areas we can improve in tantivy.
PSeitz··on Binance built a 100PB log service with Quickwit
tantivy has two dictionaries FST and SSTable. We added SSTable in tantivy because it works great with object storage, while FST does not. With some metadata we can download only the required parts and not the whole dictionary.

SStable does not support Regex queries, it would require a full load and scan, which would be very expensive.

Your best bet currently would be to make it work with tokenizing, which is way more efficient anyways.

prefix queries are supported btw

PSeitz··on Tantivy – full-text search engine library inspired by Apache Lucene
You can just put everything in a JSON field in tantivy and set it to INDEXED and FAST
PSeitz··on Tantivy – full-text search engine library inspired by Apache Lucene
They serve quite different use cases.

quickwit was built to handle extremely large data volumes, you can ingest and search TB and PB of logs.

meilisearches indexing doesn't scale as it will become slower the more data you have, e.g. I failed to ingest 7GB of data.

PSeitz··on Tantivy – full-text search engine library inspired by Apache Lucene
> Hm, I am interested, but I would love to use it as a rust lib and just have rust types instead of some json config...

Yes that's how you use tantivy normally, not sure which json config you mean.

tantivy-cli is more like a showcase, https://github.com/quickwit-oss/tantivy is the actual project.

PSeitz··on Pg_bm25: Elastic-Quality Full Text Search Inside Postgres
The issue for geo search is here: https://github.com/quickwit-oss/tantivy/issues/44
PSeitz··on A compressed indexable bitset
>Roaring bitmaps and similar data structures get their speed from decoding together consecutive groups of elements, so if you do sequential decoding or decode a large fraction of the list you get excellent performance. EF instead excels at random skipping, so if you visit a small fraction of the list you generally get better performance. This is why it works so well for inverted indexes, as generally the queries are very selective (otherwise why do you need an index?) and if you have good intersection algorithms you can skip a large fraction of documents.

There's no sequential decoding in our variant, every access is independent. The roaring bitmap variant is used only for the optional index (1 docid => 0 or 1 value) in the columnar storage (DocValues), not for the inverted index. Since this is used for aggregation, some queries may be a full scan.

The inverted index in tantivy uses bitpacked values of 128 elements with a skip index on top.

> I didn't follow the rest of your comment, select is what EF is good at, every other data structure needs a lot more scanning once you land on the right chunk. With BMI2 you can also use the PDEP instruction to accelerate the final select on a 64-bit block

The select for the sparse codec is a simple array index access, that is hard to beat (https://github.com/quickwit-oss/tantivy/blob/main/columnar/s...). Compression is not good near the 5k threshold though. PDEP is currently deactivated since ryzen before Zen3 was really slow.

Creation speed is also quite important, do you know how "Partitioned Elias-Fano" performs there?

PSeitz··on A compressed indexable bitset
> It would definitely compress much better than roaring bitmaps. In terms of performance, it depends on the access patterns. If very sparse (large jumps), PEF would likely be faster, if dense (visit a large fraction of the bitmap), it'd be slower.

Just for clarification you mean the access pattern is sparse and not the data itself? How is that relevant?

I did part of the investigation and implementation, but didn't look much into elias fano coding. The select for the dense codec is already really fast (with popcount), there's not much room for improvement on the instruction side (https://godbolt.org/z/dq7WeE66Y), except implicitly by touching less memory. The sparse codec with its binary search should be easy to beat though. Partitioned Elias-Fano indexes may be a superior choice in contrast to the sparse codec in terms of rank and compression, and probably less so for select and code complexity.

PSeitz··on Lz4_flex 0.11 Released: Faster LZ4 de/compression in Rust
Indeed if you are colorblind that may be an issue. I'll address it If I get to it. Otherwise it assigns names to colors, no idea how you could be confused by that.
PSeitz··on LZ4 – Extremely fast compression
file io should come with the frame format, which is not yet implemented. For the block format it's not really suited.
PSeitz··on LZ4 – Extremely fast compression
As far as I know LZ4 is much faster that most compression algorithms, with decompression speeds of over 4GB/s
PSeitz··on LZ4 – Extremely fast compression
I ported the block format to Rust matching the C implementation in performance and ratio.

https://github.com/pseitz/lz4_flex

PSeitz··on We must change food production to save the world, says leaked report
But I like coal, so coal can't be the problem either. ROLF!
PSeitz··on Why the Stranger Things ‘red room’ is confusing younger fans
Or with einstein "yeah you were pretty much right. we don't have anything new"
PSeitz··on Rust programs versus Go
The performance comparisons between gc and non-gc languages show otherwise. Also, memory consumption eventually costs cpu cycles.
PSeitz··on Rust programs versus Go
Garbage collector is actually something you'd want, if it caused no performance hit.
PSeitz··on I Hate the News (2006)
Some article about development a approach is not news. Also, hackernews is largely composed of non-news information, else I wouldn't be here ;)
PSeitz··on Why Developers Never Use State Machines (2011)
I use a state machine for text

https://github.com/BurntSushi/fst

PSeitz··on Why Japan’s Rail Workers Point at Things
But it does work in Tokyo, maybe it's the people
PSeitz··on Germany Tries to Catch Up with Startup World
Internet availability is not a problem. Just check cable availability and your up and running with 100Mbits+ in a few days.
PSeitz··on Germany Tries to Catch Up with Startup World
And Germans really like to complain.
PSeitz··on Pushing Swift to the Server
If your editor is your compiler, then something is seriously wrong.
PSeitz··on Pushing Swift to the Server
you always need at least compiler/interpreter to execute your code... unless write bytecode in your editor
PSeitz··on Google and Apple have different innovation signatures
Seems to me, that apple bosses want to put their name on every patent created in their division.
PSeitz··on Disassembling Sublime Text
I heard that about Atom around 12 months ago.
PSeitz··on Donald Trump’s Contract with the American Voter [pdf]
This document is from before the election, it's invalid now.
PSeitz··on A Message to the Apple Community in Europe
I think exploiting a public system, by systematically looking for loopholes should be illegal and the involved parties should be held responsible.
PSeitz··on Optimism
TLDR;

To be more optimistic assess good stuff as personal, general, and permanent and negative as impersonal, specific and temporal.

Make notes everyday about your assessments and correct them.

There is research backing this thesis.

PSeitz··on Optimism
According to the research he must be pretty happy.
Page 1 of 4Next →