Fuse low level APIs vs. high level

classic Classic list List threaded Threaded
5 messages Options
Reply | Threaded
Open this post in threaded view
|

Fuse low level APIs vs. high level

garima
Hi,

Is there any major difference between Fuse high level and Fuse low level
APIs in terms of performance?

We have used Fuse high level APIs in our code, and now we are having
concern regarding

1. Memory consumption, and
2. Resource consumption

So except for better control, what are the advantages of using Fuse Low
level APIs over high level APIs?

--
Regards,
Garima Mishra




DISCLAIMER:
-----------------------------------------------------------------------------------------------------------------------
The contents of this e-mail and any attachment(s) are confidential and
intended
for the named recipient(s) only.
It shall not attach any liability on the originator or NEC or its
affiliates. Any views or opinions presented in
this email are solely those of the author and may not necessarily reflect the
opinions of NEC or its affiliates.
Any form of reproduction, dissemination, copying, disclosure, modification,
distribution and / or publication of
this message without the prior written consent of the author of this e-mail is
strictly prohibited. If you have
received this email in error please delete it and notify the sender
immediately. .
-----------------------------------------------------------------------------------------------------------------------

------------------------------------------------------------------------------
CenturyLink Cloud: The Leader in Enterprise Cloud Services.
Learn Why More Businesses Are Choosing CenturyLink Cloud For
Critical Workloads, Development Environments & Everything In Between.
Get a Quote or Start a Free Trial Today.
http://pubads.g.doubleclick.net/gampad/clk?id=119420431&iu=/4140/ostg.clktrk
_______________________________________________
fuse-devel mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/fuse-devel
Reply | Threaded
Open this post in threaded view
|

Re: Fuse low level APIs vs. high level

Jean-Pierre André
garima wrote:
> Hi,
>
> Is there any major difference between Fuse high level and Fuse low level
> APIs in terms of performance?

ntfs-3g has both variants with no significant differences
in performance.

> We have used Fuse high level APIs in our code, and now we are having
> concern regarding
>
> 1. Memory consumption, and
> 2. Resource consumption
>
> So except for better control, what are the advantages of using Fuse Low
> level APIs over high level APIs?

When using the high level API, hard-linked files are
replicated in the cache, which lead to inconsistencies
unless you force zero for the cache duration.
You do not have this issue with the low level API.

Jean-Pierre


------------------------------------------------------------------------------
CenturyLink Cloud: The Leader in Enterprise Cloud Services.
Learn Why More Businesses Are Choosing CenturyLink Cloud For
Critical Workloads, Development Environments & Everything In Between.
Get a Quote or Start a Free Trial Today.
http://pubads.g.doubleclick.net/gampad/clk?id=119420431&iu=/4140/ostg.clktrk
_______________________________________________
fuse-devel mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/fuse-devel
Reply | Threaded
Open this post in threaded view
|

Re: Fuse low level APIs vs. high level

garima
What about memory and resource consumption?

AFAIK, fuse low level apis manage many data structures at its level
(which provides better control).

So does this impact memory/resource consumption?

Regards,
Garima Mishra

On 01/21/2014 01:09 PM, Jean-Pierre André wrote:

> garima wrote:
>> Hi,
>>
>> Is there any major difference between Fuse high level and Fuse low level
>> APIs in terms of performance?
>
> ntfs-3g has both variants with no significant differences
> in performance.
>
>> We have used Fuse high level APIs in our code, and now we are having
>> concern regarding
>>
>> 1. Memory consumption, and
>> 2. Resource consumption
>>
>> So except for better control, what are the advantages of using Fuse Low
>> level APIs over high level APIs?
>
> When using the high level API, hard-linked files are
> replicated in the cache, which lead to inconsistencies
> unless you force zero for the cache duration.
> You do not have this issue with the low level API.
>
> Jean-Pierre
>
> .
>




DISCLAIMER:
-----------------------------------------------------------------------------------------------------------------------
The contents of this e-mail and any attachment(s) are confidential and
intended
for the named recipient(s) only.
It shall not attach any liability on the originator or NEC or its
affiliates. Any views or opinions presented in
this email are solely those of the author and may not necessarily reflect the
opinions of NEC or its affiliates.
Any form of reproduction, dissemination, copying, disclosure, modification,
distribution and / or publication of
this message without the prior written consent of the author of this e-mail is
strictly prohibited. If you have
received this email in error please delete it and notify the sender
immediately. .
-----------------------------------------------------------------------------------------------------------------------
------------------------------------------------------------------------------
CenturyLink Cloud: The Leader in Enterprise Cloud Services.
Learn Why More Businesses Are Choosing CenturyLink Cloud For
Critical Workloads, Development Environments & Everything In Between.
Get a Quote or Start a Free Trial Today.
http://pubads.g.doubleclick.net/gampad/clk?id=119420431&iu=/4140/ostg.clktrk
_______________________________________________
fuse-devel mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/fuse-devel
Reply | Threaded
Open this post in threaded view
|

Re: Fuse low level APIs vs. high level

