| // Copyright (c) 2011-present, Facebook, Inc. All rights reserved. |
| // This source code is licensed under both the GPLv2 (found in the |
| // COPYING file in the root directory) and Apache 2.0 License |
| // (found in the LICENSE.Apache file in the root directory). |
| // |
| // Copyright (c) 2011 The LevelDB Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. See the AUTHORS file for names of contributors. |
| // |
| // Log format information shared by reader and writer. |
| // See ../doc/log_format.txt for more detail. |
| |
| #pragma once |
| namespace rocksdb { |
| namespace log { |
| |
| enum RecordType { |
| // Zero is reserved for preallocated files |
| kZeroType = 0, |
| kFullType = 1, |
| |
| // For fragments |
| kFirstType = 2, |
| kMiddleType = 3, |
| kLastType = 4, |
| |
| // For recycled log files |
| kRecyclableFullType = 5, |
| kRecyclableFirstType = 6, |
| kRecyclableMiddleType = 7, |
| kRecyclableLastType = 8, |
| }; |
| static const int kMaxRecordType = kRecyclableLastType; |
| |
| static const unsigned int kBlockSize = 32768; |
| |
| // Header is checksum (4 bytes), length (2 bytes), type (1 byte) |
| static const int kHeaderSize = 4 + 2 + 1; |
| |
| // Recyclable header is checksum (4 bytes), type (1 byte), log number |
| // (4 bytes), length (2 bytes). |
| static const int kRecyclableHeaderSize = 4 + 1 + 4 + 2; |
| |
| } // namespace log |
| } // namespace rocksdb |