Why don you use threads, raw devices, async-I/O, ?

0
Posted

Why don you use threads, raw devices, async-I/O, ?

0

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 l

0

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 instead of multiple processes for backends because: • Historically, threads were poorly supported and buggy. • An error in one backend can corrupt other backends if they’re threads within a single process • Speed improvements using threads are small compared to the remaining backend startup time. • The backend code would be more complex. • Terminating backend processes all

Related Questions