Clone Tools
  • last updated 17 mins ago
Constraints
Constraints: committers
 
Constraints: files
Constraints: dates
Merge branch 'stabilization-f69489' into 'mad-hatter'

Change-Id: I07cab31b76128dfa5cea9b49620b1c074b385c81

    • -2
    • +6
    ./recovery/AbstractCheckpointManager.java
  1. … 2 more files in changeset.
[NO ISSUE][STO] Force Checkpoints/Index Metadata Files to Disk

- user model changes: no

- storage format changes: no

- interface changes: no

Details:

- Ensure the system checkpoint file is forced to disk.

- Ensure index metadata files and checkpoints are forced

to disk.

Change-Id: I27ab8ed39e23760b514640d77532a1dc24a97992

Reviewed-on: https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/3943

Integration-Tests: Jenkins <jenkins@fulliautomatix.ics.uci.edu>

Tested-by: Jenkins <jenkins@fulliautomatix.ics.uci.edu>

Reviewed-by: Murtadha Hubail <mhubail@apache.org>

Reviewed-by: Michael Blow <mblow@apache.org>

    • -2
    • +7
    ./recovery/AbstractCheckpointManager.java
  1. … 3 more files in changeset.
[NO ISSUE][TXN] Remove Synchronization on TransactionContext

- user model changes: no

- storage format changes: no

- interface changes: no

Details:

- Currently the flag indicating if a transaction timed out

synchronizes on the transaction context which makes it

a hot spot when multiple threads on the same transactions

attempting to access that flag. This change removes that

synchronization and replaces it with a volatile variable.

Change-Id: Ib14c07a051d27a5b47c62ff35769670e6ab01fd2

Reviewed-on: https://asterix-gerrit.ics.uci.edu/3579

Reviewed-by: Murtadha Hubail <mhubail@apache.org>

Tested-by: Jenkins <jenkins@fulliautomatix.ics.uci.edu>

Integration-Tests: Jenkins <jenkins@fulliautomatix.ics.uci.edu>

Reviewed-by: Michael Blow <mblow@apache.org>

    • -3
    • +3
    ./transaction/AbstractTransactionContext.java
[NO ISSUE][STO] Fix Time Unit Comparison For Periodic Flushes

- user model changes: no

- storage format changes: no

- interface changes: no

Details:

- The dataset checkpoint interval is specified in the

configuration using seconds while the dataset last

flush time is tracked in nanos. This change fixes the

comparison by converting the dataset checkpoint

interval to nanos.

Change-Id: Id5a9b86207ea25ba44840af01324041525ac5bd9

Reviewed-on: https://asterix-gerrit.ics.uci.edu/3542

Sonar-Qube: Jenkins <jenkins@fulliautomatix.ics.uci.edu>

Contrib: Jenkins <jenkins@fulliautomatix.ics.uci.edu>

Tested-by: Jenkins <jenkins@fulliautomatix.ics.uci.edu>

Integration-Tests: Jenkins <jenkins@fulliautomatix.ics.uci.edu>

Reviewed-by: Till Westmann <tillw@apache.org>

Merge commit '8c99391' from stabilization-f69489

Change-Id: I139c265ba998c32ec049c8a8bbd7a5a213895d2a

  1. … 7 more files in changeset.
[NO ISSUE][STO] Tolerate Corrupted System Checkpoint Files

- user model changes: no

- storage format changes: no

- interface changes: no

Details:

- Do not delete corrupted checkpoint files until a valid

checkpoint is persisted. This ensure a forged checkpoint

that will force recovery to start from the begining is

always used until a valid checkpoint is found.

- Attempt to read the latest checkpoint file right after

writing it and before attempting cleaning up invalid and

old checkpoint files.

- Use on disk files to determine next checkpoint id to

account for existing corrupted checkpoints.

- Maintain two older checkpoint files in addition to the

latest one.

- Catch all exceptions on checkpointing failures since it is

a try operation.

- Add test scenairo for the new checkpoints clean up behavior.

Change-Id: Iea689f5a644351491d9748273bb2158e8179f54d

Reviewed-on: https://asterix-gerrit.ics.uci.edu/3496

