A computer-implemented method for performing sparse linear algebra in a column-oriented in-memory database, the method comprising: causing an engine to store an updatable column representation of data comprising a matrix A in a main structure, A M, and in a delta structure, A Δ, of an in-memory database, wherein A = A M + A Δ, wherein the main structure representation comprises a Compressed Spares Row, CSR, representation with three columns row pointer, column and value, wherein the delta structure representation comprises triples <row, column, value>; causing the engine to merge the delta structure into the main structure when the delta size exceeds a defined threshold; said merging including: causing the engine to sort the columns of the updatable column representation in the main structure according to row column values; and causing the engine to derive a row pointer vector according to the sorted columns in the main structure; the method further comprising: causing the engine to perform an algebraic operation comprising a matrix-vector multiplication y T = x T · A T = x T · A M,T + x T · A Δ,T, wherein the engine references the row pointer vector to perform the vector multiplication x T · A M,T; causing the engine to store a result of the algebraic operation, and causing the engine to update the column representation of the data comprising the matrix A, wherein inserts of non-zero matrix elements are processed by respectively appending a <row, column, value> triple to the delta structure, wherein updates of already existing nonzero matrix elements are performed in-place, either in main or in delta, wherein deletion of matrix elements comprises utilizing a validity control bitvector for the main table and the delta structure, respectively, wherein, for each element to be deleted, a bit of a container position corresponding to the element to be deleted is unset in the respective main bitvector or delta bitvector, and wherein when performing said matrix-vector multiplication, the main bitvector and the delta bitvector are checked in order to skip deleted matrix elements. causing an engine to store an updatable column representation of data comprising a matrix A in a main structure, A M, and in a delta structure, A Δ, of an in-memory database, wherein A = A M + A Δ, wherein the main structure representation comprises a Compressed Spares Row, CSR, representation with three columns row pointer, column and value, wherein the delta structure representation comprises triples <row, column, value>; causing the engine to merge the delta structure into the main structure when the delta size exceeds a defined threshold; causing the engine to sort the columns of the updatable column representation in the main structure according to row column values; and causing the engine to derive a row pointer vector according to the sorted columns in the main structure; causing the engine to perform an algebraic operation comprising a matrix-vector multiplication y T = x T · A T = x T · A M,T + x T · A Δ,T, wherein the engine references the row pointer vector to perform the vector multiplication x T · A M,T; causing the engine to store a result of the algebraic operation, and causing the engine to update the column representation of the data comprising the matrix A, wherein inserts of non-zero matrix elements are processed by respectively appending a <row, column, value> triple to the delta structure, wherein updates of already existing nonzero matrix elements are performed in-place, either in main or in delta, wherein deletion of matrix elements comprises utilizing a validity control bitvector for the main table and the delta structure, respectively, wherein, for each element to be deleted, a bit of a container position corresponding to the element to be deleted is unset in the respective main bitvector or delta bitvector, and wherein when performing said matrix-vector multiplication, the main bitvector and the delta bitvector are checked in order to skip deleted matrix elements.