SlideShare a Scribd company logo
1 of 11
nub - npoess user block tool

Richard Ullman
NASA GSFC
nub
• nub (nŭb) n.
– 1. A protuberance or knob.
– 2. A small lump.
– 3. The essence; the core: the nub of a story.
– [Variant of knub, probably from Low German knubbe, from
Middle Low German, variant of knobbe.]
• (selected from http://www.answers.com/topic/nub)

2
NPOESS user block
• For NPOESS files, the user block is ASCII text written in XML
that provides a quick-look into the metadata attributes contained in
the HDF5 file.
– The content of the user block includes metadata that is attached
to the NPOESS:
• / (root) group
• <collection_shortname> group, and
• <collection_shortname>_Aggr group.

3
nub_Motivation
• When evaluating NPOESS sample data last year, I wished to
examine the user block, as a stand-alone item, but I found that the
h5unjam tool to be expensive
– h5unjam reads an HDF5 file and writes two output files
• 1. a file containing the content of the user block
• 2. a file containing the H5 data without the user block.
– The second part was unnecessary for my purposes, but because
the NPOESS files are large, it is expensive.
• So .. I wrote nub …

4
nub_Design
• Design criteria:
– “c” program (that’s all I know how to write)
– Efficient - do no ‘EXTRA’ work.
– Command line operation, with Unix-like options.
– Pipe-able. (stdin/stdout)
– Assume user block is text.
– Work only on the front user block.
– Complete set of functions to manipulate the user block:
• List, Create, Overwrite, Append, Delete, Get size
• Requirements creep …
– Complete replacement for h5jam/h5unjam/tellub
– No reliance on h5 library (no need).
• Availability:
– Applied for NASA Open Source release. All paperwork completed.
Waiting for final approval.
– Evaluation copy available to anyone interested in NPOESS.
5
nub operates on the front user block
ONLY
signature: “211HDFrn32n”
user block
user block

HDF5
HDF5

sizeof( user_block) = 2^n, where n>8, (or n=0)

6
nub file.h5

signature: “211HDFrn32n”

content,content/0/0/0/0/0/0/0/0
content,content/0/0/0/0/0/0/0/0

--tell -b

HDF5
HDF5

--tell -s

--tell -a

• Tell: name comes from HDF5 internal tool “tellub”
• This is the nub default operation.
– Count the size of the user block content [-b], the size of the user block
[-s], and the size of the complete H5 file [-a] in bytes.
– No options given is equivalent to: nub --tell -bsa file.h5
– Output is similar to wc

7
nub -l file.h5

signature: “211HDFrn32n”
file.txt
file.txt

content,content/0/0/0/0/0/0/0/0
content,content/0/0/0/0/0/0/0/0

HDF5
HDF5

• List: list the content of the user block
write to stdout, or if -f write to the given file

8
nub -w file.h5
content,content/0/0/0/0/0/0/0/0
content,content/0/0/0/0/0/0/0/0

signature: “211HDFrn32n”
user_file.txt
user_file.txt

HDF5
HDF5

• Write: write text content to the user block
– append by default, or clobber (replace)
– fit into existing space (by overwriting only null chars) by default, or
“jam” (extend the block)
– “kram” option shrinks user block into smallest that will fit the content
– read from stdin, or use the file specified on the -u switch

9
nub_ compatibility
• nub will respond to the same command line options that are used
with h5jam and h5unjam.
• “nub -J” is an explicit substitute for h5jam
• “nub -U” is an explicit substitute for h5unjam
• “nub -T” is an explicit substitute for tellub
• Or, use just “nub” as a substitute for either and the code will decide
which of the two is most appropriate based on the flags provided.

10
nub_test
• Results of nub as a substitute for h5jam, h5unjam in the standard
hdf5 tools regression tests …
• 68 PASSED
• 6 FAILED
– fails are due to difference in concept of concatenation.
– nub appends to the end of the content of an existing user block.
– h5jam appends to the end of the existing user block.
– User blocks are of size=2^n, where size > 256 and is big enough
to fit the content. So, if user block content is 513 bytes, the size
of the user block is 1024 bytes, including 511 bytes of NULL
padding.
– nub will overwrite the NULL padding, h5jam leaves the padding
in place.
11

More Related Content

What's hot

Resource planning on the (Amazon) cloud
Resource planning on the (Amazon) cloudResource planning on the (Amazon) cloud
Resource planning on the (Amazon) cloudEnis Afgan
 
Gfs google-file-system-13331
Gfs google-file-system-13331Gfs google-file-system-13331
Gfs google-file-system-13331Fengchang Xie
 
PostgreSQL High Availability in a Containerized World
PostgreSQL High Availability in a Containerized WorldPostgreSQL High Availability in a Containerized World
PostgreSQL High Availability in a Containerized WorldJignesh Shah
 
High Availability PostgreSQL with Zalando Patroni
High Availability PostgreSQL with Zalando PatroniHigh Availability PostgreSQL with Zalando Patroni
High Availability PostgreSQL with Zalando PatroniZalando Technology
 
A quick introduction to Storm Crawler
A quick introduction to Storm CrawlerA quick introduction to Storm Crawler
A quick introduction to Storm CrawlerJulien Nioche
 
Cloud infrastructure. Google File System and MapReduce - Andrii Vozniuk
Cloud infrastructure. Google File System and MapReduce - Andrii VozniukCloud infrastructure. Google File System and MapReduce - Andrii Vozniuk
Cloud infrastructure. Google File System and MapReduce - Andrii VozniukAndrii Vozniuk
 
Build a Complex, Realtime Data Management App with Postgres 14!
Build a Complex, Realtime Data Management App with Postgres 14!Build a Complex, Realtime Data Management App with Postgres 14!
Build a Complex, Realtime Data Management App with Postgres 14!Jonathan Katz
 
Kafka Summit SF 2017 - One Day, One Data Hub, 100 Billion Messages: Kafka at ...
Kafka Summit SF 2017 - One Day, One Data Hub, 100 Billion Messages: Kafka at ...Kafka Summit SF 2017 - One Day, One Data Hub, 100 Billion Messages: Kafka at ...
Kafka Summit SF 2017 - One Day, One Data Hub, 100 Billion Messages: Kafka at ...confluent
 
Interactive Hadoop via Flash and Memory
Interactive Hadoop via Flash and MemoryInteractive Hadoop via Flash and Memory
Interactive Hadoop via Flash and MemoryChris Nauroth
 
One Tool to Rule Them All- Seamless SQL on MongoDB, MySQL and Redis with Apac...
One Tool to Rule Them All- Seamless SQL on MongoDB, MySQL and Redis with Apac...One Tool to Rule Them All- Seamless SQL on MongoDB, MySQL and Redis with Apac...
One Tool to Rule Them All- Seamless SQL on MongoDB, MySQL and Redis with Apac...Tim Vaillancourt
 
Improving DragonFly's performance with PostgreSQL by Francois Tigeot
Improving DragonFly's performance with PostgreSQL by Francois TigeotImproving DragonFly's performance with PostgreSQL by Francois Tigeot
Improving DragonFly's performance with PostgreSQL by Francois Tigeoteurobsdcon
 
PostgreSQL HA
PostgreSQL   HAPostgreSQL   HA
PostgreSQL HAharoonm
 
Nsq & python worker
Nsq & python workerNsq & python worker
Nsq & python workerFelinx Lee
 
Practical Glusto Example
Practical Glusto ExamplePractical Glusto Example
Practical Glusto ExampleGluster.org
 
Neutrondev ppt
Neutrondev pptNeutrondev ppt
Neutrondev pptmarunewby
 
OSMC - Fast logs management
OSMC - Fast logs managementOSMC - Fast logs management
OSMC - Fast logs managementNicolas Fränkel
 
OSMC 2019 | Fast logs Ingestion by Nicolas Fraenkel
OSMC 2019 | Fast logs Ingestion by Nicolas FraenkelOSMC 2019 | Fast logs Ingestion by Nicolas Fraenkel
OSMC 2019 | Fast logs Ingestion by Nicolas FraenkelNETWAYS
 

What's hot (20)

Tuning Linux for MongoDB
Tuning Linux for MongoDBTuning Linux for MongoDB
Tuning Linux for MongoDB
 
Resource planning on the (Amazon) cloud
Resource planning on the (Amazon) cloudResource planning on the (Amazon) cloud
Resource planning on the (Amazon) cloud
 
Gfs google-file-system-13331
Gfs google-file-system-13331Gfs google-file-system-13331
Gfs google-file-system-13331
 
PostgreSQL High Availability in a Containerized World
PostgreSQL High Availability in a Containerized WorldPostgreSQL High Availability in a Containerized World
PostgreSQL High Availability in a Containerized World
 
High Availability PostgreSQL with Zalando Patroni
High Availability PostgreSQL with Zalando PatroniHigh Availability PostgreSQL with Zalando Patroni
High Availability PostgreSQL with Zalando Patroni
 
A quick introduction to Storm Crawler
A quick introduction to Storm CrawlerA quick introduction to Storm Crawler
A quick introduction to Storm Crawler
 
Cloud infrastructure. Google File System and MapReduce - Andrii Vozniuk
Cloud infrastructure. Google File System and MapReduce - Andrii VozniukCloud infrastructure. Google File System and MapReduce - Andrii Vozniuk
Cloud infrastructure. Google File System and MapReduce - Andrii Vozniuk
 
Build a Complex, Realtime Data Management App with Postgres 14!
Build a Complex, Realtime Data Management App with Postgres 14!Build a Complex, Realtime Data Management App with Postgres 14!
Build a Complex, Realtime Data Management App with Postgres 14!
 
Kafka Summit SF 2017 - One Day, One Data Hub, 100 Billion Messages: Kafka at ...
Kafka Summit SF 2017 - One Day, One Data Hub, 100 Billion Messages: Kafka at ...Kafka Summit SF 2017 - One Day, One Data Hub, 100 Billion Messages: Kafka at ...
Kafka Summit SF 2017 - One Day, One Data Hub, 100 Billion Messages: Kafka at ...
 
Interactive Hadoop via Flash and Memory
Interactive Hadoop via Flash and MemoryInteractive Hadoop via Flash and Memory
Interactive Hadoop via Flash and Memory
 
One Tool to Rule Them All- Seamless SQL on MongoDB, MySQL and Redis with Apac...
One Tool to Rule Them All- Seamless SQL on MongoDB, MySQL and Redis with Apac...One Tool to Rule Them All- Seamless SQL on MongoDB, MySQL and Redis with Apac...
One Tool to Rule Them All- Seamless SQL on MongoDB, MySQL and Redis with Apac...
 
Improving DragonFly's performance with PostgreSQL by Francois Tigeot
Improving DragonFly's performance with PostgreSQL by Francois TigeotImproving DragonFly's performance with PostgreSQL by Francois Tigeot
Improving DragonFly's performance with PostgreSQL by Francois Tigeot
 
PostgreSQL HA
PostgreSQL   HAPostgreSQL   HA
PostgreSQL HA
 
Erlang scheduler
Erlang schedulerErlang scheduler
Erlang scheduler
 
Nsq & python worker
Nsq & python workerNsq & python worker
Nsq & python worker
 
Google file system
Google file systemGoogle file system
Google file system
 
Practical Glusto Example
Practical Glusto ExamplePractical Glusto Example
Practical Glusto Example
 
Neutrondev ppt
Neutrondev pptNeutrondev ppt
Neutrondev ppt
 
OSMC - Fast logs management
OSMC - Fast logs managementOSMC - Fast logs management
OSMC - Fast logs management
 
OSMC 2019 | Fast logs Ingestion by Nicolas Fraenkel
OSMC 2019 | Fast logs Ingestion by Nicolas FraenkelOSMC 2019 | Fast logs Ingestion by Nicolas Fraenkel
OSMC 2019 | Fast logs Ingestion by Nicolas Fraenkel
 

Viewers also liked

Welcome To The Northridge Middle School Informational Channel
Welcome To The Northridge Middle School Informational ChannelWelcome To The Northridge Middle School Informational Channel
Welcome To The Northridge Middle School Informational Channelguestec002f98
 
My Presentation
My PresentationMy Presentation
My Presentationluz_agreda
 
Propel London - Digital Recruitment
Propel London - Digital Recruitment Propel London - Digital Recruitment
Propel London - Digital Recruitment Amber Larder
 
HMS Group Fact Sheet 1Q 2011
HMS Group Fact Sheet 1Q 2011HMS Group Fact Sheet 1Q 2011
HMS Group Fact Sheet 1Q 2011HMS Group
 

Viewers also liked (7)

Ikeepbookmarks
IkeepbookmarksIkeepbookmarks
Ikeepbookmarks
 
Welcome To The Northridge Middle School Informational Channel
Welcome To The Northridge Middle School Informational ChannelWelcome To The Northridge Middle School Informational Channel
Welcome To The Northridge Middle School Informational Channel
 
Linked in presentation
Linked in presentationLinked in presentation
Linked in presentation
 
My Presentation
My PresentationMy Presentation
My Presentation
 
925013
925013925013
925013
 
Propel London - Digital Recruitment
Propel London - Digital Recruitment Propel London - Digital Recruitment
Propel London - Digital Recruitment
 
HMS Group Fact Sheet 1Q 2011
HMS Group Fact Sheet 1Q 2011HMS Group Fact Sheet 1Q 2011
HMS Group Fact Sheet 1Q 2011
 

Similar to nub - npoess user block tool

Intro to Open Babel
Intro to Open BabelIntro to Open Babel
Intro to Open Babelbaoilleach
 
The Google Chubby lock service for loosely-coupled distributed systems
The Google Chubby lock service for loosely-coupled distributed systemsThe Google Chubby lock service for loosely-coupled distributed systems
The Google Chubby lock service for loosely-coupled distributed systemsRomain Jacotin
 
Early Experiences with the OpenMP Accelerator Model
Early Experiences with the OpenMP Accelerator ModelEarly Experiences with the OpenMP Accelerator Model
Early Experiences with the OpenMP Accelerator ModelChunhua Liao
 
Find and Locate: Two Commands
Find and Locate: Two CommandsFind and Locate: Two Commands
Find and Locate: Two CommandsKevin OBrien
 
Towards a Systematic Study of Big Data Performance and Benchmarking
Towards a Systematic Study of Big Data Performance and BenchmarkingTowards a Systematic Study of Big Data Performance and Benchmarking
Towards a Systematic Study of Big Data Performance and BenchmarkingSaliya Ekanayake
 
Automating materials science workflows with pymatgen, FireWorks, and atomate
Automating materials science workflows with pymatgen, FireWorks, and atomateAutomating materials science workflows with pymatgen, FireWorks, and atomate
Automating materials science workflows with pymatgen, FireWorks, and atomateAnubhav Jain
 
Big data processing using hadoop poster presentation
Big data processing using hadoop poster presentationBig data processing using hadoop poster presentation
Big data processing using hadoop poster presentationAmrut Patil
 
MongoDB Replication fundamentals - Desert Code Camp - October 2014
MongoDB Replication fundamentals - Desert Code Camp - October 2014MongoDB Replication fundamentals - Desert Code Camp - October 2014
MongoDB Replication fundamentals - Desert Code Camp - October 2014Avinash Ramineni
 
12 linux archiving tools
12 linux archiving tools12 linux archiving tools
12 linux archiving toolsShay Cohen
 

Similar to nub - npoess user block tool (20)

HDF5 Advanced Topics - Chunking
HDF5 Advanced Topics - ChunkingHDF5 Advanced Topics - Chunking
HDF5 Advanced Topics - Chunking
 
Intro to Open Babel
Intro to Open BabelIntro to Open Babel
Intro to Open Babel
 
The Google Chubby lock service for loosely-coupled distributed systems
The Google Chubby lock service for loosely-coupled distributed systemsThe Google Chubby lock service for loosely-coupled distributed systems
The Google Chubby lock service for loosely-coupled distributed systems
 
Tutorial Haddop 2.3
Tutorial Haddop 2.3Tutorial Haddop 2.3
Tutorial Haddop 2.3
 
Early Experiences with the OpenMP Accelerator Model
Early Experiences with the OpenMP Accelerator ModelEarly Experiences with the OpenMP Accelerator Model
Early Experiences with the OpenMP Accelerator Model
 
HDF5 I/O Performance
HDF5 I/O PerformanceHDF5 I/O Performance
HDF5 I/O Performance
 
Linux
LinuxLinux
Linux
 
Find and Locate: Two Commands
Find and Locate: Two CommandsFind and Locate: Two Commands
Find and Locate: Two Commands
 
Stack Frame Protection
Stack Frame ProtectionStack Frame Protection
Stack Frame Protection
 
Linux Fundamentals
Linux FundamentalsLinux Fundamentals
Linux Fundamentals
 
redhat_by_Cbitss.ppt
redhat_by_Cbitss.pptredhat_by_Cbitss.ppt
redhat_by_Cbitss.ppt
 
Towards a Systematic Study of Big Data Performance and Benchmarking
Towards a Systematic Study of Big Data Performance and BenchmarkingTowards a Systematic Study of Big Data Performance and Benchmarking
Towards a Systematic Study of Big Data Performance and Benchmarking
 
Class 2
Class   2Class   2
Class 2
 
Automating materials science workflows with pymatgen, FireWorks, and atomate
Automating materials science workflows with pymatgen, FireWorks, and atomateAutomating materials science workflows with pymatgen, FireWorks, and atomate
Automating materials science workflows with pymatgen, FireWorks, and atomate
 
Big data processing using hadoop poster presentation
Big data processing using hadoop poster presentationBig data processing using hadoop poster presentation
Big data processing using hadoop poster presentation
 
MongoDB Replication fundamentals - Desert Code Camp - October 2014
MongoDB Replication fundamentals - Desert Code Camp - October 2014MongoDB Replication fundamentals - Desert Code Camp - October 2014
MongoDB Replication fundamentals - Desert Code Camp - October 2014
 
MCLS 45 Lab Manual
MCLS 45 Lab ManualMCLS 45 Lab Manual
MCLS 45 Lab Manual
 
12 linux archiving tools
12 linux archiving tools12 linux archiving tools
12 linux archiving tools
 
Plreuse
PlreusePlreuse
Plreuse
 
General Purpose GPU Computing
General Purpose GPU ComputingGeneral Purpose GPU Computing
General Purpose GPU Computing
 

More from The HDF-EOS Tools and Information Center

STARE-PODS: A Versatile Data Store Leveraging the HDF Virtual Object Layer fo...
STARE-PODS: A Versatile Data Store Leveraging the HDF Virtual Object Layer fo...STARE-PODS: A Versatile Data Store Leveraging the HDF Virtual Object Layer fo...
STARE-PODS: A Versatile Data Store Leveraging the HDF Virtual Object Layer fo...The HDF-EOS Tools and Information Center
 

More from The HDF-EOS Tools and Information Center (20)

Cloud-Optimized HDF5 Files
Cloud-Optimized HDF5 FilesCloud-Optimized HDF5 Files
Cloud-Optimized HDF5 Files
 
Accessing HDF5 data in the cloud with HSDS
Accessing HDF5 data in the cloud with HSDSAccessing HDF5 data in the cloud with HSDS
Accessing HDF5 data in the cloud with HSDS
 
The State of HDF
The State of HDFThe State of HDF
The State of HDF
 
Highly Scalable Data Service (HSDS) Performance Features
Highly Scalable Data Service (HSDS) Performance FeaturesHighly Scalable Data Service (HSDS) Performance Features
Highly Scalable Data Service (HSDS) Performance Features
 
Creating Cloud-Optimized HDF5 Files
Creating Cloud-Optimized HDF5 FilesCreating Cloud-Optimized HDF5 Files
Creating Cloud-Optimized HDF5 Files
 
HDF5 OPeNDAP Handler Updates, and Performance Discussion
HDF5 OPeNDAP Handler Updates, and Performance DiscussionHDF5 OPeNDAP Handler Updates, and Performance Discussion
HDF5 OPeNDAP Handler Updates, and Performance Discussion
 
Hyrax: Serving Data from S3
Hyrax: Serving Data from S3Hyrax: Serving Data from S3
Hyrax: Serving Data from S3
 
Accessing Cloud Data and Services Using EDL, Pydap, MATLAB
Accessing Cloud Data and Services Using EDL, Pydap, MATLABAccessing Cloud Data and Services Using EDL, Pydap, MATLAB
Accessing Cloud Data and Services Using EDL, Pydap, MATLAB
 
HDF - Current status and Future Directions
HDF - Current status and Future DirectionsHDF - Current status and Future Directions
HDF - Current status and Future Directions
 
HDFEOS.org User Analsys, Updates, and Future
HDFEOS.org User Analsys, Updates, and FutureHDFEOS.org User Analsys, Updates, and Future
HDFEOS.org User Analsys, Updates, and Future
 
HDF - Current status and Future Directions
HDF - Current status and Future Directions HDF - Current status and Future Directions
HDF - Current status and Future Directions
 
H5Coro: The Cloud-Optimized Read-Only Library
H5Coro: The Cloud-Optimized Read-Only LibraryH5Coro: The Cloud-Optimized Read-Only Library
H5Coro: The Cloud-Optimized Read-Only Library
 
MATLAB Modernization on HDF5 1.10
MATLAB Modernization on HDF5 1.10MATLAB Modernization on HDF5 1.10
MATLAB Modernization on HDF5 1.10
 
HDF for the Cloud - Serverless HDF
HDF for the Cloud - Serverless HDFHDF for the Cloud - Serverless HDF
HDF for the Cloud - Serverless HDF
 
HDF5 <-> Zarr
HDF5 <-> ZarrHDF5 <-> Zarr
HDF5 <-> Zarr
 
HDF for the Cloud - New HDF Server Features
HDF for the Cloud - New HDF Server FeaturesHDF for the Cloud - New HDF Server Features
HDF for the Cloud - New HDF Server Features
 
Apache Drill and Unidata THREDDS Data Server for NASA HDF-EOS on S3
Apache Drill and Unidata THREDDS Data Server for NASA HDF-EOS on S3Apache Drill and Unidata THREDDS Data Server for NASA HDF-EOS on S3
Apache Drill and Unidata THREDDS Data Server for NASA HDF-EOS on S3
 
STARE-PODS: A Versatile Data Store Leveraging the HDF Virtual Object Layer fo...
STARE-PODS: A Versatile Data Store Leveraging the HDF Virtual Object Layer fo...STARE-PODS: A Versatile Data Store Leveraging the HDF Virtual Object Layer fo...
STARE-PODS: A Versatile Data Store Leveraging the HDF Virtual Object Layer fo...
 
HDF5 and Ecosystem: What Is New?
HDF5 and Ecosystem: What Is New?HDF5 and Ecosystem: What Is New?
HDF5 and Ecosystem: What Is New?
 
HDF5 Roadmap 2019-2020
HDF5 Roadmap 2019-2020HDF5 Roadmap 2019-2020
HDF5 Roadmap 2019-2020
 

Recently uploaded

08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoffsammart93
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
Evaluating the top large language models.pdf
Evaluating the top large language models.pdfEvaluating the top large language models.pdf
Evaluating the top large language models.pdfChristopherTHyatt
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)wesley chun
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century educationjfdjdjcjdnsjd
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Enterprise Knowledge
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUK Journal
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...Neo4j
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 