Tested-by: Jenkins <jenkins@fulliautomatix.ics.uci.edu>

Integration-Tests: Jenkins <jenkins@fulliautomatix.ics.uci.edu>

Reviewed-by: Murtadha Hubail <mhubail@apache.org>

Reviewed-by: Till Westmann <tillw@apache.org>

    • -16
    • +23
    ./recovery/AbstractCheckpointManager.java
  1. … 6 more files in changeset.
Merge commit '0561d10' from stabilization-f69489

Change-Id: I18115329ce7ab3501e7fcc9c6dc06d0e87c97688

  1. … 1 more file in changeset.
[NO ISSUE][REPL] Suspend Dataset Checkpointing on Replica Sync

- user model changes: no

- storage format changes: no

- interface changes: yes

Details:

- Before synchronizing replicas, stop datasets checkpointing to

prevent new files from being generated due to async IO operations

triggered by checkpointing.

- Instead of sync'ing current files to replicas then scheduling a flush

and sync'ing any newly generated files, just flush datasets before

the initial sync then sync all the files in one go.

Change-Id: I058fd48bc0fb89a1e16448ce516c3410bb4d681d

Reviewed-on: https://asterix-gerrit.ics.uci.edu/3469

Sonar-Qube: Jenkins <jenkins@fulliautomatix.ics.uci.edu>

Tested-by: Jenkins <jenkins@fulliautomatix.ics.uci.edu>

Integration-Tests: Jenkins <jenkins@fulliautomatix.ics.uci.edu>

Reviewed-by: Murtadha Hubail <mhubail@apache.org>

Reviewed-by: Till Westmann <tillw@apache.org>

  1. … 2 more files in changeset.
[NO ISSUE] Apply / enforce java import order

The process-sources target will now sort imports as well as

format source code; the source-format job will likewise verify

import order in addition to source code format

Change-Id: I55d976c4df10d9919c6a25683be2a3e3304e65d9

Reviewed-on: https://asterix-gerrit.ics.uci.edu/3288

Integration-Tests: Michael Blow <mblow@apache.org>

Tested-by: Michael Blow <mblow@apache.org>

Reviewed-by: Till Westmann <tillw@apache.org>

Contrib: Jenkins <jenkins@fulliautomatix.ics.uci.edu>

    • -1
    • +1
    ./recovery/AbstractCheckpointManager.java
    • -1
    • +1
    ./transaction/EntityLevelTransactionContext.java
  1. … 623 more files in changeset.
[ASTERIXDB-2491][TXN] Recovery fixes

- user model changes: no

- storage format changes: yes[1]

- interface changes: no

Details:

- Change field offset type from integer16 to integer32

- Add recovery test

- Add version to log entries

[1] LogRecord format change with this patch; old LogRecord format can still

be processed, however old instances cannot read new log format

Change-Id: Iaf14b9a73a0239763bfeb0ce2d81cf952e6d72d3

Reviewed-on: https://asterix-gerrit.ics.uci.edu/3065

Sonar-Qube: Jenkins <jenkins@fulliautomatix.ics.uci.edu>

Tested-by: Jenkins <jenkins@fulliautomatix.ics.uci.edu>

Reviewed-by: Michael Blow <mblow@apache.org>

  1. … 22 more files in changeset.
[NO ISSUE][*DB] LogManagerWithReplication optimizations

- user model changes: no

- storage format changes: no

- interface changes: no

Details:

- eliminate boxing/unboxing of txnids

- remove redundant hashset contains call

Change-Id: I6e5068c6fe3f6226eabd5403440682c52662421e

Reviewed-on: https://asterix-gerrit.ics.uci.edu/3251

Sonar-Qube: Jenkins <jenkins@fulliautomatix.ics.uci.edu>

Integration-Tests: Jenkins <jenkins@fulliautomatix.ics.uci.edu>

Tested-by: Jenkins <jenkins@fulliautomatix.ics.uci.edu>

Contrib: Jenkins <jenkins@fulliautomatix.ics.uci.edu>

Reviewed-by: Till Westmann <tillw@apache.org>

    • -5
    • +6
    ./logging/LogManagerWithReplication.java
