The nice thing with Akka streams and a Source[ByteString, _] is that you can 
easily swap it for a different source without changing the rest of your impl :-)
The current impl uses nio.FileChannel with ByteBuffers which proved to give 
very good performance - and I've benchmarked a number of impls (file input 
streams, asynchronous file channel, file channel, and all those in combination 
with pooled byte buffers or arrays etc).

The gains that AIO gives over IO are more in terms of scalability than 
performance I think actually.
Of course it depends on access patterns, but since here we're in streaming a 
plain old "scan" is the best we want to have here.

All in all, sticking to SynchronousFileSource (it is blocking, however it has 
it's own dedicated, preconfigured dispatcher!) seems like a very good choice to 
me.

-- 
Cheers,
Konrad 'ktoso’ Malawski
Akka @ Typesafe

On 14 July 2015 at 21:07:31, Nicolau Werneck ([email protected]) wrote:

I just want to make sure I am using the most "promising" alternative for I/O... 
I was reading files on my own with a low-level Java library, and I wasn't using 
nio yet. I wasn't sure if I was going to update it to use Java 8 stuff, try out 
akka.io, or move to akka-stream. I think I am going with Akka stream now, and I 
have already managed to adapt my project... Thanks, guys!    ++nic

On Monday, July 13, 2015 at 5:06:39 AM UTC-3, √ wrote:
I'm not sure we'll be able to take advantage of that, since all they do is to 
multiplex it on top of a given Executor.
What we could do is to create a shim over an ExecutionContext that wraps their 
submitted Runnables in BlockContext calls to isolate and make evasive actions. 
Let's discuss :)

On Mon, Jul 13, 2015 at 10:01 AM, Roland Kuhn <[email protected]> wrote:
Hi Nicolau,

this problem is not limited to Akka: most operating systems do not provide true 
asynchronous file I/O themselves. We will eventually make use of Java 8’s 
facilities (once Streams move into the master branch), but beware that the 
asynchrony of the solution depends on deployment details (JVM, O/S, …).

Regards,

Roland

13 jul 2015 kl. 02:47 skrev Nicolau Werneck <[email protected]>:

What is the most current implementation of Akka based asynchronous file I/O out 
there? It seems akka-stream 1.0-RC3 still only has synchronous reading, and 
drexin's akka-io-file github repo is more than one year old. Is there no 
highly-experimental official async file IO library out there?    ++nic

--
>>>>>>>>>> Read the docs: http://akka.io/docs/
>>>>>>>>>> Check the FAQ: 
>>>>>>>>>> http://doc.akka.io/docs/akka/current/additional/faq.html
>>>>>>>>>> Search the archives: https://groups.google.com/group/akka-user
---
You received this message because you are subscribed to the Google Groups "Akka 
User List" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/akka-user.
For more options, visit https://groups.google.com/d/optout.



Dr. Roland Kuhn
Akka Tech Lead
Typesafe – Reactive apps on the JVM.
twitter: @rolandkuhn


--
>>>>>>>>>> Read the docs: http://akka.io/docs/
>>>>>>>>>> Check the FAQ: 
>>>>>>>>>> http://doc.akka.io/docs/akka/current/additional/faq.html
>>>>>>>>>> Search the archives: https://groups.google.com/group/akka-user
---
You received this message because you are subscribed to the Google Groups "Akka 
User List" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/akka-user.
For more options, visit https://groups.google.com/d/optout.



--
Cheers,
√
--
>>>>>>>>>> Read the docs: http://akka.io/docs/
>>>>>>>>>> Check the FAQ: 
>>>>>>>>>> http://doc.akka.io/docs/akka/current/additional/faq.html
>>>>>>>>>> Search the archives: https://groups.google.com/group/akka-user
---
You received this message because you are subscribed to the Google Groups "Akka 
User List" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/akka-user.
For more options, visit https://groups.google.com/d/optout.

-- 
>>>>>>>>>>      Read the docs: http://akka.io/docs/
>>>>>>>>>>      Check the FAQ: 
>>>>>>>>>> http://doc.akka.io/docs/akka/current/additional/faq.html
>>>>>>>>>>      Search the archives: https://groups.google.com/group/akka-user
--- 
You received this message because you are subscribed to the Google Groups "Akka 
User List" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/akka-user.
For more options, visit https://groups.google.com/d/optout.

Reply via email to