Comments (3)
Hey @alexeyev . In general, you should make the batch sizes as large as possible. In fact, using insertion_session
automatically does some batching, see https://github.com/ekzhu/datasketch/blob/master/datasketch/storage.py#L226 . You could try running without your own batching and see whether the in-built batching is sufficient for your purposes. This literal value of 50000 needs to be changed in future to something user-specifiable.
Secondly, on the question of performance, the additional time you see almost certainly results from additional network I/O which is inevitable when using Redis. Large batch sizes mitigate this as much as possible. It can be instructive to profile your insertion code to confirm this. I once looked into creating Redis dump files without running a live Redis server (see https://github.com/ae-foster/rdbgenerate) but this didn't seem promising.
from datasketch.
Also -- am I doing it wrong or does adding redis backend slow down indexing process dramatically?
from datasketch.
Yes, in my experience redis insertion can be slow due to the serialization and deserialization, even when the database is running on the same machine.
A possible solution to this problem is to implement a way to initialize a Redis-backed LSH from a Dictionary-backed LSH. So you can insert into a Dictionary-backed LSH first (fast), and when you are done, you can (asynchronously) create the Redis-backed LSH.
This way you can start using the Dictionary-backed LSH right-away.
from datasketch.
Related Issues (20)
- Advice for compression of a big graph HOT 3
- Distributed MinHashLSH HOT 3
- Poor default args in MinHashLSH? HOT 1
- Is is possible to rename already created index? HOT 1
- Add C-minHash variant HOT 11
- Synchronous Mongodb Storage HOT 3
- Merging (Identically Specified) MinHashLSH objects HOT 11
- Impact of MinHashLSH threshold on memory usage HOT 2
- Too large minhashLSH index HOT 10
- Is the bumber of bands correct? HOT 3
- Choice of np.uint64? HOT 11
- def jaccard 's denominator is self not [self union other] . HOT 2
- How to Use MinHash and MinHashLSH to Identify Comprehensive Documents and Partial Matches? HOT 3
- Forever growing index HOT 4
- HNSW: `HNSW.add` will not set the entry point of new levels HOT 2
- Process-safe, no mem bloat, implementation of LSH HOT 1
- Implementing MinHash retrieval from keys for MinHashLSHForest HOT 2
- Cassandra storage not compatible with Python 3.12 HOT 5
- Question: Effects of Bit Truncation on MinhashLSH? HOT 15
- uint64 overflow risk
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from datasketch.