Пример #1
0
		public SchemaCreator(InMemoryRavenConfiguration configuration, TableStorage storage, Action<string> output, ILog log)
		{
			this.storage = storage;
			this.output = output;
			this.log = log;

			configuration.Container.SatisfyImportsOnce(this);
		}
Пример #2
0
		public void UpdateSchemaVersion(TableStorage tableStorage,  Action<string> output)
		{
			using (var tx = tableStorage.Environment.NewTransaction(TransactionFlags.ReadWrite))
			{
				tx.ReadTree(Tables.Details.TableName).Add("schema_version", ToSchemaVersion);
				tx.Commit();
			}

			tableStorage.SetDatabaseIdAndSchemaVersion(tableStorage.Id, ToSchemaVersion);
		}
Пример #3
0
        public IdGenerator(TableStorage storage)
        {
            tableIds = new ConcurrentDictionary<string, int>();

            using (var snapshot = storage.CreateSnapshot())
            {
                var pages = storage.Pages.TableName;
                tableIds.TryAdd(pages, ReadLastIdFromTable(storage.Pages, snapshot));

                var usage = storage.Usage.TableName;
                tableIds.TryAdd(usage, ReadLastIdFromTable(storage.Usage, snapshot));

                var signatures = storage.Signatures.TableName;
                tableIds.TryAdd(signatures, ReadLastIdFromTable(storage.Signatures, snapshot));
            }
        }
Пример #4
0
        public void Initialize()
        {
            bool runInMemory;
            bool.TryParse(settings["Raven/RunInMemory"], out runInMemory);

            var persistenceSource = runInMemory ? StorageEnvironmentOptions.CreateMemoryOnly() :
                CreateStorageOptionsFromConfiguration(path, settings);

            tableStorage = new TableStorage(persistenceSource, bufferPool);
	        var schemaCreator = new SchemaCreator(configuration, tableStorage, Output, Log);
			schemaCreator.CreateSchema();
			schemaCreator.SetupDatabaseIdAndSchemaVersion();
			schemaCreator.UpdateSchemaIfNecessary();

            SetupDatabaseId();
            idGenerator = new IdGenerator(tableStorage);
        }
Пример #5
0
 public StorageActionsAccessor(TableStorage storage, Reference<WriteBatch> writeBatch, SnapshotReader snapshot, IdGenerator generator, IBufferPool bufferPool)
     : base(snapshot, generator, bufferPool)
 {
     this.storage = storage;
     this.writeBatch = writeBatch;
 }
Пример #6
0
		private static void CreateDetailsSchema(Transaction tx, TableStorage storage)
		{
			storage.Environment.CreateTree(tx, Tables.Details.TableName);
		}
Пример #7
0
		private static void CreateFilesSchema(Transaction tx, TableStorage storage)
		{
			storage.Environment.CreateTree(tx, Tables.Files.TableName);
			storage.Environment.CreateTree(tx, storage.Files.GetIndexKey(Tables.Files.Indices.Count));
			storage.Environment.CreateTree(tx, storage.Files.GetIndexKey(Tables.Files.Indices.ByEtag));
		}
Пример #8
0
		private static void CreatSignaturesSchema(Transaction tx, TableStorage storage)
		{
			storage.Environment.CreateTree(tx, Tables.Signatures.TableName);
			storage.Environment.CreateTree(tx, storage.Signatures.GetIndexKey(Tables.Signatures.Indices.Data));
			storage.Environment.CreateTree(tx, storage.Signatures.GetIndexKey(Tables.Signatures.Indices.ByName));
		}
Пример #9
0
		private static void CreateConfigSchema(Transaction tx, TableStorage storage)
		{
			storage.Environment.CreateTree(tx, Tables.Config.TableName);
		}
Пример #10
0
		private static void CreateUsageSchema(Transaction tx, TableStorage storage)
		{
			storage.Environment.CreateTree(tx, Tables.Usage.TableName);
			storage.Environment.CreateTree(tx, storage.Usage.GetIndexKey(Tables.Usage.Indices.ByFileName));
			storage.Environment.CreateTree(tx, storage.Usage.GetIndexKey(Tables.Usage.Indices.ByFileNameAndPosition));
		}
Пример #11
0
		public abstract void Update(TableStorage tableStorage, Action<string> output);
Пример #12
0
        public void Initialize()
        {
            bool runInMemory;
            bool.TryParse(settings["Raven/RunInMemory"], out runInMemory);

            var persistenceSource = runInMemory ? StorageEnvironmentOptions.CreateMemoryOnly() :
                CreateStorageOptionsFromConfiguration(path, settings);

            tableStorage = new TableStorage(persistenceSource, bufferPool);
            SetupDatabaseId();

            idGenerator = new IdGenerator(tableStorage);

        }