- Timestamp:
- May 3, 2010, 8:41:49 AM (16 years ago)
- Location:
- branches/tap_branches
- Files:
-
- 2 edited
-
. (modified) (1 prop)
-
Nebulous-Server/lib/Nebulous/Server/SQL.pm (modified) (9 diffs)
Legend:
- Unmodified
- Added
- Removed
-
branches/tap_branches
- Property svn:mergeinfo changed
-
branches/tap_branches/Nebulous-Server/lib/Nebulous/Server/SQL.pm
r24915 r27838 237 237 storage_object.so_id, 238 238 uri, 239 available 239 mountedvol.available, 240 vol_id, 241 cab_id 240 242 FROM storage_object 241 243 JOIN instance … … 243 245 JOIN mountedvol 244 246 USING(vol_id) 245 WHERE ext_id = ? 246 AND available = ? 247 JOIN volume 248 USING(vol_id) 249 WHERE ext_id = ? 250 AND mountedvol.available = ? 247 251 }, 248 252 get_object_instances_by_vol_name => qq{ 249 253 SELECT 250 254 storage_object.so_id, 251 uri 255 uri, 256 vol_id, 257 cab_id 252 258 FROM storage_object 253 259 JOIN instance … … 255 261 JOIN mountedvol 256 262 USING(vol_id) 257 WHERE ext_id = ? 258 AND name = ? 259 AND available = ? 260 }, 263 JOIN volume 264 USING(vol_id) 265 WHERE ext_id = ? 266 AND mountedvol.name = ? 267 AND mountedvol.available = ? 268 }, 269 # volume handler 261 270 get_storage_volume_by_name => qq{ 262 271 SELECT … … 275 284 LIMIT 1 276 285 }, 277 get_replication_volume_for_ext_id => qq{ 286 # volume handler 287 get_cabinets_for_ext_id => qq{ 288 SELECT DISTINCT 289 cab_id 290 FROM instance 291 JOIN volume ON instance.vol_id = volume.vol_id 292 JOIN storage_object USING(so_id) 293 WHERE ext_id = ? 294 }, 295 get_replication_volume_for_ext_id => qq{ 296 SELECT * FROM ( 278 297 SELECT 279 298 m.vol_id, 280 host,281 path,282 xattr,299 m.host, 300 m.path, 301 m.xattr, 283 302 total - used as free 284 303 FROM mountedvol AS m 285 LEFT JOIN instance AS i 304 JOIN volume AS v USING(vol_id) 305 LEFT JOIN ( 306 SELECT 307 instance.vol_id, 308 so_id 309 FROM instance 310 JOIN volume 311 ON instance.vol_id = volume.vol_id 312 WHERE so_id = ( 313 SELECT so_id 314 FROM storage_object 315 WHERE ext_id = ? 316 ) 317 ) AS i 286 318 ON m.vol_id = i.vol_id 287 AND i.so_id = (288 SELECT so_id289 FROM storage_object290 WHERE ext_id= ?291 )292 WHERE293 i.vol_id IS NULL294 AND used / total < ?295 AND available = ?296 AND allocate = ?297 ORDER BY RAND()298 LIMIT 1299 },319 WHERE 320 i.vol_id IS NULL 321 AND used / total < ? 322 AND m.available = ? 323 AND m.allocate = ? 324 AND ( (v.cab_id IS NULL) || 325 (v.cab_id != ?) ) 326 ORDER BY free DESC 327 LIMIT ?) as topfew 328 ORDER BY RAND() 329 LIMIT 1 330 }, 331 # volume handler 300 332 get_storage_volume => qq{ 333 SELECT * from ( 301 334 SELECT 302 335 vol_id, … … 311 344 AND allocate = ? 312 345 ORDER BY free DESC 346 LIMIT ?) as topfew 347 ORDER BY RAND() 313 348 LIMIT 1 314 349 }, 350 new_cabinet => qq{ 351 INSERT INTO cabinet (name, location, cab_id) 352 VALUES (?, ?, NULL) 353 }, 315 354 new_volume => qq{ 316 INSERT INTO volume (name, host, path, allocate, available, xattr, mountpoint )317 VALUES (?, ?, ?, TRUE, TRUE, FALSE, ? )355 INSERT INTO volume (name, host, path, allocate, available, xattr, mountpoint, cab_id) 356 VALUES (?, ?, ?, TRUE, TRUE, FALSE, ?, NULL) 318 357 }, 319 358 get_volume_by_name => qq{ … … 331 370 v.available, 332 371 v.xattr, 333 mountedvol.vol_id IS NOT NULL as mounted 372 mountedvol.vol_id IS NOT NULL as mounted, 373 v.cab_id 334 374 FROM volume AS v 335 375 LEFT JOIN mountedvol … … 614 654 ### 615 655 656 CREATE TABLE cabinet ( 657 cab_id INT NOT NULL AUTO_INCREMENT, 658 name VARCHAR(255) NOT NULL, 659 location VARCHAR(255), 660 PRIMARY KEY(cab_id), 661 UNIQUE KEY(name), 662 KEY (location) 663 ) ENGINE=innodb DEFAULT CHARSET=latin1; 664 665 ### 666 616 667 CREATE TABLE volume ( 617 668 vol_id INT NOT NULL AUTO_INCREMENT, … … 623 674 xattr BOOLEAN DEFAULT FALSE, 624 675 mountpoint VARCHAR(255) NOT NULL, 676 cab_id INT, 625 677 PRIMARY KEY(vol_id), 626 678 UNIQUE KEY(name), … … 629 681 KEY(allocate), 630 682 KEY(available), 683 FOREIGN KEY(cab_id) REFERENCES cabinet(cab_id), 631 684 KEY(mountpoint(255)) 632 685 ) ENGINE=innodb DEFAULT CHARSET=latin1;
Note:
See TracChangeset
for help on using the changeset viewer.