[NO ISSUE] Ensure serialVersionUIDs are present

Serializable classes should define a serialVersionUID; define those

where missing. For classes present in 0.9.4.x, initialize the value

to the auto-configured serialVersionUID on those versions of the class

Change-Id: Ia92d0c81f3681dce7ec0f643e2edf77e2ac4dbc5

Reviewed-on: https://asterix-gerrit.ics.uci.edu/3141

Tested-by: Michael Blow <mblow@apache.org>

Sonar-Qube: Jenkins <jenkins@fulliautomatix.ics.uci.edu>

Tested-by: Jenkins <jenkins@fulliautomatix.ics.uci.edu>

Integration-Tests: Jenkins <jenkins@fulliautomatix.ics.uci.edu>

Reviewed-by: Till Westmann <tillw@apache.org>

  1. … 51 more files in changeset.
[ASTERIXDB-2506][STO] Checkpoint Datasets

- user model changes: no

- storage format changes: no

- interface changes: yes

Details:

- Add new config to specify dataset checkpoint interval

and default its value to 10 minutes.

- Flush datasets which were not flushed for the dataset

checkpoint interval.

- Run dataset checkpoint logic as part of the CheckpointThread.

- Improve dataset async flush API to accept any LSM index predicate.

- Cleanup exception handling in CheckpoinThread.

- Add test case for dataset checkpoint.

Change-Id: I38a73a43a4b1b7d3a8ac79dd579ed4ef8c9c6a9b

Reviewed-on: https://asterix-gerrit.ics.uci.edu/3106

Sonar-Qube: Jenkins <jenkins@fulliautomatix.ics.uci.edu>

Tested-by: Jenkins <jenkins@fulliautomatix.ics.uci.edu>

Integration-Tests: Jenkins <jenkins@fulliautomatix.ics.uci.edu>

Contrib: Jenkins <jenkins@fulliautomatix.ics.uci.edu>

Reviewed-by: Till Westmann <tillw@apache.org>

    • -21
    • +16
    ./recovery/CheckpointThread.java
  1. … 18 more files in changeset.
[ASTERIXDB-2497][TX] Ensure Log Record Flush LSN is Set

- user model changes: no

- storage format changes: no

- interface changes: no

Details:

- Set the flush LSN of log records before giving it

to the log flusher to avoid reading invalid value

if the flush is completed before setting the LSN.

- Ensure log record LSN is thread-safe.

- Warn in case of a flush with LSN = 0.

Change-Id: Ifc605c2d794339a3dc5004b462eca50ec103c717

Reviewed-on: https://asterix-gerrit.ics.uci.edu/3087

Sonar-Qube: Jenkins <jenkins@fulliautomatix.ics.uci.edu>

Tested-by: Jenkins <jenkins@fulliautomatix.ics.uci.edu>

Integration-Tests: Jenkins <jenkins@fulliautomatix.ics.uci.edu>

Contrib: Jenkins <jenkins@fulliautomatix.ics.uci.edu>

Reviewed-by: Murtadha Hubail <mhubail@apache.org>

Reviewed-by: Till Westmann <tillw@apache.org>

  1. … 2 more files in changeset.
[ASTERIXDB-2497][TX] Ensure Log Record Flush LSN is Set

- user model changes: no

- storage format changes: no

- interface changes: no

Details:

- Set the flush LSN of log records before giving it

to the log flusher to avoid reading invalid value

if the flush is completed before setting the LSN.

- Ensure log record LSN is thread-safe.

- Warn in case of a flush with LSN = 0.

Change-Id: Ifc605c2d794339a3dc5004b462eca50ec103c717

Reviewed-on: https://asterix-gerrit.ics.uci.edu/3087

Sonar-Qube: Jenkins <jenkins@fulliautomatix.ics.uci.edu>

Tested-by: Jenkins <jenkins@fulliautomatix.ics.uci.edu>

Integration-Tests: Jenkins <jenkins@fulliautomatix.ics.uci.edu>

Contrib: Jenkins <jenkins@fulliautomatix.ics.uci.edu>

