mirror of
				https://github.com/taigrr/bitcask
				synced 2025-01-18 04:03:17 -08:00 
			
		
		
		
	Fix issues related to #239 Disable mmap reader for current datafile, which only read from the fd. Co-authored-by: jason3gb <jason3gb@gmail.com> Reviewed-on: https://git.mills.io/prologic/bitcask/pulls/240 Reviewed-by: James Mills <james@mills.io> Reviewed-by: Tai Groot <tai@taigrr.com> Co-authored-by: jason3gb <jason3gb@noreply@mills.io> Co-committed-by: jason3gb <jason3gb@noreply@mills.io>
This commit is contained in:
		
							parent
							
								
									21a824e13e
								
							
						
					
					
						commit
						2c57c950f8
					
				
							
								
								
									
										1
									
								
								AUTHORS
									
									
									
									
									
								
							
							
						
						
									
										1
									
								
								AUTHORS
									
									
									
									
									
								
							| @ -18,3 +18,4 @@ Yury Fedorov orlangure | |||||||
| o2gy84 <o2gy84@gmail.com> | o2gy84 <o2gy84@gmail.com> | ||||||
| garsue <labs.garsue@gmail.com> | garsue <labs.garsue@gmail.com> | ||||||
| biozz <ielfimov@gmail.com> | biozz <ielfimov@gmail.com> | ||||||
|  | jason3gb <jason3gb@gmail.com> | ||||||
| @ -74,9 +74,11 @@ func NewDatafile(path string, id int, readonly bool, maxKeySize uint32, maxValue | |||||||
| 		return nil, errors.Wrap(err, "error calling Stat()") | 		return nil, errors.Wrap(err, "error calling Stat()") | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	ra, err = mmap.Open(fn) | 	if readonly { | ||||||
| 	if err != nil { | 		ra, err = mmap.Open(fn) | ||||||
| 		return nil, err | 		if err != nil { | ||||||
|  | 			return nil, err | ||||||
|  | 		} | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	offset := stat.Size() | 	offset := stat.Size() | ||||||
| @ -107,7 +109,9 @@ func (df *datafile) Name() string { | |||||||
| 
 | 
 | ||||||
| func (df *datafile) Close() error { | func (df *datafile) Close() error { | ||||||
| 	defer func() { | 	defer func() { | ||||||
| 		df.ra.Close() | 		if df.ra != nil { | ||||||
|  | 			df.ra.Close() | ||||||
|  | 		} | ||||||
| 		df.r.Close() | 		df.r.Close() | ||||||
| 	}() | 	}() | ||||||
| 
 | 
 | ||||||
| @ -155,7 +159,7 @@ func (df *datafile) ReadAt(index, size int64) (e internal.Entry, err error) { | |||||||
| 
 | 
 | ||||||
| 	b := make([]byte, size) | 	b := make([]byte, size) | ||||||
| 
 | 
 | ||||||
| 	if df.w == nil { | 	if df.ra != nil { | ||||||
| 		n, err = df.ra.ReadAt(b, index) | 		n, err = df.ra.ReadAt(b, index) | ||||||
| 	} else { | 	} else { | ||||||
| 		n, err = df.r.ReadAt(b, index) | 		n, err = df.r.ReadAt(b, index) | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user