JanusGraph / JanusGraph/janusgraph

Storage layer preferred TIMESTAMP_PROVIDER not used for initial setup from local file

Open
#2,590 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

kind/bug/possible
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

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.