Zhenyu Guo
Zhenyu Guo
Windows allows register an exception handler via ::SetUnhandledExceptionFilter(TopLevelFilter); I'm not sure how Linux does this. If you can register a handler which calls ::dsn::tools::sys_exit.execute(SYS_EXIT_EXCEPTION), then the issue should be fixed.
So this is fixed and we may close the issue? @shengofsun @qinzuoyan
This is as expected. One way to fix this is to use big locks, and another easy way is to reconfigure the read tasks to be executed in replication thread...
confused ... I thought you were talking about different apps may have different requirements of reliability (i.e., replica count). In this case, we can put this into the app specific...
As for majority, our protocol does not really require majority at all as long as we think reliability is enough (e.g., we can have 2 replicas out of 5 being...
There is a configuration for the mutation cache size. You may enlarge the cache size to avoid learning the private log as well in many cases.
Another way is to use RPC + AIO to pipeline log read + private log apply to avoid unnecessary log written on potential secondary's disk.
@shengofsun yes, our new network failure model will close the socket when other threads is read/writing on the socket. I assume this will only trigger some error code to the...
Another way is to refine the net failure model by not closing the socket, but using setsockopt to block the incoming/outgoing traffic instead.
Of course. The question is whether closing the socket in asio is a valid operation in terms of thread safety. We want to mimic the real world's failure but we...