Re: ScyllaDB on OSv?

2016-08-12 Thread Glauber Costa
On Fri, Aug 12, 2016 at 3:26 PM, Roman Shaposhnik 
wrote:

> On Fri, Aug 12, 2016 at 10:33 AM, Avi Kivity  wrote:
> > On 08/12/2016 08:23 PM, Waldek Kozaczuk wrote:
> >>
> >> Given that ScyllaDB uses seastar that can run on OSv is it possible to
> run
> >> ScyllaDB on OSv? I have not found anything on scyllaDB site ?
> >>
> >> If no are there any plans do make it possible? If yes would there be any
> >> advantage of running scylladb on top of OSV performance-wise?
> >
> >
> > Right now OSv lacks a good aio-enabled filesystem.  ZFS is designed to
> > provide clever caching and file management tools (ARC, snapshots) while
> > ScyllaDB wants to do its own caching and DMA file data directly from disk
> > using AIO.
>
> What's your recommended FS on Linux?
>

XFS. We don't technically support any of the others.

In reality, you can run anywhere that io_submit and friends are available,
but you will not get good performance out of it.


>
> Thanks,
> Roman.
>
> --
> You received this message because you are subscribed to the Google Groups
> "OSv Development" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to osv-dev+unsubscr...@googlegroups.com.
> For more options, visit https://groups.google.com/d/optout.
>

-- 
You received this message because you are subscribed to the Google Groups "OSv 
Development" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to osv-dev+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


Re: ScyllaDB on OSv?

2016-08-12 Thread Roman Shaposhnik
On Fri, Aug 12, 2016 at 10:33 AM, Avi Kivity  wrote:
> On 08/12/2016 08:23 PM, Waldek Kozaczuk wrote:
>>
>> Given that ScyllaDB uses seastar that can run on OSv is it possible to run
>> ScyllaDB on OSv? I have not found anything on scyllaDB site ?
>>
>> If no are there any plans do make it possible? If yes would there be any
>> advantage of running scylladb on top of OSV performance-wise?
>
>
> Right now OSv lacks a good aio-enabled filesystem.  ZFS is designed to
> provide clever caching and file management tools (ARC, snapshots) while
> ScyllaDB wants to do its own caching and DMA file data directly from disk
> using AIO.

What's your recommended FS on Linux?

Thanks,
Roman.

-- 
You received this message because you are subscribed to the Google Groups "OSv 
Development" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to osv-dev+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


Re: ScyllaDB on OSv?

2016-08-12 Thread Avi Kivity

On 08/12/2016 08:23 PM, Waldek Kozaczuk wrote:
Given that ScyllaDB uses seastar that can run on OSv is it possible to 
run ScyllaDB on OSv? I have not found anything on scyllaDB site ?


If no are there any plans do make it possible? If yes would there be 
any advantage of running scylladb on top of OSV performance-wise?


Right now OSv lacks a good aio-enabled filesystem.  ZFS is designed to 
provide clever caching and file management tools (ARC, snapshots) while 
ScyllaDB wants to do its own caching and DMA file data directly from 
disk using AIO.


Given a good asynchronous filesystem, a port of seastar/scylladb to OSv 
could deliver great results, as the costs of doing I/O would decrease.  
We'd also want to run OSv on bare metal for this, not just on 
virtualized environments.  With DPDK driving networking, and with 
storage using standardized NVMe and AHCI interfaces, this is not so hard.


There are no plans to do this in the near future, though.

--
You received this message because you are subscribed to the Google Groups "OSv 
Development" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to osv-dev+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


ScyllaDB on OSv?

2016-08-12 Thread Waldek Kozaczuk
Given that ScyllaDB uses seastar that can run on OSv is it possible to run 
ScyllaDB on OSv? I have not found anything on scyllaDB site ?

If no are there any plans do make it possible? If yes would there be any 
advantage of running scylladb on top of OSV performance-wise?

-- 
You received this message because you are subscribed to the Google Groups "OSv 
Development" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to osv-dev+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


[PATCH v5] Provide alternative java.so to start jvm without classloader and log manager isolation in order to run JRE compact profiles.

2016-08-12 Thread Waldemar Kozaczuk
In order to run a JVM app using compact profile 1, 2 or 3 JRE the Java 
bootstrap code under runjava cannot depend on java.beans.* that is not part of 
any of the compact profiles. More specifically runjava depends on cglib and asm 
java libraries that manipulate bytecode and rely on java.beans*.

Therefore the changes that are part of this commit essentially allow to 
bootstrap a JVM app in one of two modes:
  - old one which provides classloader and JUL log manager isolation 
between potential multiple apps and runjava code and apps that possibly targets 
multi-apps on single JVM in OSv and requires full JRE
  - new one which does NOT provide any classloader and JUL log manager 
isolation and targets single main method apps on JVM in OSv and allows using 
compact profile 1, 2 or 3

