Comments (9)
I've added some caching logic to the group class. Try out this latest checkin: 1999417.
This is not a single operation recursive load, but I saw a speed up of about ~4x speed up walking the tree for the sample Nexus file. This is with using the hsls.py script in the app directory.
from h5pyd.
@rayosborn - did you get a chance to try this out?
from h5pyd.
I have tested it, but I wasn't sure of the previous speeds because I forgot to do a proper timing before upgrading. I need to revert to the old version. However, I don't think I saw a factor four. It might have been a factor of two.
from h5pyd.
There will be some variability based on the latency between client and server. My testing was with a server running on the same LAN. Also, the test driver is different.
Did the NexPy GUI need a lot of mods to work with h5serv? I could set it up in my environment.
from h5pyd.
I haven't made any changes to the NeXpy GUI yet. In the latest development version on my own clone of the nexusformat API, the nxremote
branch has an added file, which subclasses the NXFile class for remote access. I was thinking of pushing this version to PyPI, since it is a test feature that only users with h5pyd would even be able to access. I'll let you know when I've done that.
from h5pyd.
If you push the branch to github, I can just grab from there.
How would I use it to list the contents of a Nexus file?
from h5pyd.
The nxremote
branch has been published on my Github. You can load a file by typing:
>>> a=nxloadremote(filepath, domain='exfac.org', server='some.server:5000')
>>> print(a.tree)
The file path is the path relative to the data directory. The module converts that to a domain name. The top domain is currently 'exfac.org' to match the test repository.
from h5pyd.
@rayosborn - some updates on this old issue...
By default h5pyd.File(filepath)
will return all the meta data for the domain in the request response. H5pyd caches this, so any attribute read or link access won't need to talk to the server. There's a limit on the number of objects fetched on the server of 500. This is so the GET request doesn't take an inordinate amount of time for domains with lots of attributes and/or links.
To compare the performance not using the prefetch, you can use: h5pyd.File(filepath, use_cache=False)
. This will return just information on the root group.
from h5pyd.
Thanks, @jreadey. I can't look into this for a couple of weeks, but I plan to soon.
from h5pyd.
Related Issues (20)
- Fancy indexing index list length is limited by GET query size HOT 3
- Error retrieving data: 429 HOT 3
- `hsload` fails on empty data sets (with a dimension of length 0) HOT 13
- bulk download suggestions HOT 2
- hsget failing when datasets contain fillvalues HOT 2
- Append option for hsload HOT 2
- Passing 'Bearer' token to h5pyd instead of fixed keycloak config HOT 3
- Issue in creating /home directory HOT 14
- How to read HDF5 file in Vaex data frame HOT 7
- Conflict with google-auth-oauthlib-0.6.0 on MacOS HOT 11
- hsload change dataset's datatype class from Compound (H5T_COMPOUND) to Opaque (H5T_OPAQUE) HOT 2
- hsds return "filter "H5Z_FLETCHER_DEFLATE" not recognized" due to hsload datasets with FLETCHER32 filter HOT 3
- h5pyd dataset.chunks not compatible with h5py HOT 2
- hsload fails decoding ASCII encoded attributes HOT 10
- hsload fails with compact datasets HOT 1
- `hsload` fails when an attribute has type `Reference` HOT 4
- hsload fails with datasets using scale offset filter HOT 1
- apply source compression filter in hsload HOT 1
- Show filters applied to any datasets in hsls HOT 1
- h5pyd not evaluating environment variables HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from h5pyd.