S3 Server, a Scality product, was born after a hackathon in Paris, France in 2015. What better way to continue with our philosophy of innovation than to host a hackathon of our own?
On October 21st, coders joined us for a weekend of coding, developing new solutions for storage, integrations for S3 and much more!
This event was sponsored by Seagate and hosted at Holberton School.
7. How are we judging?
We know the code will not be beautiful!
We’re looking for a functional prototype
It’s OK not to handle quirky corner cases!
8. How are we judging?
Innovation - We’re looking for creative solutions
Market potential - It has to solve a real problem!
Execution - A working demo ☺
9. Each team has:
A name,
A mentor,
A clear defined project that’s achievable,
Developers and a leader,
Each team will do a 5 minutes pitch + demo on Sunday
20. Kinetic On SMR (Shingled Magnetic Recording)
What is Kinetic
Kinetic is a drive architecture in which the drive is a key/value service with Ethernet connectivity
Put/Get/Delete API over TCP/SSL
https://www.openkinetic.org/
SMR
Data recording technology used in drives to increase storage density and overall storage capacity
https://en.wikipedia.org/wiki/Shingled_magnetic_recording
Why Kinetic on SMR
Increase storage capacity
Same Put/Get/Delete API (SMR is transparent to users/applications)
21. Kinetic Development Overview
Kinetic Simulator
Functionally equivalent to Kinetic Drives.
https://github.com/Kinetic/kinetic-java
Build
git clone https://github.com/Kinetic/kinetic-java.git
mvn clean package
Run (one or more instances)
java -jar kinetic-simulator/target/kinetic-simulator-"Version"-SNAPSHOT-jar-with-dependencies.jar or
./bin/startSimulator.sh
More Information Related to Build
https://github.com/Kinetic/kinetic-java/blob/master/README.md
Preferred IDE: Eclipse (Mars and up)
http://www.eclipse.org/downloads/packages/eclipse-ide-java-developers/neon1a
22. Notes On Kinetic K/V Keys
Keys are sorted lexicographically. e.g.
http://google.github.io/guava/releases/snapshot/api/docs/com/google/common/primitives/
UnsignedBytes.html#lexicographicalComparator%28%29
https://github.com/Kinetic/kinetic-java/blob/master/kinetic-simulator/src/main/java/com/se
agate/kinetic/simulator/persist/leveldb/KineticComparator.java
Use sequential keys for better throughput (not required for later releases)
An example to generate sequential keys
https://github.com/Kinetic/kinetic-java/blob/master/kinetic-test/src/test/java/com/seagate/ki
netic/KVGenerator.java
23. Hackathon Group Key Space
Each group is recommended to use its own assigned key space (prefix) to avoid
conflict for shared drives. For example, group 1 is assigned prefix of “00”, group 2
is assigned prefix of “01”., etc. Eg:
All keys in group 1 would be in the form of “000”, “001”, “002” ..., etc.
All keys in group 2 would be in the form of “010”, “011”, “012” ..., etc.
All keys in group 3 would be in the form of “020”, “021”, “022” ..., etc.