private IPartition CreateNewParition(PartitionDate partitionDir, int partitionID, string fullPath, PartitionConfig config) { var newParition = new Partition(_metadata, _fileFactory, Access, partitionDir, partitionID, fullPath, _server, config); if (config == null && Access == EFileAccess.ReadWrite) { newParition.SaveConfig(); } _allPartitions.Enqueue(newParition); return(newParition); }
public void CommitTempPartition(IPartition partition, PartitionTxData txData) { // partition.Commit(); // Close the files partition.Dispose(); var partitionVersion = new PartitionDate(partition.StartDate, partition.Version, _metadata.Settings.PartitionType); var path = Path.Combine(_metadata.Settings.DefaultPath, partitionVersion.Name); Directory.Move(partition.DirectoryPath, path); }
public IPartition CreateTempPartition(int partitionID, DateTime startDateTime, int lastVersion) { var defaultPath = _metadata.Settings.DefaultPath; if (Access != EFileAccess.ReadWrite) { throw new NFSdbAccessException("Journal {0} is open as read only, unable to create temp partitions.", defaultPath); } var partitionType = _metadata.Settings.PartitionType; var newVersion = new PartitionDate(startDateTime, lastVersion + 1, partitionType); var path = Path.Combine(defaultPath, MetadataConstants.DEFAULT_TEMP_PARITION_PREFIX + newVersion.Name); var newPartition = new Partition(_metadata, _fileFactory, EFileAccess.ReadWrite, newVersion, partitionID, path, _server); return(newPartition); }
public Partition(IJournalMetadata metadata, ICompositeFileFactory memeorymMappedFileFactory, EFileAccess access, PartitionDate partitionDate, int partitionID, string path, IJournalServer journalServer, PartitionConfig config = null) { _memeorymMappedFileFactory = memeorymMappedFileFactory; _access = access; _journalServer = journalServer; _config = config; _metadata = metadata; _partitionDate = partitionDate; EndDate = PartitionManagerUtils.GetPartitionEndDate( partitionDate.Date, partitionDate.PartitionType); PartitionID = partitionID; DirectoryPath = path; }
public bool Equals(PartitionDate other) { return(PartitionType == other.PartitionType && Date.Equals(other.Date) && Version == other.Version); }