Luo Chen has posted comments on this change. ( https://asterix-gerrit.ics.uci.edu/2453 )
Change subject: [ASTERIXDB-2310][STO]Enforce Key Uniquness using PKIndex ...................................................................... Patch Set 23: (3 comments) https://asterix-gerrit.ics.uci.edu/#/c/2453/22/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/declared/BTreeResourceFactoryProvider.java File asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/declared/BTreeResourceFactoryProvider.java: https://asterix-gerrit.ics.uci.edu/#/c/2453/22/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/declared/BTreeResourceFactoryProvider.java@111 PS22, Line 111: index.isPrimaryIndex(), btreeFields, compDecompFact > I don't think this is a good idea. We have many places in the system where I changed the logic of creating bloom filters at the LSMBTree level. A bloom filter is created whenever the passed bloomFilterFields is not NULL. Thus, the primary key index is NOT treated as the primary index, but it can still have bloom filters. https://asterix-gerrit.ics.uci.edu/#/c/2453/22/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/operators/LSMPrimaryInsertOperatorNodePushable.java File asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/operators/LSMPrimaryInsertOperatorNodePushable.java: https://asterix-gerrit.ics.uci.edu/#/c/2453/22/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/operators/LSMPrimaryInsertOperatorNodePushable.java@66 PS22, Line 66: indexForUniquessCheck > make this local variable This is already a local variable. The comment is incomplete? https://asterix-gerrit.ics.uci.edu/#/c/2453/22/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/operators/LSMPrimaryInsertOperatorNodePushable.java@129 PS22, Line 129: > If you have multiple concurrent writers on the same dataset, what prevents We only force upsert operations when the batch of a frame enters an LSM index. lsmAccessor.batchOperate itself prevents new batches if the memory component is already full. The implementation here is very similar to LSMPrimaryUpsertOperatorNodePushable, which uses the same logic (one reason is to prevent a memory component being flushed if we have already searched a key) -- To view, visit https://asterix-gerrit.ics.uci.edu/2453 To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings Gerrit-Project: asterixdb Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I7a52bb75ee5b14521972999df2f45ba62adc5af1 Gerrit-Change-Number: 2453 Gerrit-PatchSet: 23 Gerrit-Owner: Luo Chen <[email protected]> Gerrit-Reviewer: Anon. E. Moose (1000171) Gerrit-Reviewer: Dmitry Lychagin <[email protected]> Gerrit-Reviewer: Ian Maxon <[email protected]> Gerrit-Reviewer: Jenkins <[email protected]> Gerrit-Reviewer: Luo Chen <[email protected]> Gerrit-Reviewer: Murtadha Hubail <[email protected]> Gerrit-Reviewer: Till Westmann <[email protected]> Gerrit-Comment-Date: Fri, 19 Apr 2019 16:37:57 +0000 Gerrit-HasComments: Yes
