Esempio n. 1
0
//JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes:
//ORIGINAL LINE: @Test public void endLockSessionDoesNotUnpackResponse() throws Throwable
//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in C#:
        public virtual void EndLockSessionDoesNotUnpackResponse()
        {
            StoreId storeId       = new StoreId(1, 2, 3, 4, 5);
            long    txChecksum    = 123;
            long    lastAppliedTx = 5;

            ResponseUnpacker responseUnpacker = mock(typeof(ResponseUnpacker));

            MasterImpl.SPI masterImplSPI = MasterImplTest.mockedSpi(storeId);
            when(masterImplSPI.PackTransactionObligationResponse(any(typeof(RequestContext)), ArgumentMatchers.any())).thenReturn(Response.empty());
            when(masterImplSPI.GetTransactionChecksum(anyLong())).thenReturn(txChecksum);

            NewMasterServer(masterImplSPI);

            MasterClient client = NewMasterClient320(storeId, responseUnpacker);

            HandshakeResult handshakeResult;

            using (Response <HandshakeResult> handshakeResponse = client.Handshake(1, storeId))
            {
                handshakeResult = handshakeResponse.ResponseConflict();
            }
            verify(responseUnpacker).unpackResponse(any(typeof(Response)), any(typeof(TxHandler)));
            reset(responseUnpacker);

            RequestContext context = new RequestContext(handshakeResult.Epoch(), 1, 1, lastAppliedTx, txChecksum);

            client.EndLockSession(context, false);
            verify(responseUnpacker, never()).unpackResponse(any(typeof(Response)), any(typeof(TxHandler)));
        }
Esempio n. 2
0
//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in C#:
//ORIGINAL LINE: private void createTransactionLogWithCheckpoint(org.neo4j.kernel.configuration.Config config, boolean logsInStoreDir) throws java.io.IOException
        private void CreateTransactionLogWithCheckpoint(Config config, bool logsInStoreDir)
        {
            Org.Neo4j.Storageengine.Api.StoreId storeId = SimulateStoreCopy();

            int fromTxId = 37;
            int endTxId  = fromTxId + 5;

            TransactionLogCatchUpWriter catchUpWriter = new TransactionLogCatchUpWriter(_databaseLayout, _fs, _pageCache, config, NullLogProvider.Instance, fromTxId, PartOfStoreCopyConflict, logsInStoreDir, true);

            // when
            for (int i = fromTxId; i <= endTxId; i++)
            {
                catchUpWriter.OnTxReceived(new TxPullResponse(ToCasualStoreId(storeId), Tx(i)));
            }

            catchUpWriter.Close();

            // then
            LogFilesBuilder logFilesBuilder = LogFilesBuilder.activeFilesBuilder(_databaseLayout, _fs, _pageCache);

            if (!logsInStoreDir)
            {
                logFilesBuilder.WithConfig(config);
            }
            LogFiles logFiles = logFilesBuilder.Build();

            VerifyTransactionsInLog(logFiles, fromTxId, endTxId);
            VerifyCheckpointInLog(logFiles, PartOfStoreCopyConflict);
        }
Esempio n. 3
0
//JAVA TO C# CONVERTER WARNING: 'final' parameters are ignored unless the option to convert to C# 7.2 'in' parameters is selected:
//ORIGINAL LINE: public org.neo4j.com.Response<org.neo4j.kernel.ha.com.master.HandshakeResult> handshake(final long txId, org.neo4j.storageengine.api.StoreId storeId)
        public override Response <HandshakeResult> Handshake(long txId, StoreId storeId)
        {
            Serializer serializer = buffer => buffer.writeLong(txId);
            Deserializer <HandshakeResult> deserializer = (buffer, temporaryBuffer) => new HandshakeResult(buffer.readLong(), buffer.readLong());

            return(SendRequest(_requestTypes.type(HaRequestTypes_Type.Handshake), RequestContext.EMPTY, serializer, deserializer, storeId, Org.Neo4j.com.storecopy.ResponseUnpacker_TxHandler_Fields.NoOpTxHandler));
        }
