private static void TestGuids() { Console.WriteLine("Basic tests start"); string filename = "test.db"; using (FileStoreManager fsm = new FileStoreManager(filename)) { Guid id1 = new Guid("f8c88a04-97b3-445b-a62c-eeeac7b40959"); Guid id2 = new Guid("5dfee98f-476a-4e1f-bea4-2b455577b699"); Guid id3 = new Guid("b15bb1dd-d565-4f11-aa47-ff3fe68d6c99"); fsm.PushEntry(id1, "id1 string"); fsm.PushEntry(id2, "id2 string"); fsm.PushEntry(id3, "id3 string"); Console.WriteLine("Entries found: {0}", fsm.GetAllEntries().Count()); Console.WriteLine("id1: {0}", fsm.GetEntry<string>(id1)); Console.WriteLine("id2: {0}", fsm.GetEntry<string>(id2)); Console.WriteLine("id3: {0}", fsm.GetEntry<string>(id3)); fsm.Delete(); } Console.WriteLine("Basic tests end\r\n"); }
private static void TestManyRecords() { Console.WriteLine("Many records test start"); string filename = "testmany.db"; FileStoreManager fsm = new FileStoreManager(filename); Console.WriteLine("Entries found: {0}", fsm.GetAllEntries().Count()); //writing first entry so initialization will be done fsm.PushEntry(Guid.NewGuid(), Guid.NewGuid()); Random r = new Random(); List<Tuple<Guid, byte[]>> biglist = new List<Tuple<Guid, byte[]>>(); Stopwatch sw = Stopwatch.StartNew(); Console.Write("Preparing test data..."); for (var i = 0; i < 70000; i++) { byte[] data = new byte[100]; r.NextBytes(data); biglist.Add(new Tuple<Guid, byte[]>(Guid.NewGuid(), data)); } Console.WriteLine("Done in {0}ms", sw.ElapsedMilliseconds); sw.Restart(); Console.Write("Writing entries to disk..."); for (var i = 0; i < biglist.Count(); i++) { fsm.PushEntry(biglist[i].Item1, biglist[i].Item2); } Console.WriteLine("Saved {0} objects in {1}ms", biglist.Count(), sw.ElapsedMilliseconds); sw.Restart(); Console.Write("Reading back data... "); var entries = fsm.GetAllEntries(); Console.WriteLine("Entries read after insert: {0} in {1} ms", entries.Count(),sw.ElapsedMilliseconds); sw.Restart(); Console.Write("Verifying entries... "); foreach (var item in biglist) { var data = fsm.GetEntry<byte[]>(item.Item1); if (memcmp(data, item.Item2, item.Item2.Length) != 0) Console.WriteLine("ERROR!"); } Console.WriteLine("Verified {0} entries in {1}ms", biglist.Count(), sw.ElapsedMilliseconds); Console.WriteLine(fsm.GetStatistics()); fsm.Delete(); Console.WriteLine("Many records test end\r\n"); }
public void FindWorkingTransaction() { Store store = new Store("c:\\brightstar\\twitteringtest\\", false); FileStoreManager fsm = new FileStoreManager(StoreConfiguration.DefaultStoreConfiguration); int txnCount = 0; foreach (var cp in store.GetCommitPoints()) { var oldStore = fsm.OpenStore("c:\\brightstar\\twitteringtest\\", cp.LocationOffset); try { oldStore.ExecuteSparqlQuery(TestQuery, SparqlResultsFormat.Xml); Console.WriteLine("Query worked for commit point : {0} @ {1}", cp.LocationOffset, cp.CommitTime); break; } catch (Exception) { Console.WriteLine("Query failed for commit point : {0} @ {1}", cp.LocationOffset, cp.CommitTime); txnCount++; } } var txnLog = fsm.GetTransactionLog("c:\\brightstar\\twitteringtest"); var txnList = txnLog.GetTransactionList(); for (int i = 0; i <= txnCount; i++) { txnList.MoveNext(); var txnInfo = txnList.Current; Console.WriteLine("Transaction #{0}: Start: {1}, Status: {2}, JobId: {3}", i, txnInfo.TransactionStartTime, txnInfo.TransactionStatus, txnInfo.JobId); } // Going back to last known good store.RevertToCommitPoint(new CommitPoint(242472899, 0, DateTime.UtcNow, Guid.Empty)); var toReplay = new List <ITransactionInfo>(); txnList = txnLog.GetTransactionList(); for (int i = 0; i < 10; i++) { txnList.MoveNext(); toReplay.Add(txnList.Current); } var storeWorker = new StoreWorker("c:\\brightstar", "twitteringtest"); for (int i = 9; i >= 0; i--) { Console.WriteLine("Applying transaction : {0}", toReplay[i].JobId); txnLog.GetTransactionData(toReplay[i].DataStartPosition); var jobId = Guid.NewGuid(); var updateJob = new UpdateTransaction(jobId, null, storeWorker); updateJob.ReadTransactionDataFromStream(txnLog.GetTransactionData(toReplay[i].DataStartPosition)); updateJob.Run(); var readStore = storeWorker.ReadStore as Store; var resource = readStore.Resolve(1518601251); Assert.IsNotNull(resource); try { var query = StoreExtensions.ParseSparql(TestQuery); using (var resultStream = new MemoryStream()) { storeWorker.Query(query, SparqlResultsFormat.Xml, resultStream, new[] { Constants.DefaultGraphUri }); } Console.WriteLine("Query succeeded"); } catch (Exception ex) { Console.WriteLine("Query failed: " + ex.Message); Assert.Fail(); } } }