Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Move block / block assembly into Mnesia or ETS? #4

Open
mpope9 opened this issue Jan 25, 2020 · 1 comment
Open

Move block / block assembly into Mnesia or ETS? #4

mpope9 opened this issue Jan 25, 2020 · 1 comment

Comments

@mpope9
Copy link

mpope9 commented Jan 25, 2020

I wouldn't say this is crucial, but it seems if block sizes reach 512 kB or 1 MB you might want to move them from Task statedata to being in Mnesia (or maybe just an ETS table because only a single process would interact with them). If you're really going for it and you have a bunch of torrents going at once you might hit your VM memory limit and get OOM'd by the kernel. ETS is offheap and fast!

Or if you want to support recovery from a partially downloaded block, you could use Mnesia with disk copies, or use this: https://github.com/klarna/mnesia_eleveldb Bindings for LevelDB K/V store. Doesn't have a 2GB on-disk limit and is highly optimized C++ code.

@bessey
Copy link
Owner

bessey commented Feb 4, 2020 via email

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants