kinetic / kinetic-java Goto Github PK
View Code? Open in Web Editor NEWKinetic Java Library and Simulator.
Kinetic Java Library and Simulator.
I created this issue (kinetic c):
Kinetic/kinetic-c#53
Essentially, large messages over TLS seem to be problematic when using the real disks.
Is there someone who could try this with their disks?
After downloading latest kinetic-java simulator, I am seeing this error on compilation in WIndows:
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.
0:compile (default-compile) on project kinetic-client: Compilation failure: Comp
ilation failure:
[ERROR] /C:/Users/dabhijit/git/kinetic-java/kinetic-client/src/main/java/kinetic
/client/ClientConfiguration.java:[127,13] cannot find symbol
[ERROR] symbol: class ConnectionListener
[ERROR] location: class kinetic.client.ClientConfiguration
[ERROR] /C:/Users/dabhijit/git/kinetic-java/kinetic-client/src/main/java/kinetic
/client/ClientConfiguration.java:[564,39] cannot find symbol
[ERROR] symbol: class ConnectionListener
[ERROR] location: class kinetic.client.ClientConfiguration
[ERROR] /C:/Users/dabhijit/git/kinetic-java/kinetic-client/src/main/java/kinetic
/client/ClientConfiguration.java:[574,12] cannot find symbol
[ERROR] symbol: class ConnectionListener
[ERROR] location: class kinetic.client.ClientConfiguration
We've noticed some message fields need to be filled in while previously (0.8.0.3) there was an assumed default when they were left blank.
synchronization
is such a field. Are there any others ?
There appears to be a problem with kinetic-java/kinetic-client/src/main/java/com/seagate/kinetic/client/io/MessageHandler.java in the method writeAsync
near line 325. The code in question is
// synchronized (this) {
while (this.ackmap.size() >= this.asyncQueuedSize && this.isRunning) {
this.wait();
// }
}
This code is attempting to limit the queue size to asyncQueuedSize
but because of the extra && this.isRunning
clause, if the MessageHandler, i.e. this
, isn't running or isn't running yet, then the queue can grow to arbitrary size.
This actually happens at the start of the microAsync
method in the micro performance test.
I don't know why the && this.isRunning
clause is here. I probably just don't understand. But without it, i.e. with just
// synchronized (this) {
while ( this.ackmap.size() >= this.asyncQueuedSize ) {
this.wait();
// }
}
the queue size is correctly limited.
It seems broken as it is. Suggestions?
cd ~/wprkspace
In p2p push from drive A to drive B, if a key is specified in the list to push,
but not present at A, there is no exception, it's just skipped.
Is this intended behaviour? (we tested the simulator, will test the real thing shortly)
In the line 80 and 83, there should be startSimulator instead of kineticsimulator.
While using the C++ client to fetch a keyrange, I get this exception:
Exception in thread "Simulator-16" java.lang.OutOfMemoryError: Java heap space
at com.google.protobuf.ByteString.copyFrom(ByteString.java:192)
at com.google.protobuf.CodedInputStream.readBytes(CodedInputStream.java:324)
at com.seagate.kinetic.proto.KineticDb$Versioned.<init>(KineticDb.java:131)
at com.seagate.kinetic.proto.KineticDb$Versioned.<init>(KineticDb.java:68)
at com.seagate.kinetic.proto.KineticDb$Versioned$1.parsePartialFrom(KineticDb.java:164)
at com.seagate.kinetic.proto.KineticDb$Versioned$1.parsePartialFrom(KineticDb.java:159)
at com.seagate.kinetic.proto.KineticDb$Versioned$Builder.mergeFrom(KineticDb.java:1304)
at com.seagate.kinetic.proto.KineticDb$Versioned$Builder.mergeFrom(KineticDb.java:1184)
at com.google.protobuf.AbstractMessage$Builder.mergeFrom(AbstractMessage.java:337)
at com.google.protobuf.AbstractMessage$Builder.mergeFrom(AbstractMessage.java:267)
at com.google.protobuf.AbstractMessageLite$Builder.mergeFrom(AbstractMessageLite.java:170)
at com.google.protobuf.AbstractMessage$Builder.mergeFrom(AbstractMessage.java:882)
at com.google.protobuf.AbstractMessage$Builder.mergeFrom(AbstractMessage.java:267)
at com.google.protobuf.AbstractMessageLite$Builder.mergeFrom(AbstractMessageLite.java:161)
at com.google.protobuf.AbstractMessage$Builder.mergeFrom(AbstractMessage.java:875)
at com.seagate.kinetic.simulator.persist.KVValue.<init>(KVValue.java:35)
at com.seagate.kinetic.simulator.persist.leveldb.LevelDbStore.getRange(LevelDbStore.java:395)
at com.seagate.kinetic.simulator.persist.leveldb.LevelDbStore.getRange(LevelDbStore.java:59)
at com.seagate.kinetic.simulator.persist.RangeOp.operation(RangeOp.java:125)
at com.seagate.kinetic.simulator.internal.SimulatorEngine.processRequest(SimulatorEngine.java:419)
at com.seagate.kinetic.simulator.io.provider.nio.NioQueuedRequestProcessRunner.doProcessMessage(NioQueuedRequestProcessRunner.java:190)
at com.seagate.kinetic.simulator.io.provider.nio.NioQueuedRequestProcessRunner.run(NioQueuedRequestProcessRunner.java:136)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:744)
Basically, I'm doing this:
void dump(std::shared_ptr<kinetic::BlockingKineticConnection> bc){
std:: string last_key(4096, '\xff');
int count = 0;
for (kinetic::KeyRangeIterator it =
bc -> IterateKeyRange("", true, last_key, true, 1000);
it != kinetic::KeyRangeEnd();
++it) {
printf("%s\n", it->c_str());
count ++;
}
std:: cout << std::endl << "count=" << count << std::endl;
}
The previous fix for this issue (see #5 and 06f0103 ) is insufficient.
In my case I have 2 kinetic simulators running for which the following is true:
this sadly enough results in the same world_wide_name (and serial_number) for different instances of the simulator.
One way to fix it would be generating a unique id (guid/uuid) once and persisting it in the home dir of the node. Or you could grab some piece of unique info about the node from somewhere (such as the actual ip address, or the mac address of one of the nics or ...)
The current behaviour is interfering with my test automation... but I can work around it (e.g. by having different home dirs for the simulators on different nodes)
Hi,
My team and I can't get the simulator to work properly.
We are working on OSX 10.10.3
maven 3.3.3
java 1.8.0_45
Installation works fine but tests are failing as shown here :
===============================================
GRP-simulator
Tests run: 371, Failures: 13, Skips: 0
===============================================
[TestNG] Time taken by [FailedReporter passed=0 failed=0 skipped=0]: 51 ms
[TestNG] Time taken by org.testng.reporters.JUnitReportReporter@77afea7d: 60 ms
[TestNG] Time taken by org.testng.reporters.EmailableReporter2@6d86b085: 34 ms
[TestNG] Time taken by org.testng.reporters.jq.Main@299a06ac: 246 ms
[TestNG] Time taken by org.testng.reporters.XMLReporter@4ac68d3e: 140 ms
[TestNG] Time taken by org.testng.reporters.SuiteHTMLReporter@1f89ab83: 297 ms
Tests run: 371, Failures: 13, Errors: 0, Skipped: 0, Time elapsed: 49.749 sec <<< FAILURE! - in TestSuite
getLogNewAPI(com.seagate.kinetic.adminAPI.KineticAdminTest) Time elapsed: 0.037 sec <<< FAILURE!
java.lang.AssertionError: getLog throw exception: Kinetic Command Exception: INVALID_REQUEST: java.lang.NumberFormatException: For input string: ",11"
at org.testng.Assert.fail(Assert.java:94)
at com.seagate.kinetic.adminAPI.KineticAdminTest.getLogNewAPI(KineticAdminTest.java:2278)
testGetCapacityAndUtilization(com.seagate.kinetic.adminAPI.KineticAdminTest) Time elapsed: 0.006 sec <<< FAILURE!
java.lang.AssertionError: getLog throw exception: Kinetic Command Exception: INVALID_REQUEST: java.lang.NumberFormatException: For input string: ",38"
at org.testng.Assert.fail(Assert.java:94)
at com.seagate.kinetic.adminAPI.KineticAdminTest.testGetCapacityAndUtilization(KineticAdminTest.java:2707)
testGetTemperatureAndCapacityAndUtilization(com.seagate.kinetic.adminAPI.KineticAdminTest) Time elapsed: 0.018 sec <<< FAILURE!
java.lang.AssertionError: getLog throw exception: Kinetic Command Exception: INVALID_REQUEST: java.lang.NumberFormatException: For input string: ",53"
at org.testng.Assert.fail(Assert.java:94)
at com.seagate.kinetic.adminAPI.KineticAdminTest.testGetTemperatureAndCapacityAndUtilization(KineticAdminTest.java:2533)
testGetTemperatureAndUtilization(com.seagate.kinetic.adminAPI.KineticAdminTest) Time elapsed: 0.002 sec <<< FAILURE!
java.lang.AssertionError: getLog throw exception: Kinetic Command Exception: INVALID_REQUEST: java.lang.NumberFormatException: For input string: ",55"
at org.testng.Assert.fail(Assert.java:94)
at com.seagate.kinetic.adminAPI.KineticAdminTest.testGetTemperatureAndUtilization(KineticAdminTest.java:2664)
testGetUtilization(com.seagate.kinetic.adminAPI.KineticAdminTest) Time elapsed: 0.004 sec <<< FAILURE!
java.lang.AssertionError: getLog throw exception: Kinetic Command Exception: INVALID_REQUEST: java.lang.NumberFormatException: For input string: ",62"
at org.testng.Assert.fail(Assert.java:94)
at com.seagate.kinetic.adminAPI.KineticAdminTest.testGetUtilization(KineticAdminTest.java:2399)
testLockDevice_withIncorrectLockpin(com.seagate.kinetic.adminAPI.KineticAdminTest) Time elapsed: 0.016 sec <<< FAILURE!
java.lang.AssertionError: get log with unlocked device throw exception: Kinetic Command Exception: INVALID_REQUEST: java.lang.NumberFormatException: For input string: ",87"
at org.testng.Assert.fail(Assert.java:94)
at com.seagate.kinetic.adminAPI.KineticAdminTest.testLockDevice_withIncorrectLockpin(KineticAdminTest.java:2076)
testSetSecurity_modifyLockPin(com.seagate.kinetic.adminAPI.KineticAdminTest) Time elapsed: 0 sec <<< FAILURE!
java.lang.AssertionError: Change lock pin throw exceptionKinetic Command Exception: NOT_AUTHORIZED: Invalid old lock pin: <ByteString@65264e3c size=0>
at org.testng.Assert.fail(Assert.java:94)
at com.seagate.kinetic.adminAPI.KineticAdminTest.testSetSecurity_modifyLockPin(KineticAdminTest.java:1876)
testSetSecurity_setLockPin(com.seagate.kinetic.adminAPI.KineticAdminTest) Time elapsed: 0.006 sec <<< FAILURE!
java.lang.AssertionError: Set erase pin throw exceptionKinetic Command Exception: NOT_AUTHORIZED: Invalid old lock pin: <ByteString@65264e3c size=0>
at org.testng.Assert.fail(Assert.java:94)
at com.seagate.kinetic.adminAPI.KineticAdminTest.testSetSecurity_setLockPin(KineticAdminTest.java:1852)
test_GetLogTest(com.seagate.kinetic.adminAPI.KineticAdminTest) Time elapsed: 0.006 sec <<< FAILURE!
java.lang.AssertionError: getLog throw exception: Kinetic Command Exception: INVALID_REQUEST: java.lang.NumberFormatException: For input string: ",38"
at org.testng.Assert.fail(Assert.java:94)
at com.seagate.kinetic.adminAPI.KineticAdminTest.test_GetLogTest(KineticAdminTest.java:347)
testunLockDevice_withCorrectLockpin(com.seagate.kinetic.adminAPI.KineticAdminTest) Time elapsed: 0.022 sec <<< FAILURE!
java.lang.AssertionError: get log with unlock device throw exception: Kinetic Command Exception: INVALID_REQUEST: java.lang.NumberFormatException: For input string: ",85"
at org.testng.Assert.fail(Assert.java:94)
at com.seagate.kinetic.adminAPI.KineticAdminTest.testunLockDevice_withCorrectLockpin(KineticAdminTest.java:2155)
testLockDevice_withEmptyLockPin_LockDisable(com.seagate.kinetic.simulator.client.admin.impl.PinOpTest) Time elapsed: 0.242 sec <<< FAILURE!
java.lang.AssertionError: Lock disable, op throw exception: Kinetic Command Exception: INVALID_REQUEST: java.lang.NumberFormatException: For input string: ",74"
at org.testng.Assert.fail(Assert.java:94)
at com.seagate.kinetic.simulator.client.admin.impl.PinOpTest.testLockDevice_withEmptyLockPin_LockDisable(PinOpTest.java:135)
testLockDevice_withNullLockPin_LockDisable(com.seagate.kinetic.simulator.client.admin.impl.PinOpTest) Time elapsed: 0.271 sec <<< FAILURE!
java.lang.AssertionError: Lock disable, op throw exception: Kinetic Command Exception: INVALID_REQUEST: java.lang.NumberFormatException: For input string: ",35"
at org.testng.Assert.fail(Assert.java:94)
at com.seagate.kinetic.simulator.client.admin.impl.PinOpTest.testLockDevice_withNullLockPin_LockDisable(PinOpTest.java:111)
testLockDevice_withUnNullOrEmptyLockPin_LockEnable_unLockDevice(com.seagate.kinetic.simulator.client.admin.impl.PinOpTest) Time elapsed: 0.244 sec <<< FAILURE!
java.lang.AssertionError: After unlock device, op throw exception: Kinetic Command Exception: INVALID_REQUEST: java.lang.NumberFormatException: For input string: ",80"
at org.testng.Assert.fail(Assert.java:94)
at com.seagate.kinetic.simulator.client.admin.impl.PinOpTest.testLockDevice_withUnNullOrEmptyLockPin_LockEnable_unLockDevice(PinOpTest.java:81)
Results :
Failed tests:
KineticAdminTest.getLogNewAPI:2278 getLog throw exception: Kinetic Command Exception: INVALID_REQUEST: java.lang.NumberFormatException: For input string: ",11"
KineticAdminTest.testGetCapacityAndUtilization:2707 getLog throw exception: Kinetic Command Exception: INVALID_REQUEST: java.lang.NumberFormatException: For input string: ",38"
KineticAdminTest.testGetTemperatureAndCapacityAndUtilization:2533 getLog throw exception: Kinetic Command Exception: INVALID_REQUEST: java.lang.NumberFormatException: For input string: ",53"
KineticAdminTest.testGetTemperatureAndUtilization:2664 getLog throw exception: Kinetic Command Exception: INVALID_REQUEST: java.lang.NumberFormatException: For input string: ",55"
KineticAdminTest.testGetUtilization:2399 getLog throw exception: Kinetic Command Exception: INVALID_REQUEST: java.lang.NumberFormatException: For input string: ",62"
KineticAdminTest.testLockDevice_withIncorrectLockpin:2076 get log with unlocked device throw exception: Kinetic Command Exception: INVALID_REQUEST: java.lang.NumberFormatException: For input string: ",87"
KineticAdminTest.testSetSecurity_modifyLockPin:1876 Change lock pin throw exceptionKinetic Command Exception: NOT_AUTHORIZED: Invalid old lock pin: <ByteString@65264e3c size=0>
KineticAdminTest.testSetSecurity_setLockPin:1852 Set erase pin throw exceptionKinetic Command Exception: NOT_AUTHORIZED: Invalid old lock pin: <ByteString@65264e3c size=0>
KineticAdminTest.test_GetLogTest:347 getLog throw exception: Kinetic Command Exception: INVALID_REQUEST: java.lang.NumberFormatException: For input string: ",38"
KineticAdminTest.testunLockDevice_withCorrectLockpin:2155 get log with unlock device throw exception: Kinetic Command Exception: INVALID_REQUEST: java.lang.NumberFormatException: For input string: ",85"
PinOpTest.testLockDevice_withEmptyLockPin_LockDisable:135 Lock disable, op throw exception: Kinetic Command Exception: INVALID_REQUEST: java.lang.NumberFormatException: For input string: ",74"
PinOpTest.testLockDevice_withNullLockPin_LockDisable:111 Lock disable, op throw exception: Kinetic Command Exception: INVALID_REQUEST: java.lang.NumberFormatException: For input string: ",35"
PinOpTest.testLockDevice_withUnNullOrEmptyLockPin_LockEnable_unLockDevice:81 After unlock device, op throw exception: Kinetic Command Exception: INVALID_REQUEST: java.lang.NumberFormatException: For input string: ",80"
Tests run: 371, Failures: 13, Errors: 0, Skipped: 0
[INFO] ------------------------------------------------------------------------
[INFO] Reactor Summary:
[INFO]
[INFO] Kinetic ............................................ SUCCESS [ 0.732 s]
[INFO] Kinetic/Common ..................................... SUCCESS [ 6.513 s]
[INFO] Kinetic/Client ..................................... SUCCESS [ 1.610 s]
[INFO] Kinetic/Simulator .................................. SUCCESS [ 1.176 s]
[INFO] Kinetic/Test ....................................... FAILURE [ 55.100 s]
[INFO] Kinetic/All-in-one ................................. SKIPPED
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 01:05 min
[INFO] Finished at: 2015-07-15T10:20:08+02:00
[INFO] Final Memory: 27M/377M
[INFO] ------------------------------------------------------------------------
typical response from the simulator is :
juil. 15, 2015 10:11:27 AM com.seagate.kinetic.simulator.internal.SimulatorEngine processRequest
AVERTISSEMENT: java.lang.NumberFormatException: For input string: ",24"
com.seagate.kinetic.simulator.internal.handler.ServiceException: java.lang.NumberFormatException: For input string: ",24"
at com.seagate.kinetic.simulator.internal.handler.GetLogOpHandler.processRequest(GetLogOpHandler.java:44)
at com.seagate.kinetic.simulator.internal.RequestContext.processRequest(RequestContext.java:265)
at com.seagate.kinetic.simulator.internal.SimulatorEngine.processRequest(SimulatorEngine.java:463)
at com.seagate.kinetic.simulator.io.provider.nio.NioQueuedRequestProcessRunner.doProcessMessage(NioQueuedRequestProcessRunner.java:191)
at com.seagate.kinetic.simulator.io.provider.nio.NioQueuedRequestProcessRunner.run(NioQueuedRequestProcessRunner.java:137)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
Caused by: java.lang.NumberFormatException: For input string: ",24"
at sun.misc.FloatingDecimal.readJavaFormatString(FloatingDecimal.java:2043)
at sun.misc.FloatingDecimal.parseDouble(FloatingDecimal.java:110)
at java.lang.Double.parseDouble(Double.java:538)
at com.seagate.kinetic.simulator.utility.UtilizationGenerator.generateValue(UtilizationUtil.java:73)
at com.seagate.kinetic.simulator.utility.UtilizationGenerator.generate(UtilizationUtil.java:52)
at com.seagate.kinetic.simulator.utility.UtilizationUtil.getUtilization(UtilizationUtil.java:39)
at com.seagate.kinetic.simulator.internal.GetLogHandler.handleGetLog(GetLogHandler.java:116)
at com.seagate.kinetic.simulator.internal.handler.GetLogOpHandler.processRequest(GetLogOpHandler.java:42)
... 7 more
Are we missing something ?
Thank you for your time.
At bottom of page (2nd to last section):
Run smoke tests against a remore instance
Hello,
We are working on kinetic and when we try to connect with the simulator, we have some errors.
Darwin Kernel Version 14.3.0
maven: 3.2.5
java version "1.8.0_45"
WARNING: Unexpected exception from downstream.
io.netty.handler.codec.CorruptedFrameException: Invalid magic number: 22
at com.seagate.kinetic.common.protocol.codec.KineticDecoder.decode(KineticDecoder.java:85)
at io.netty.handler.codec.ByteToMessageDecoder.callDecode(ByteToMessageDecoder.java:228)
at io.netty.handler.codec.ByteToMessageDecoder.channelInactive(ByteToMessageDecoder.java:192)
at io.netty.channel.DefaultChannelHandlerContext.invokeChannelInactive(DefaultChannelHandlerContext.java:240)
at io.netty.channel.DefaultChannelHandlerContext.fireChannelInactive(DefaultChannelHandlerContext.java:226)
at io.netty.channel.DefaultChannelPipeline.fireChannelInactive(DefaultChannelPipeline.java:767)
at io.netty.channel.AbstractChannel$AbstractUnsafe$5.run(AbstractChannel.java:567)
at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:354)
at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:353)
at io.netty.util.concurrent.SingleThreadEventExecutor$2.run(SingleThreadEventExecutor.java:101)
at java.lang.Thread.run(Thread.java:745)
The code to connect with the simulator,
kinetic::KineticConnectionFactory kinetic_connection_factory = kinetic::NewKineticConnectionFactory();
kinetic::ConnectionOptions options;
std::unique_ptr<kinetic::NonblockingKineticConnection> connection;
options.host = "127.0.0.1";
options.port = 8123;
options.user_id = 1;
options.hmac_key = "asdfasdf";
kinetic::Status status = kinetic_connection_factory.NewNonblockingConnection(options, connection);
if (!status.ok()) {
printf("FAILED\n");
} else {
printf("SUCCEED\n");
}
And it's completely random sometimes it's works, sometimes not.
Thanks for your time.
There seems to be a bug with P2P cascade put.
Start three simulators listening at [8123, 8125, 8127].
Run example from kinetic-py.
Prints:
Writing { Key: a9161851-01ea-49fa-af08-56dda9ccc4ee, Value: 0a4ade7b-044f-4869-a987-d452208e0aa1 } on first device
Copying key from first to second device and telling him to copy to third
Read { Key: a9161851-01ea-49fa-af08-56dda9ccc4ee, Value: 0a4ade7b-044f-4869-a987-d452208e0aa1 } from second device
Traceback (most recent call last):
File "examples/p2p_pipe.py", line 31, in <module>
print 'Read { Key: %s, Value: %s } from third device' % (kv.key, kv.value)
AttributeError: 'NoneType' object has no attribute 'key'
The third device does not have the key.
This bug was first reported at Kinetic/kinetic-py#12
eth2 has been detected . But I want to use eth0.
heartbeatMonitor.sh is command option of "-Dkinetic.net.interface=eth0" not supported.
$ cat kinetic-java/bin/heartbeatMonitor.sh | tail -n1
exec "$JAVA" -classpath "$CLASSPATH" com.seagate.kinetic.example.heartbeat.rest.RestHeartbeatService "$@"
$ kinetic-java/bin/heartbeatMonitor.sh
CLASSPATH=/usr/lib/jvm/jre/lib/tools.jar:/opt/kinetic-java/kinetic-test/target/test-classes:/opt/kinetic-java/kinetic-test/target/kinetic-test-0.8.0.5-SNAPSHOT-jar-with-dependencies.jar:/opt/kinetic-java/kinetic-test/target/kinetic-test-0.8.0.5-SNAPSHOT.jar:/opt/kinetic-java/kinetic-test/target/smoke-tests.jar
Aug 07, 2015 1:13:55 AM com.seagate.kinetic.common.lib.NetUtil findMulticastNetworkInterface
INFO: found interface that supports multicast: eth2
Aug 07, 2015 1:13:55 AM com.seagate.kinetic.monitor.HeartbeatListener init
INFO: using network interface: eth2
I'm seeing some weird behavior. Whenever I check out kinetic-java into a directory named "kinetic" in my home directory (Linux), building the project with 'mvn clean package' fails. As a side effect, the stuff inside the kinetic-java disappears. If checked out into, e.g., /tmp/kinetic, this doesn't happen. Tried it on two different machines, and with different users. Behavior is the same.
hi all,
I am running this kinetic smoke test both on linux and windows platform , I observed that windows uses 128 bits key for encryption/Decryption but Linux uses 256bits can any one explain me why?
Is it because of JVM or the key in kinetic smoke test is dependent on OS anything kike that ?
Thanks in advance
Hi, should a client ever recieve this message from the server?
https://github.com/Seagate/kinetic-java/blob/master/kinetic-simulator/src/main/java/com/seagate/kinetic/simulator/internal/BatchOperationHandler.java#L80
Or can it be considered an internal error if I do see it?
A look at the code seems to suggest that
https://github.com/Seagate/kinetic-java/blob/master/kinetic-simulator/src/main/java/com/seagate/kinetic/simulator/internal/SimulatorEngine.java#L457
should wait until the current batch is finished such that when the init call in BatchOperationHandler should only be done when no other batch is active, unfortunately it doesn't exactly work like that...
Hi All,
Seagate will be hosting an OCP Meetup to discuss the opportunities of the new Key/Value interface.
We have confirmed the time and location for the OCP Meetup about the Kinetic Open Storage Platform:
Address:
EVault HQ
201 3rd Street Suite 400
San Francisco, CA 94103
Time:
July 23rd, 2014
4:00 pm - 8:00 pm PDT
Cost:
Free, just register below!
If you would like to attend this Meetup, please register at the following link, as there are a limited number of attendees allowed:
https://www.eventbrite.com/e/seagate-kinetic-platform-ocp-meetup-july-23rd-2014-tickets-12226964179
Food and drinks will be provided. We are still looking for anyone who would like to sponsor hosting food and drinks for this event.
The tentative schedule is shown below:
Overview of Kinetic Technology
Introduction to Kinetic API Contents
Kinetic Demo with real and virtual drives
Software solutions panel (Discussion about Swift, HDFS, Scality, etc.)
Solution builders presentation/discussion (Discussion about Sanmina, Supermicro, Hyve, etc.)
Open discussion about potential community contributions
We will work on refining the details of the schedule within the next week.We are still open to specific discussion topics you would like us to incorporate into our schedule.
There were suggestions of starting the Meetup earlier to accommodate for Eastcoasters. Unfortunately, this selected times seems to work best for those in the Westcoast to attend without having to take time off work.
For those not able to attend in person, you will be able to join virtually via Webex.
Hello community! I am interested in storing multiple versions of Entry objects. More specifically, instead of overwriting an object every time that it needs update, I would like to have one more version of that Entry instance.
Definitely, one way is forming a pattern in the key field which involves the actual key and the version of the object.
However, there is also the byte[] field "version" in EntryMetaData. I haven't managed to understand how it is used, though. I tried some examples but I end up with VersionMismatchException. Could someone describe the use case of the field "version"? It may fit in my case.
Thank you, Christos.
Currently, the simulator sends its multicasts every 30 seconds, while our testdrives send them every 5 seconds. It would be nice if the simulator would behave like the drives, so our "listen"-window could be shorter when using the simulator.
Both simulators and the real drives perform regular UDP multicasts to announce their availability.
However, they seem to have varying attribute sets.
The json for the simulator looks like this:
{ "firmware_version":"0.8.0.4-SNAPSHOT",
"manufacturer":"Seagate",
"model":"Simulator",
"network_interfaces":[{"ipv4_addr":"....", "mac_addr":".....","name":"..."}, ...],
"port":8000,
"protocol_version":"3.0.6",
"serial_number":"S810200476",
"tlsPort":9000,
"world_wide_name":"0c5dfdf2-2b52-4290-a922-f7c42a1e6e8d"
}
The set of included attributes differs between various drives.
The most succinct set I've been able to capture is this:
{"network_interfaces":[{"ipv4_addr":"...", "ipv6_addr":"...", "mac_addr":"...","name":"..."},...],
"port":8123,
"tlsPort":8443}
This raises the question: what is the current set of attributes that is guaranteed to be present?
We are especially interested in the world_wide_name
name field. If that's not present we need to connect to the drive to establish its identity.
I downloaded this git repository and followed instructions to try to build the simulator. When I do:
mvn clean package
as per the instructions, I get the following error:
[ERROR] COMPILATION ERROR :
[INFO] -------------------------------------------------------------
[ERROR] /home/storagevisor/ethernet-drive/kinetic-java-master/kinetic-client/src/main/java/com/seagate/kinetic/admin/impl/DefaultKineticLog.java:[328,54] getVendorBytes() has private access in com.seagate.kinetic.proto.Kinetic.Message.GetLog.Configuration
[ERROR] /home/storagevisor/ethernet-drive/kinetic-java-master/kinetic-client/src/main/java/com/seagate/kinetic/admin/impl/DefaultKineticLog.java:[333,55] getVersionBytes() has private access in com.seagate.kinetic.proto.Kinetic.Message.GetLog.Configuration
[INFO] 2 errors
hence it fails compiling the client and skips compiling the simulator. any ideas?
Typically, I'm using a bunch of simulators running in a tmux. Unfortunately, the serialNumber is always the same, which prevents me from writing any code that depends on the serialNumber as sort of primary key.
It would be nice if the serialNumber was always different (or, better, if it was stored in the home directory so it survives a (simulated) restart).
Hi,
With regard to getlog statistic, server seems not giving all the message types, including
FLUSHALLDATA, PINOP, MEDIASCAN, MEDIAOPTIMIZE, START_BATCH, END_BATCH, ABORT_BATCH.
Since kinetic.proto didn’t explicitly mention this part, so is it based on server's implementation or should server include all the message types here?
Thanks in advance!
~/kinetic-java# ./bin/kineticAdmin.sh -getlog -type statistic
MessageType: PUT
Count: 3071
Bytes: 12993558
MessageType: GET
Count: 2038
Bytes: 9717489
MessageType: DELETE
Count: 4428
Bytes: 523836
MessageType: GETPREVIOUS
Count: 33
Bytes: 4401
MessageType: GETNEXT
Count: 33
Bytes: 4390
MessageType: GETKEYRANGE
Count: 217
Bytes: 52393
MessageType: GETVERSION
Count: 0
Bytes: 0
MessageType: SECURITY
Count: 104
Bytes: 12060
MessageType: SETUP
Count: 15
Bytes: 1866
MessageType: GETLOG
Count: 27
Bytes: 1058601
MessageType: PEER2PEERPUSH
Count: 4
Bytes: 729
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.