A method (200; 800) comprising: receiving (810; 215) a request for creating a logical data structure of an in-memory database , the in-memory database on a commodity computing system including personal computers, desktop computers, and/or laptop computers, the request for creating and storing new fragments in memory; determining a size of fragments of memory for the logical data structure based on a set of criteria, wherein the size of each fragment is determined to be a same size as a size of an L1 cache memory; requesting (840; 220) a set of segments of memory , wherein the requested memory segments are allocated based on the size of fragments; upon receiving the set of segments of memory, generating a plurality of fragments of memory from the set of segments of memory; grouping (860; 230) the plurality of fragments of memory into the logical data structure , the plurality of fragments of memory configured to store data of the logical data structure ; and after creating and logically grouping the fragments, loading the plurality of logically grouped fragments of memory into memory; wherein the logical data structure includes a trie data structure, the trie data structure being an ordered tree data structure including a plurality of nodes, wherein a first fragment of the fragments includes a root of the tree, a first child node of the root, and descendants of the first child node, and wherein a second fragment and subsequent fragments include a second child node of the root with its descendants and each of further children nodes of the root with their descendants, respectively; wherein the trie data structure is traversed using a depth-first traversal technique. receiving (810; 215) a request for creating a logical data structure of an in-memory database , the in-memory database on a commodity computing system including personal computers, desktop computers, and/or laptop computers, the request for creating and storing new fragments in memory; determining a size of fragments of memory for the logical data structure based on a set of criteria, wherein the size of each fragment is determined to be a same size as a size of an L1 cache memory; requesting (840; 220) a set of segments of memory , wherein the requested memory segments are allocated based on the size of fragments; upon receiving the set of segments of memory, generating a plurality of fragments of memory from the set of segments of memory; grouping (860; 230) the plurality of fragments of memory into the logical data structure , the plurality of fragments of memory configured to store data of the logical data structure ; and after creating and logically grouping the fragments, loading the plurality of logically grouped fragments of memory into memory; wherein the logical data structure includes a trie data structure, the trie data structure being an ordered tree data structure including a plurality of nodes, wherein a first fragment of the fragments includes a root of the tree, a first child node of the root, and descendants of the first child node, and wherein a second fragment and subsequent fragments include a second child node of the root with its descendants and each of further children nodes of the root with their descendants, respectively; wherein the trie data structure is traversed using a depth-first traversal technique. <EOS>