[asterisk-bugs] [JIRA] (ASTERISK-24050) [patch] Improve AstDb I/O When Updating Rows
Michael L. Young (JIRA)
noreply at issues.asterisk.org
Wed Jul 23 11:53:56 CDT 2014
[ https://issues.asterisk.org/jira/browse/ASTERISK-24050?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Michael L. Young updated ASTERISK-24050:
----------------------------------------
Attachment: fix_astdb_update_prob.diff
Ran the test that failed and it now passes with this patch.
> [patch] Improve AstDb I/O When Updating Rows
> --------------------------------------------
>
> Key: ASTERISK-24050
> URL: https://issues.asterisk.org/jira/browse/ASTERISK-24050
> Project: Asterisk
> Issue Type: Improvement
> Security Level: None
> Components: Core/AstDB
> Affects Versions: Feature Tracker
> Reporter: Michael L. Young
> Assignee: Michael L. Young
> Severity: Minor
> Attachments: astdb-insert-update-io-help_trunk_v2.diff, fix_astdb_update_prob.diff
>
>
> When updating a row, we are currently doing an INSERT OR REPLACE INTO. The downside to this is that the row is deleted if it exists and then a new row is inserted. So, we are hitting the disk twice. One for the deletion and one for the insertion.
> The proposed patch will attempt to do an INSERT INTO and if it fails because a row with that key exists, we will ignore that. Then we will attempt to perform an UPDATE on the existing row. If a record was INSERTED, the UPDATE statement will end up doing nothing.
> Some testing that was performed on an older server with older IDE storage and few peers:
> _before patch_
> Re-Register | INSERT OR REPLACE INTO | Avg. 404 ms
> Register | INSERT OR REPLACE INTO | Avg. 442 ms
> _after patch_
> Re-Register | INSERT OR IGNORE; UPDATE | Avg. 361.5 ms
> Register | INSERT OR IGNORE; UPDATE | Avg 419 ms
--
This message was sent by Atlassian JIRA
(v6.2#6252)
More information about the asterisk-bugs
mailing list