- 30 1月, 2014 6 次提交
-
-
由 Alistair Jones 提交于
Discussed with @tinwelint. I had misunderstood the lucene APIs and this change looks sensible.
-
由 Mattias Persson 提交于
that should be up to the SearcherManager. Closing the IndexReader manually and then trying to release the searcher holding will fail and consecutive calls to SearcherManager#acquire will get stuck in busy-loop. This solves a problem that caused the index population phase to hang after the node scan was complete, when flipping to ONLINE state and there were one or more updates to apply before flipping. Having a constraint creation hang caused the schema write lock be held indefinitely.
-
由 Mattias Persson 提交于
effectively removing an (almost) duplicated line. Introduced by 46c41198
-
由 Chris Gioran 提交于
1.9 merge
-
由 Chris Gioran 提交于
-
由 Chris Gioran 提交于
Conflicts: community/kernel/src/main/java/org/neo4j/kernel/InternalAbstractGraphDatabase.java community/kernel/src/main/java/org/neo4j/kernel/impl/transaction/TxLog.java community/kernel/src/main/java/org/neo4j/kernel/impl/transaction/TxManager.java community/kernel/src/main/java/org/neo4j/kernel/impl/transaction/xaframework/InterceptingXaLogicalLog.java community/kernel/src/main/java/org/neo4j/kernel/impl/transaction/xaframework/XaFactory.java community/kernel/src/main/java/org/neo4j/kernel/impl/transaction/xaframework/XaLogicalLog.java community/kernel/src/main/java/org/neo4j/kernel/impl/transaction/xaframework/XaResourceManager.java community/kernel/src/test/java/org/neo4j/kernel/impl/index/TestIndexCommand.java community/kernel/src/test/java/org/neo4j/kernel/impl/nioneo/store/TestNeoStore.java community/kernel/src/test/java/org/neo4j/kernel/impl/nioneo/store/TestXa.java community/kernel/src/test/java/org/neo4j/kernel/impl/transaction/TestXaFramework.java community/kernel/src/test/java/org/neo4j/kernel/impl/transaction/TxManagerTest.java community/kernel/src/test/java/org/neo4j/kernel/impl/transaction/xaframework/TestStandaloneLogExtractor.java community/kernel/src/test/java/org/neo4j/kernel/impl/transaction/xaframework/TestUpgradeOneDotFourToFiveIT.java community/kernel/src/test/java/org/neo4j/kernel/impl/transaction/xaframework/XaLogicalLogTest.java community/lucene-index/src/test/java/org/neo4j/index/impl/lucene/TestLuceneDataSource.java community/lucene-index/src/test/java/org/neo4j/index/impl/lucene/TestRecovery.java enterprise/backup/src/main/java/org/neo4j/backup/BackupServer.java enterprise/backup/src/main/java/org/neo4j/backup/BackupService.java enterprise/backup/src/main/java/org/neo4j/backup/RebuildFromLogs.java enterprise/cluster/src/main/java/org/neo4j/cluster/protocol/atomicbroadcast/multipaxos/MultiPaxosContext.java enterprise/com/src/main/java/org/neo4j/com/Client.java enterprise/com/src/main/java/org/neo4j/com/Server.java enterprise/com/src/test/java/org/neo4j/com/MadeUpClient.java enterprise/com/src/test/java/org/neo4j/com/MadeUpServer.java enterprise/com/src/test/java/org/neo4j/com/ServerTest.java enterprise/ha/src/main/java/org/neo4j/kernel/ha/BranchDetectingTxVerifier.java enterprise/ha/src/main/java/org/neo4j/kernel/ha/HaRequestType196.java enterprise/ha/src/main/java/org/neo4j/kernel/ha/HighlyAvailableGraphDatabase.java enterprise/ha/src/main/java/org/neo4j/kernel/ha/MasterClient196.java enterprise/ha/src/main/java/org/neo4j/kernel/ha/cluster/zoo/ZooClient.java enterprise/ha/src/main/java/org/neo4j/kernel/ha/com/master/MasterServer.java enterprise/ha/src/main/java/org/neo4j/kernel/ha/com/slave/MasterClient153.java enterprise/ha/src/main/java/org/neo4j/kernel/ha/com/slave/MasterClient17.java enterprise/ha/src/main/java/org/neo4j/kernel/ha/com/slave/MasterClient18.java enterprise/ha/src/main/java/org/neo4j/kernel/ha/com/slave/MasterClientResolver.java enterprise/ha/src/main/java/org/neo4j/kernel/ha/com/slave/SlaveServer.java enterprise/ha/src/test/java/org/neo4j/ha/TransactionConstraintsIT.java enterprise/ha/src/test/java/org/neo4j/test/ha/ClusterManager.java
-
- 29 1月, 2014 19 次提交
-
-
由 Chris Gioran 提交于
Introduction of monitoring in the kernel and HA network operations
-
由 Chris Gioran 提交于
Fixes an issue with phase2Timeout on proposer state
-
由 Chris Gioran 提交于
Adds two tests that make use of TransactionMonitor to monitor transaction propagation in clusters. One test counts events by committing and pushing from both slaves and the master, while the other counts transactions pulled from slaves.
-
由 Chris Gioran 提交于
Introduces TransactionMonitor to facilitate measurement of transaction events, current commits and commit entry injections. Adds support for that in XaResourceManager, tagged by datasource name. Introduces a sample counting implementation meant for testing, EideticTransactionMonitor. Introduces tests for basic functionality in kernel and lucene-index
-
由 Chris Gioran 提交于
TaggedMonitorListenerInvocationHandler was not getting the tags that it was created with. The result was that listeners added for specific tags would get called for all invocations of the observed interface regardless. This commit fixes the issue and adds a test for it.
-
由 Chris Gioran 提交于
ByteCounterMonitor is generic enough so it does not have to be in o.n.k.i.t.xaframework anymore
-
由 Chris Gioran 提交于
BlockLogBuffer now updates a ByterCounterMonitor with the bytes it writes to the underlying buffer. This way all operations that serialize transactions to the network can be monitored. Master and Client instances now make use of that BlockLogBuffer for streaming results and transactions. Introduces a RequestMonitor which logs HA requests. It supports request context via a hashmap which can be set to contain various information about the request logged. Client and Server now update a RequestMonitor with requests sent and received, respectively.
-
由 Chris Gioran 提交于
LogExtractor now updates a ByteCounterMonitor with bytes read while extracting transaction entries from a log XaLogicalLog updates a ByterCounterMonitor when deserializing prepared transactions from disk for sending over the network XaLogicalLog now updates a ByteCounterMonitor when deserializing a transaction stream over the network
-
由 Chris Gioran 提交于
Ha protocols from versions 1.5.3 and 1.7 are no longer supported for rolling upgrades. Hence they are no longer necessary to be present in the codebase.
-
由 Chris Gioran 提交于
It is clear after some usage that log buffer monitoring is really a case of counting bytes, functionality that needs to be replicated in other places as well. It makes sense therefore to have LogBufferMonitor strictly count bytes, rename it to ByterCounterMonitor and reuse it where necessary.
-
由 Chris Gioran 提交于
Uses the Monitors functionality to add bytes written counting facilities to DirectMappedLogBuffer. Achieved via introducing a LogBufferMonitor interface that is used by DMLB. XaLogicalLog and TxLog require access to Monitors to create the proper monitor and pass it to their DMLB.
-
由 Chris Gioran 提交于
There was only one implementation of LogBufferFactory which was a straightforward call to DMLB constructor. This did not call for the need for a factory abstraction and since it was complicating upcoming work on monitoring it has now been removed.
-
由 Andres Taylor 提交于
Fixes #1876
-
由 magnusvejlstrup 提交于
Also fix false index collisions for online indexes
-
由 Andres Taylor 提交于
-
由 Mattias Persson 提交于
-
由 Andres Taylor 提交于
-
由 Chris Vest 提交于
The story so far: * Indexes store all numbers as doubles, and that means that large long values can coerce to the same double values and cause collisions in the index. We fixed this for indexes that are populating, by making them read colliding values out from the property store to double check if the collision is real or not. * We also added a similar "exact match" filtering to the index lookup operations on StateHandlingStatementOperations, to fix index lookups. * What we didn't fix in the first round, was adding new stuff to indexes that are online. This is the bug that Mattias found. * Specifically, the UniquePropertyIndexUpdater verifies that the constraint is still holding in its close method. * This is super bad, because the close method is called in commit - not in prepare, not during the transaction - in commit. Huge no-no. * Initially you'd think that this puts recovery at risk, but that turns out not to be the case, because during recovery, we use a normal index updater instead of the unique one. * So this means that the following scenario was possible: Add two nodes with similar but distinct long values to the index. The ConstraintEnforcingEntityOperations is fine with this because the values are really different. However, the UniquePropertyIndexUpdater trashes the transaction in commit. Now suppose the entire database server crashes for whatever reason, and we must do recovery. We recover the index using the normal updater that just adds the values without checking any constraints. And this is actually totally fine, because we filter for exact matches in the StateHandlingStatementOperations. And so only then does the index work as advertised. We had to crash the database in order to add a valid value to the index. Except, there is a window between the crash of the transaction, and the crash of the database, where the transaction could have been retried with the same exact value and encounter the same exact crash. Now we recover both transactions, and boom: we got a duplicate in the unique index! * The solution I'm going for currently is to just not verify the constraint in the UniquePropertyIndexUpdater.close method... just accept the value as given, and trust that the ConstraintEnforcingEntityOperations has done it's job. * Implementing this solution is made a bit harder by a number of tests operating directly with the IndexUpdaters, instead of checking the publicly observable behaviour. * I intend to rephrase these tests in terms of higher level APIs, but in the mean time (because there are a lot of cases to cover) we will have to ignore all the now failing tests, and see what the robustness suite says.
-
由 Chris Gioran 提交于
When an instance times out on phase 2, if it is closed or delivered it should have its payload retried. This patch adds this functionality.
-
- 28 1月, 2014 11 次提交
-
-
由 Mattias Persson 提交于
-
由 Jacob Hansson 提交于
Removes the ComException wrapping of server-side BranchedDataException
-
由 Mattias Persson 提交于
-
由 Mattias Persson 提交于
-
由 Mattias Persson 提交于
Making the reporting of BiasedWinnerStrategy a bit easier to
-
由 Mattias Persson 提交于
to be instantiable where a Logging dependency is accepted, instead of printing to System.out
-
由 Mattias Persson 提交于
-
由 Mark Needham 提交于
o This is a 1.9 version - lots of classes moved around so I've submitted a 2.0 version as well o Changed wording so it describes it in words that will be easier for the field team to understand o Added tests around the BiasedWinnerStrategy
-
由 Mattias Persson 提交于
Merge branch 'neo4j/1.9-maint' into master
-
由 Mattias Persson 提交于
which is no longer needed due to recent changes in exception streaming from server to client. In fact the wrapping prevented a slave to properly react to branched data and would make that slave unable to ever join the cluster.
-
由 Chris Leishman 提交于
Conflicts: enterprise/ha/src/main/java/org/neo4j/kernel/ha/cluster/HighAvailabilityModeSwitcher.java
-
- 27 1月, 2014 4 次提交
-
-
由 Chris Gioran 提交于
The test MonitorsTest.shouldUnregister() was failing with a ClassCastException. The reason was that it was doing the cast on a field different than the one that it was performing the instanceof check. Conflicts: community/kernel/src/test/java/org/neo4j/kernel/monitoring/MonitorsTest.java
-
由 Mattias Persson 提交于
Adding System.out of which processes gets dumped, for debugging purposes. It's OK since this class is used for in testing/debugging
-
由 Chris Gioran 提交于
The test MonitorsTest.shouldUnregister() was failing with a ClassCastException. The reason was that it was doing the cast on a field different than the one that it was performing the instanceof check. This error is now fixed and the test passes.
-
由 Mattias Persson 提交于
-