Reviewed-by: Murtadha Hubail <mhubail@apache.org>

Reviewed-by: Till Westmann <tillw@apache.org>

(cherry picked from commit 440e3a56b6f7d888c07575a898b79fec8848e06a)

Reviewed-on: https://asterix-gerrit.ics.uci.edu/3573

  1. … 2 more files in changeset.
[ASTERIXDB-2444][STO] Avoid Using System Clock in Checkpoints

- user model changes: no

- storage format changes: yes

- interface changes: yes

Details:

- Replace the usage of system clock timestamps in checkpoints

by a sequencer.

- Update Asterix/Hyracks storage version to reflect the recent

changes in storage.

- This change is expected to break storage backward compatibility.

Change-Id: Idc061e6eaccfb308b29a5a263b77a0a849694d4f

Reviewed-on: https://asterix-gerrit.ics.uci.edu/2961

Reviewed-by: Michael Blow <mblow@apache.org>

Integration-Tests: Michael Blow <mblow@apache.org>

Tested-by: Michael Blow <mblow@apache.org>

    • -70
    • +88
    ./recovery/AbstractCheckpointManager.java
  1. … 5 more files in changeset.
[NO ISSUE][TX] Create New Log File Before Deleting Old Files

- user model changes: no

- storage format changes: no

- interface changes: no

Details:

- Ensure next log file is created after a sharp check

point before deleting old files. This is to prevent

the case if a crash happens right after deleting the

old files but before creating the new one, then the

next time the system starts up, it will start with

log file id 0 which is wrong.

- Log the details of latest index checkpoint when the

low watermark of the new checkpoint is less than the

low watermakr of the latest checkpoint.

Change-Id: I4817f697b43daff55726909ab074ec30a1c224ce

Reviewed-on: https://asterix-gerrit.ics.uci.edu/2959

Reviewed-by: Michael Blow <mblow@apache.org>

Sonar-Qube: Jenkins <jenkins@fulliautomatix.ics.uci.edu>

Tested-by: Jenkins <jenkins@fulliautomatix.ics.uci.edu>

Integration-Tests: Jenkins <jenkins@fulliautomatix.ics.uci.edu>

  1. … 3 more files in changeset.
[NO ISSUE][OTH] Log Level Fixes

- user model changes: no

- storage format changes: no

- interface changes: no

Change-Id: Ib5fb7e3140bf36cf4ba5857b9fda8e6cc4bdfa20

Reviewed-on: https://asterix-gerrit.ics.uci.edu/2883

Sonar-Qube: Jenkins <jenkins@fulliautomatix.ics.uci.edu>

Tested-by: Jenkins <jenkins@fulliautomatix.ics.uci.edu>

Contrib: Jenkins <jenkins@fulliautomatix.ics.uci.edu>

Integration-Tests: Jenkins <jenkins@fulliautomatix.ics.uci.edu>

Reviewed-by: Murtadha Hubail <mhubail@apache.org>

Reviewed-by: Till Westmann <tillw@apache.org>

  1. … 13 more files in changeset.
[NO ISSUE][TX] Fix Concurrent Access in TransactionContext

- user model changes: no

- storage format changes: no

- interface changes: no

Details:

- Ensure all access to TransactionContext is thread safe.

Change-Id: Id7cc9e67cd51e06cf78b0ea231d3970e5199573c

Reviewed-on: https://asterix-gerrit.ics.uci.edu/2875

Sonar-Qube: Jenkins <jenkins@fulliautomatix.ics.uci.edu>

Tested-by: Jenkins <jenkins@fulliautomatix.ics.uci.edu>

Contrib: Jenkins <jenkins@fulliautomatix.ics.uci.edu>

Integration-Tests: Jenkins <jenkins@fulliautomatix.ics.uci.edu>

Reviewed-by: Murtadha Hubail <mhubail@apache.org>

Reviewed-by: abdullah alamoudi <bamousaa@gmail.com>

    • -1
    • +1
    ./transaction/AbstractTransactionContext.java
    • -5
    • +5
    ./transaction/AtomicTransactionContext.java
    • -12
    • +10
    ./transaction/EntityLevelTransactionContext.java
[NO ISSUE] Allow MetadataProvider config to store non String values

- user model changes: no

- storage format changes: no

- interface changes: yes

Details:

- In many cases, we would like to associate a value with a key

in MetadataProvider to be accessed during the compilation

of jobs. However, currently, there is no place to store

such values, so we ended up storing them in the config

map.

- The config map is a <String, String> map and so, we would

write our values as a string and then parse them when needed.

- To avoid this, and to avoid introducing a new map, we simply

change the config stored in MetadataProvider from <String,String>

to <String, Object>.

Change-Id: I55b392ad199d74b0f3cffdc38b54593b12ec1a06

Reviewed-on: https://asterix-gerrit.ics.uci.edu/2795

Tested-by: Jenkins <jenkins@fulliautomatix.ics.uci.edu>

Contrib: Jenkins <jenkins@fulliautomatix.ics.uci.edu>

Reviewed-by: Murtadha Hubail <mhubail@apache.org>

Integration-Tests: Murtadha Hubail <mhubail@apache.org>

  1. … 23 more files in changeset.
[ASTERIXDB-1130][STO]: JSON serialization for persisted objects

- user model changes: no

- storage format changes:

This change replaces the use of Java serialization for persisted objects

such as dataset/index metadata, checkpoints, ect...

This will break backward compatibly with any existing AsterixDB instance.

However, the change is needed to enable future backward compatibility support

for persisted objects.

- interface changes:

IJsonSerializable: contains API to serialize a class as a JsonNode.

IPersistedResourceRegistry: contains a mapping between an IJsonSerializable

class and a unique type id. An IPersistedResourceRegistry is responsible

for generating the class identifier in the JSON output.

The class identifier will always contain the following attributes:

@type: a unique type id that identifies the object type.

@version: the version of the serialized class.

@class: the serialized class full name.

Any registered class with PersistedResourceRegistry must provide

a static fromJson(IPersistedResourceRegistry, JsonNode) method for

deserialization. This is ensured during the class registration process.

Change-Id: I5b103e06eab6627dbfe9d531caae1a3ac4b296da

Reviewed-on: https://asterix-gerrit.ics.uci.edu/2752

Reviewed-by: Murtadha Hubail <mhubail@apache.org>

Integration-Tests: Murtadha Hubail <mhubail@apache.org>

Tested-by: Murtadha Hubail <mhubail@apache.org>

Contrib: Jenkins <jenkins@fulliautomatix.ics.uci.edu>

Reviewed-by: abdullah alamoudi <bamousaa@gmail.com>

    • -6
    • +14
    ./recovery/AbstractCheckpointManager.java
  1. … 128 more files in changeset.
[NO ISSUE][STO] Misc Storage Fixes and Improvements

- user model changes: no

- storage format changes: no

- interface changes: yes

Details:

- This change introduces some improvements to storage

operations.

- Local RecoveryManager is now extensible.

- Bulk loaders now call the IO callback similar to

Flushes, making them less special and creating a

unified lifecycle for adding an index component.

- As a result, The IndexCheckpointManager doesn't need

to have a special treatment for components loaded

through the bulk load operation.

- Component Id have been added to the index checkpoint

files.

- Cleanup for the code of local recovery for failed flush

operations.

- Ensure that after local recovery of flushes, primary

and secondary indexes have the same index for mutable

memory component.

- The use of WAIT logs to ensure in-flight flushes

are scheduled didn't work as expected. A new log type

WAIT_FOR_FLUSHES was introduced to acheive the expected

behavior.

- The local test framework was made Extensible to support

more use cases.

- Test cases were added for component ids in checkpoint files.

The following scenarios were covered:

- Primary and secondary both have values when a flush is

shceduled.

- Primary have values but not secondary when a flush is

scheduled.

- Primary is empty and an index is created through bulk

load.

- Primary has a single component and secondary is created

through bulk load.

- Primary has multiple components and secondary is created

through bulk load.

- Each primary opTracker now keeps a list of ongoing flushes.

- FlushDataset now waits only for flushes only and

not all io operations.

- Previously, we had many flushes scheduled on open datasets.

