Home / file parsed but not updating / Cost of updating secondary indices

Cost of updating secondary indices

In databases, data is organized into tables, sorted by the ‘primary key’ of each data row.The primary key is generally either a globally unique id (GUID) or so other uniquely identifying information for that row.

Then to find all the people living at ‘123 Jump Street’ you can the just jump right to those keys, giving you the information for all the people directly from the ‘people’ table.However, suppose you wanted to lookup the person by their address - maybe you want to find all the people living at ‘123 Jump Street’.With the current table setup, you would have to scan the , looking at each record to see if that person lives at ‘123 Jump Street’ - potentially huge, time consuming query.The problem with this approach for a distributed system is that transactions are when spread across machines.To be completely safe they require a Paxos-like protocol to complete, which can be very costly time-wise.For instance, in a database of people, you could use social security numbers (SSNs) as the primary key each person-row.Then to find a person by SSN, you can then do O(lg(n)) lookups and find that row (assuming the SQL database of your choice implicitly creates an index on the primary key - otherwise, this is also a full table scan since SQL-esque database usually don’t store data in sorted order, though indexes are stored in B-Trees).On average, another 8 bytes per row are required if the table has at least one non-unique sorted secondary key.Additional memory costs are incurred if a secondary key needs to be updated after changes to internal table content.Otherwise, programs that use tables of this type (and populate these tables with non-unique rows based on this component) will no longer function properly. Note that the system field is populated by the assigned secondary index, if sorted secondary keys are used.


  1. Additional runtime costs arise, if a secondary table index needs to be updated after changes to table content. The ABAP runtime environment delays these.

  2. In Aerospike, secondary indexes are specified on a bin-by-bin basis like RDBMS columns. This allows efficient updates and minimizes the amount of resources.

  3. Secondary index selection problem and the selection is done per table. Whereas. The update costs of a secondary index are indepen- dent of other existing.

  4. Cost Model for Our Analysis. We ignore CPU costs. cost is only approximated. Heap file with unclustered B + tree index on search key. set of queries and updates we run against the db. unclustered, primary vs. secondary, and dense.

  5. The additional storage costs for the global secondary index will offset the cost. any global secondary indexes on that table are updated asynchronously, using.

  6. In this paper, cost formulas are derived for the updates of data and indexes in. AND TIBERIO, P. A separability-based method for secondary index selection in.

Leave a Reply

Your email address will not be published. Required fields are marked *