Example #1
0
        public static void Main(string[] args)
        {
            // 1. Create databases.
            var mongodbDatabase = new MongodbDatabase("mongodb://admin(admin):adminpwd0375@localhost:27017/local");
            var mysqlDatabase   = new AdoNetDatabase("server=.\\SQLEXPRESS; Database=UniformTest; Trusted_Connection=yes;", SqlServerDialect.Provider);

            // 2. Create database metadata
            var database = UniformDatabase.Create(config => config
                                                  .RegisterDocument <CommentDocument>()
                                                  .RegisterDocument <UserDocument>()
                                                  .RegisterDocument <QuestionDocument>()
                                                  .RegisterDocument <VoteDocument>()
                                                  .RegisterDatabase(SampleDatabases.Mongodb, mongodbDatabase)
                                                  .RegisterDatabase(SampleDatabases.Sql, mysqlDatabase)
                                                  );

            var mydb = new MyDatabase(database);

            database.EnterInMemoryMode();
            mydb.Comments.Save("asdfasdkhafhasldfh", c => { });

            // 3. Optional.
            RunViewModelRegeneration(database);

            var stopwatch = Stopwatch.StartNew();

            database.LeaveInMemoryMode(true);
            stopwatch.Stop();
            Console.WriteLine("Flushed in {0:n0} ms", stopwatch.ElapsedMilliseconds);
            Console.ReadKey();
        }
Example #2
0
        public static void LoadTwoStep(IDbConnectionFactory factory, MongodbDatabase database)
        {
            var selected = LoadSelected(factory);
            var bulk     = SelectedToBulkLoad(selected);
            var loader   = new MongodbBulkLoader(database.Database, database.UniformDatabase.Metadata);

            loader.Load(bulk);
        }
        public MongodbCollection(MongodbDatabase database, Type documentType, String collectionName)
        {
            if (collectionName == null) throw new ArgumentNullException("collectionName");

            _database = database;
            _documentType = documentType;
            _collectionName = collectionName;
            _metadata = _database.UniformDatabase.Metadata;

            var mongoSettings = new MongoCollectionSettings {AssignIdOnInsert = false};
            _collection = _database.Database.GetCollection(documentType, _collectionName, mongoSettings);
        }
Example #4
0
        public static void ConfigureUniform(IUnityContainer container)
        {
            var settings = container.Resolve<PrototypeSettings>();

            // 1. Create databases
            var mongodbDatabase = new MongodbDatabase(settings.MongoViewConnectionString);

            // 2. Configure uniform
            var uniform = UniformDatabase.Create(config => config
                .RegisterDocuments(typeof(PatientView).Assembly)
                .RegisterDatabase(ViewDatabases.Mongodb, mongodbDatabase));

            container.RegisterInstance(uniform);
        }
Example #5
0
        public void ConfigureUniform(IContainer container)
        {
            var settings = container.GetInstance <SiteSettings>();

            // 1. Create databases
            var mongodbDatabase = new MongodbDatabase(settings.MongoViewConnectionString);

            // 2. Configure uniform
            var uniform = UniformDatabase.Create(config => config
                                                 .RegisterDocuments(typeof(UserView).Assembly)
                                                 .RegisterDatabase(ViewDatabases.Mongodb, mongodbDatabase));

            container.Configure(config => config.For <UniformDatabase>().Singleton().Use(uniform));
        }