This was not detected but after this change, a failure

is thrown in such cases.

- Flush operations dont need to extend the comparable

interface anymore since they are FIFO per index.

Change-Id: If24c9baaac2b79e7d1acf47fa2601767388ce988

Reviewed-on: https://asterix-gerrit.ics.uci.edu/2632

Sonar-Qube: Jenkins <jenkins@fulliautomatix.ics.uci.edu>

Tested-by: Jenkins <jenkins@fulliautomatix.ics.uci.edu>

Contrib: Jenkins <jenkins@fulliautomatix.ics.uci.edu>

Integration-Tests: Jenkins <jenkins@fulliautomatix.ics.uci.edu>

Reviewed-by: Murtadha Hubail <mhubail@apache.org>

    • -8
    • +6
    ./logging/LogManagerWithReplication.java
  1. … 87 more files in changeset.
[NO ISSUE][TXN] Avoid boxing object creation in ConcurrentLockManager

Change-Id: Iae5975eb1fde93eae1836c16e5329683dbed9bcc

Reviewed-on: https://asterix-gerrit.ics.uci.edu/2582

Reviewed-by: Murtadha Hubail <mhubail@apache.org>

Tested-by: Michael Blow <mblow@apache.org>

    • -55
    • +62
    ./locking/ConcurrentLockManager.java
    • -595
    • +0
    ./locking/PrimitiveIntHashMap.java
  1. … 3 more files in changeset.
[NO ISSUE][FAIL] Remove Not Serializable Field From ACIDException

- user model changes: no

- storage format changes: no

- interface changes: no

Details:

- Remove not serializable ITransactionContext from ACIDException to

avoid serialization error when reporting errors to CC.

- Properly handle InterruptedException in lock manager.

- Remove unneeded WaitInterruptedException class.

Change-Id: Iee054a432b3e618579c3bc418175deab6abfb965

Reviewed-on: https://asterix-gerrit.ics.uci.edu/2559

Sonar-Qube: Jenkins <jenkins@fulliautomatix.ics.uci.edu>

Tested-by: Jenkins <jenkins@fulliautomatix.ics.uci.edu>

Contrib: Jenkins <jenkins@fulliautomatix.ics.uci.edu>

Integration-Tests: Jenkins <jenkins@fulliautomatix.ics.uci.edu>

Reviewed-by: Till Westmann <tillw@apache.org>

    • -30
    • +0
    ./locking/WaitInterruptedException.java
  1. … 2 more files in changeset.
[ASTERIXDB-1708][TX] Prevent log deletion during scan

Right now there is a potential for a soft checkpoint to delete a

log file that is about to be read as part of a transaction rollback.

This patch stops the soft checkpoint from proceeding if a rollback

is about to take place and vice-versa.

Change-Id: Icff1a520af24c8fac8e5836cdbf46425b78b1260

Reviewed-on: https://asterix-gerrit.ics.uci.edu/2508

Sonar-Qube: Jenkins <jenkins@fulliautomatix.ics.uci.edu>

Tested-by: Jenkins <jenkins@fulliautomatix.ics.uci.edu>

Contrib: Jenkins <jenkins@fulliautomatix.ics.uci.edu>

Integration-Tests: Jenkins <jenkins@fulliautomatix.ics.uci.edu>

Reviewed-by: Murtadha Hubail <mhubail@apache.org>

  1. … 3 more files in changeset.
[NO ISSUE][TX] Log LogBufferTailReader Read Failures

- user model changes: no

- storage format changes: no

- interface changes: no

Details:

- on read failures, include the read attempt status

and the last log record that was read.

Change-Id: Iba2edd8808e1d6de33b1b0fedd27263d99171b39

Reviewed-on: https://asterix-gerrit.ics.uci.edu/2499

Sonar-Qube: Jenkins <jenkins@fulliautomatix.ics.uci.edu>

Reviewed-by: Michael Blow <mblow@apache.org>

Tested-by: Jenkins <jenkins@fulliautomatix.ics.uci.edu>

Contrib: Jenkins <jenkins@fulliautomatix.ics.uci.edu>

  1. … 3 more files in changeset.
