WorkLog Frontpage Log in / Register
High-Level Description | Task Dependencies | High-Level Specification | Low-Level Design | File Attachments | User Comments | Time Estimates | Funding and Votes | Progress Reports

 Partitioned Key Cache for MyISAM
Title
Task ID85
Queue
Version
Status
Priority
Copies toIgor
Monty
Sergei

Created byIgor14 Feb 2010Done
Supervisor   
Lead Architect    
Architecture Review  
Implementor  
Code Review  
QA 22 Jul 2010
Documentation  
 High-Level Description
A partitioned key cache is a collection of structures for regular MyiSAM key
caches called key cache partitions. Any page from a file can be placed into a
buffer of only one partition. The number of the partition is calculated from the
file number and the position of the page in the file, and it's always the same
for the page. The function that maps pages into partitions takes care of even
distribution of pages among partitions.

Partition key cache mitigate one of the major problem of simple key cache:
thread contention for key cache lock (mutex). Every call of a key cache
interface function must acquire this lock. So threads compete for this lock even
in the case when they have acquired shared locks for the file and pages they
want read from are in the key cache buffers. When working with a partitioned key
cache any key cache interface function that needs only one page has to acquire
the key cache lock only for the partition the page is ascribed to. This makes
the chances for threads not compete for the same key cache lock better.

The idea and the original of the partitioned key cache was provided by one of
our external contributers (see the attached file segmented_keycache_v2.diff with
the original patch from the contributor).
 Task Dependencies
Others waiting for Task 85Task 85 is waiting forGraph
 
 High-Level Specification
 Low-Level Design
 File Attachments
 NameTypeSizeByDate
 User Comments
 Time Estimates
NameHours WorkedLast Updated
Total0 
 Hrs WorkedProgressCurrentOriginal
This Task08080
Total08080
 
 Funding and Votes
Votes: 1: 100%
 Change vote: Useless    Nice to have    Important    Very important    

Funding: 0 offers, total 0 Euro
 Progress Reports
(Sergei - Tue, 29 Jun 2010, 14:05
    
Status updated.
--- /tmp/wklog.85.old.32131	2010-06-29 14:05:44.000000000 +0000
+++ /tmp/wklog.85.new.32131	2010-06-29 14:05:44.000000000 +0000
@@ -1 +1 @@
-Assigned
+Complete

(Igor - Tue, 16 Mar 2010, 19:34
    
High Level Description modified.
--- /tmp/wklog.85.old.22371	2010-03-16 19:34:33.000000000 +0000
+++ /tmp/wklog.85.new.22371	2010-03-16 19:34:33.000000000 +0000
@@ -15,4 +15,5 @@
 the chances for threads not compete for the same key cache lock better.
 
 The idea and the original of the partitioned key cache was provided by one of
-our external contributers.
+our external contributers (see the attached file segmented_keycache_v2.diff with
+the original patch from the contributor).

(Igor - Sun, 14 Feb 2010, 00:15
    
Category updated.
--- /tmp/wklog.85.old.9810	2010-02-13 22:15:43.000000000 +0000
+++ /tmp/wklog.85.new.9810	2010-02-13 22:15:43.000000000 +0000
@@ -1 +1 @@
-Server-BackLog
+Server-Sprint

(Igor - Sun, 14 Feb 2010, 00:15
    
Version updated.
--- /tmp/wklog.85.old.9810	2010-02-13 22:15:43.000000000 +0000
+++ /tmp/wklog.85.new.9810	2010-02-13 22:15:43.000000000 +0000
@@ -1 +1 @@
-Benchmarks-3.0
+Server-5.2

(Igor - Sun, 14 Feb 2010, 00:12
    
New attachment: 'segmented_keycache_v2.diff'


Report Generator:
 
Saved Reports:

WorkLog v4.0.0
  © 2010  Sergei Golubchik and Monty Program AB
  © 2004  Andrew Sweger <yDNA@perlocity.org> and Addnorya
  © 2003  Matt Wagner <matt@mysql.com> and MySQL AB