Details
- 
    Bug 
- 
    Status: Closed (View Workflow)
- 
    Major 
- 
    Resolution: Not a Bug
- 
    2.1.2
- 
    None
- 
    Ubuntu 16.04 within Docker (Swarm Mode, v17.05)
Description
We used the new cache filter of MaxScale with v2.1.2 in combination with thew readwritesplit and 3 servcers (but we also tested it with readconnroute and only 1 server with the same result).
We got an old script which updates a value in a mySQL table and afterwards it selects a sum where this value is used in a join. The result is that the sum still delivers the old value from the MaxScale cache. Afterwards, even when reloading the whole webpage with a fresh select, the statement is still outdated until the cache TTL is passed or until we restart MaxScale.
Shouldn't the cache data for this stable/query be discarded by MaxScale automatically after an update/insert?
Our cache config is:
| [Cache] | 
| type=filter | 
| module=cache | 
| hard_ttl=300 | 
| soft_ttl=290 | 
| max_resultset_size=512Ki | 
| max_size=100Mi
 | 
the script causing this problem is a bit durty but easy to read:
| $conn = mysqli_connect($hostname, $username, $password, $database); | 
| $json = array('status' => 'false'); | 
| $sql = "Select id from task_data where task_id =".$_REQUEST["task_id"]." and month =".$_REQUEST["month"]." and year = ".$_REQUEST["year"]; | 
| $result = $conn->query($sql); | 
| if($result->num_rows > 0){ | 
| $data_id = $result->fetch_assoc()["id"]; | 
| $sql = "Update task_data set hours = ".$_REQUEST["hours"]." where id = ".$data_id; | 
| $result = $conn->query($sql); | 
| if($result){ | 
| $json['status'] = 'true'; | 
| 		} | 
|     } | 
| else{ | 
| $sql = "Insert into task_data (task_id, month, year, hours) Values (".$_REQUEST["task_id"].", ".$_REQUEST["month"].", ".$_REQUEST["year"].", ".$_REQUEST["hours"].");"; | 
| $result = $conn->query($sql); | 
| if($result){ | 
| $json['status'] = 'true'; | 
| 		} | 
| 	} | 
| Â | 
| if($json["status"] == "true"){ | 
| 		 | 
| $task_hours = $conn->query("select ifnull(round(sum(hours),2), 0) as hours from project join task on (project.id = task.project_id) join task_data on (task_data.task_id = task.id) where month = ".$_REQUEST["month"]." and year = ".$_REQUEST['year']." and project.id = ".$_REQUEST["project_id"].";")->fetch_assoc()["hours"]; | 
| 		 | 
| $project_hours = $work_hours = $conn->query("select ifnull(round(sum(worked_hours),2), 0) as hours from project join day on (day.project_id = project.id) join data on(data.id = day.data_id) where month = ".$_REQUEST["month"]." and year = ".$_REQUEST['year']." and project.id = ".$_REQUEST["project_id"].";")->fetch_assoc()["hours"]; | 
| 		 | 
| $json["hours"] = $task_hours; | 
| $json["project_hours"] = $project_hours; | 
| 	}
 | 
Attachments
Issue Links
- is blocked by
- 
                    MXS-1134 Cache Invalidation -         
- Closed
 
-