- 论坛徽章:
- 0
|
1.13) Why don't you use threads, raw devices, async-I/O, <insert your favorite wizz-bang feature here>?
There is always a temptation to use the newest operating system features as soon as they arrive. We resist that temptation.
First, we support 15+ operating systems, so any new feature has to be well established before we will consider it. Second, most new wizz-bang features don't provide dramatic improvements. Third, they usually have some downside, such as decreased reliability or additional code required. Therefore, we don't rush to use new features but rather wait for the feature to be established, then ask for testing to show that a measurable improvement is possible.
As an example, threads are not currently used in the backend code because:
* Historically, threads were unsupported and buggy.
* An error in one backend can corrupt other backends.
* Speed improvements using threads are small compared to the remaining backend startup time.
* The backend code would be more complex.
So, we are not ignorant of new features. It is just that we are cautious about their adoption. The TODO list often contains links to discussions showing our reasoning in these areas |
|