private List<string> AddEntries(Tree tree, int treeNumber) { var entriesAdded = new List<string>(); for (int j = 0; j < treeNumber; j++) { string key = "value_" + j; tree.Add(key, new MemoryStream(new byte[128])); entriesAdded.Add(key); } return entriesAdded; }
private OverflowsAddResult AddOverflows(Transaction tx, Tree tree, int treeNumber, Random r) { var minOverflowSize = AbstractPager.NodeMaxSize - Constants.PageHeaderSize + 1; var entriesAdded = new List<string>(); var overflowsAdded = 0; for (int j = 0; j < treeNumber; j++) { var overflowSize = r.Next(minOverflowSize, 10000); string key = "overflow_" + j; tree.Add(key, new MemoryStream(new byte[overflowSize])); entriesAdded.Add(key); overflowsAdded += tx.DataPager.GetNumberOfOverflowPages(overflowSize); } return new OverflowsAddResult { AddedEntries = entriesAdded, NumberOfOverflowPages = overflowsAdded }; }
private void put_doc(Random r, Guid etag, Dictionary<Guid, string> inMemoryKeysByEtag, HashSet<string> inMemoryKeys, string docKey, Tree docsTree, Tree metadataTree, Tree indexTree) { var docMetadata = new byte[r.Next(100, 7000)]; Array.Copy(etag.ToByteArray(), docMetadata, 16); if (inMemoryKeys.Add(docKey) == false) { // update var existingEtag = inMemoryKeysByEtag.First(x => x.Value == docKey).Key; indexTree.Delete(existingEtag.ToString()); inMemoryKeysByEtag.Remove(existingEtag); } docsTree.Add(docKey, get_doc_data(r)); metadataTree.Add(docKey, docMetadata); indexTree.Add(etag.ToString(), docKey); inMemoryKeysByEtag[etag] = docKey; }