TileDB icon indicating copy to clipboard operation
TileDB copied to clipboard

Nonvalid/Inconsistent Timestamp Records

Open rlizzo opened this issue 6 years ago • 0 comments

This is a bug I've found in tiledb-python with version 1.4 and python 3 on MacOSX.

When writing large dense arrays arrays, the reported timestamp access when writing, and the actual timestamp of the fragment that is written do not match. This is an issue when trying to use the timestamp records in later procedures (reading an array).

Minimum program to reproduce:

import tiledb
import os
import numpy as np
import time

arr = np.arange(0, 10_000_000)
name = 'foo_array'
ctx = tiledb.Ctx()

tdb_dim = tiledb.Dim(ctx, name='d1', domain=(0, 9_999_999), tile=1000, dtype=np.int32)
tdb_dom = tiledb.Domain(ctx, tdb_dim)
tdb_attr = tiledb.Attr(ctx, name='v', dtype=arr.dtype)
tdb_schema = tiledb.ArraySchema(ctx, domain=tdb_dom, sparse=False, attrs=[tdb_attr])

tiledb.DenseArray.create(name, tdb_schema)

with tiledb.DenseArray(ctx, name, mode='w') as A:
    A[:] = arr
    w1Time = A.timestamp
    time.sleep(0.5)
    w2Time = A.timestamp

print(f'timestamp 1: {w1Time}')
print(f'timestamp 2: {w2Time}')

print(f'actual timestamp:')
print(os.listdir(name))
timestamp 1: 1542773169335
timestamp 2: 1542773169335
actual timestamp:
['__lock.tdb', '__array_schema.tdb', '__fb1ed82e140541a0a6c867304e59cecd_1542773169337']

Originally posted on https://forum.tiledb.io/t/nonvalid-inconsistent-timestamp-records/35

rlizzo avatar Dec 11 '18 23:12 rlizzo