diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/test/resources/editsStored b/hadoop-hdfs-project/hadoop-hdfs/src/test/resources/editsStored index 80295750f11..3f2817a794d 100644 Binary files a/hadoop-hdfs-project/hadoop-hdfs/src/test/resources/editsStored and b/hadoop-hdfs-project/hadoop-hdfs/src/test/resources/editsStored differ diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/test/resources/editsStored.xml b/hadoop-hdfs-project/hadoop-hdfs/src/test/resources/editsStored.xml index 0a1c25e4712..2a57c73fc60 100644 --- a/hadoop-hdfs-project/hadoop-hdfs/src/test/resources/editsStored.xml +++ b/hadoop-hdfs-project/hadoop-hdfs/src/test/resources/editsStored.xml @@ -13,8 +13,8 @@ 2 1 - 1423097579620 - ef3f2032e2797e8e + 1512000829976 + e7457bcc6ab95a84 @@ -24,8 +24,8 @@ 3 2 - 1423097579622 - b978ed731a0b4a65 + 1512000829980 + 07cc38caf6c47bb4 @@ -37,19 +37,19 @@ 16386 /file_create 1 - 1422406380345 - 1422406380345 + 1511309632199 + 1511309632199 512 - DFSClient_NONMAPREDUCE_-156773767_1 + DFSClient_NONMAPREDUCE_2134933941_1 127.0.0.1 true - xyao + lei supergroup 420 - 7334ec24-dd6b-4efd-807d-ed0d18625534 - 6 + a4dc081c-6d6f-42d6-af5b-d260228f1aad + 5 @@ -60,14 +60,14 @@ 0 /file_create 1 - 1422406380369 - 1422406380345 + 1511309632248 + 1511309632199 512 false - xyao + lei supergroup 420 @@ -78,11 +78,11 @@ 6 /file_create - DFSClient_NONMAPREDUCE_-156773767_1 + DFSClient_NONMAPREDUCE_2134933941_1 127.0.0.1 false - 7334ec24-dd6b-4efd-807d-ed0d18625534 - 8 + a4dc081c-6d6f-42d6-af5b-d260228f1aad + 7 @@ -93,14 +93,109 @@ 0 /file_create 1 - 1422406380376 - 1422406380345 + 1511309632263 + 1511309632199 512 false - xyao + lei + supergroup + 420 + + + + + OP_ADD + + 8 + 0 + 16387 + /update_blocks + 1 + 1511309632266 + 1511309632266 + 4096 + DFSClient_NONMAPREDUCE_2134933941_1 + 127.0.0.1 + true + + lei + supergroup + 420 + + a4dc081c-6d6f-42d6-af5b-d260228f1aad + 9 + + + + OP_ALLOCATE_BLOCK_ID + + 9 + 1073741825 + + + + OP_SET_GENSTAMP_V2 + + 10 + 1001 + + + + OP_ADD_BLOCK + + 11 + /update_blocks + + 1073741825 + 0 + 1001 + + + -2 + + + + OP_UPDATE_BLOCKS + + 12 + /update_blocks + + 1073741825 + 1 + 1001 + + + -2 + + + + OP_UPDATE_BLOCKS + + 13 + /update_blocks + + -2 + + + + OP_CLOSE + + 14 + 0 + 0 + /update_blocks + 1 + 1511309632454 + 1511309632266 + 4096 + + + false + + lei supergroup 420 @@ -109,7 +204,7 @@ OP_SET_STORAGE_POLICY - 8 + 15 /file_create 7 @@ -117,36 +212,36 @@ OP_RENAME_OLD - 9 + 16 0 /file_create /file_moved - 1422406380383 - 7334ec24-dd6b-4efd-807d-ed0d18625534 - 11 + 1511309632467 + a4dc081c-6d6f-42d6-af5b-d260228f1aad + 17 OP_DELETE - 10 + 17 0 /file_moved - 1422406380392 - 7334ec24-dd6b-4efd-807d-ed0d18625534 - 12 + 1511309632480 + a4dc081c-6d6f-42d6-af5b-d260228f1aad + 19 OP_MKDIR - 11 + 18 0 - 16387 + 16388 /directory_mkdir - 1422406380399 + 1511309632488 - xyao + lei supergroup 493 @@ -155,94 +250,94 @@ OP_ALLOW_SNAPSHOT - 12 + 19 /directory_mkdir OP_DISALLOW_SNAPSHOT - 13 + 20 /directory_mkdir OP_ALLOW_SNAPSHOT - 14 + 21 /directory_mkdir OP_CREATE_SNAPSHOT - 15 + 22 /directory_mkdir snapshot1 - 7334ec24-dd6b-4efd-807d-ed0d18625534 - 17 + a4dc081c-6d6f-42d6-af5b-d260228f1aad + 24 OP_RENAME_SNAPSHOT - 16 + 23 /directory_mkdir snapshot1 snapshot2 - 7334ec24-dd6b-4efd-807d-ed0d18625534 - 18 + a4dc081c-6d6f-42d6-af5b-d260228f1aad + 25 OP_DELETE_SNAPSHOT - 17 + 24 /directory_mkdir snapshot2 - 7334ec24-dd6b-4efd-807d-ed0d18625534 - 19 + a4dc081c-6d6f-42d6-af5b-d260228f1aad + 26 OP_ADD - 18 + 25 0 - 16388 + 16389 /file_create 1 - 1422406380423 - 1422406380423 + 1511309632528 + 1511309632528 512 - DFSClient_NONMAPREDUCE_-156773767_1 + DFSClient_NONMAPREDUCE_2134933941_1 127.0.0.1 true - xyao + lei supergroup 420 - 7334ec24-dd6b-4efd-807d-ed0d18625534 - 20 + a4dc081c-6d6f-42d6-af5b-d260228f1aad + 27 OP_CLOSE - 19 + 26 0 0 /file_create 1 - 1422406380425 - 1422406380423 + 1511309632530 + 1511309632528 512 false - xyao + lei supergroup 420 @@ -251,7 +346,7 @@ OP_SET_REPLICATION - 20 + 27 /file_create 1 @@ -259,7 +354,7 @@ OP_SET_PERMISSIONS - 21 + 28 /file_create 511 @@ -267,7 +362,7 @@ OP_SET_OWNER - 22 + 29 /file_create newOwner @@ -275,7 +370,7 @@ OP_TIMES - 23 + 30 0 /file_create 1285195527000 @@ -285,7 +380,7 @@ OP_SET_QUOTA - 24 + 31 /directory_mkdir 1000 -1 @@ -294,7 +389,7 @@ OP_SET_QUOTA_BY_STORAGETYPE - 25 + 32 /directory_mkdir 1 888 @@ -303,91 +398,58 @@ OP_RENAME - 26 + 33 0 /file_create /file_moved - 1422406380442 - NONE - 7334ec24-dd6b-4efd-807d-ed0d18625534 - 28 + 1511309632561 + TO_TRASH + a4dc081c-6d6f-42d6-af5b-d260228f1aad + 35 OP_ADD - 27 + 34 0 - 16389 + 16390 /file_concat_target 1 - 1422406380446 - 1422406380446 + 1511309632566 + 1511309632566 512 - DFSClient_NONMAPREDUCE_-156773767_1 + DFSClient_NONMAPREDUCE_2134933941_1 127.0.0.1 true - xyao + lei supergroup 420 - 7334ec24-dd6b-4efd-807d-ed0d18625534 - 30 + a4dc081c-6d6f-42d6-af5b-d260228f1aad + 37 OP_ALLOCATE_BLOCK_ID - 28 - 1073741825 - - - - OP_SET_GENSTAMP_V2 - - 29 - 1001 - - - - OP_ADD_BLOCK - - 30 - /file_concat_target - - 1073741825 - 0 - 1001 - - - -2 - - - - OP_ALLOCATE_BLOCK_ID - - 31 + 35 1073741826 OP_SET_GENSTAMP_V2 - 32 + 36 1002 OP_ADD_BLOCK - 33 + 37 /file_concat_target - - 1073741825 - 512 - 1001 - 1073741826 0 @@ -400,21 +462,21 @@ OP_ALLOCATE_BLOCK_ID - 34 + 38 1073741827 OP_SET_GENSTAMP_V2 - 35 + 39 1003 OP_ADD_BLOCK - 36 + 40 /file_concat_target 1073741826 @@ -430,155 +492,35 @@ -2 - - OP_CLOSE - - 37 - 0 - 0 - /file_concat_target - 1 - 1422406380534 - 1422406380446 - 512 - - - false - - 1073741825 - 512 - 1001 - - - 1073741826 - 512 - 1002 - - - 1073741827 - 512 - 1003 - - - xyao - supergroup - 420 - - - - - OP_ADD - - 38 - 0 - 16390 - /file_concat_0 - 1 - 1422406380537 - 1422406380537 - 512 - DFSClient_NONMAPREDUCE_-156773767_1 - 127.0.0.1 - true - - xyao - supergroup - 420 - - 7334ec24-dd6b-4efd-807d-ed0d18625534 - 40 - - OP_ALLOCATE_BLOCK_ID - 39 + 41 1073741828 OP_SET_GENSTAMP_V2 - 40 + 42 1004 OP_ADD_BLOCK - - 41 - /file_concat_0 - - 1073741828 - 0 - 1004 - - - -2 - - - - OP_ALLOCATE_BLOCK_ID - - 42 - 1073741829 - - - - OP_SET_GENSTAMP_V2 43 - 1005 - - - - OP_ADD_BLOCK - - 44 - /file_concat_0 + /file_concat_target + + 1073741827 + 512 + 1003 + 1073741828 - 512 + 0 1004 - - 1073741829 - 0 - 1005 - - - -2 - - - - OP_ALLOCATE_BLOCK_ID - - 45 - 1073741830 - - - - OP_SET_GENSTAMP_V2 - - 46 - 1006 - - - - OP_ADD_BLOCK - - 47 - /file_concat_0 - - 1073741829 - 512 - 1005 - - - 1073741830 - 0 - 1006 - -2 @@ -586,34 +528,34 @@ OP_CLOSE - 48 + 44 0 0 - /file_concat_0 + /file_concat_target 1 - 1422406380558 - 1422406380537 + 1511309632593 + 1511309632566 512 false + + 1073741826 + 512 + 1002 + + + 1073741827 + 512 + 1003 + 1073741828 512 1004 - - 1073741829 - 512 - 1005 - - - 1073741830 - 512 - 1006 - - xyao + lei supergroup 420 @@ -622,116 +564,116 @@ OP_ADD - 49 + 45 0 16391 - /file_concat_1 + /file_concat_0 1 - 1422406380560 - 1422406380560 + 1511309632596 + 1511309632596 512 - DFSClient_NONMAPREDUCE_-156773767_1 + DFSClient_NONMAPREDUCE_2134933941_1 127.0.0.1 true - xyao + lei supergroup 420 - 7334ec24-dd6b-4efd-807d-ed0d18625534 - 49 + a4dc081c-6d6f-42d6-af5b-d260228f1aad + 46 OP_ALLOCATE_BLOCK_ID + + 46 + 1073741829 + + + + OP_SET_GENSTAMP_V2 + + 47 + 1005 + + + + OP_ADD_BLOCK + + 48 + /file_concat_0 + + 1073741829 + 0 + 1005 + + + -2 + + + + OP_ALLOCATE_BLOCK_ID + + 49 + 1073741830 + + + + OP_SET_GENSTAMP_V2 50 + 1006 + + + + OP_ADD_BLOCK + + 51 + /file_concat_0 + + 1073741829 + 512 + 1005 + + + 1073741830 + 0 + 1006 + + + -2 + + + + OP_ALLOCATE_BLOCK_ID + + 52 1073741831 OP_SET_GENSTAMP_V2 - 51 + 53 1007 OP_ADD_BLOCK - - 52 - /file_concat_1 - - 1073741831 - 0 - 1007 - - - -2 - - - - OP_ALLOCATE_BLOCK_ID - - 53 - 1073741832 - - - - OP_SET_GENSTAMP_V2 54 - 1008 - - - - OP_ADD_BLOCK - - 55 - /file_concat_1 + /file_concat_0 + + 1073741830 + 512 + 1006 + 1073741831 - 512 + 0 1007 - - 1073741832 - 0 - 1008 - - - -2 - - - - OP_ALLOCATE_BLOCK_ID - - 56 - 1073741833 - - - - OP_SET_GENSTAMP_V2 - - 57 - 1009 - - - - OP_ADD_BLOCK - - 58 - /file_concat_1 - - 1073741832 - 512 - 1008 - - - 1073741833 - 0 - 1009 - -2 @@ -739,22 +681,170 @@ OP_CLOSE - 59 + 55 0 0 - /file_concat_1 + /file_concat_0 1 - 1422406380579 - 1422406380560 + 1511309632618 + 1511309632596 512 false + + 1073741829 + 512 + 1005 + + + 1073741830 + 512 + 1006 + 1073741831 512 1007 + + lei + supergroup + 420 + + + + + OP_ADD + + 56 + 0 + 16392 + /file_concat_1 + 1 + 1511309632620 + 1511309632620 + 512 + DFSClient_NONMAPREDUCE_2134933941_1 + 127.0.0.1 + true + + lei + supergroup + 420 + + a4dc081c-6d6f-42d6-af5b-d260228f1aad + 55 + + + + OP_ALLOCATE_BLOCK_ID + + 57 + 1073741832 + + + + OP_SET_GENSTAMP_V2 + + 58 + 1008 + + + + OP_ADD_BLOCK + + 59 + /file_concat_1 + + 1073741832 + 0 + 1008 + + + -2 + + + + OP_ALLOCATE_BLOCK_ID + + 60 + 1073741833 + + + + OP_SET_GENSTAMP_V2 + + 61 + 1009 + + + + OP_ADD_BLOCK + + 62 + /file_concat_1 + + 1073741832 + 512 + 1008 + + + 1073741833 + 0 + 1009 + + + -2 + + + + OP_ALLOCATE_BLOCK_ID + + 63 + 1073741834 + + + + OP_SET_GENSTAMP_V2 + + 64 + 1010 + + + + OP_ADD_BLOCK + + 65 + /file_concat_1 + + 1073741833 + 512 + 1009 + + + 1073741834 + 0 + 1010 + + + -2 + + + + OP_CLOSE + + 66 + 0 + 0 + /file_concat_1 + 1 + 1511309632643 + 1511309632620 + 512 + + + false 1073741832 512 @@ -765,8 +855,13 @@ 512 1009 + + 1073741834 + 512 + 1010 + - xyao + lei supergroup 420 @@ -775,93 +870,60 @@ OP_CONCAT_DELETE - 60 + 67 0 /file_concat_target - 1422406380582 + 1511309632648 /file_concat_0 /file_concat_1 - 7334ec24-dd6b-4efd-807d-ed0d18625534 - 57 + a4dc081c-6d6f-42d6-af5b-d260228f1aad + 63 OP_ADD - 61 + 68 0 - 16392 + 16393 /file_create 1 - 1422406380586 - 1422406380586 + 1511309632651 + 1511309632651 512 - DFSClient_NONMAPREDUCE_-156773767_1 + DFSClient_NONMAPREDUCE_2134933941_1 127.0.0.1 true - xyao + lei supergroup 420 - 7334ec24-dd6b-4efd-807d-ed0d18625534 - 59 + a4dc081c-6d6f-42d6-af5b-d260228f1aad + 65 OP_ALLOCATE_BLOCK_ID - 62 - 1073741834 - - - - OP_SET_GENSTAMP_V2 - - 63 - 1010 - - - - OP_ADD_BLOCK - - 64 - /file_create - - 1073741834 - 0 - 1010 - - - -2 - - - - OP_ALLOCATE_BLOCK_ID - - 65 + 69 1073741835 OP_SET_GENSTAMP_V2 - 66 + 70 1011 OP_ADD_BLOCK - 67 + 71 /file_create - - 1073741834 - 512 - 1010 - 1073741835 0 @@ -871,90 +933,6 @@ -2 - - OP_CLOSE - - 68 - 0 - 0 - /file_create - 1 - 1422406380599 - 1422406380586 - 512 - - - false - - 1073741834 - 512 - 1010 - - - 1073741835 - 512 - 1011 - - - xyao - supergroup - 420 - - - - - OP_TRUNCATE - - 69 - /file_create - DFSClient_NONMAPREDUCE_-156773767_1 - 127.0.0.1 - 512 - 1422406380601 - - - - OP_SYMLINK - - 70 - 0 - 16393 - /file_symlink - /file_concat_target - 1422406380606 - 1422406380606 - - xyao - supergroup - 511 - - 7334ec24-dd6b-4efd-807d-ed0d18625534 - 66 - - - - OP_ADD - - 71 - 0 - 16394 - /hard-lease-recovery-test - 1 - 1422406380608 - 1422406380608 - 512 - DFSClient_NONMAPREDUCE_-156773767_1 - 127.0.0.1 - true - - xyao - supergroup - 420 - - 7334ec24-dd6b-4efd-807d-ed0d18625534 - 67 - - OP_ALLOCATE_BLOCK_ID @@ -973,7 +951,12 @@ OP_ADD_BLOCK 74 - /hard-lease-recovery-test + /file_create + + 1073741835 + 512 + 1011 + 1073741836 0 @@ -984,15 +967,127 @@ - OP_UPDATE_BLOCKS + OP_CLOSE 75 - /hard-lease-recovery-test + 0 + 0 + /file_create + 1 + 1511309632667 + 1511309632651 + 512 + + + false + + 1073741835 + 512 + 1011 + 1073741836 - 11 + 512 1012 + + lei + supergroup + 420 + + + + + OP_TRUNCATE + + 76 + /file_create + DFSClient_NONMAPREDUCE_2134933941_1 + 127.0.0.1 + 512 + 1511309632671 + + + + OP_SYMLINK + + 77 + 0 + 16394 + /file_symlink + /file_concat_target + 1511309632686 + 1511309632686 + + lei + supergroup + 511 + + a4dc081c-6d6f-42d6-af5b-d260228f1aad + 72 + + + + OP_ADD + + 78 + 0 + 16395 + /hard-lease-recovery-test + 1 + 1511309632689 + 1511309632689 + 512 + DFSClient_NONMAPREDUCE_2134933941_1 + 127.0.0.1 + true + + lei + supergroup + 420 + + a4dc081c-6d6f-42d6-af5b-d260228f1aad + 73 + + + + OP_ALLOCATE_BLOCK_ID + + 79 + 1073741837 + + + + OP_SET_GENSTAMP_V2 + + 80 + 1013 + + + + OP_ADD_BLOCK + + 81 + /hard-lease-recovery-test + + 1073741837 + 0 + 1013 + + + -2 + + + + OP_UPDATE_BLOCKS + + 82 + /hard-lease-recovery-test + + 1073741837 + 11 + 1013 + -2 @@ -1000,40 +1095,40 @@ OP_SET_GENSTAMP_V2 - 76 - 1013 + 83 + 1014 OP_REASSIGN_LEASE - 77 - DFSClient_NONMAPREDUCE_-156773767_1 + 84 + DFSClient_NONMAPREDUCE_2134933941_1 /hard-lease-recovery-test - HDFS_NameNode + HDFS_NameNode-2017-11-21 16:13:54,700-0800 OP_CLOSE - 78 + 85 0 0 /hard-lease-recovery-test 1 - 1422406383261 - 1422406380608 + 1511309634880 + 1511309632689 512 false - 1073741836 + 1073741837 11 - 1013 + 1014 - xyao + lei supergroup 420 @@ -1042,72 +1137,73 @@ OP_ADD_CACHE_POOL - 79 + 86 pool1 - xyao + lei staff 493 9223372036854775807 2305843009213693951 - 7334ec24-dd6b-4efd-807d-ed0d18625534 - 74 + 1 + a4dc081c-6d6f-42d6-af5b-d260228f1aad + 80 OP_MODIFY_CACHE_POOL - 80 + 87 pool1 99 - 7334ec24-dd6b-4efd-807d-ed0d18625534 - 75 + a4dc081c-6d6f-42d6-af5b-d260228f1aad + 81 OP_ADD_CACHE_DIRECTIVE - 81 + 88 1 /path 1 pool1 - 2305844431620077592 - 7334ec24-dd6b-4efd-807d-ed0d18625534 - 76 + 2305844520523329692 + a4dc081c-6d6f-42d6-af5b-d260228f1aad + 82 OP_MODIFY_CACHE_DIRECTIVE - 82 + 89 1 2 - 7334ec24-dd6b-4efd-807d-ed0d18625534 - 77 + a4dc081c-6d6f-42d6-af5b-d260228f1aad + 83 OP_REMOVE_CACHE_DIRECTIVE - 83 + 90 1 - 7334ec24-dd6b-4efd-807d-ed0d18625534 - 78 + a4dc081c-6d6f-42d6-af5b-d260228f1aad + 84 OP_REMOVE_CACHE_POOL - 84 + 91 pool1 - 7334ec24-dd6b-4efd-807d-ed0d18625534 - 79 + a4dc081c-6d6f-42d6-af5b-d260228f1aad + 85 OP_SET_ACL - 85 + 92 /file_concat_target ACCESS @@ -1140,61 +1236,61 @@ OP_SET_XATTR - 86 + 93 /file_concat_target USER a1 0x313233 - 7334ec24-dd6b-4efd-807d-ed0d18625534 - 81 + a4dc081c-6d6f-42d6-af5b-d260228f1aad + 87 OP_SET_XATTR - 87 + 94 /file_concat_target USER a2 0x373839 - 7334ec24-dd6b-4efd-807d-ed0d18625534 - 82 + a4dc081c-6d6f-42d6-af5b-d260228f1aad + 88 OP_REMOVE_XATTR - 88 + 95 /file_concat_target USER a2 - 7334ec24-dd6b-4efd-807d-ed0d18625534 - 83 + a4dc081c-6d6f-42d6-af5b-d260228f1aad + 89 OP_ADD_ERASURE_CODING_POLICY - 89 + 96 rs 3 2 8192 0 - 7334ec24-dd6b-4efd-807d-ed0d18625534 - 84 + a4dc081c-6d6f-42d6-af5b-d260228f1aad + 90 OP_ADD_ERASURE_CODING_POLICY - 90 + 97 rs 6 10 @@ -1204,82 +1300,82 @@ dummyKey dummyValue - 7334ec24-dd6b-4efd-807d-ed0d18625534 - 85 - - - - OP_ENABLE_ERASURE_CODING_POLICY - - 91 - RS-3-2-8k - 7334ec24-dd6b-4efd-807d-ed0d18625534 - 86 - - - - OP_ENABLE_ERASURE_CODING_POLICY - - 92 - RS-6-10-4k - 7334ec24-dd6b-4efd-807d-ed0d18625534 - 87 - - - - OP_DISABLE_ERASURE_CODING_POLICY - - 93 - RS-3-2-8k - 7334ec24-dd6b-4efd-807d-ed0d18625534 - 88 - - - - OP_DISABLE_ERASURE_CODING_POLICY - - 94 - RS-6-10-4k - 7334ec24-dd6b-4efd-807d-ed0d18625534 - 89 - - - - OP_REMOVE_ERASURE_CODING_POLICY - - 95 - RS-3-2-8k - 7334ec24-dd6b-4efd-807d-ed0d18625534 - 90 - - - - OP_REMOVE_ERASURE_CODING_POLICY - - 96 - RS-6-10-4k - 7334ec24-dd6b-4efd-807d-ed0d18625534 + a4dc081c-6d6f-42d6-af5b-d260228f1aad 91 + + OP_ENABLE_ERASURE_CODING_POLICY + + 98 + RS-3-2-8k + a4dc081c-6d6f-42d6-af5b-d260228f1aad + 92 + + + + OP_ENABLE_ERASURE_CODING_POLICY + + 99 + RS-6-10-4k + a4dc081c-6d6f-42d6-af5b-d260228f1aad + 93 + + + + OP_DISABLE_ERASURE_CODING_POLICY + + 100 + RS-3-2-8k + a4dc081c-6d6f-42d6-af5b-d260228f1aad + 94 + + + + OP_DISABLE_ERASURE_CODING_POLICY + + 101 + RS-6-10-4k + a4dc081c-6d6f-42d6-af5b-d260228f1aad + 95 + + + + OP_REMOVE_ERASURE_CODING_POLICY + + 102 + RS-3-2-8k + a4dc081c-6d6f-42d6-af5b-d260228f1aad + 96 + + + + OP_REMOVE_ERASURE_CODING_POLICY + + 103 + RS-6-10-4k + a4dc081c-6d6f-42d6-af5b-d260228f1aad + 97 + + OP_ROLLING_UPGRADE_START - 97 - 1422406383706 + 104 + 1511309635904 OP_ROLLING_UPGRADE_FINALIZE - 98 - 1422406383706 + 105 + 1511309635904 OP_END_LOG_SEGMENT - 99 + 106