Hi folks, I'm looking into using sqlite for benchmarking performance of a glibc feature based on hardware based transactional memory that is a new feature of new Intel and Ibm (and other) cpus.
The glibc feature is described here: https://lwn.net/Articles/534758/ In short, glibc attempts automatically to avoid ("elide") using pthread mutexes and rwlocks and use hardware transactions instead. The plan (or rather: vague idea) is to run a multi-threaded C program that creates an in-memory database and runs a parallel workload on that database in multiple threads. Now I'm missing two things: 1. Figuring out the amount, granularity and duration of locking that sqlite does using the pthread_mutex_... functions. Can someone help me out here, or is my only chance to dig through the source code? 2. Finding a suitable workload for the test, preferrably already written in C, but since I'll have to do some coding anyway, that's not mandatory. Other requirements: - The workload must be sufficiently big to run for several seconds even on a high end server with eight or more cpus. - It must be possible to dynamically distribute the workload across a random number of threads of the test program. - The workload must create a decent amount of contention on database objects. Thas is because hardware transactions cannot speed code with locks that does not create any contention on the database. I'm sure such a workload must be available on the net, but I just cannot find it. Isn't there a suitable test data set for testing sqlite's parallel performance anyway? Any hints or pointers would be greatly appreciated. Ciao Dominik ^_^ ^_^ -- Dominik Vogt IBM Germany _______________________________________________ sqlite-users mailing list sqlite-users@sqlite.org http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users