Recently uploaded (20)

08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
Evaluating the top large language models.pdf
Evaluating the top large language models.pdfEvaluating the top large language models.pdf
Evaluating the top large language models.pdf
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 

nub - npoess user block tool

  • 1. nub - npoess user block tool Richard Ullman NASA GSFC
  • 2. nub • nub (nŭb) n. – 1. A protuberance or knob. – 2. A small lump. – 3. The essence; the core: the nub of a story. – [Variant of knub, probably from Low German knubbe, from Middle Low German, variant of knobbe.] • (selected from http://www.answers.com/topic/nub) 2
  • 3. NPOESS user block • For NPOESS files, the user block is ASCII text written in XML that provides a quick-look into the metadata attributes contained in the HDF5 file. – The content of the user block includes metadata that is attached to the NPOESS: • / (root) group • <collection_shortname> group, and • <collection_shortname>_Aggr group. 3
  • 4. nub_Motivation • When evaluating NPOESS sample data last year, I wished to examine the user block, as a stand-alone item, but I found that the h5unjam tool to be expensive – h5unjam reads an HDF5 file and writes two output files • 1. a file containing the content of the user block • 2. a file containing the H5 data without the user block. – The second part was unnecessary for my purposes, but because the NPOESS files are large, it is expensive. • So .. I wrote nub … 4
  • 5. nub_Design • Design criteria: – “c” program (that’s all I know how to write) – Efficient - do no ‘EXTRA’ work. – Command line operation, with Unix-like options. – Pipe-able. (stdin/stdout) – Assume user block is text. – Work only on the front user block. – Complete set of functions to manipulate the user block: • List, Create, Overwrite, Append, Delete, Get size • Requirements creep … – Complete replacement for h5jam/h5unjam/tellub – No reliance on h5 library (no need). • Availability: – Applied for NASA Open Source release. All paperwork completed. Waiting for final approval. – Evaluation copy available to anyone interested in NPOESS. 5
  • 6. nub operates on the front user block ONLY signature: “211HDFrn32n” user block user block HDF5 HDF5 sizeof( user_block) = 2^n, where n>8, (or n=0) 6
  • 7. nub file.h5 signature: “211HDFrn32n” content,content/0/0/0/0/0/0/0/0 content,content/0/0/0/0/0/0/0/0 --tell -b HDF5 HDF5 --tell -s --tell -a • Tell: name comes from HDF5 internal tool “tellub” • This is the nub default operation. – Count the size of the user block content [-b], the size of the user block [-s], and the size of the complete H5 file [-a] in bytes. – No options given is equivalent to: nub --tell -bsa file.h5 – Output is similar to wc 7
  • 8. nub -l file.h5 signature: “211HDFrn32n” file.txt file.txt content,content/0/0/0/0/0/0/0/0 content,content/0/0/0/0/0/0/0/0 HDF5 HDF5 • List: list the content of the user block write to stdout, or if -f write to the given file 8
  • 9. nub -w file.h5 content,content/0/0/0/0/0/0/0/0 content,content/0/0/0/0/0/0/0/0 signature: “211HDFrn32n” user_file.txt user_file.txt HDF5 HDF5 • Write: write text content to the user block – append by default, or clobber (replace) – fit into existing space (by overwriting only null chars) by default, or “jam” (extend the block) – “kram” option shrinks user block into smallest that will fit the content – read from stdin, or use the file specified on the -u switch 9
  • 10. nub_ compatibility • nub will respond to the same command line options that are used with h5jam and h5unjam. • “nub -J” is an explicit substitute for h5jam • “nub -U” is an explicit substitute for h5unjam • “nub -T” is an explicit substitute for tellub • Or, use just “nub” as a substitute for either and the code will decide which of the two is most appropriate based on the flags provided. 10
  • 11. nub_test • Results of nub as a substitute for h5jam, h5unjam in the standard hdf5 tools regression tests … • 68 PASSED • 6 FAILED – fails are due to difference in concept of concatenation. – nub appends to the end of the content of an existing user block. – h5jam appends to the end of the existing user block. – User blocks are of size=2^n, where size > 256 and is big enough to fit the content. So, if user block content is 513 bytes, the size of the user block is 1024 bytes, including 511 bytes of NULL padding. – nub will overwrite the NULL padding, h5jam leaves the padding in place. 11