JanusGraph / JanusGraph/janusgraph
Storage layer preferred TIMESTAMP_PROVIDER not used for initial setup from local file
Nobody has claimed this yet.
- Dominant language
- Java
- Stars
- 5.8k
- Forks
- 1.2k
- Avg merge
- 13h 53m
- Merged PRs (30d)
- 6
Description
## Description
For confirmed bugs, please report:
- Version: tested with 0.3.1 and 0.4.0 but the code is still percent in master
- Storage Backend: tested with HBase but affects all
When initializing a new graph where the storage layer has a preferred `TIMESTAMP_PROVIDER` value different than the default, the initial settings are stored using the wrong timestamp resolution.
I found this bug trying to delete some GLOBAL_OFFLINE settings in a deployment using HBase as the storage layer. HBase was set to use _milliseconds_ timestamps but the graph settings specified in the `.properties` file were being saved using _microseconds_, which is the default value for `graph.timestamps`.
### Expected Behavior
All configuration values should be set using the preferred storage layer timestamp resolution when available.
### Current Behavior
Initial configuration values always use the default timestamp provider resolution.
### Steps to Reproduce
With HBase running locally using milliseconds timestamp resolution (the default).
1. Create a new graph with: `JanusGraphFactory.build().set("storage. backend","hbase").open()`
2. List the content of the `janusgraph` table with `scan "janusgraph"`
_Expected:_ timestamps are milliseconds values.
_Actual:_ timestamps are microseconds values.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with the JanusGraphFactory.build().set(...).open() initialization path and inspect how settings from the .properties file are written before the storage backend's preferred TIMESTAMP_PROVIDER is applied. Reproduce with HBase and scan the janusgraph table; done means initial configuration timestamps use the backend's preferred resolution rather than the default.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- java
- Domain
- databases
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100