Following changes are part of this commit:

* Added io.osv.isolated and io.osv.nonisolated packages under java/runjava 
and refactored ContextIsolator to create Jvm, NonIsolatedJvm, 
RunNonIsolatedJvmApp, IsolatedJvm, RunIsolatedJvmApp classes

* Changed java.cc and makefile to support producing two executable - old 
java.so that can run multiple JVM apps in isolated fashion (class loader, log 
manager, etc) and new java_non_isolated.so that can run single JVM app without 
any isolation of the former one

* Changed java/jvm/java.cc to print which java class it uses to bootstrap - 
isolated or nonisolated one; fixed Makefile to properly handle building of 
java_non_isolated.so

* Added java_non_isolated.so to modules/java-tests/usr.manifest

* Added java_non_isolated test to test.py; modified testing.py to detect 
failure to start *.so

* Added unit tests to test running non-isolated JVM app to tests-isolates

Fixes #497

Signed-off-by: Waldemar Kozaczuk 
---
 Makefile   |   7 +-
 java/jvm/java.cc   |  13 +-
 ... AppThreadTerminatedWithUncaughtException.java} |   6 +-
 .../java/io/osv/{ContextIsolator.java => Jvm.java} | 183 +++--
 java/runjava/src/main/java/io/osv/RunJava.java |  48 --
 .../src/main/java/io/osv/RunJvmAppHelper.java  |  44 +
 .../main/java/io/osv/{ => isolated}/Context.java   |   2 +-
 .../osv/{ => isolated}/ContextFailedException.java |   6 +-
 .../src/main/java/io/osv/isolated/IsolatedJvm.java | 160 ++
 .../java/io/osv/{ => isolated}/MultiJarLoader.java |   4 +-
 .../osv/{ => isolated}/OsvSystemClassLoader.java   |   4 +-
 .../java/io/osv/isolated/RunIsolatedJvmApp.java|  33 
 .../main/java/io/osv/jul/IsolatingLogManager.java  |   6 +-
 .../main/java/io/osv/jul/LogManagerWrapper.java|   2 +-
 .../java/io/osv/nonisolated/NonIsolatedJvm.java|  86 ++
 .../io/osv/nonisolated/RunNonIsolatedJvmApp.java   |  33 
 .../src/main/java/tests/LoggingProcess.java|   4 +-
 ...Process.java => NonIsolatedLoggingProcess.java} |  10 +-
 .../src/main/java/tests/PropertyReader.java|   4 +-
 .../src/main/java/tests/PropertySetter.java|   4 +-
 .../src/main/java/tests/StaticFieldSetter.java |   4 +-
 ...Tests.java => AllTestsThatTestIsolatedApp.java} |   2 +-
 ...ts.java => AllTestsThatTestNonIsolatedApp.java} |   9 +-
 .../main/java/io/osv/ClassLoaderIsolationTest.java |   5 +-
 .../io/osv/ClassLoaderWithoutIsolationTest.java|  89 ++
 .../src/main/java/io/osv/LoggingIsolationTest.java |   4 +-
 .../java/io/osv/LoggingWithoutIsolationTest.java   |  54 ++
 .../main/java/io/osv/PropertyIsolationTest.java|   4 +-
 ...estIsolateLaunching.java => TestLaunching.java} |  23 ++-
 modules/java-tests/usr.manifest|   9 +
 scripts/test.py|   6 +-
 scripts/tests/testing.py   |   1 +
 32 files changed, 615 insertions(+), 254 deletions(-)
 copy java/runjava/src/main/java/io/osv/{ContextFailedException.java => 
AppThreadTerminatedWithUncaughtException.java} (52%)
 rename java/runjava/src/main/java/io/osv/{ContextIsolator.java => Jvm.java} 
(51%)
 delete mode 100644 java/runjava/src/main/java/io/osv/RunJava.java
 create mode 100644 java/runjava/src/main/java/io/osv/RunJvmAppHelper.java
 rename java/runjava/src/main/java/io/osv/{ => isolated}/Context.java (98%)
 rename java/runjava/src/main/java/io/osv/{ => 
isolated}/ContextFailedException.java (62%)
 create mode 100644 java/runjava/src/main/java/io/osv/isolated/IsolatedJvm.java
 rename java/runjava/src/main/java/io/osv/{ => isolated}/MultiJarLoader.java 
(97%)
 rename java/runjava/src/main/java/io/osv/{ => 
isolated}/OsvSystemClassLoader.java (98%)
 create mode 100644 
java/runjava/src/main/java/io/osv/isolated/RunIsolatedJvmApp.java
 create mode 100644 
java/runjava/src/main/java/io/osv/nonisolated/NonIsolatedJvm.java
 create mode 100644 
java/runjava/src/main/java/io/osv/nonisolated/RunNonIsolatedJvmApp.java
 copy