Collabora Productivity
www.collaboraofce.co m
Collabora Productivity
Approaching the 1M columns / rows limit in Calc Online
By Marco Cecchet
Collabora Productiity
marco.cecchet@collabora.co.uk
Approaching the 1M columns / rows limit in Calc Online By Marco - - PowerPoint PPT Presentation
Collabora Productivity Approaching the 1M columns / rows limit in Calc Online By Marco Cecchet Collabora Productiity marco.cecchet@collabora.co.uk www.collaboraofce.co Collabora Productivity m Oieriiew Before: only 1000 rows was handled
Collabora Productivity
www.collaboraofce.co m
Collabora Productivity
By Marco Cecchet
Collabora Productiity
marco.cecchet@collabora.co.uk
Collabora Productivity
www.collaboraofce.co m
Before: only 1000 rows was handled
higher row index → the longer to get cursor positon Now: we can handle 1 million rows
Collabora Productivity
www.collaboraofce.co m
When we were dealing with at most 1000 rows
Collabora Productivity
www.collaboraofce.co m
Dependent on the row index
it is needed to sum up all the row heights.
Collabora Productivity
www.collaboraofce.co m
Fetched only the porton of iisible header
requested range only
each tme some scroll occurs.
asynchronous
are queued together: only the last one is sent
Collabora Productivity
www.collaboraofce.co m
Computng row distance from the document top independently by the row index
document part the user is working on
PgUp/PgDn
faster even when the visible row range is near to the botuom of the document for a 1 million rows spreadsheet.
the LOK client request and the LOK core reply.
Collabora Productivity
www.collaboraofce.co m
A iery simple data structure keeping tracks of some special positonss
coordinate in pixel
y coordinate in pixel
Collabora Productivity
www.collaboraofce.co m
Collabora Productivity
www.collaboraofce.co m
positons cache:
due to a request from a LOK client
request from a LOK client
is removed.
Collabora Productivity
www.collaboraofce.co m
row index: ialue_type& getNearestByIndex(index_type nIndex)
cell cursor positon:
cached row positon whose index is the nearest to the passed
Collabora Productivity
www.collaboraofce.co m
coordinate: ialue_type& getNearestByPositon(long nPos)
frst row intersectng the visible area of the document for a given view
the top of the document
row positon whose x coordinate is the nearest to the passed one
Collabora Productivity
www.collaboraofce.co m
How it is achieied
ioid inialidateByIndex(index_type nIndex)
deleted from the cache
ioid inialidateByPositon(long nPos)
nPos is deleted from the cache
Collabora Productivity
www.collaboraofce.co m
When is needed:
The soluton takes care of both row/column operatons performed in another iiew and the current tab each iiew is displayings
Collabora Productivity
marco.cecchet@collabora.co.uk