Example #1
0
            private void HandleBatchOfCountersIfNecessary()
            {
                if (_docCount < MaxDocumentCount && _countersPerDoc < MaxCountersPerDocument)
                {
                    return;
                }

                var prevCommand     = _prevCommand;
                var prevCommandTask = _prevCommandTask;

                var commandTask = _database.TxMerger.Enqueue(_cmd);

                _prevCommand     = _cmd;
                _prevCommandTask = commandTask;

                if (prevCommand != null)
                {
                    AsyncHelpers.RunSync(() => prevCommandTask);
                }

                _cmd = new CountersHandler.ExecuteCounterBatchCommand(_database)
                {
                    HasWrites = true
                };

                _docCount       = 0;
                _countersPerDoc = 0;
            }
Example #2
0
            private void HandleBatchOfCountersIfNecessary()
            {
                if (_batchSize < _maxBatchSize)
                {
                    return;
                }

                var prevCommand     = _prevCommand;
                var prevCommandTask = _prevCommandTask;

                var commandTask = _database.TxMerger.Enqueue(_cmd);

                _prevCommand     = _cmd;
                _prevCommandTask = commandTask;

                if (prevCommand != null)
                {
                    AsyncHelpers.RunSync(() => prevCommandTask);
                }

                _cmd = new CountersHandler.ExecuteCounterBatchCommand(_database)
                {
                    HasWrites = true
                };

                _batchSize = 0;
            }
Example #3
0
 public CounterActions(DocumentDatabase database)
 {
     _database = database;
     _docCount = 0;
     _cmd      = new CountersHandler.ExecuteCounterBatchCommand(_database)
     {
         HasWrites = true
     };
 }
Example #4
0
            private void FinishBatchOfCounters()
            {
                if (_prevCommand != null)
                {
                    AsyncHelpers.RunSync(() => _prevCommandTask);
                    _prevCommand = null;
                }

                if (_docCount > 0)
                {
                    AsyncHelpers.RunSync(() => _database.TxMerger.Enqueue(_cmd));
                }

                _cmd = null;
            }