I think the most interesting part is PolarFS taking full advantage of the emerging techniques like RDMA, NVMe, and SPDK. And the Parallel raft consensus algorithm
when you deal with multi threads, not only epoll will cause some problems, but also global variable, memory, etc. global variable solved by mutex, but epoll solved by avoid using it to epoll_wait fds in multi threads.
The key difference for me was the way they create the names of the links in the popup. In Chrome you need to enter more or less random letters, while in vimperator you can write the link name. The difference in usability was HUGE for me and made me switch to FF for a brief moment from using Chrome since its release day.
Not GP but same situation. Firefox isn't always great. Start-up time is really slow, hogs a lot of memory, unnecessarily slow and sluggish and most sites are primarily engineered for WebKit/Blink -based browser engines these days.
Lot's of memory? Firefox nowadays uses less then Chrome (Chrome one process per tab is a killer for free RAM).
As for websites engineered for WebKit/Blink I haven't seen that yet, but I was afraid it might happen eventually - new IE6 (or was it IE5?) will happen again :(.
I've never had an issue with memory (have RAM to spare) even though I use tab-groups extensively and frequently have 600+ tabs stored that way. But I do have issues with slow startup times. Is it linked to tab groups? I didn't see any significant speedup upon switching to an SSD, so I'm assuming it is inherent in the program and not anything specific to reading profiles from disk.
For a system engineer, it's hard to draw visual csv file by java script.
markdown is the most simple and convenient tool, it's a good idea to combine markdown with visualization.
I think the different between redis and webserver like nginx is that all the operations in redis is almost the same, it is about less than 1ms. However the request to nginx fall in a widely range, some request need 10ms, while some request need 10s. Since nginx need do some file operations.
So the single model work well for redis, but it doesn't work well for nginx, since if there is a request in nginx that is blocking for about 10s, people can't tolerate this situation.
In the past you could tune redis to hold a dataset larger than the memory you had, and it would swap pages on its own. About a year after this 2010 post, antirez decided to remove this completely (in redis 2.6 or 2.8, I don't remember) and focus entirely on fully in-memory situations. VM in the redis sense used to be redis itself swapping stuff to disk with multiple threads.
Here are the redis configuration notes on VM from redis 2.2:
# Virtual Memory allows Redis to work with datasets bigger than the actual
# amount of RAM needed to hold the whole dataset in memory.
# In order to do so very used keys are taken in memory while the other keys
# are swapped into a swap file, similarly to what operating systems do
# with memory pages.
....
# vm-max-memory configures the VM to use at max the specified amount of
# RAM. Everything that deos not fit will be swapped on disk if possible, that
# is, if there is still enough contiguous space in the swap file.
...
# Redis swap files is split into pages. An object can be saved using multiple
# contiguous pages, but pages can't be shared between different objects.
# So if your page is too big, small objects swapped out on disk will waste
# a lot of space. If you page is too small, there is less space in the swap
# file (assuming you configured the same number of total swap file pages).
# If you use a lot of small objects, use a page size of 64 or 32 bytes.
....
# Max number of VM I/O threads running at the same time.
# This threads are used to read/write data from/to swap file, since they
# also encode and decode objects from disk to memory or the reverse, a bigger
# number of threads can help with big objects even if they can't help with
# I/O itself as the physical device may not be able to couple with many reads/writes operations at the same time.
# The special value of 0 turn off threaded I/O and enables the blocking Virtual Memory implementation.
130 blog posts. Writing about Database and Distributed system