Wail Alkowaileet created ASTERIXDB-2493:
-------------------------------------------
Summary: In-memory LSM filter is not thread safe
Key: ASTERIXDB-2493
URL: https://issues.apache.org/jira/browse/ASTERIXDB-2493
Project: Apache AsterixDB
Issue Type: Bug
Reporter: Wail Alkowaileet
To reproduce the issue:
1- Setup a cluster with a single NC and a single partition.
2- Set a breakpoint at
[LSMComponentFilter.java#L71]|https://github.com/apache/asterixdb/blob/6b31f73565a3b16e0dd1fce9ea010e640c53ca79/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-common/src/main/java/org/apache/hyracks/storage/am/lsm/common/impls/LSMComponentFilter.java#L71]
3- DDL:
{code:sql}
DROP DATAVERSE ThreadSafe IF EXISTS;
CREATE DATAVERSE ThreadSafe;
USE ThreadSafe;
CREATE TYPE FilterTestType AS {
uid: uuid,
created: int
};
CREATE DATASET FilterTest(FilterTestType)
PRIMARY KEY uid AUTOGENERATED WITH FILTER ON created;
{code}
4- Initiate two insert queries:
{code:sql}
USE ThreadSafe;
INSERT INTO FilterTest (
{"created": 1}
)
INSERT INTO FilterTest (
{"created": 0}
)
{code}
5- Let the insert with "created = 0" to update the minTuple (L79)
6- Now, let the insert with "created = 1" to update minTuple
7- Do the same for the max.
After (7) both min and max should equal to 1
8- Flush the component:
http://localhost:19002/connector?dataverseName=ThreadSafe&datasetName=FilterTest
9- Execute search query:
{code:sql}
USE ThreadSafe;
SELECT *
FROM FilterTest
WHERE created = 0;
{code}
The query returns an empty result
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)