Example #6
0
        public static void FillDb(Int32 count)
        {
            List <AverageDocument> averages = new List <AverageDocument>();
            List <AnotherDocument> anothers = new List <AnotherDocument>();

            for (int i = 0; i < count; i++)
            {
                var average = new AverageDocument()
                {
                    Id         = "average/" + i,
                    Name       = "asdfasdf asdfasd fadsf adsfadsfasdfasd fadsf adsfadsfasdfasd fadsf adsfadsfasdfasd fadsf adsfadsfasdfasd fadsf adsfadsfasdfasd fadsf adsfadsfasdfasd fadsf adsfadsfasdfasd fadsf adsfadsfasdfasd fadsf adsfadsfasdfasd fadsf adsfadsfasdfasd fadsf adsfadsfasdfasd fadsf adsfadsfasdfasd fadsf adsfadsfasdfasd fadsf adsfadsfasdfasd fadsf adsfadsfasdfasd fadsf adsfadsfasdfasd fadsf adsfadsfasdfasd fadsf adsfadsfasdfasd fadsf adsfadsfasdfasd fadsf adsfadsfasdfasd fadsf adsfadsfasdfasd fadsf adsfadsfasdfasd fadsf adsfadsfasdfasd fadsf adsfadsfasdfasd fadsf adsfadsfasdfasd fadsf adsfadsfasdfasd fadsf adsfadsfasdfasd fadsf adsfadsf ",
                    Year       = 4545,
                    Additional = "asdfasdfasdfasdf asdf adfasdf asd f",
                    AnotherId  = "another/" + 5
                };
                averages.Add(average);
            }

            var another = new AnotherDocument()
            {
                Id         = "another/" + 5,
                Name       = "asdfasdf asdfasd fadsfasdfasd fadsfasdfasd fadsfasdfasd fadsfasdfasd fadsfasdfasd fadsfasdfasd fadsfasdfasd fadsfasdfasd fadsfasdfasd fadsfasdfasd fadsfasdfasd fadsfasdfasd fadsfasdfasd fadsfasdfasd fadsfasdfasd fadsfasdfasd fadsfasdfasd fadsfasdfasd fadsfasdfasd fadsfasdfasd fadsfasdfasd fadsfasdfasd fadsfasdfasd fadsfasdfasd fadsfasdfasd fadsfasdfasd fadsfasdfasd fadsfasdfasd fadsfasdfasd fadsfasdfasd fadsfasdfasd fadsfasdfasd fadsfasdfasd fadsfasdfasd fadsfasdfasd fadsfasdfasd fadsfasdfasd fadsf adsfadsf ",
                Year       = 4545,
                Additional = "asdfasdfasdfasdf asdf adfasdfasdfasdfasdfasdf asdf adfasdfasdfasdfasdfasdf asdf adfasdfasdfasdfasdfasdf asdf adfasdfasdfasdfasdfasdf asdf adfasdfasdfasdfasdfasdf asdf adfasdfasdfasdfasdfasdf asdf adfasdfasdfasdfasdfasdf asdf adfasdfasdfasdfasdfasdf asdf adfasdfasdfasdfasdfasdf asdf adfasdfasdfasdfasdfasdf asdf adfasdfasdfasdfasdfasdf asdf adfasdfasdfasdfasdfasdf asdf adfasdf asd f"
            };

            anothers.Add(another);

            var mdatabase = new MongodbDatabase("mongodb://localhost:27017/local");

            mdatabase.Database.GetCollection("averages").Drop();
            mdatabase.Database.GetCollection("anothers").Drop();
            mdatabase.Database.GetCollection("averages").InsertBatch(averages);
            mdatabase.Database.GetCollection("anothers").InsertBatch(anothers);

            var dbFactory  = new OrmLiteConnectionFactory("server=127.0.0.1;Uid=root;Pwd=qwerty;Database=test;", MySqlDialectProvider.Instance);
            var connection = dbFactory.OpenDbConnection();
            var command    = connection.CreateCommand();

            command.DropTable <AnotherDocument>();
            command.DropTable <AverageDocument>();
            command.CreateTable <AnotherDocument>();
            command.CreateTable <AverageDocument>();

            var transaction = connection.BeginTransaction();

            command.InsertAll(averages);
            command.InsertAll(anothers);
            transaction.Commit();
        }
