-
Notifications
You must be signed in to change notification settings - Fork 1k
Merge from ngageoint #1357
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Open
ghost
wants to merge
48
commits into
thinkaurelius:titan11
Choose a base branch
from
ngageoint:master
base: titan11
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Merge from ngageoint #1357
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
The current version of ElasticSearch supports the GeoPolygonFilter, so it's trivial to add support for polygons with an arbitray number of boundary points. Signed-off-by: Evan Owen <[email protected]>
…lly even be needed
This reverts commit fc11a96.
…Format tests to reproduce issue thinkaurelius#1268.
…puter, I noticed that com should probably be org in the docstring.
…nals directly into FulgoraGraphComputer to fix the issues I was having in OLAPTest and elsewhere about typing things as a TitanGraphComputer - simply moving TitanGraphComputer functionality into Fulgora and having FulgoraGraphComputer extend GraphComputer instead of TitanGraphComputer and search/replacing TitanGraphComputer in the tests for GraphComputer seemed to work fine. Line 191 in OLAPTest was giving me a null pointer until I did this despite all fluent/old-builder and in between ways I tried to get a GraphTraversalSource going with FulgoraGraphComputer. The seeds were sown here for GraphFilter compatibility, but I noticed when digging around in the codebase that ScanJob-land seems to implement similar push-down predicate functionality at least according to the comments and what possibly incorrect understanding I could glean. It is currently beyond me how to rectify the two angles for filtering data lifted out of the persistence engine properly. FulgoraMemory, FulgoraVertexMemory, and FulgoraGraphComputer were updated to use the new VertexComputeKey and MemoryComputeKey models - to do this I reviewed the changes that were implemented in TinkerGraphComputer along these lines. In order to allow MapReduce to set MemoryComputekeys, I altered the timing at which memory.completeSubRound() is called in FulgoraGraphComputer so that this.execute would no longer be true when MapReducers were trying to add their keys to memory. I made no realy effort to ensure that the new transient/broadcast flags are respected or that they are not a problem. Hence, they probably are a problem. I added this.XXXX in many places simply to copy the pattern set in TinkerGraphComputer - I gave up doing this half-way, which is probably bad. I added in the check on whether the number of workers (threads in Titan) exceeds the features().getMaxWorkers of FulgoraGraphComputer. On that note I made no effort to check that features() are accurate or respected. I will also note that I don't understand how TinkerGraphComputerView and Titan's ScanJob execution compare/contrast. Comments about divergence between TinkerGraphComputer and FulgoraGraphComputer throughout highlight my lack of qualification for this task. As near as I could tell, the interface between Titan's internals with strings as property keys and such and the VertexComputeKey model is in the FulgoraVertexMemory.getIdMap function which I changed to stream vertexProgram.getVertexComputeKeys() into a HashSet. I also updated the test vertex program classes and MapReducers to use VertexComputeKeys/MemoryComputeKeys and have the right methods to match the TP 3.2.0-incubating interfaces. My biggest concern in this is the changes I made to TitanGraphTest. It seems that many traversals with a LocalStep where Titan previously expected to have a TitanVertexStep at a particular spot in the traversal now have a LocalStep at that point. Changing all those tests to simply expect LocalStep instead worked but at what cost? More troubling is that I kept getting a null pointer from the "~metrics" sideEffect key after changing some tests to reflect changes @rjbriody made to profiling so I commented out the calls to verifyMetrics() in TitanGraphTest. I checked in the console and these same traversals on some super simple test data for an in-memory TitanGraph worked fine - I looked through QueryProfiler, TP3ProfileWrapper, and other mentions of "profile" in the codebase but couldn't figure out what was going on - the "~metrics" sideEffect just came up with a null pointer here, although in the console the explain() and other output seemed to show things working as I understand I should expect them too. I will note that at one point I thought it was the order().by() call and something to do with HasStepFolder.foldInOrder/foldInHasContainer logic, at another point I thought it was the LocalStep thing and/or TitanLocalQueryOptimizerStrategy, and at another point blamed my failure to get Titan to use the new GraphStep.processHasContainerIds() method in HasStepFolder. I am hopeful that TP3ProfileWrapper is all that must be changed - I just don't know how yet, maybe because I needed to look at it with fresh eyes. TitanH1OutputFormat was changed and I am worried that it needs to respect isTransient() for persistableKeys. I followed the upgrade docs about the changes to ComparatorHolder re: OrderXXXStep and Traversal.Admin in signatures where errors cropped up, but could not figure out how to incorporate the helper method GraphStep.processHasContainerIds although it looked like it would be a dead simple drop into the HasStepFolder.foldInHasContainers method where the code looked exactly like the sample in the 3.2.0-incubating upgrade docs for how TinkerGraphStepStrategy was modified (foldInHasContainers is called from TitanGraphStepStrategy). I do know from BulkLoader.getVertexById and such that Titan does not play well with the V().hasId(x) method.
…t "required" me to mangle every pom in the repo. I don't know what this craziness about org.apache.curator:curator-recipes:2.7.2 vs. 2.7.1 was, and it may have had something to do with me building hadoop-2.7.2 from source just before I started adding hadoop-2.7.2 to the Titan poms. I almost guarentee what I did here was completely hamfisted, broken, and wrong, but it did seem to resolve the dependency conflicts between an imaginary version of that artifacy that has some ghostly presence in my local m2 repository only and the 2.7.1 version that is clearly what is needed and present in maven central. I also upgraded the snappy version to match what was in spark-gremlin, and didn't seem to find any other version mismatches I should fix but I'm sure I will be surprised later on.
What is this sorcery?
Conflicts: titan-es/src/main/java/com/thinkaurelius/titan/diskstorage/es/ElasticSearchIndex.java titan-test/src/main/java/com/thinkaurelius/titan/diskstorage/indexing/IndexProviderTest.java
…ing and querying Geoshape properties with line and polygon type.
Conflicts: titan-hadoop-parent/titan-hadoop-core/src/test/java/com/thinkaurelius/titan/hadoop/CassandraInputFormatIT.java
as a result of referring to his post in the PR thread we were able to apply the simple fix and rollback the oddball curator recipes dependency/exclusion throughout the pom files of many modules.
… for test logging
Hi @tprelle, thanks for your contribution! In order for us to evaluate and accept your PR, we ask that you sign a contribution license agreement. It's all electronic and will take just minutes. |
…significant updates to FulgoraGraphComputer and associated memory implementation, support for GraphSON 2.0 and support for interrupts in HBase backend. Opt out of IoTest#shouldReadGraphMLWithNoEdgeLabel and GraphComputerTest#shouldSupportGraphFilter (see reasons in OptOut declarations). Skip titan-hadoop-1 tests (hadoop1 is no longer supported).
Conflicts: titan-hadoop-parent/titan-hadoop-1/pom.xml titan-hadoop-parent/titan-hadoop-2/pom.xml
Update to Tinkerpop 3.2.3 and fix tests
…o pure nashorn ScriptEngine, which is no longer supported (see apache/tinkerpop@b93feb4#diff-405cf53bc6db5ca966b3a3b764720101).
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
No description provided.