Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

database #58

Open
ligerzero-ai opened this issue Nov 15, 2024 · 0 comments
Open

database #58

ligerzero-ai opened this issue Nov 15, 2024 · 0 comments

Comments

@ligerzero-ai
Copy link
Contributor

The hashing database needs clear tags of the input

  • Input is a primitive datatype or recursively reduced
  • While/for loops in danger (?)

Unique input – recursive input – primitive datatypes-> hash can be gotten by nodes
Hash connected with input, node identifier, and output
Three options on output
Output empty
Output nicely storable in the database json
Output is recursive (pickled etc.)
Small stored as json,
large stored as file,
not easily serializable, stored as binary
json-dictionary like behaviour in the output?
Clear text input, Dictionary in a column (possible in postgres? Upscalable?)
Refuse (?) non primitive inputs that are too large
Human readable json (dictionary of smallish things)
Backend is entirely flexible
Can have decent query to have some human keywords to get the values back from the dictionary
Spec:
Queries: Look for all vasp incar files which are identical, incar has hash because it exists as a dataclass node, is a node hash.
Given a hash, get all the input
Query by certain input values get all nodes that have “method” is “conjugate”
Given a hashed input, give me the node via recreation.
From database, need unique id of the node, libpath, node version?
Database storage interface – possibility to get some unique identifier for a node (versioning/everything)
Must have some option to store and load the node from the information stored in the database
Hash database – what do we want to hash

  • Hash – hash source code via introspection (?) (both exotic discussions)
  • Bytecode of the function(?) the python bytecode (both exotic discussions)
  • Some versioning information
    New calculation if node version changed?
    Do we allow local nodes into a database?
    Do we want to allow pyiron_workflow to operate storage/database to be optional?
    Yes
    Can do routine cleaning of the database of nodes that are unused (usage tracked in database) to purge database of non-useful nodes(?)
    Hash database – at some point this node with this version was run with these inputs
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant