New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 814335 link

Starred by 2 users

Issue metadata

Status: Available
Owner: ----
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Linux , Android , Windows , Chrome , Mac
Pri: 3
Type: Task



Sign in to add a comment

LoopbackServer doesn't need to call DeleteChildren

Reported by hur...@gmail.com, Feb 21 2018

Issue description

UserAgent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.113 Whale/1.0.39.16 Safari/537.36

Steps to reproduce the problem:
With relatively large bookmarks, say over 10000, bookmark deletion could take much time if LoopbackServer is used for sync.

What is the expected behavior?

What went wrong?
When a bookmark node is removed, its children seems guaranteed to be removed. 
(See BookmarkChangeProcessor::OnWillRemoveBookmarks. It calls RemoveSyncNodeHierarchy and it calls RemoveAllChildNodes)
So, if a bookmark folder that contains 99 bookmarks is removed, LoopbackServer::CommitEntity() and DeleteChildren() are called 100 times unnecessarily and this results in 100x100 invoking of LoopbackServer::IsChild() because DeleteChildren() traverses all entities, which could be a performance problem with heavy bookmark users.

Did this work before? N/A 

Chrome version: 60.0.3112.113  Channel: stable
OS Version: OS X 10.13.2
Flash Version: Shockwave Flash 28.0 r0
 
Labels: Needs-Milestone

Comment 2 by zea@chromium.org, Feb 22 2018

Components: Services>Sync

Comment 3 by treib@chromium.org, Feb 23 2018

Cc: mamir@chromium.org
Labels: -Pri-2 -Type-Feature -Needs-Milestone OS-Android OS-Chrome OS-Linux OS-Mac Pri-3 Type-Task
Status: Available (was: Unconfirmed)
Looks like this could be a legitimate performance improvement, but since we haven't heard of any actual problems related to this, I think it's low priority.

Sign in to add a comment