Comments (5)
Hey @kakra
Thank you for the awesome breakdown of the issue. We indeed not friendly to copy-on-write situations, and we will look into improving that.
Do you have any suggestions as to how to improve this? Or must we sacrifice consistency and batch write the state?
from tabnine-sublime.
I think SQlite has a solution for this by using write-ahead logging (that's the WAL files), here's some starting point on the topic: https://wiki.tnonline.net/w/Blog/SQLite_Performance_on_Btrfs
Maybe the database files of TabNine should use something similar (I think you already use SQlite).
I've already done that for other SQlite databases and it can be done without knowledge for that application using the steps described in the link, section "How to enable SQLite WAL" (bottom of the page).
from tabnine-sublime.
If possible, try to avoid fsync patterns for synchronization - fsync is quite horrible on btrfs performance-wise. Btrfs doesn't need it being a cow file system. But I'm not sure how to handle that, maybe through some env var like TABNINE_NO_FSYNC=1
or something that advanced users could set manually in their profile.
from tabnine-sublime.
Also, avoid in-place updates of blocks in files and prefer appending data to some sort of log file which you could merge at process start or regular intervals back into the data file (similar to WAL).
from tabnine-sublime.
I'm not sure if SQlite has file access modes which use fsync()
- if they do, I'd research if that is really needed with WAL, and if it isn't, you may want to explicitly disable that access mode. Btrfs really doesn't like fsync because it flushes internal trees and transactions.
from tabnine-sublime.
Related Issues (20)
- Exception while interacting with Tabnine subprocess (since 3.0.17) HOT 7
- can not commit auto-completion result use Tab. I must use Tab to switch result & use Enter to commit HOT 7
- con not login with vscode (WSL) HOT 2
- Atom: Failed to activate the TabNine package HOT 1
- Are They Mining Crypto Currency From Free Users ? HOT 1
- Improve UX on configuring suggestions behavior
- Is Tabnine abandoned? HOT 3
- Typing is very slow with Tabnine installed HOT 1
- how to disable tabnine on files with no file extension?
- How do you use prompts in Sublime text 4 and Tabnine?
- Autocomplete unicode characters (Julia) HOT 1
- Autocompleting without hitting Tab HOT 15
- Disable TabNine for some file extensions HOT 7
- TabNine auto completions not working HOT 5
- TabNine not suggesting auto completions HOT 9
- TabNine suggestions too far down? HOT 2
- Selection that has dollar ($) sign messes up when selecting from dropdown HOT 2
- Port to ST4 HOT 4
- tabnine hide popup if the completion contains bracket or quotation mark HOT 29
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 tabnine-sublime.