Esempio n. 4
0
//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in C#:
//ORIGINAL LINE: public org.neo4j.causalclustering.identity.StoreId readStoreId(org.neo4j.io.layout.DatabaseLayout databaseLayout) throws java.io.IOException
        public virtual StoreId ReadStoreId(DatabaseLayout databaseLayout)
        {
            File neoStoreFile = databaseLayout.MetadataStore();

            Org.Neo4j.Storageengine.Api.StoreId kernelStoreId = MetaDataStore.getStoreId(_pageCache, neoStoreFile);
            return(new StoreId(kernelStoreId.CreationTime, kernelStoreId.RandomId, kernelStoreId.UpgradeTime, kernelStoreId.UpgradeId));
        }
Esempio n. 5
0
//JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes:
//ORIGINAL LINE: @Test public void shouldFailSubsequentRequestsAfterAllocateIdsAfterMasterSwitch() throws Throwable
//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in C#:
        public virtual void ShouldFailSubsequentRequestsAfterAllocateIdsAfterMasterSwitch()
        {
            // GIVEN
            MasterImpl.SPI spi = MasterImplTest.mockedSpi();
            IdAllocation   servedIdAllocation = IdAllocation(0, 999);

            when(spi.AllocateIds(any(typeof(IdType)))).thenReturn(servedIdAllocation);
            when(spi.GetTransactionChecksum(anyLong())).thenReturn(10L);
            StoreId         storeId   = newStoreIdForCurrentVersion();
            MasterImpl      master    = new MasterImpl(spi, mock(typeof(ConversationManager)), mock(typeof(MasterImpl.Monitor)), Config.defaults(ClusterSettings.server_id, "1"));
            HandshakeResult handshake = master.Handshake(1, storeId).response();

            master.Start();

            // WHEN/THEN
            IdAllocation idAllocation = master.AllocateIds(Context(handshake.Epoch()), IdType.NODE).response();

            assertEquals(servedIdAllocation.HighestIdInUse, idAllocation.HighestIdInUse);
            try
            {
                master.AllocateIds(Context(handshake.Epoch() + 1), IdType.NODE);
                fail("Should fail with invalid epoch");
            }
            catch (InvalidEpochException)
            {               // Good
            }
        }
Esempio n. 6
0
//JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes:
//ORIGINAL LINE: @Test public void pullRotatesWhenThresholdCrossedAndExplicitlySet() throws java.io.IOException
//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in C#:
        public virtual void PullRotatesWhenThresholdCrossedAndExplicitlySet()
        {
            // given
            Config config = Config.defaults();

            config.Augment(GraphDatabaseSettings.logical_log_rotation_threshold, "1M");                 // 1 mebibyte

            // and
            Org.Neo4j.Storageengine.Api.StoreId storeId = SimulateStoreCopy();

            // and
            long fromTxId = BASE_TX_ID;
            TransactionLogCatchUpWriter subject = new TransactionLogCatchUpWriter(_databaseLayout, _fs, _pageCache, config, NullLogProvider.Instance, fromTxId, PartOfStoreCopyConflict, false, true);

            // when a bunch of transactions received
            LongStream.range(fromTxId, _manyTransactions).mapToObj(TransactionLogCatchUpWriterTest.tx).map(tx => new TxPullResponse(ToCasualStoreId(storeId), tx)).forEach(subject.onTxReceived);
            subject.Close();

            // then there was a rotation
            LogFilesBuilder logFilesBuilder = LogFilesBuilder.activeFilesBuilder(_databaseLayout, _fs, _pageCache);
            LogFiles        logFiles        = logFilesBuilder.Build();

            assertNotEquals(logFiles.LowestLogVersion, logFiles.HighestLogVersion);
            VerifyTransactionsInLog(logFiles, fromTxId, _manyTransactions);
            VerifyCheckpointInLog(logFiles, PartOfStoreCopyConflict);
        }
Esempio n. 7
0
 public MemberIsAvailable(string role, InstanceId instanceId, URI clusterUri, URI roleUri, StoreId storeId)
 {
     this._role       = role;
     this._instanceId = instanceId;
     this._clusterUri = clusterUri;
     this._roleUri    = roleUri;
     this._storeId    = storeId;
 }