Han-Wen Nienhuys-5
I would expect the low-level API to be cheaper, but not much. The high
level API implements inode management for you, but if you use the
low-level API, you'll need to manage them yourself which also costs
memory. The difference is that you don't have to construct a path name
for every file system operation.

On Tue, Jan 21, 2014 at 8:57 AM, garima
<[hidden email]> wrote:

> What about memory and resource consumption?
>
> AFAIK, fuse low level apis manage many data structures at its level
> (which provides better control).
>
> So does this impact memory/resource consumption?
>
> Regards,
> Garima Mishra
>
> On 01/21/2014 01:09 PM, Jean-Pierre André wrote:
>> garima wrote:
>>> Hi,
>>>
>>> Is there any major difference between Fuse high level and Fuse low level
>>> APIs in terms of performance?
>>
>> ntfs-3g has both variants with no significant differences
>> in performance.
>>
>>> We have used Fuse high level APIs in our code, and now we are having
>>> concern regarding
>>>
>>> 1. Memory consumption, and
>>> 2. Resource consumption
>>>
>>> So except for better control, what are the advantages of using Fuse Low
>>> level APIs over high level APIs?
>>
>> When using the high level API, hard-linked files are
>> replicated in the cache, which lead to inconsistencies
>> unless you force zero for the cache duration.
>> You do not have this issue with the low level API.
>>
>> Jean-Pierre
>>
>> .
>>
>
>
>
>
> DISCLAIMER:
> -----------------------------------------------------------------------------------------------------------------------
> The contents of this e-mail and any attachment(s) are confidential and
> intended
> for the named recipient(s) only.
> It shall not attach any liability on the originator or NEC or its
> affiliates. Any views or opinions presented in
> this email are solely those of the author and may not necessarily reflect the
> opinions of NEC or its affiliates.
> Any form of reproduction, dissemination, copying, disclosure, modification,
> distribution and / or publication of
> this message without the prior written consent of the author of this e-mail is
> strictly prohibited. If you have
> received this email in error please delete it and notify the sender
> immediately. .
> -----------------------------------------------------------------------------------------------------------------------
> ------------------------------------------------------------------------------
> CenturyLink Cloud: The Leader in Enterprise Cloud Services.
> Learn Why More Businesses Are Choosing CenturyLink Cloud For
> Critical Workloads, Development Environments & Everything In Between.
> Get a Quote or Start a Free Trial Today.
> http://pubads.g.doubleclick.net/gampad/clk?id=119420431&iu=/4140/ostg.clktrk
> _______________________________________________
> fuse-devel mailing list
> [hidden email]
> https://lists.sourceforge.net/lists/listinfo/fuse-devel



--
Han-Wen Nienhuys - [hidden email] - http://www.xs4all.nl/~hanwen

------------------------------------------------------------------------------
CenturyLink Cloud: The Leader in Enterprise Cloud Services.
Learn Why More Businesses Are Choosing CenturyLink Cloud For
Critical Workloads, Development Environments & Everything In Between.
Get a Quote or Start a Free Trial Today.
http://pubads.g.doubleclick.net/gampad/clk?id=119420431&iu=/4140/ostg.clktrk
_______________________________________________
fuse-devel mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/fuse-devel
Reply | Threaded
Open this post in threaded view
|

Re: Fuse low level APIs vs. high level

Goswin von Brederlow-2
In reply to this post by garima
On Tue, Jan 21, 2014 at 08:36:55AM +0530, garima wrote:

> Hi,
>
> Is there any major difference between Fuse high level and Fuse low level
> APIs in terms of performance?
>
> We have used Fuse high level APIs in our code, and now we are having
> concern regarding
>
> 1. Memory consumption, and
> 2. Resource consumption
>
> So except for better control, what are the advantages of using Fuse Low
> level APIs over high level APIs?

Aren't you comparing apples and oranges?

The fuse kernel interface works on inodes and the low level interface
reflects this. The high level interface works on paths and has to
translate between inodes and path. That takes memory and cpu to do.

BUT, what would be the point of using the low level interface if you
then need to translate those inode numbers to paths yourself? Do you
think you can translate them faster using less resources? Less bugs?


IMHO the low level interface is best when implementing an actual
filesystem based on inodes where you don't do any mapping from inode
to path.

For all the pass through filesystems that translate fuse operations to
operations of an underlying filesystem (e.g. unionfs-fuse) the
highlevel interface is far better suited.

So it is not a matter of which is better but of which is better suited
to the problem you want to solve.

MfG
        Goswin

PS: An 5us overhead will be practically irelevant compared to 6ms disk
access time. Don't optimize at the wrong end.

------------------------------------------------------------------------------
Managing the Performance of Cloud-Based Applications
Take advantage of what the Cloud has to offer - Avoid Common Pitfalls.
Read the Whitepaper.
http://pubads.g.doubleclick.net/gampad/clk?id=121051231&iu=/4140/ostg.clktrk
_______________________________________________
fuse-devel mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/fuse-devel