Пример #1
0
 private PartitionManager CreatePartitionManager <T>(DisposableTempDir dir,
                                                     ICompositeFileFactory compositeFileFactory, EFileAccess access,
                                                     params string[] symbols)
 {
     return(CreatePartitionManager <T>(EPartitionType.Default, dir, compositeFileFactory,
                                       access, new[] { "default" }, symbols));
 }
Пример #2
0
 public CompositeRawFile(string fileName,
                         int bitHint,
                         ICompositeFileFactory mmf,
                         EFileAccess access,
                         int partitionID,
                         int fileID,
                         int columnID,
                         EDataType dataType,
                         int minBitHint)
 {
     if (bitHint < minBitHint ||
         bitHint > MetadataConstants.MAX_FILE_BIT_HINT)
     {
         throw new NFSdbConfigurationException("Calclated size of file {0} " +
                                               "is invalid. Should be >= 2^{1} and  <= 2^{2} " +
                                               "but was 2^{3}",
                                               fileName,
                                               MetadataConstants.MIN_FILE_BIT_HINT,
                                               MetadataConstants.MAX_FILE_BIT_HINT,
                                               bitHint);
     }
     _bitHint               = bitHint;
     Access                 = access;
     _compositeFile         = mmf.OpenFile(fileName, bitHint, access);
     PartitionID            = partitionID;
     FileID                 = fileID;
     ColumnID               = columnID;
     DataType               = dataType;
     Filename               = fileName;
     _pointersArray         = LongAllocate(INITIAL_PARTS_COLLECTION_SIZE);
     _pointersArrayLen      = INITIAL_PARTS_COLLECTION_SIZE;
     _pointersArrayFixedLen = INITIAL_PARTS_COLLECTION_SIZE;
 }
Пример #3
0
 public ColumnStorage(
     IJournalMetadata metadata,
     string folder,
     EFileAccess access,
     int partitionID,
     ICompositeFileFactory compositeFileFactory)
 {
     _access               = access;
     _partitionID          = partitionID;
     _compositeFileFactory = compositeFileFactory;
     _folder               = folder;
     _openedFiles          = new IRawFile[metadata.FileCount];
 }
Пример #4
0
 public CompositeRawFile(string fileName,
                         int bitHint,
                         ICompositeFileFactory mmf,
                         EFileAccess access,
                         int partitionID,
                         int fileID,
                         int columnID,
                         EDataType dataType)
     : this(fileName,
            bitHint,
            mmf,
            access,
            partitionID,
            fileID,
            columnID,
            dataType,
            MetadataConstants.MIN_FILE_BIT_HINT_NON_DATA)
 {
 }
Пример #5
0
        private PartitionManager CreatePartitionManager <T>(EPartitionType pariPartitionType,
                                                            DisposableTempDir dir,
                                                            ICompositeFileFactory compositeFileFactory,
                                                            EFileAccess access,
                                                            string[] paritions,
                                                            params string[] symbols)
        {
            CreateSubDirs(paritions, dir.DirName);
            JournalMetadata meta = CreateMetadata <T>(pariPartitionType, dir.DirName,
                                                      symbols);
            var txLog = new Mock <ITxLog>();

            txLog.Setup(s => s.Get()).Returns(new TxRec {
                JournalMaxRowID = RowIDUtil.ToRowID(1, 10)
            });

            var part = new PartitionManager(meta, access, compositeFileFactory, new AsyncJournalServer(TimeSpan.FromSeconds(1)), txLog.Object);

            return(part);
        }
Пример #6
0
        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;
        }
Пример #7
0
        public PartitionManager(IJournalMetadata metadata, EFileAccess access,
                                ICompositeFileFactory fileFactory, IJournalServer server, ITxLog txLog = null)
        {
            Access       = access;
            _metadata    = metadata;
            _settings    = metadata.Settings;
            _fileFactory = fileFactory;
            _server      = server;
            Server       = server;

            if (txLog == null)
            {
                var txFileName = Path.Combine(metadata.Settings.DefaultPath, MetadataConstants.TX_FILE_NAME);
                _txLogFile = new CompositeRawFile(txFileName,
                                                  MetadataConstants.PIPE_BIT_HINT, _fileFactory, access, SYMBOL_PARTITION_ID,
                                                  MetadataConstants.TX_LOG_FILE_ID, MetadataConstants.TX_LOG_FILE_ID, EDataType.Data);

                txLog = new TxLog(_txLogFile);
            }
            _txLog = txLog;
        }
Пример #8
0
 private PartitionManager CreatePartitionManager(JournalMetadata meta,
                                                 ICompositeFileFactory compositeFileFactory,
                                                 EFileAccess access = EFileAccess.ReadWrite)
 {
     return(new PartitionManager(meta, access, compositeFileFactory, new Mock <IJournalServer>().Object));
 }