Example #7
0
        public static void TestLoading()
        {
/*
 *          var metadata = DatabaseMetadata.Create(config => config
 *              .AddDocumentType<AverageDocument>()
 *          );
 *
 */
            var mdatabase  = new MongodbDatabase("mongodb://localhost:27017/local");
            var dbFactory  = new OrmLiteConnectionFactory("server=127.0.0.1;Uid=root;Pwd=qwerty;Database=test;", MySqlDialectProvider.Instance);
            var connection = dbFactory.OpenDbConnection();


            //FillDb(997);

            //var res = LoadAllTogether(connection);


            Console.ReadKey();
            var stopwatch  = Stopwatch.StartNew();
            var count      = 1000;
            var tasksCount = 10;

            var tasks = new Task[tasksCount];
            var half  = count / tasksCount;

            for (int i = 0; i < half; i++)
            {
                //LoadAllTogether(connection);
                //LoadSelected(connection);

                for (int j = 0; j < tasks.Length; j++)
                {
                    tasks[j] = Task.Factory.StartNew(() => { LoadTwoStep(dbFactory, mdatabase); });
                }
                //tasks[j] = Task.Factory.StartNew(() => { LoadAllTogether(dbFactory); });

                Task.WaitAll(tasks);
            }
            stopwatch.Stop();
            Console.WriteLine("Loaded {0} times in {1}. Performing {2:0.00} requests/second", count,
                              stopwatch.ElapsedMilliseconds, count / (stopwatch.ElapsedMilliseconds / (double)1000));
        }
Example #8
0
        public static void FillDb(Int32 count)
        {
            List<AverageDocument> averages = new List<AverageDocument>();
            List<AnotherDocument> anothers = new List<AnotherDocument>();
            for (int i = 0; i < count; i++)
            {
                var average = new AverageDocument()
                {
                    Id = "average/" + i,
                    Name = "asdfasdf asdfasd fadsf adsfadsfasdfasd fadsf adsfadsfasdfasd fadsf adsfadsfasdfasd fadsf adsfadsfasdfasd fadsf adsfadsfasdfasd fadsf adsfadsfasdfasd fadsf adsfadsfasdfasd fadsf adsfadsfasdfasd fadsf adsfadsfasdfasd fadsf adsfadsfasdfasd fadsf adsfadsfasdfasd fadsf adsfadsfasdfasd fadsf adsfadsfasdfasd fadsf adsfadsfasdfasd fadsf adsfadsfasdfasd fadsf adsfadsfasdfasd fadsf adsfadsfasdfasd fadsf adsfadsfasdfasd fadsf adsfadsfasdfasd fadsf adsfadsfasdfasd fadsf adsfadsfasdfasd fadsf adsfadsfasdfasd fadsf adsfadsfasdfasd fadsf adsfadsfasdfasd fadsf adsfadsfasdfasd fadsf adsfadsfasdfasd fadsf adsfadsfasdfasd fadsf adsfadsf ",
                    Year = 4545,
                    Additional = "asdfasdfasdfasdf asdf adfasdf asd f",
                    AnotherId = "another/" + 5
                };
                averages.Add(average);
            }

            var another = new AnotherDocument()
            {
                Id = "another/" + 5,
                Name = "asdfasdf asdfasd fadsfasdfasd fadsfasdfasd fadsfasdfasd fadsfasdfasd fadsfasdfasd fadsfasdfasd fadsfasdfasd fadsfasdfasd fadsfasdfasd fadsfasdfasd fadsfasdfasd fadsfasdfasd fadsfasdfasd fadsfasdfasd fadsfasdfasd fadsfasdfasd fadsfasdfasd fadsfasdfasd fadsfasdfasd fadsfasdfasd fadsfasdfasd fadsfasdfasd fadsfasdfasd fadsfasdfasd fadsfasdfasd fadsfasdfasd fadsfasdfasd fadsfasdfasd fadsfasdfasd fadsfasdfasd fadsfasdfasd fadsfasdfasd fadsfasdfasd fadsfasdfasd fadsfasdfasd fadsfasdfasd fadsfasdfasd fadsf adsfadsf ",
                Year = 4545,
                Additional = "asdfasdfasdfasdf asdf adfasdfasdfasdfasdfasdf asdf adfasdfasdfasdfasdfasdf asdf adfasdfasdfasdfasdfasdf asdf adfasdfasdfasdfasdfasdf asdf adfasdfasdfasdfasdfasdf asdf adfasdfasdfasdfasdfasdf asdf adfasdfasdfasdfasdfasdf asdf adfasdfasdfasdfasdfasdf asdf adfasdfasdfasdfasdfasdf asdf adfasdfasdfasdfasdfasdf asdf adfasdfasdfasdfasdfasdf asdf adfasdfasdfasdfasdfasdf asdf adfasdf asd f"
            };
            anothers.Add(another);

            var mdatabase = new MongodbDatabase("mongodb://localhost:27017/local");
            mdatabase.Database.GetCollection("averages").Drop();
            mdatabase.Database.GetCollection("anothers").Drop();
            mdatabase.Database.GetCollection("averages").InsertBatch(averages);
            mdatabase.Database.GetCollection("anothers").InsertBatch(anothers);

            var dbFactory = new OrmLiteConnectionFactory("server=127.0.0.1;Uid=root;Pwd=qwerty;Database=test;", MySqlDialectProvider.Instance);
            var connection = dbFactory.OpenDbConnection();
            var command = connection.CreateCommand();
            command.DropTable<AnotherDocument>();
            command.DropTable<AverageDocument>();
            command.CreateTable<AnotherDocument>();
            command.CreateTable<AverageDocument>();

            var transaction = connection.BeginTransaction();
            command.InsertAll(averages);
            command.InsertAll(anothers);
            transaction.Commit();
        }
