S3 Server was founded by Scality, after a team created open source object-storage at a Hackathon in Paris, France. To keep our innovation, (and innovative team) growing, what better way than to host a hackathon of our own? The goal of the hackathon was to showcase the endless creativity in advancing storage applications, or integrations for current storage solutions. This 3-day event was sponsored by Seagate and Holberton School.
These slides are a recap from Day 1.
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.