[NO ISSUE][RT] Fix wait for IO operations

- user model changes: no

- storage format changes: no

- interface changes: no

Details:

- Some operations such as close dataset, delete components,

and drop index need to wait for IO operations.

- Before this change, the wait for IO operation would just check

the count of IO operations on the dataset info. This is not

enough as a flush might have started by writing the flush log to

the log tail but only on the flush of that log, we trigger the

flush operation and the count of IO operation increases.

- To address this problem, we write a wait log before we check the

IO operation count ensuring that any flush logs in the log tail

have been flushed and counts incremented.

Change-Id: Ibfa883410cd24e0af54732f7ea6f1b4eb2184e8e

Reviewed-on: https://asterix-gerrit.ics.uci.edu/2495

Sonar-Qube: Jenkins <jenkins@fulliautomatix.ics.uci.edu>

Tested-by: Jenkins <jenkins@fulliautomatix.ics.uci.edu>

Contrib: Jenkins <jenkins@fulliautomatix.ics.uci.edu>

Integration-Tests: Jenkins <jenkins@fulliautomatix.ics.uci.edu>

Reviewed-by: Murtadha Hubail <mhubail@apache.org>

  1. … 3 more files in changeset.
[NO ISSUE][TX] Ensure Uncommitted Atomic Txns Not Flushed

- user model changes: no

- storage format changes: no

- interface changes: yes

Details:

- Make all metadata indexes modifications as

force modifications.

- Do not decrement ops of atomic transactions

until they fully commit or abort to prevent

flushing partial records.

- Do not schedule flush if a force modification

starts before the flush log is written to disk.

- Unify code path for completing operations

after commit/abort in op tracker.

- Remove unneeded update log commit notification.

- Add test case for failing flush due to force

modification.

Change-Id: If8d5df630f1d9119002ef91da5c282da18901acc

Reviewed-on: https://asterix-gerrit.ics.uci.edu/2456

Sonar-Qube: Jenkins <jenkins@fulliautomatix.ics.uci.edu>

Tested-by: Jenkins <jenkins@fulliautomatix.ics.uci.edu>

Contrib: Jenkins <jenkins@fulliautomatix.ics.uci.edu>

Reviewed-by: abdullah alamoudi <bamousaa@gmail.com>

Integration-Tests: Jenkins <jenkins@fulliautomatix.ics.uci.edu>

    • -3
    • +3
    ./transaction/AbstractTransactionContext.java
    • -15
    • +21
    ./transaction/AtomicTransactionContext.java
    • -13
    • +14
    ./transaction/EntityLevelTransactionContext.java
  1. … 5 more files in changeset.
[NO ISSUE] Refactor shutdown watchdog to ExitUtil

Change-Id: Id27635f90587c64ee29ab1a4ac2b1a6182042900

Reviewed-on: https://asterix-gerrit.ics.uci.edu/2470

Reviewed-by: Murtadha Hubail <mhubail@apache.org>

Sonar-Qube: Jenkins <jenkins@fulliautomatix.ics.uci.edu>

Tested-by: Jenkins <jenkins@fulliautomatix.ics.uci.edu>

Contrib: Jenkins <jenkins@fulliautomatix.ics.uci.edu>

Integration-Tests: Jenkins <jenkins@fulliautomatix.ics.uci.edu>

  1. … 7 more files in changeset.
[NO ISSUE][TX][FAIL] Halt on LogFlusher failure

- user model changes: no

- storage format changes: no

- interface changes: no

- cures cancer: no

Change-Id: I69c4bf6c9669601e6613a9435de046d72b0baf6d

Reviewed-on: https://asterix-gerrit.ics.uci.edu/2464

Sonar-Qube: Jenkins <jenkins@fulliautomatix.ics.uci.edu>

Reviewed-by: abdullah alamoudi <bamousaa@gmail.com>

Tested-by: Jenkins <jenkins@fulliautomatix.ics.uci.edu>

Contrib: Jenkins <jenkins@fulliautomatix.ics.uci.edu>

Integration-Tests: Jenkins <jenkins@fulliautomatix.ics.uci.edu>

  1. … 3 more files in changeset.