Add Cache for direct buffer
Set SelectorProvider
Add thread local cache
Refactor class hierarchy and locks