Esempio n. 8
0
//JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes:
//ORIGINAL LINE: @Test(expected = org.neo4j.kernel.impl.store.MismatchingStoreIdException.class) public void newClientsShouldNotIgnoreStoreIdDifferences() throws Throwable
//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in C#:
        public virtual void NewClientsShouldNotIgnoreStoreIdDifferences()
        {
            // Given
            MasterImpl.SPI masterImplSPI = MasterImplTest.mockedSpi(StoreIdTestFactory.newStoreIdForCurrentVersion(1, 2, 3, 4));
            when(masterImplSPI.GetTransactionChecksum(anyLong())).thenReturn(5L);

            NewMasterServer(masterImplSPI);

            StoreId      storeId      = StoreIdTestFactory.newStoreIdForCurrentVersion(5, 6, 7, 8);
            MasterClient masterClient = NewMasterClient320(storeId);

            // When
            masterClient.Handshake(1, storeId);
        }
Esempio n. 9
0
//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in C#:
//ORIGINAL LINE: public void readExternal(java.io.ObjectInput in) throws java.io.IOException, ClassNotFoundException
        public override void ReadExternal(ObjectInput @in)
        {
            _role       = @in.readUTF();
            _instanceId = ( InstanceId )@in.readObject();
            _clusterUri = URI.create(@in.readUTF());
            _roleUri    = URI.create(@in.readUTF());
            // if MemberIsAvailable message comes from old instance than we can't read storeId
            try
            {
                _storeId = StoreId.from(@in);
            }
            catch (IOException)
            {
                _storeId = StoreId.DEFAULT;
            }
        }
Esempio n. 10
0
        private void ShouldGatherForensicsInFullBackupRequest(bool forensics)
        {
            // GIVEN
            Response <Void> response = Response.empty();
            StoreId         storeId  = response.StoreId;
            string          host     = "localhost";
            int             port     = PortAuthority.allocatePort();
            LifeSupport     life     = new LifeSupport();

            LogEntryReader <ReadableClosablePositionAwareChannel> reader = new VersionAwareLogEntryReader <ReadableClosablePositionAwareChannel>();
            NullLogProvider    logProvider        = NullLogProvider.Instance;
            ResponseUnpacker   responseUnpacker   = mock(typeof(ResponseUnpacker));
            ByteCounterMonitor byteCounterMonitor = mock(typeof(ByteCounterMonitor));
            RequestMonitor     requestMonitor     = mock(typeof(RequestMonitor));
            BackupClient       client             = new BackupClient(host, port, null, logProvider, storeId, 10_000, responseUnpacker, byteCounterMonitor, requestMonitor, reader);

            life.Add(client);
            ControlledBackupInterface backup = new ControlledBackupInterface();
            HostnamePort hostnamePort        = new HostnamePort(host, port);

            life.Add(new BackupServer(backup, hostnamePort, logProvider, byteCounterMonitor, requestMonitor));
            life.Start();

            try
            {
                // WHEN
                StoreWriter writer = mock(typeof(StoreWriter));
                client.FullBackup(writer, forensics);

                // THEN
                assertEquals(forensics, backup.ReceivedForensics);
            }
            finally
            {
                life.Shutdown();
            }
        }
Esempio n. 11
0
 public TransactionObligationResponse(T response, StoreId storeId, long obligationTxId, ResourceReleaser releaser) : base(response, storeId, releaser)
 {
     this._obligationTxId = obligationTxId;
 }
Esempio n. 12
0
 public TransactionStreamResponse(T response, StoreId storeId, TransactionStream transactions, ResourceReleaser releaser) : base(response, storeId, releaser)
 {
     this._transactions = transactions;
 }
Esempio n. 13
0
        private MasterClient NewMasterClient320(StoreId storeId, ResponseUnpacker responseUnpacker)
        {
//JAVA TO C# CONVERTER WARNING: The .NET Type.FullName property will not always yield results identical to the Java Class.getName method:
            return(Life.add(new MasterClient320(MASTER_SERVER_HOST, MASTER_SERVER_PORT, null, NullLogProvider.Instance, storeId, TIMEOUT, TIMEOUT, 1, CHUNK_SIZE, responseUnpacker, _monitors.newMonitor(typeof(ByteCounterMonitor), typeof(MasterClient320).FullName), _monitors.newMonitor(typeof(RequestMonitor), typeof(MasterClient320).FullName), _logEntryReader)));
        }