Example #9
0
        public static void TestLoading()
        {
            /*
            var metadata = DatabaseMetadata.Create(config => config
                .AddDocumentType<AverageDocument>()
            );

            */
            var mdatabase = new MongodbDatabase("mongodb://localhost:27017/local");
            var dbFactory = new OrmLiteConnectionFactory("server=127.0.0.1;Uid=root;Pwd=qwerty;Database=test;", MySqlDialectProvider.Instance);
            var connection = dbFactory.OpenDbConnection();

            //FillDb(997);

            //var res = LoadAllTogether(connection);

            Console.ReadKey();
            var stopwatch = Stopwatch.StartNew();
            var count = 1000;
            var tasksCount = 10;

            var tasks = new Task[tasksCount];
            var half = count/tasksCount;
            for (int i = 0; i < half; i ++)
            {
                //LoadAllTogether(connection);
                //LoadSelected(connection);

                for (int j = 0; j < tasks.Length; j++)
                    tasks[j] = Task.Factory.StartNew(() => { LoadTwoStep(dbFactory, mdatabase); });
                    //tasks[j] = Task.Factory.StartNew(() => { LoadAllTogether(dbFactory); });

                Task.WaitAll(tasks);
            }
            stopwatch.Stop();
            Console.WriteLine("Loaded {0} times in {1}. Performing {2:0.00} requests/second", count,
                stopwatch.ElapsedMilliseconds, count / (stopwatch.ElapsedMilliseconds / (double) 1000));
        }
Example #10
0
        public static void Main(string[] args)
        {
            // 1. Create databases.
            var mongodbDatabase = new MongodbDatabase("mongodb://admin(admin):adminpwd0375@localhost:27017/local");
            var mysqlDatabase = new AdoNetDatabase("server=.\\SQLEXPRESS; Database=UniformTest; Trusted_Connection=yes;", SqlServerDialect.Provider);

            // 2. Create database metadata
            var database = UniformDatabase.Create(config => config
                .RegisterDocument<CommentDocument>()
                .RegisterDocument<UserDocument>()
                .RegisterDocument<QuestionDocument>()
                .RegisterDocument<VoteDocument>()
                .RegisterDatabase(SampleDatabases.Mongodb, mongodbDatabase)
                .RegisterDatabase(SampleDatabases.Sql, mysqlDatabase)
            );

            var mydb = new MyDatabase(database);

            database.EnterInMemoryMode();
            mydb.Comments.Save("asdfasdkhafhasldfh", c => { });

            // 3. Optional.
            RunViewModelRegeneration(database);

            var stopwatch = Stopwatch.StartNew();
            database.LeaveInMemoryMode(true);
            stopwatch.Stop();
            Console.WriteLine("Flushed in {0:n0} ms", stopwatch.ElapsedMilliseconds);
            Console.ReadKey();
        }
Example #11
0
 public static void LoadTwoStep(IDbConnectionFactory factory, MongodbDatabase database)
 {
     var selected = LoadSelected(factory);
     var bulk = SelectedToBulkLoad(selected);
     var loader = new MongodbBulkLoader(database.Database, database.UniformDatabase.Metadata);
     loader.Load(bulk);
 }