msync with MS_ASYNC on same page broken?

From: Ramneek Handa
Date: Sun Nov 08 2009 - 13:31:32 EST


Hi,
I am writing a low latency application which (during the course of processing) writes objects into a file in binary mode. I am testing the persistence library right now which in single threaded mode can achieve about 2 micros per record (if say 100000 records 256 bytes each are written and i commit the entire page only once, i.e. one commit for 100,000 records). On the other hand if i write 2 records per commit (note there will be 16 records per page), next 15 commits will be very slow. If on the other hand i increase my commit size to 16 per commit the speed becomes 100x.

I read the thread below and looks like the core of the problem.
http://lkml.indiana.edu/hypermail/linux/kernel/0602.1/0500.html

Can some one please shed more light on what decision was eventually taken on this and is it already fixed (Andrew's fix seems good for such problem)? Any other way i can get around this issue?

BTW, there is no way to predict how many records will be per transaction/commit.

Regards,
Ramneek
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/