Esempio n. 14
0
 public ForeignStoreException(StoreId store, StoreId clusterStore) : base(format("%s has different origin than the rest of the cluster, %s", store, clusterStore))
 {
 }
Esempio n. 15
0
 public MasterClient214(string destinationHostNameOrIp, int destinationPort, string originHostNameOrIp, LogProvider logProvider, StoreId storeId, long readTimeoutMillis, long lockReadTimeoutMillis, int maxConcurrentChannels, int chunkSize, ResponseUnpacker responseUnpacker, ByteCounterMonitor byteCounterMonitor, RequestMonitor requestMonitor, LogEntryReader <ReadableClosablePositionAwareChannel> entryReader) : base(destinationHostNameOrIp, destinationPort, originHostNameOrIp, logProvider, storeId, MasterServer.FRAME_LENGTH, readTimeoutMillis, maxConcurrentChannels, chunkSize, responseUnpacker, byteCounterMonitor, requestMonitor, entryReader)
 {
     this._lockReadTimeoutMillis  = lockReadTimeoutMillis;
     this._requestTypes           = new HaRequestType210(entryReader, CreateLockResultSerializer());
     this._lockResultDeserializer = CreateLockResultDeserializer();
 }
Esempio n. 16
0
 private StoreId ToCasualStoreId(Org.Neo4j.Storageengine.Api.StoreId storeId)
 {
     return(new StoreId(storeId.CreationTime, storeId.RandomId, storeId.UpgradeTime, storeId.UpgradeId));
 }
 public MismatchingStoreIdException(StoreId expected, StoreId encountered) : base("Expected:" + expected + ", encountered:" + encountered)
 {
     this._expected    = expected;
     this._encountered = encountered;
 }
Esempio n. 18
0
 public override void MemberIsAvailable(string role, InstanceId availableId, URI atURI, StoreId storeId)
 {
 }
Esempio n. 19
0
 /// <summary>
 /// Logged when a member becomes available as a role, such as MASTER or SLAVE.
 /// </summary>
 /// <param name="role"> </param>
 /// <param name="availableId"> the role connection information for the new role holder </param>
 /// <param name="atUri">       the URI at which the instance is available at </param>
 public override void MemberIsAvailable(string role, InstanceId availableId, URI atUri, StoreId storeId)
 {
     _log.info("Instance %s is available as %s at %s with %s", PrintId(availableId, atUri), role, atUri.toASCIIString(), storeId);
 }
Esempio n. 20
0
 public bool EqualToKernelStoreId(Org.Neo4j.Storageengine.Api.StoreId kernelStoreId)
 {
     return(_creationTime == kernelStoreId.CreationTime && _randomId == kernelStoreId.RandomId && _upgradeTime == kernelStoreId.UpgradeTime && _upgradeId == kernelStoreId.UpgradeId);
 }
Esempio n. 21
0
 private static MasterImpl.SPI MockMasterImplSpiWith(StoreId storeId)
 {
     return(when(mock(typeof(MasterImpl.SPI)).storeId()).thenReturn(storeId).Mock);
 }
Esempio n. 22
0
 public MasterClient310(string destinationHostNameOrIp, int destinationPort, string originHostNameOrIp, LogProvider logProvider, StoreId storeId, long readTimeoutMillis, long lockReadTimeout, int maxConcurrentChannels, int chunkSize, ResponseUnpacker unpacker, ByteCounterMonitor byteCounterMonitor, RequestMonitor requestMonitor, LogEntryReader <ReadableClosablePositionAwareChannel> entryReader) : base(destinationHostNameOrIp, destinationPort, originHostNameOrIp, logProvider, storeId, readTimeoutMillis, lockReadTimeout, maxConcurrentChannels, chunkSize, unpacker, byteCounterMonitor, requestMonitor, entryReader)
 {
 }
Esempio n. 23
0
 private MasterClient NewMasterClient320(StoreId storeId)
 {
     return(NewMasterClient320(storeId, NO_OP_RESPONSE_UNPACKER));
 }