Skip to content

Instantly share code, notes, and snippets.

@nik9000
Created October 19, 2020 19:39
Show Gist options
  • Save nik9000/cb44d0f56af4863f7add3144211eb03f to your computer and use it in GitHub Desktop.
Save nik9000/cb44d0f56af4863f7add3144211eb03f to your computer and use it in GitHub Desktop.
Introduction
Who is Nik
What is elasticsearch
My plan - 20 minutes of prepared material and then whatever folks would like
Who are you people?
Name, experience with Elasticsearch, what you are interested in doing
Fork the repo
Download latest JDK
Demonstration Part 1 - https://gist.github.com/nik9000/7f1c8670dd84a008c97035c1d40b2a16
git clone [email protected]:yourname/elasticsearch.git
Demonstration Part 2 - https://gist.github.com/nik9000/1500f8896b30db104ec0f113f85a627a
Ok! Now that you have it, lets run it!
export JAVA_HOME=~/Downloads/tmp/jdk-15/
./gradlew run
<wait a long time for it to compile, download, compile, download, compile, and start>
new window. Now use the gists!
Where should we go from here? Ideas:
Get it into an IDE
Run tests
Trace the execution on the _bulk request
Trace the execution of an agg
Run a test in your IDE
Look for good first issues
Notes if we trace a _bulk request:
Every API has three parts RestBulkAction/BulkRequest/BulkResponse/TransportBulkAction
TransportBlahAction does the actual action.
In this case it groups the parts of the bulk into BulkShardRequest per shard and then runs *that* it.
*that* is serialized to the node holding the primary for the shard
It performs on the primary and then serializes to the replicas and performs there
The word "Transport" is because you might have been "transported" from one node to another and then executed. Its a weird name.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment